@social-mail/social-mail-web-server 1.7.231 → 1.7.233

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 (46) hide show
  1. package/dist/WebServer.d.ts.map +1 -1
  2. package/dist/WebServer.js +16 -7
  3. package/dist/WebServer.js.map +1 -1
  4. package/dist/common/GlobalEvents.d.ts +1 -47
  5. package/dist/common/GlobalEvents.d.ts.map +1 -1
  6. package/dist/common/GlobalEvents.js +231 -243
  7. package/dist/common/GlobalEvents.js.map +1 -1
  8. package/dist/common/globalEnv.d.ts +9 -0
  9. package/dist/common/globalEnv.d.ts.map +1 -1
  10. package/dist/common/globalEnv.js +9 -0
  11. package/dist/common/globalEnv.js.map +1 -1
  12. package/dist/server/model/events/DomainKeyEvents.d.ts +0 -1
  13. package/dist/server/model/events/DomainKeyEvents.d.ts.map +1 -1
  14. package/dist/server/model/events/DomainKeyEvents.js +0 -5
  15. package/dist/server/model/events/DomainKeyEvents.js.map +1 -1
  16. package/dist/server/model/events/WebSiteHostEvents.d.ts +0 -1
  17. package/dist/server/model/events/WebSiteHostEvents.d.ts.map +1 -1
  18. package/dist/server/model/events/WebSiteHostEvents.js +1 -15
  19. package/dist/server/model/events/WebSiteHostEvents.js.map +1 -1
  20. package/dist/server/services/message-events/MessagingService.d.ts +17 -0
  21. package/dist/server/services/message-events/MessagingService.d.ts.map +1 -0
  22. package/dist/server/services/message-events/MessagingService.js +42 -0
  23. package/dist/server/services/message-events/MessagingService.js.map +1 -0
  24. package/dist/server/services/message-events/PgEvents.d.ts +13 -0
  25. package/dist/server/services/message-events/PgEvents.d.ts.map +1 -0
  26. package/dist/server/services/message-events/PgEvents.js +215 -0
  27. package/dist/server/services/message-events/PgEvents.js.map +1 -0
  28. package/dist/server/smtp/services/WebSiteChannelService.d.ts +0 -2
  29. package/dist/server/smtp/services/WebSiteChannelService.d.ts.map +1 -1
  30. package/dist/server/smtp/services/WebSiteChannelService.js +6 -20
  31. package/dist/server/smtp/services/WebSiteChannelService.js.map +1 -1
  32. package/dist/server/workflows/dns/SyncDnsZoneRecordsWorkflow.d.ts +2 -2
  33. package/dist/server/workflows/dns/SyncDnsZoneRecordsWorkflow.d.ts.map +1 -1
  34. package/dist/server/workflows/dns/SyncDnsZoneRecordsWorkflow.js +4 -4
  35. package/dist/server/workflows/dns/SyncDnsZoneRecordsWorkflow.js.map +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +3 -3
  38. package/src/WebServer.ts +14 -8
  39. package/src/common/GlobalEvents.ts +249 -249
  40. package/src/common/globalEnv.ts +11 -0
  41. package/src/server/model/events/DomainKeyEvents.ts +0 -5
  42. package/src/server/model/events/WebSiteHostEvents.ts +0 -4
  43. package/src/server/services/message-events/MessagingService.ts +43 -0
  44. package/src/server/services/message-events/PgEvents.ts +153 -0
  45. package/src/server/smtp/services/WebSiteChannelService.ts +5 -22
  46. package/src/server/workflows/dns/SyncDnsZoneRecordsWorkflow.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"WebServer.d.ts","sourceRoot":"","sources":["../src/WebServer.ts"],"names":[],"mappings":"AAOA,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAiC1E,OAAO,uCAAuC,CAAC;AAO/C,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAWrE,OAAO,QAAQ,sDAAsD,CAAC;IAElE,UAAU,WAAW;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,EAAE;YAAE,IAAI,EAAE,eAAe,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,EAAE,CAAC;QACzD,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAChC;CACJ;AAkCD,MAAM,CAAC,OAAO,OAAO,SAAS;IAEnB,YAAY;IAON,MAAM,CAAC,MAAM,UAAQ,EAAE,SAAS,UAAO;IAkG9C,IAAI;IAKV,cAAc,CAAC,MAAM,EAAE,WAAW;IAIlC,QAAQ;CAkBX"}
