verteilen-core 1.2.4 → 1.2.6

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 (92) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/jest.config.d.ts +2 -0
  3. package/dist/src/client/analysis.d.ts +35 -0
  4. package/dist/src/client/analysis.js +318 -319
  5. package/dist/src/client/client.d.ts +25 -0
  6. package/dist/src/client/client.js +162 -168
  7. package/dist/src/client/cluster.d.ts +1 -0
  8. package/dist/src/client/cluster.js +1 -2
  9. package/dist/src/client/database.d.ts +13 -0
  10. package/dist/src/client/database.js +28 -27
  11. package/dist/src/client/execute.d.ts +24 -0
  12. package/dist/src/client/execute.js +61 -51
  13. package/dist/src/client/http.d.ts +7 -0
  14. package/dist/src/client/http.js +29 -26
  15. package/dist/src/client/javascript.d.ts +47 -0
  16. package/dist/src/client/javascript.js +110 -136
  17. package/dist/src/client/job_database.d.ts +10 -0
  18. package/dist/src/client/job_database.js +27 -29
  19. package/dist/src/client/job_execute.d.ts +20 -0
  20. package/dist/src/client/job_execute.js +148 -146
  21. package/dist/src/client/os.d.ts +29 -0
  22. package/dist/src/client/os.js +131 -136
  23. package/dist/src/client/resource.d.ts +7 -0
  24. package/dist/src/client/resource.js +93 -104
  25. package/dist/src/client/shell.d.ts +16 -0
  26. package/dist/src/client/shell.js +102 -98
  27. package/dist/src/computed.d.ts +13 -0
  28. package/dist/src/interface/base.d.ts +70 -0
  29. package/dist/src/interface/bus.d.ts +90 -0
  30. package/dist/src/interface/enum.d.ts +143 -0
  31. package/dist/src/interface/execute.d.ts +20 -0
  32. package/dist/src/interface/record.d.ts +93 -0
  33. package/dist/src/interface/server.d.ts +76 -0
  34. package/dist/src/interface/struct.d.ts +182 -0
  35. package/dist/src/interface/table.d.ts +20 -0
  36. package/dist/src/interface/ui.d.ts +29 -0
  37. package/dist/src/interface.d.ts +29 -0
  38. package/dist/src/plugins/i18n.d.ts +1666 -0
  39. package/dist/src/script/console_manager.d.ts +18 -0
  40. package/dist/src/script/console_manager.js +97 -91
  41. package/dist/src/script/console_server_manager.d.ts +13 -0
  42. package/dist/src/script/console_server_manager.js +29 -26
  43. package/dist/src/script/execute/base.d.ts +45 -0
  44. package/dist/src/script/execute/base.js +165 -162
  45. package/dist/src/script/execute/feedback.d.ts +12 -0
  46. package/dist/src/script/execute/feedback.js +162 -171
  47. package/dist/src/script/execute/interface.d.ts +8 -0
  48. package/dist/src/script/execute/region_job.d.ts +5 -0
  49. package/dist/src/script/execute/region_job.js +1 -0
  50. package/dist/src/script/execute/region_project.d.ts +10 -0
  51. package/dist/src/script/execute/region_project.js +4 -0
  52. package/dist/src/script/execute/region_subtask.d.ts +5 -0
  53. package/dist/src/script/execute/region_subtask.js +1 -0
  54. package/dist/src/script/execute/region_task.d.ts +10 -0
  55. package/dist/src/script/execute/region_task.js +4 -0
  56. package/dist/src/script/execute/runner.d.ts +14 -0
  57. package/dist/src/script/execute/runner.js +129 -139
  58. package/dist/src/script/execute/util_parser.d.ts +14 -0
  59. package/dist/src/script/execute/util_parser.js +119 -121
  60. package/dist/src/script/execute_manager.d.ts +25 -0
  61. package/dist/src/script/execute_manager.js +266 -278
  62. package/dist/src/script/socket_manager.d.ts +31 -0
  63. package/dist/src/script/socket_manager.js +196 -193
  64. package/dist/src/script/webhook_manager.d.ts +3 -0
  65. package/dist/src/script/webhook_server_manager.d.ts +13 -0
  66. package/dist/src/script/webhook_server_manager.js +79 -86
  67. package/dist/src/server/detail.d.ts +72 -0
  68. package/dist/src/server/detail.js +401 -378
  69. package/dist/src/server/io.d.ts +46 -0
  70. package/dist/src/server/io.js +42 -51
  71. package/dist/src/server/plugin.d.ts +18 -0
  72. package/dist/src/server/plugin.js +45 -54
  73. package/dist/src/server/server.d.ts +27 -0
  74. package/dist/src/server/server.js +38 -36
  75. package/dist/src/server.d.ts +4 -0
  76. package/dist/src/util/console_handle.d.ts +20 -0
  77. package/dist/src/util/console_handle.js +214 -218
  78. package/dist/src/util/log_handle.d.ts +23 -0
  79. package/dist/src/util/log_handle.js +158 -164
  80. package/dist/test/TEST.d.ts +1 -0
  81. package/dist/test/TEST.js +37 -54
  82. package/dist/test/client/execute.test.d.ts +1 -0
  83. package/dist/test/client/execute.test.js +6 -15
  84. package/dist/test/client/javascript.test.d.ts +1 -0
  85. package/dist/test/client/javascript.test.js +21 -30
  86. package/dist/test/client/server.test.d.ts +1 -0
  87. package/dist/test/client/task.test.d.ts +1 -0
  88. package/dist/test/client/task.test.js +1 -1
  89. package/dist/test/script/parser.test.d.ts +1 -0
  90. package/dist/test/script/socket.test.d.ts +1 -0
  91. package/package.json +1 -1
  92. package/tsconfig.json +5 -3