1
+ {"version":3,"file":"WebServer.d.ts","sourceRoot":"","sources":["../src/WebServer.ts"],"names":[],"mappings":"AAOA,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAiC1E,OAAO,uCAAuC,CAAC;AAO/C,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAUrE,OAAO,QAAQ,sDAAsD,CAAC;IAElE,UAAU,WAAW;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,EAAE;YAAE,IAAI,EAAE,eAAe,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,EAAE,CAAC;QACzD,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAChC;CACJ;AAkCD,MAAM,CAAC,OAAO,OAAO,SAAS;IAEnB,YAAY;IAON,MAAM,CAAC,MAAM,UAAQ,EAAE,SAAS,UAAO;IAyG9C,IAAI;IAKV,cAAc,CAAC,MAAM,EAAE,WAAW;IAIlC,QAAQ;CAkBX"}
package/dist/WebServer.js CHANGED
@@ -40,7 +40,6 @@ import { SessionUser } from "@entity-access/server-pages/dist/core/SessionUser.j
40
40
  import EntityContext from "@entity-access/entity-access/dist/model/EntityContext.js";
41
41
  import AppKeyProvider from "./server/services/AppKeyProvider.js";
42
42
  import KeyProvider from "@entity-access/server-pages/dist/services/KeyProvider.js";
43
- import GlobalEvents from "./common/GlobalEvents.js";
44
43
  import SessionSecurity from "@entity-access/server-pages/dist/services/SessionSecurity.js";
45
44
  import RootCertificates from "./server/services/root-certs/RootCertificates.js";
46
45
  import TlsSessionKeys from "./common/tls/TlsSessionKeys.js";
@@ -87,7 +86,6 @@ export default class WebServer {
87
86
  // Service Registration must occur before any resolve
88
87
  globalServices.resolve(WorkflowContext);
89
88
  globalServices.resolve(CertificateStore).folder = "/data/certs";
90
- globalServices.resolve(GlobalEvents).startListener();
91
89
  try {
92
90
  if (seedDb) {
93
91
  await this.seed();
@@ -140,11 +138,22 @@ export default class WebServer {
140
138
  const http2Server = webServer;
141
139
  http2Server.setTicketKeys(TlsSessionKeys.get());
142
140
  process.on("message", (msg, socket) => {
143
- switch (msg.command) {
144
- case "socket":
145
- socket.unshift(Buffer.from(msg.buffer, "base64"));
146
- http2Server.emit("connection", socket);
147
- break;
141
+ try {
142
+ switch (msg.command) {
143
+ case "socket":
144
+ if (socket) {
145
+ socket.unshift(Buffer.from(msg.buffer, "base64"));
146
+ http2Server.emit("connection", socket);
147
+ }
148
+ else {
149
+ console.warn(`Socket was closed`);
150
+ }
151
+ break;
152
+ }
153
+ }
154
+ catch (error) {
155
+ // sometimes closed sockets are undefined..
156
+ console.error(error);
148
157
  }
149
158
  });
150
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebServer.js","sourceRoot":"","sources":["../src/WebServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebServer.js","sourceRoot":"","sources":["../src/WebServer.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,2 @@
1
- export default class GlobalEvents {
2
- private listeners;
3
- private client;
4
- on(m: "refresh-dns", fx: (m1: "refresh-dns", value: {
5
- serverID: any;
6
- }) => any): any;
7
- on(m: "dkim-added", fx: (m1: "dkim-added", value: {
8
- serverID: any;
9
- host: any;
10
- publicKey: any;
11
- name: any;
12
- keyType: any;
13
- }) => any): any;
14
- on(m: "host-added", fx: (m1: "host-added", value: {
15
- serverID: any;
16
- host: string;
17
- }) => any): any;
18
- on(m: "html-to-image" | "html-to-image-result", value: any): any;
19
- onPost(m: "html-to-image", fx: (v: any) => Promise<any>): void;
20
- post(m: "html-to-image", value: any): Promise<any>;
21
- notify(m: "refresh-dns", value: {
22
- serverID: any;
23
- }): any;
24
- notify(m: "dkim-added", value: {
25
- serverID: any;
26
- host: any;
27
- publicKey: any;
28
- name: any;
29
- keyType: any;
30
- }): any;
31
- notify(m: "host-added", value: {
32
- serverID: any;
33
- host: string;
34
- }): any;
35
- startListener(): void;
36
- private notifyInternal;
37
- private connectClient;
38
- private startListenerInternal;
39
- }
40
- export declare class TestGlobalEvents extends GlobalEvents {
41
- map: Map<string, Function[]>;
42
- on(m: any, fx: any): {
43
- [Symbol.dispose](): void;
44
- };
45
- notify(m: any, v: any): Function[];
46
- startListener(): Promise<void>;
47
- }
1
+ export {};
48
2
  //# sourceMappingURL=GlobalEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalEvents.d.ts","sourceRoot":"","sources":["../../src/common/GlobalEvents.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,OAAO,YAAY;IAG7B,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO,CAAC,MAAM,CAAqB;IAE5B,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;QAAE,QAAQ,MAAA;KAAE,KAAK,GAAG;IACxE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,QAAQ,MAAC;QAAC,IAAI,MAAC;QAAC,SAAS,MAAC;QAAC,IAAI,MAAC;QAAC,OAAO,MAAA;KAAE,KAAK,GAAG;IACtG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,QAAQ,MAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG;IACpF,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,sBAAsB,EAAE,KAAK,EAAE,GAAG;IAmB1D,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,KAAA,KAAK,OAAO,CAAC,GAAG,CAAC;IAalD,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBlD,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;QAAE,QAAQ,MAAA;KAAE;IAC5C,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,QAAQ,MAAC;QAAC,IAAI,MAAC;QAAC,SAAS,MAAC;QAAC,IAAI,MAAC;QAAC,OAAO,MAAA;KAAE;IAC3E,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,QAAQ,MAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAKhE,aAAa;YAUC,cAAc;IA+B5B,OAAO,CAAC,aAAa;YA2CP,qBAAqB;CAqDtC;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAE9C,GAAG,0BAAiC;IACpC,EAAE,CAAC,CAAC,KAAA,EAAE,EAAE,KAAA;;;IAcR,MAAM,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAUX,aAAa;CAGhB"}
1
+ {"version":3,"file":"GlobalEvents.d.ts","sourceRoot":"","sources":["../../src/common/GlobalEvents.ts"],"names":[],"mappings":""}
@@ -1,244 +1,232 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- /* eslint-disable no-console */
8
- import { RegisterSingleton } from "@entity-access/entity-access/dist/di/di.js";
9
- import cluster from "cluster";
10
- import { existsSync, unlinkSync } from "fs";
11
- import { platform } from "os";
12
- import { isMainThread } from "worker_threads";
13
- import { WebSocketServer, WebSocket, } from "ws";
14
- const socketPath = /win32/i.test(platform()) ? `\\\\.\\pipe\\social-mail-ipc-sock.sock` : `/tmp/social-mail-ipc-sock.sock`;
15
- let pid = 1;
16
- let GlobalEvents = class GlobalEvents {
17
- constructor() {
18
- // eslint-disable-next-line @typescript-eslint/ban-types
19
- this.listeners = new Map();
20
- // private async writeToClient(key: Socket,text: Buffer, promise: Promise<void>): Promise<void> {
21
- // await promise;
22
- // try {
23
- // await new Promise<void>((resolve, reject) => {
24
- // key.write(text, (error) => {
25
- // if (error) {
26
- // reject(error);
27
- // return;
28
- // }
29
- // resolve();
30
- // });
31
- // });
32
- // } catch (error) {
33
- // try {
34
- // key.end();
35
- // } catch {
36
- // // closing errored socket...
37
- // }
38
- // this.serverClients.delete(key);
39
- // }
40
- // }
41
- }
42
- on(message, value) {
43
- let list = this.listeners.get(message);
44
- if (!list) {
45
- list = [];
46
- this.listeners.set(message, list);
47
- }
48
- list.push(value);
49
- this.connectClient().catch(console.error);
50
- return {
51
- [Symbol.dispose]: () => {
52
- const index = list.indexOf(value);
53
- if (index !== -1) {
54
- list.splice(index, 1);
55
- }
56
- }
57
- };
58
- }
59
- onPost(m, fx) {
60
- this.on(m, (m1, v) => {
61
- const { id } = v;
62
- try {
63
- fx(v).then((value) => this.notify(id, { value }), (error) => this.notify(id, { error }));
64
- }
65
- catch (e) {
66
- this.notify(id, { error: e });
67
- }
68
- });
69
- }
70
- async post(m, p) {
71
- const id = `${m}-${pid++}`;
72
- return new Promise((resolve, reject) => {
73
- const d = this.on("html-to-image", ({ value, error }) => {
74
- d[Symbol.dispose]();
75
- if (error) {
76
- reject(error);
77
- }
78
- else {
79
- resolve(value);
80
- }
81
- });
82
- p.id = id;
83
- this.notify(m, p);
84
- });
85
- }
86
- notify(message, value) {
87
- this.notifyInternal(message, value).catch(console.error);
88
- }
89
- startListener() {
90
- if (!cluster.isPrimary) {
91
- return;
92
- }
93
- if (!isMainThread) {
94
- return;
95
- }
96
- this.startListenerInternal().catch(console.error);
97
- }
98
- async notifyInternal(message, value) {
99
- try {
100
- const client = await this.connectClient();
101
- const json = JSON.stringify({ message, value });
102
- const data = Buffer.from(json, "utf-8");
103
- client.send(data, { binary: true }, (error) => {
104
- if (error) {
105
- try {
106
- client.close();
107
- }
108
- catch {
109
- // do nothing
110
- }
111
- this.client = null;
112
- return;
113
- }
114
- });
115
- // console.log(`Notify success ${json}`);
116
- }
117
- catch (error) {
118
- console.error(error);
119
- this.client?.then((c) => {
120
- try {
121
- c.close();
122
- }
123
- catch {
124
- // do nothing
125
- }
126
- this.client = null;
127
- }).catch(console.error);
128
- this.client = null;
129
- }
130
- }
131
- connectClient() {
132
- this.client ??= (async () => {
133
- let client;
134
- try {
135
- client = await new Promise((resolve, reject) => {
136
- const s = new WebSocket(`ws+unix://${socketPath}`);
137
- s.on("open", () => resolve(s));
138
- s.on("error", reject);
139
- });
140
- client.on("error", (err) => {
141
- console.error(err);
142
- this.client = null;
143
- });
144
- client.on("end", () => {
145
- this.client = null;
146
- });
147
- client.on("close", () => {
148
- this.client = null;
149
- });
150
- }
151
- catch (error) {
152
- console.error(`No socket is listening on ${socketPath}`);
153
- console.error(error.stack ?? error.toString());
154
- this.client = null;
155
- }
156
- // start listening...
157
- client.on("message", (data, isBinary) => {
158
- const text = data.toString("utf-8");
159
- // console.log(`Received ${text}`);
160
- const { message, value } = JSON.parse(text);
161
- const list = this.listeners.get(message);
162
- if (!list) {
163
- return;
164
- }
165
- for (const iterator of list) {
166
- iterator(message, value)?.catch(console.error);
167
- }
168
- });
169
- return client;
170
- })();
171
- return this.client;
172
- }
173
- async startListenerInternal() {
174
- try {
175
- if (existsSync(socketPath)) {
176
- unlinkSync(socketPath);
177
- }
178
- const server = new WebSocketServer({
179
- port: socketPath,
180
- }, () => {
181
- console.log(`Global Events listening on ${socketPath}`);
182
- });
183
- server.on("connection", (socket) => {
184
- socket.on("message", (data, binary) => {
185
- for (const iterator of server.clients) {
186
- iterator.send(data, { binary }, (error) => {
187
- if (error) {
188
- try {
189
- iterator.close();
190
- }
191
- catch {
192
- // so nothing
193
- }
194
- }
195
- });
196
- }
197
- });
198
- });
199
- server.on("error", console.error);
200
- }
201
- catch (error) {
202
- console.error(error);
203
- }
204
- }
205
- };
206
- GlobalEvents = __decorate([
207
- RegisterSingleton
208
- ], GlobalEvents);
209
- export default GlobalEvents;
210
- export class TestGlobalEvents extends GlobalEvents {
211
- constructor() {
212
- super(...arguments);
213
- // eslint-disable-next-line @typescript-eslint/ban-types
214
- this.map = new Map();
215
- }
216
- on(m, fx) {
217
- const { map } = this;
218
- let list = map.get(m);
219
- if (!list) {
220
- list = [];
221
- map.set(m, list);
222
- }
223
- list.push(fx);
224
- return {
225
- [Symbol.dispose]() {
226
- // do nothing
227
- }
228
- };
229
- }
230
- notify(m, v) {
231
- const { map } = this;
232
- const list = map.get(m);
233
- if (!list) {
234
- return list;
235
- }
236
- for (const iterator of list) {
237
- iterator(m, v)?.catch(console.error);
238
- }
239
- }
240
- startListener() {
241
- return Promise.resolve();
242
- }
243
- }
1
+ // /* eslint-disable no-console */
2
+ // import { RegisterSingleton } from "@entity-access/entity-access/dist/di/di.js";
3
+ // import cluster from "cluster";
4
+ // import { existsSync, unlinkSync } from "fs";
5
+ // import { platform } from "os";
6
+ // import { isMainThread } from "worker_threads";
7
+ // import { WebSocketServer, WebSocket, } from "ws";
8
+ export {};
9
+ // const socketPath = /win32/i.test(platform()) ? `\\\\.\\pipe\\social-mail-ipc-sock.sock` : `/tmp/social-mail-ipc-sock.sock`;
10
+ // let pid = 1;
11
+ // @RegisterSingleton
12
+ // export default class GlobalEvents {
13
+ // // eslint-disable-next-line @typescript-eslint/ban-types
14
+ // private listeners = new Map<string, Function[]>();
15
+ // private client: Promise<WebSocket>;
16
+ // public on(m: "refresh-dns", fx: (m1: "refresh-dns", value: { serverID }) => any);
17
+ // public on(m: "dkim-added", fx: (m1: "dkim-added", value: { serverID, host, publicKey, name, keyType }) => any);
18
+ // public on(m: "host-added", fx: (m1: "host-added", value: { serverID, host: string }) => any);
19
+ // public on(m: "html-to-image" | "html-to-image-result", value: any);
20
+ // public on(message: any, value: (msg: any, data:any) => any) {
21
+ // let list = this.listeners.get(message);
22
+ // if(!list) {
23
+ // list = [];
24
+ // this.listeners.set(message, list);
25
+ // }
26
+ // list.push(value);
27
+ // this.connectClient().catch(console.error);
28
+ // return {
29
+ // [Symbol.dispose]: () => {
30
+ // const index = list.indexOf(value);
31
+ // if (index !== -1) {
32
+ // list.splice(index, 1);
33
+ // }
34
+ // }
35
+ // };
36
+ // }
37
+ // public onPost(m: "html-to-image", fx: (v) => Promise<any>) {
38
+ // this.on(m, (m1, v) => {
39
+ // const { id } = v;
40
+ // try {
41
+ // fx(v).then(
42
+ // (value) => this.notify(id, { value } as any),
43
+ // (error) => this.notify(id, { error } as any));
44
+ // } catch (e) {
45
+ // this.notify(id, { error: e} as any);
46
+ // }
47
+ // });
48
+ // }
49
+ // public post(m: "html-to-image", value: any): Promise<any>;
50
+ // public async post(m: any, p: any): Promise<any> {
51
+ // const id = `${m}-${pid++}`;
52
+ // return new Promise<any>((resolve, reject) => {
53
+ // const d = this.on("html-to-image", ({ value, error }) => {
54
+ // d[Symbol.dispose]();
55
+ // if (error) {
56
+ // reject(error);
57
+ // } else {
58
+ // resolve(value);
59
+ // }
60
+ // });
61
+ // p.id = id;
62
+ // this.notify(m, p);
63
+ // });
64
+ // }
65
+ // public notify(m: "refresh-dns", value: { serverID });
66
+ // public notify(m: "dkim-added", value: { serverID, host, publicKey, name, keyType });
67
+ // public notify(m: "host-added", value: { serverID, host: string });
68
+ // public notify(message: any, value: any) {
69
+ // this.notifyInternal(message, value).catch(console.error);
70
+ // }
71
+ // startListener() {
72
+ // if(!cluster.isPrimary) {
73
+ // return;
74
+ // }
75
+ // if(!isMainThread) {
76
+ // return;
77
+ // }
78
+ // this.startListenerInternal().catch(console.error);
79
+ // }
80
+ // private async notifyInternal(message: string, value: string) {
81
+ // try {
82
+ // const client = await this.connectClient();
83
+ // const json = JSON.stringify({ message, value });
84
+ // const data = Buffer.from(json, "utf-8");
85
+ // client.send(data, { binary: true }, (error) => {
86
+ // if (error) {
87
+ // try {
88
+ // client.close();
89
+ // } catch {
90
+ // // do nothing
91
+ // }
92
+ // this.client = null;
93
+ // return;
94
+ // }
95
+ // });
96
+ // // console.log(`Notify success ${json}`);
97
+ // } catch (error) {
98
+ // console.error(error);
99
+ // this.client?.then((c) => {
100
+ // try {
101
+ // c.close();
102
+ // } catch {
103
+ // // do nothing
104
+ // }
105
+ // this.client = null;
106
+ // }).catch(console.error);
107
+ // this.client = null;
108
+ // }
109
+ // }
110
+ // private connectClient() {
111
+ // this.client ??= (async () => {
112
+ // let client: WebSocket;
113
+ // try {
114
+ // client = await new Promise((resolve, reject) => {
115
+ // const s = new WebSocket(`ws+unix://${socketPath}`);
116
+ // s.on("open", () => resolve(s));
117
+ // s.on("error", reject);
118
+ // });
119
+ // client.on("error", (err) => {
120
+ // console.error(err);
121
+ // this.client = null;
122
+ // });
123
+ // client.on("end", () => {
124
+ // this.client = null;
125
+ // });
126
+ // client.on("close", () => {
127
+ // this.client = null;
128
+ // });
129
+ // } catch (error) {
130
+ // console.error(`No socket is listening on ${socketPath}`);
131
+ // console.error(error.stack ?? error.toString());
132
+ // this.client = null;
133
+ // }
134
+ // // start listening...
135
+ // client.on("message", (data: Buffer, isBinary ) => {
136
+ // const text = data.toString("utf-8");
137
+ // // console.log(`Received ${text}`);
138
+ // const { message, value } = JSON.parse(text);
139
+ // const list = this.listeners.get(message);
140
+ // if (!list) {
141
+ // return;
142
+ // }
143
+ // for (const iterator of list) {
144
+ // iterator(message, value)?.catch(console.error);
145
+ // }
146
+ // });
147
+ // return client;
148
+ // })();
149
+ // return this.client;
150
+ // }
151
+ // private async startListenerInternal() {
152
+ // try {
153
+ // if(existsSync(socketPath)) {
154
+ // unlinkSync(socketPath);
155
+ // }
156
+ // const server = new WebSocketServer({
157
+ // port: socketPath as any,
158
+ // }, () => {
159
+ // console.log(`Global Events listening on ${socketPath}`);
160
+ // });
161
+ // server.on("connection", (socket) => {
162
+ // socket.on("message", (data, binary) => {
163
+ // for (const iterator of server.clients) {
164
+ // iterator.send(data, { binary }, (error) => {
165
+ // if (error) {
166
+ // try { iterator.close(); } catch {
167
+ // // so nothing
168
+ // }
169
+ // }
170
+ // });
171
+ // }
172
+ // });
173
+ // });
174
+ // server.on("error", console.error);
175
+ // } catch (error) {
176
+ // console.error(error);
177
+ // }
178
+ // }
179
+ // // private async writeToClient(key: Socket,text: Buffer, promise: Promise<void>): Promise<void> {
180
+ // // await promise;
181
+ // // try {
182
+ // // await new Promise<void>((resolve, reject) => {
183
+ // // key.write(text, (error) => {
184
+ // // if (error) {
185
+ // // reject(error);
186
+ // // return;
187
+ // // }
188
+ // // resolve();
189
+ // // });
190
+ // // });
191
+ // // } catch (error) {
192
+ // // try {
193
+ // // key.end();
194
+ // // } catch {
195
+ // // // closing errored socket...
196
+ // // }
197
+ // // this.serverClients.delete(key);
198
+ // // }
199
+ // // }
200
+ // }
201
+ // export class TestGlobalEvents extends GlobalEvents {
202
+ // // eslint-disable-next-line @typescript-eslint/ban-types
203
+ // map = new Map<string, Function[]>();
204
+ // on(m, fx){
205
+ // const { map } = this;
206
+ // let list = map.get(m);
207
+ // if(!list) {
208
+ // list = [];
209
+ // map.set(m, list);
210
+ // }
211
+ // list.push(fx);
212
+ // return {
213
+ // [Symbol.dispose]() {
214
+ // // do nothing
215
+ // }
216
+ // };
217
+ // }
218
+ // notify(m, v) {
219
+ // const { map } = this;
220
+ // const list = map.get(m);
221
+ // if(!list) {
222
+ // return list;
223
+ // }
224
+ // for (const iterator of list) {
225
+ // iterator(m, v)?.catch(console.error);
226
+ // }
227
+ // }
228
+ // startListener() {
229
+ // return Promise.resolve();
230
+ // }
231
+ // }
244
232
  //# sourceMappingURL=GlobalEvents.js.map