@@ -50,211 +50,214 @@ function isRenderer() {
50
50
  }
51
51
  console.log("isRenderer", isRenderer());
52
52
  class WebsocketManager {
53
+ targets = [];
54
+ newConnect;
55
+ disconnect;
56
+ onAnalysis;
57
+ proxy;
58
+ messager_log;
53
59
  constructor(_newConnect, _disconnect, _onAnalysis, _messager_log, _proxy) {
54
- this.targets = [];
55
- this.server_start = (url, id) => this.serverconnect(url, id);
56
- this.server_stop = (uuid, reason) => this.removeByUUID(uuid, reason);
57
- this.server_update = () => this.sendUpdate();
58
- this.server_record = (ns) => {
59
- ns.forEach(x => {
60
- this.serverconnect(x.url, x.uuid);
61
- });
62
- };
63
- this.shell_open = (uuid) => {
64
- const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
65
- if (p == undefined) {
66
- this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
67
- return;
68
- }
69
- const d = {
70
- name: "open_shell",
71
- data: 0
72
- };
73
- p.websocket.send(JSON.stringify(d));
74
- };
75
- this.shell_enter = (uuid, text) => {
76
- const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
77
- if (p == undefined) {
78
- this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
79
- return;
80
- }
81
- const d = {
82
- name: "enter_shell",
83
- data: text
84
- };
85
- p.websocket.send(JSON.stringify(d));
60
+ this.newConnect = _newConnect;
61
+ this.disconnect = _disconnect;
62
+ this.onAnalysis = _onAnalysis;
63
+ this.messager_log = _messager_log;
64
+ this.proxy = _proxy;
65
+ setInterval(this.update, 1000);
66
+ }
67
+ server_start = (url, id) => this.serverconnect(url, id);
68
+ server_stop = (uuid, reason) => this.removeByUUID(uuid, reason);
69
+ server_update = () => this.sendUpdate();
70
+ server_record = (ns) => {
71
+ ns.forEach(x => {
72
+ this.serverconnect(x.url, x.uuid);
73
+ });
74
+ };
75
+ shell_open = (uuid) => {
76
+ const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
77
+ if (p == undefined) {
78
+ this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
79
+ return;
80
+ }
81
+ const d = {
82
+ name: "open_shell",
83
+ data: 0
86
84
  };
87
- this.shell_close = (uuid) => {
88
- const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
89
- if (p == undefined) {
90
- this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
91
- return;
92
- }
93
- const d = {
94
- name: "close_shell",
95
- data: 0
96
- };
97
- p.websocket.send(JSON.stringify(d));
85
+ p.websocket.send(JSON.stringify(d));
86
+ };
87
+ shell_enter = (uuid, text) => {
88
+ const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
89
+ if (p == undefined) {
90
+ this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
91
+ return;
92
+ }
93
+ const d = {
94
+ name: "enter_shell",
95
+ data: text
98
96
  };
99
- this.shell_folder = (uuid, path) => {
100
- const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
101
- if (p == undefined) {
102
- this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
103
- return;
104
- }
105
- const d = {
106
- name: "shell_folder",
107
- data: path
108
- };
109
- p.websocket.send(JSON.stringify(d));
97
+ p.websocket.send(JSON.stringify(d));
98
+ };
99
+ shell_close = (uuid) => {
100
+ const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
101
+ if (p == undefined) {
102
+ this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
103
+ return;
104
+ }
105
+ const d = {
106
+ name: "close_shell",
107
+ data: 0
110
108
  };
111
- this.serverconnect = (url, uuid) => {
112
- if (this.targets.findIndex(x => x.websocket.url.slice(0, -1) == url) != -1)
113
- return;
114
- if (this.targets.findIndex(x => x.uuid == uuid) != -1)
115
- return;
116
- let client = undefined;
117
- if (jsEnv.isNode)
118
- client = new ws.WebSocket(url, { agent: new https.Agent(), rejectUnauthorized: false });
119
- else
120
- client = new WebSocket(url);
121
- const t = { uuid: (uuid == undefined ? (0, uuid_1.v6)() : uuid), websocket: client, current_job: [] };
122
- this.targets.push(t);
123
- client.onerror = (err) => {
124
- this.messager_log(`[Socket] Connect failed ${url} ${err.message}`);
125
- };
126
- client.onclose = (ev) => {
127
- if (t.s != undefined) {
128
- this.messager_log(`[Socket] Client close connection, ${ev.code}, ${ev.reason}`);
129
- this.disconnect(t);
130
- }
131
- t.s = undefined;
132
- t.current_job = [];
133
- };
134
- client.onopen = () => {
135
- this.messager_log('[Socket] New Connection !' + client.url);
136
- if (t.s == undefined) {
137
- t.s = true;
138
- }
139
- this.sendUpdate();
140
- this.newConnect(t);
141
- };
142
- client.onmessage = (ev) => {
143
- const h = JSON.parse(ev.data.toString());
144
- const c = this.targets.find(x => x.uuid == uuid);
145
- this.analysis(h, c);
146
- };
147
- return client;
109
+ p.websocket.send(JSON.stringify(d));
110
+ };
111
+ shell_folder = (uuid, path) => {
112
+ const p = this.targets.find(x => x.uuid == uuid && x.websocket.readyState == interface_1.SocketState.OPEN);
113
+ if (p == undefined) {
114
+ this.messager_log(`[Shell] Error cannot find the node by ID: ${uuid}`);
115
+ return;
116
+ }
117
+ const d = {
118
+ name: "shell_folder",
119
+ data: path
148
120
  };
149
- this.analysis = (h, c) => {
150
- if (h == undefined) {
151
- this.messager_log('[Source Analysis] Decode failed, Get value undefined');
152
- return;
153
- }
154
- if (h.message != undefined && h.message.length > 0) {
155
- this.messager_log(`[Source Analysis] ${h.message}`);
156
- }
157
- if (h.data == undefined)
158
- return;
159
- const d = { name: h.name, h: h, c: c };
160
- const pass = this.socket_analysis(d);
161
- if (!pass)
162
- this.onAnalysis(d);
121
+ p.websocket.send(JSON.stringify(d));
122
+ };
123
+ serverconnect = (url, uuid) => {
124
+ if (this.targets.findIndex(x => x.websocket.url.slice(0, -1) == url) != -1)
125
+ return;
126
+ if (this.targets.findIndex(x => x.uuid == uuid) != -1)
127
+ return;
128
+ let client = undefined;
129
+ if (jsEnv.isNode)
130
+ client = new ws.WebSocket(url, { agent: new https.Agent(), rejectUnauthorized: false });
131
+ else
132
+ client = new WebSocket(url);
133
+ const t = { uuid: (uuid == undefined ? (0, uuid_1.v6)() : uuid), websocket: client, current_job: [] };
134
+ this.targets.push(t);
135
+ client.onerror = (err) => {
136
+ this.messager_log(`[Socket] Connect failed ${url} ${err.message}`);
163
137
  };
164
- this.socket_analysis = (d) => {
165
- const typeMap = {
166
- 'system_info': this.system_info,
167
- 'shell_reply': this.shell_reply,
168
- 'shell_folder_reply': this.shell_folder_reply,
169
- 'node_info': this.node_info,
170
- 'pong': this.pong,
171
- 'plugin_info_reply': this.plugin_info_reply,
172
- };
173
- if (typeMap.hasOwnProperty(d.name)) {
174
- const castingFunc = typeMap[d.h.name];
175
- castingFunc(d.h.data, d.c, d.h.meta);
176
- return true;
177
- }
178
- else {
179
- return false;
138
+ client.onclose = (ev) => {
139
+ if (t.s != undefined) {
140
+ this.messager_log(`[Socket] Client close connection, ${ev.code}, ${ev.reason}`);
141
+ this.disconnect(t);
180
142
  }
143
+ t.s = undefined;
144
+ t.current_job = [];
181
145
  };
182
- this.sendUpdate = () => {
183
- let result = [];
184
- const data = [];
185
- this.targets.forEach(x => {
186
- if (x.websocket.readyState == interface_1.SocketState.CLOSED) {
187
- data.push({ uuid: x.uuid, url: x.websocket.url });
188
- }
189
- });
190
- data.forEach(d => this.removeByUUID(d.uuid));
191
- data.forEach(d => {
192
- this.serverconnect(d.url, d.uuid);
193
- });
194
- result = this.targets.map(x => {
195
- return {
196
- s: false,
197
- uuid: x.uuid,
198
- state: x.websocket.readyState,
199
- url: x.websocket.url,
200
- connection_rate: x.ms,
201
- system: x.information,
202
- plugins: x.plugins
203
- };
204
- });
205
- return result;
206
- };
207
- this.removeByUUID = (uuid, reason) => {
208
- let index = this.targets.findIndex(x => x.uuid == uuid);
209
- if (index != -1) {
210
- if (this.targets[index].websocket.readyState == interface_1.SocketState.OPEN)
211
- this.targets[index].websocket.close(1000, reason != undefined ? reason : '');
212
- this.targets.splice(index, 1);
146
+ client.onopen = () => {
147
+ this.messager_log('[Socket] New Connection !' + client.url);
148
+ if (t.s == undefined) {
149
+ t.s = true;
213
150
  }
151
+ this.sendUpdate();
152
+ this.newConnect(t);
214
153
  };
215
- this.update = () => {
216
- const h = { name: 'ping', data: 0 };
217
- this.targets.forEach(x => {
218
- if (x.websocket.readyState != interface_1.SocketState.OPEN)
219
- return;
220
- x.last = Date.now();
221
- x.websocket.send(JSON.stringify(h));
222
- });
223
- };
224
- this.shell_reply = (data, w) => {
225
- var _a;
226
- (_a = this.proxy) === null || _a === void 0 ? void 0 : _a.shellReply(data, w);
154
+ client.onmessage = (ev) => {
155
+ const h = JSON.parse(ev.data.toString());
156
+ const c = this.targets.find(x => x.uuid == uuid);
157
+ this.analysis(h, c);
227
158
  };
228
- this.shell_folder_reply = (data, w) => {
229
- var _a;
230
- (_a = this.proxy) === null || _a === void 0 ? void 0 : _a.folderReply(data, w);
231
- };
232
- this.system_info = (info, source) => {
233
- if (source == undefined)
234
- return;
235
- source.information = info;
236
- };
237
- this.node_info = (info, source) => {
238
- if (source == undefined)
239
- return;
240
- source.load = info;
241
- };
242
- this.pong = (info, source) => {
243
- if (source == undefined || source.last == undefined)
244
- return;
245
- source.ms = Date.now() - source.last;
159
+ return client;
160
+ };
161
+ analysis = (h, c) => {
162
+ if (h == undefined) {
163
+ this.messager_log('[Source Analysis] Decode failed, Get value undefined');
164
+ return;
165
+ }
166
+ if (h.message != undefined && h.message.length > 0) {
167
+ this.messager_log(`[Source Analysis] ${h.message}`);
168
+ }
169
+ if (h.data == undefined)
170
+ return;
171
+ const d = { name: h.name, h: h, c: c };
172
+ const pass = this.socket_analysis(d);
173
+ if (!pass)
174
+ this.onAnalysis(d);
175
+ };
176
+ socket_analysis = (d) => {
177
+ const typeMap = {
178
+ 'system_info': this.system_info,
179
+ 'shell_reply': this.shell_reply,
180
+ 'shell_folder_reply': this.shell_folder_reply,
181
+ 'node_info': this.node_info,
182
+ 'pong': this.pong,
183
+ 'plugin_info_reply': this.plugin_info_reply,
246
184
  };
247
- this.plugin_info_reply = (data, source) => {
248
- if (source == undefined || source.last == undefined)
185
+ if (typeMap.hasOwnProperty(d.name)) {
186
+ const castingFunc = typeMap[d.h.name];
187
+ castingFunc(d.h.data, d.c, d.h.meta);
188
+ return true;
189
+ }
190
+ else {
191
+ return false;
192
+ }
193
+ };
194
+ sendUpdate = () => {
195
+ let result = [];
196
+ const data = [];
197
+ this.targets.forEach(x => {
198
+ if (x.websocket.readyState == interface_1.SocketState.CLOSED) {
199
+ data.push({ uuid: x.uuid, url: x.websocket.url });
200
+ }
201
+ });
202
+ data.forEach(d => this.removeByUUID(d.uuid));
203
+ data.forEach(d => {
204
+ this.serverconnect(d.url, d.uuid);
205
+ });
206
+ result = this.targets.map(x => {
207
+ return {
208
+ s: false,
209
+ uuid: x.uuid,
210
+ state: x.websocket.readyState,
211
+ url: x.websocket.url,
212
+ connection_rate: x.ms,
213
+ system: x.information,
214
+ plugins: x.plugins
215
+ };
216
+ });
217
+ return result;
218
+ };
219
+ removeByUUID = (uuid, reason) => {
220
+ let index = this.targets.findIndex(x => x.uuid == uuid);
221
+ if (index != -1) {
222
+ if (this.targets[index].websocket.readyState == interface_1.SocketState.OPEN)
223
+ this.targets[index].websocket.close(1000, reason != undefined ? reason : '');
224
+ this.targets.splice(index, 1);
225
+ }
226
+ };
227
+ update = () => {
228
+ const h = { name: 'ping', data: 0 };
229
+ this.targets.forEach(x => {
230
+ if (x.websocket.readyState != interface_1.SocketState.OPEN)
249
231
  return;
250
- source.plugins = data;
251
- };
252
- this.newConnect = _newConnect;
253
- this.disconnect = _disconnect;
254
- this.onAnalysis = _onAnalysis;
255
- this.messager_log = _messager_log;
256
- this.proxy = _proxy;
257
- setInterval(this.update, 1000);
258
- }
232
+ x.last = Date.now();
233
+ x.websocket.send(JSON.stringify(h));
234
+ });
235
+ };
236
+ shell_reply = (data, w) => {
237
+ this.proxy?.shellReply(data, w);
238
+ };
239
+ shell_folder_reply = (data, w) => {
240
+ this.proxy?.folderReply(data, w);
241
+ };
242
+ system_info = (info, source) => {
243
+ if (source == undefined)
244
+ return;
245
+ source.information = info;
246
+ };
247
+ node_info = (info, source) => {
248
+ if (source == undefined)
249
+ return;
250
+ source.load = info;
251
+ };
252
+ pong = (info, source) => {
253
+ if (source == undefined || source.last == undefined)
254
+ return;
255
+ source.ms = Date.now() - source.last;
256
+ };
257
+ plugin_info_reply = (data, source) => {
258
+ if (source == undefined || source.last == undefined)
259
+ return;
260
+ source.plugins = data;
261
+ };
259
262
  }
260
263
  exports.WebsocketManager = WebsocketManager;
@@ -0,0 +1,3 @@
1
+ export declare class WebhookManager {
2
+ constructor(server_url: string);
3
+ }
@@ -0,0 +1,13 @@
1
+ import { Messager, Messager_log } from '../interface';
2
+ export declare class WebhookServerManager {
3
+ private httpss;
4
+ private server;
5
+ private sources;
6
+ private messager;
7
+ private messager_log;
8
+ constructor(_messager: Messager, _messager_log: Messager_log);
9
+ Init: () => Promise<void>;
10
+ Destroy: () => void;
11
+ Release: () => void;
12
+ private get_pem;
13
+ }
@@ -32,15 +32,6 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
35
  Object.defineProperty(exports, "__esModule", { value: true });
45
36
  exports.WebhookServerManager = void 0;
46
37
  const path = __importStar(require("path"));
@@ -52,89 +43,91 @@ const interface_1 = require("../interface");
52
43
  const tcp_port_used_1 = require("tcp-port-used");
53
44
  const fs_1 = require("fs");
54
45
  class WebhookServerManager {
46
+ httpss = undefined;
47
+ server = undefined;
48
+ sources = [];
49
+ messager;
50
+ messager_log;
55
51
  constructor(_messager, _messager_log) {
56
- this.httpss = undefined;
57
- this.server = undefined;
58
- this.sources = [];
59
- this.Init = () => __awaiter(this, void 0, void 0, function* () {
60
- let port_result = interface_1.WebHookPORT;
61
- let canbeuse = false;
62
- while (!canbeuse) {
63
- yield (0, tcp_port_used_1.check)(port_result).then(x => {
64
- canbeuse = !x;
65
- }).catch(err => {
66
- canbeuse = true;
67
- });
68
- if (!canbeuse)
69
- port_result += 1;
70
- }
71
- const pems = yield this.get_pem();
72
- this.httpss = https.createServer({ key: pems[0], cert: pems[1], minVersion: 'TLSv1.2', maxVersion: 'TLSv1.3' }, (req, res) => {
73
- res.writeHead(200);
74
- res.end('HTTPS server is running');
75
- });
76
- this.httpss.addListener('upgrade', (req, res, head) => console.log('UPGRADE:', req.url));
77
- this.server = new ws.Server({ server: this.httpss });
78
- this.server.on('listening', () => {
79
- this.messager_log('[Server] Listen PORT: ' + port_result.toString());
52
+ this.messager = _messager;
53
+ this.messager_log = _messager_log;
54
+ }
55
+ Init = async () => {
56
+ let port_result = interface_1.WebHookPORT;
57
+ let canbeuse = false;
58
+ while (!canbeuse) {
59
+ await (0, tcp_port_used_1.check)(port_result).then(x => {
60
+ canbeuse = !x;
61
+ }).catch(err => {
62
+ canbeuse = true;
80
63
  });
81
- this.server.on('error', (err) => {
82
- this.messager_log(`[Server] Error ${err.name}\n\t${err.message}\n\t${err.stack}`);
64
+ if (!canbeuse)
65
+ port_result += 1;
66
+ }
67
+ const pems = await this.get_pem();
68
+ this.httpss = https.createServer({ key: pems[0], cert: pems[1], minVersion: 'TLSv1.2', maxVersion: 'TLSv1.3' }, (req, res) => {
69
+ res.writeHead(200);
70
+ res.end('HTTPS server is running');
71
+ });
72
+ this.httpss.addListener('upgrade', (req, res, head) => console.log('UPGRADE:', req.url));
73
+ this.server = new ws.Server({ server: this.httpss });
74
+ this.server.on('listening', () => {
75
+ this.messager_log('[Server] Listen PORT: ' + port_result.toString());
76
+ });
77
+ this.server.on('error', (err) => {
78
+ this.messager_log(`[Server] Error ${err.name}\n\t${err.message}\n\t${err.stack}`);
79
+ });
80
+ this.server.on('close', () => {
81
+ this.messager_log('[Server] Close !');
82
+ this.Release();
83
+ });
84
+ this.server.on('connection', (ws, request) => {
85
+ this.messager_log(`[Server] New Connection detected, ${ws.url}`);
86
+ ws.on('close', (code, reason) => {
87
+ this.messager_log(`[Source] Close ${code} ${reason}`);
83
88
  });
84
- this.server.on('close', () => {
85
- this.messager_log('[Server] Close !');
86
- this.Release();
89
+ ws.on('error', (err) => {
90
+ this.messager_log(`[Source] Error ${err.name}\n\t${err.message}\n\t${err.stack}`);
87
91
  });
88
- this.server.on('connection', (ws, request) => {
89
- this.messager_log(`[Server] New Connection detected, ${ws.url}`);
90
- ws.on('close', (code, reason) => {
91
- this.messager_log(`[Source] Close ${code} ${reason}`);
92
- });
93
- ws.on('error', (err) => {
94
- this.messager_log(`[Source] Error ${err.name}\n\t${err.message}\n\t${err.stack}`);
95
- });
96
- ws.on('open', () => {
97
- this.messager_log(`[Source] New source is connected, URL: ${ws === null || ws === void 0 ? void 0 : ws.url}`);
98
- });
99
- ws.on('message', (data, isBinery) => {
100
- const h = JSON.parse(data.toString());
101
- });
92
+ ws.on('open', () => {
93
+ this.messager_log(`[Source] New source is connected, URL: ${ws?.url}`);
102
94
  });
103
- this.httpss.listen(port_result, () => {
104
- this.messager_log('[Server] Select Port: ' + port_result.toString());
95
+ ws.on('message', (data, isBinery) => {
96
+ const h = JSON.parse(data.toString());
105
97
  });
106
98
  });
107
- this.Destroy = () => {
108
- if (this.server == undefined)
109
- return;
110
- this.server.close((err) => {
111
- this.messager_log(`[Client] Close error ${err}`);
112
- });
113
- this.Release();
114
- };
115
- this.Release = () => {
116
- };
117
- this.get_pem = () => {
118
- return new Promise((resolve) => {
119
- const pemFolder = path.join(os.homedir(), interface_1.DATA_FOLDER, 'pem');
120
- if (!(0, fs_1.existsSync)(pemFolder))
121
- (0, fs_1.mkdirSync)(pemFolder);
122
- const clientKey = path.join(pemFolder, "cluster_clientkey.pem");
123
- const certificate = path.join(pemFolder, "cluster_certificate.pem");
124
- if (!(0, fs_1.existsSync)(clientKey) || !(0, fs_1.existsSync)(certificate)) {
125
- pem.createCertificate({ selfSigned: true }, (err, keys) => {
126
- (0, fs_1.writeFileSync)(clientKey, keys.clientKey, { encoding: 'utf8' });
127
- (0, fs_1.writeFileSync)(certificate, keys.certificate, { encoding: 'utf8' });
128
- resolve([keys.clientKey, keys.certificate]);
129
- });
130
- }
131
- else {
132
- resolve([(0, fs_1.readFileSync)(clientKey, 'utf8').toString(), (0, fs_1.readFileSync)(certificate, 'utf8').toString()]);
133
- }
134
- });
135
- };
136
- this.messager = _messager;
137
- this.messager_log = _messager_log;
138
- }
99
+ this.httpss.listen(port_result, () => {
100
+ this.messager_log('[Server] Select Port: ' + port_result.toString());
101
+ });
102
+ };
103
+ Destroy = () => {
104
+ if (this.server == undefined)
105
+ return;
106
+ this.server.close((err) => {
107
+ this.messager_log(`[Client] Close error ${err}`);
108
+ });
109
+ this.Release();
110
+ };
111
+ Release = () => {
112
+ };
113
+ get_pem = () => {
114
+ return new Promise((resolve) => {
115
+ const pemFolder = path.join(os.homedir(), interface_1.DATA_FOLDER, 'pem');
116
+ if (!(0, fs_1.existsSync)(pemFolder))
117
+ (0, fs_1.mkdirSync)(pemFolder);
118
+ const clientKey = path.join(pemFolder, "cluster_clientkey.pem");
119
+ const certificate = path.join(pemFolder, "cluster_certificate.pem");
120
+ if (!(0, fs_1.existsSync)(clientKey) || !(0, fs_1.existsSync)(certificate)) {
121
+ pem.createCertificate({ selfSigned: true }, (err, keys) => {
122
+ (0, fs_1.writeFileSync)(clientKey, keys.clientKey, { encoding: 'utf8' });
123
+ (0, fs_1.writeFileSync)(certificate, keys.certificate, { encoding: 'utf8' });
124
+ resolve([keys.clientKey, keys.certificate]);
125
+ });
126
+ }
127
+ else {
128
+ resolve([(0, fs_1.readFileSync)(clientKey, 'utf8').toString(), (0, fs_1.readFileSync)(certificate, 'utf8').toString()]);
129
+ }
130
+ });
131
+ };
139
132
  }
140
133
  exports.WebhookServerManager = WebhookServerManager;