@cimo/websocket 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -16
- package/dist/client/Interface.d.ts +1 -4
- package/dist/client/Message.d.ts +4 -4
- package/dist/client/Message.js +27 -52
- package/dist/client/Message.js.map +1 -1
- package/dist/server/Interface.d.ts +7 -5
- package/dist/server/Interface.js +5 -0
- package/dist/server/Interface.js.map +1 -1
- package/dist/server/Message.d.ts +5 -7
- package/dist/server/Message.js +58 -70
- package/dist/server/Message.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/Helper.d.ts +0 -3
- package/dist/client/Helper.js +0 -31
- package/dist/client/Helper.js.map +0 -1
- package/dist/server/Helper.d.ts +0 -5
- package/dist/server/Helper.js +0 -55
- package/dist/server/Helper.js.map +0 -1
package/README.md
CHANGED
|
@@ -18,30 +18,42 @@ Websocket API (server and client) fast and secure.
|
|
|
18
18
|
|
|
19
19
|
```
|
|
20
20
|
...
|
|
21
|
+
|
|
21
22
|
import { CwsServerMessage } from "@cimo/websocket";
|
|
22
23
|
|
|
23
24
|
// Source
|
|
24
|
-
import * as
|
|
25
|
+
import * as ControllerTest from "../controller/Test";
|
|
26
|
+
|
|
25
27
|
...
|
|
28
|
+
|
|
26
29
|
CwsServerMessage.create(server);
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
|
|
31
|
+
CwsServerMessage.receiveOutput("test", (socket, data) => {
|
|
32
|
+
ControllerTest.websocket(socket, data);
|
|
29
33
|
});
|
|
30
|
-
...
|
|
31
34
|
|
|
35
|
+
...
|
|
32
36
|
```
|
|
33
37
|
|
|
34
|
-
-
|
|
38
|
+
- ControllerTest.ts
|
|
35
39
|
|
|
36
40
|
```
|
|
37
41
|
...
|
|
38
|
-
|
|
42
|
+
|
|
43
|
+
import { CwsServerInterface, CwsServerMessage } from "@cimo/websocket";
|
|
44
|
+
|
|
39
45
|
...
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
|
|
47
|
+
export const websocket = (socket: CwsServerInterface.Isocket, data: CwsServerInterface.Imessage) => {
|
|
48
|
+
const tag = data.tag;
|
|
49
|
+
const message = data.message;
|
|
50
|
+
|
|
51
|
+
if (tag === "cws_test_o") {
|
|
52
|
+
CwsServerMessage.sendInput(socket, "test", message);
|
|
53
|
+
}
|
|
42
54
|
};
|
|
43
|
-
...
|
|
44
55
|
|
|
56
|
+
...
|
|
45
57
|
```
|
|
46
58
|
|
|
47
59
|
## Client
|
|
@@ -50,21 +62,26 @@ export const websocket = (data: CwsServerInterface.Imessage) => {
|
|
|
50
62
|
|
|
51
63
|
```
|
|
52
64
|
...
|
|
65
|
+
|
|
53
66
|
import * as CwsClient from "@cimo/websocket/dist/client/Message";
|
|
67
|
+
|
|
54
68
|
...
|
|
55
|
-
CwsClient.connection("localhost:1002");
|
|
56
69
|
|
|
57
|
-
CwsClient.
|
|
58
|
-
|
|
70
|
+
CwsClient.connection(window.location.host);
|
|
71
|
+
|
|
72
|
+
CwsClient.receiveMessage("broadcast", (data) => {
|
|
73
|
+
// Global event
|
|
59
74
|
});
|
|
60
75
|
|
|
61
|
-
CwsClient.
|
|
62
|
-
//
|
|
76
|
+
CwsClient.receiveMessage("test", (data) => {
|
|
77
|
+
// Test event
|
|
63
78
|
});
|
|
79
|
+
|
|
64
80
|
...
|
|
81
|
+
|
|
65
82
|
elementButton.addEventListener("click", (event) => {
|
|
66
|
-
CwsClient.sendMessage("
|
|
83
|
+
CwsClient.sendMessage("test", { value: 1 });
|
|
67
84
|
});
|
|
68
|
-
...
|
|
69
85
|
|
|
86
|
+
...
|
|
70
87
|
```
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
export interface IcircularReplacer {
|
|
2
|
-
(key: string, value: string): string | null;
|
|
3
|
-
}
|
|
4
1
|
export interface Imessage {
|
|
5
2
|
date: string;
|
|
6
3
|
tag: string;
|
|
7
4
|
message: string;
|
|
8
5
|
}
|
|
9
|
-
export interface
|
|
6
|
+
export interface IcallbackReceiveMessage {
|
|
10
7
|
(data: Imessage): void;
|
|
11
8
|
}
|
package/dist/client/Message.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Interface from "./Interface";
|
|
2
|
-
export declare const sendMessage: (tagValue: string, messageValue: Record<string, unknown>
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const connection: (address?: string
|
|
2
|
+
export declare const sendMessage: (tagValue: string, messageValue: string | Record<string, unknown>) => void;
|
|
3
|
+
export declare const receiveMessage: (tag: string, callback: Interface.IcallbackReceiveMessage) => void;
|
|
4
|
+
export declare const receiveMessageOff: (tag: string) => void;
|
|
5
|
+
export declare const connection: (address?: string) => void;
|
package/dist/client/Message.js
CHANGED
|
@@ -1,64 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.connection = exports.
|
|
27
|
-
|
|
28
|
-
let websocket;
|
|
3
|
+
exports.connection = exports.receiveMessageOff = exports.receiveMessage = exports.sendMessage = void 0;
|
|
4
|
+
let websocket = null;
|
|
29
5
|
let timeoutReconnect;
|
|
30
|
-
let serverAddress;
|
|
31
|
-
let clientDebug;
|
|
6
|
+
let serverAddress = "";
|
|
32
7
|
const messageHandleList = new Map();
|
|
33
8
|
const sendMessage = (tagValue, messageValue) => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
9
|
+
if (websocket) {
|
|
10
|
+
const dataStructure = {
|
|
11
|
+
date: new Date().toISOString(),
|
|
12
|
+
tag: `cws_${tagValue}_o`,
|
|
13
|
+
message: messageValue
|
|
14
|
+
};
|
|
15
|
+
websocket.send(JSON.stringify(dataStructure));
|
|
16
|
+
}
|
|
41
17
|
};
|
|
42
18
|
exports.sendMessage = sendMessage;
|
|
43
|
-
const
|
|
44
|
-
messageHandleList.set(`cws_${tag}_i`, (
|
|
45
|
-
|
|
46
|
-
callback(message);
|
|
19
|
+
const receiveMessage = (tag, callback) => {
|
|
20
|
+
messageHandleList.set(`cws_${tag}_i`, (data) => {
|
|
21
|
+
callback(data);
|
|
47
22
|
});
|
|
48
23
|
};
|
|
49
|
-
exports.
|
|
50
|
-
const
|
|
24
|
+
exports.receiveMessage = receiveMessage;
|
|
25
|
+
const receiveMessageOff = (tag) => {
|
|
51
26
|
if (messageHandleList.has(`cws_${tag}_i`)) {
|
|
52
27
|
messageHandleList.delete(`cws_${tag}_i`);
|
|
53
|
-
Helper.writeLog(`@cimo/websocket - Message.ts - readMessageOff()`, `messageHandleList: ${Helper.objectOutput(messageHandleList)}`);
|
|
54
28
|
}
|
|
55
29
|
};
|
|
56
|
-
exports.
|
|
57
|
-
const connection = (address
|
|
30
|
+
exports.receiveMessageOff = receiveMessageOff;
|
|
31
|
+
const connection = (address) => {
|
|
58
32
|
serverAddress = address ? address : serverAddress;
|
|
59
|
-
clientDebug = debug ? debug : clientDebug;
|
|
60
|
-
Helper.setDebug(clientDebug);
|
|
61
|
-
Helper.writeLog("@cimo/websocket - Message.ts - connection()", "Try to connect...");
|
|
62
33
|
websocket = new WebSocket(`wss://${serverAddress}`);
|
|
63
34
|
websocket.addEventListener("open", eventOpen);
|
|
64
35
|
websocket.addEventListener("message", eventMessage);
|
|
@@ -75,16 +46,20 @@ const messageHandle = (event) => {
|
|
|
75
46
|
}
|
|
76
47
|
};
|
|
77
48
|
const eventOpen = () => {
|
|
78
|
-
|
|
49
|
+
console.log("@cimo/websocket - Message.ts - eventOpen():", "Connected.");
|
|
79
50
|
clearTimeout(timeoutReconnect);
|
|
80
51
|
};
|
|
81
52
|
const eventMessage = (event) => {
|
|
82
53
|
messageHandle(event);
|
|
83
54
|
};
|
|
84
55
|
const eventClose = () => {
|
|
85
|
-
websocket
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
56
|
+
if (websocket) {
|
|
57
|
+
console.log("@cimo/websocket - Message.ts - eventClose():", "Try to reconnect...");
|
|
58
|
+
websocket.removeEventListener("open", eventOpen);
|
|
59
|
+
websocket.removeEventListener("message", eventMessage);
|
|
60
|
+
websocket.removeEventListener("close", eventClose);
|
|
61
|
+
websocket = null;
|
|
62
|
+
timeoutReconnect = setTimeout(exports.connection, 1000);
|
|
63
|
+
}
|
|
89
64
|
};
|
|
90
65
|
//# sourceMappingURL=Message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/client/Message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/client/Message.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Socket } from "net";
|
|
3
|
+
import { Server } from "https";
|
|
4
|
+
export { Socket as Isocket };
|
|
5
|
+
export { Server as HttpsServer };
|
|
4
6
|
export interface Imessage {
|
|
5
7
|
date: string;
|
|
6
8
|
tag: string;
|
|
7
9
|
message: string;
|
|
8
10
|
}
|
|
9
|
-
export interface
|
|
10
|
-
(data: Imessage): void;
|
|
11
|
+
export interface IcallbackReceiveOutput {
|
|
12
|
+
(socket: Socket, data: Imessage): void;
|
|
11
13
|
}
|
package/dist/server/Interface.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpsServer = exports.Isocket = void 0;
|
|
4
|
+
const net_1 = require("net");
|
|
5
|
+
Object.defineProperty(exports, "Isocket", { enumerable: true, get: function () { return net_1.Socket; } });
|
|
6
|
+
const https_1 = require("https");
|
|
7
|
+
Object.defineProperty(exports, "HttpsServer", { enumerable: true, get: function () { return https_1.Server; } });
|
|
3
8
|
//# sourceMappingURL=Interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Interface.js","sourceRoot":"","sources":["../../src/server/Interface.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Interface.js","sourceRoot":"","sources":["../../src/server/Interface.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAGV,wFAHV,YAAM,OAGW;AAF1B,iCAA+B;AAGZ,4FAHV,cAAM,OAGe"}
|
package/dist/server/Message.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import * as Net from "net";
|
|
2
|
-
import * as Https from "https";
|
|
3
1
|
import * as Interface from "./Interface";
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const sendInput: (socket:
|
|
7
|
-
export declare const sendInputBroadcast: (socket:
|
|
8
|
-
export declare const create: (server:
|
|
2
|
+
export declare const receiveOutput: (tag: string, callback: Interface.IcallbackReceiveOutput) => void;
|
|
3
|
+
export declare const receiveOutputOff: (tag: string) => void;
|
|
4
|
+
export declare const sendInput: (socket: Interface.Isocket, tagValue: string, messageValue: string | Record<string, unknown>) => void;
|
|
5
|
+
export declare const sendInputBroadcast: (socket: Interface.Isocket, tag: string, message: string | Record<string, unknown>, excludeSender?: boolean) => void;
|
|
6
|
+
export declare const create: (server: Interface.HttpsServer) => void;
|
package/dist/server/Message.js
CHANGED
|
@@ -23,85 +23,64 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.create = exports.sendInputBroadcast = exports.sendInput = exports.
|
|
26
|
+
exports.create = exports.sendInputBroadcast = exports.sendInput = exports.receiveOutputOff = exports.receiveOutput = void 0;
|
|
27
27
|
const Crypto = __importStar(require("crypto"));
|
|
28
|
-
const Helper = __importStar(require("./Helper"));
|
|
29
28
|
const WEBSOCKET_MAGIC_STRING_KEY = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
|
|
30
29
|
const SEVEN_BITS_INTEGER_MARKER = 125;
|
|
31
30
|
const SIXTEEN_BITS_INTEGER_MARKER = 126;
|
|
32
|
-
const
|
|
31
|
+
const THIRTYTWO_BITS_INTEGER_MARKER = 127;
|
|
33
32
|
const MASK_KEY_BYTES_LENGTH = 4;
|
|
34
|
-
const OPCODE_TEXT = 0x01;
|
|
35
|
-
const FIRST_BIT = 128;
|
|
36
33
|
const socketList = [];
|
|
37
34
|
const messageHandleList = new Map();
|
|
38
|
-
const
|
|
39
|
-
messageHandleList.set(`cws_${tag}_o`, (
|
|
40
|
-
|
|
41
|
-
callback(message);
|
|
35
|
+
const receiveOutput = (tag, callback) => {
|
|
36
|
+
messageHandleList.set(`cws_${tag}_o`, (socket, data) => {
|
|
37
|
+
callback(socket, data);
|
|
42
38
|
});
|
|
43
39
|
};
|
|
44
|
-
exports.
|
|
45
|
-
const
|
|
40
|
+
exports.receiveOutput = receiveOutput;
|
|
41
|
+
const receiveOutputOff = (tag) => {
|
|
46
42
|
if (messageHandleList.has(`cws_${tag}_o`)) {
|
|
47
43
|
messageHandleList.delete(`cws_${tag}_o`);
|
|
48
|
-
Helper.writeLog(`@cimo/websocket - Message.ts - readOutputOff()`, `messageHandleList: ${Helper.objectOutput(messageHandleList)}`);
|
|
49
44
|
}
|
|
50
45
|
};
|
|
51
|
-
exports.
|
|
46
|
+
exports.receiveOutputOff = receiveOutputOff;
|
|
52
47
|
const sendInput = (socket, tagValue, messageValue) => {
|
|
53
48
|
if (tagValue) {
|
|
54
|
-
const tagValueSplit = tagValue.split("_");
|
|
55
|
-
tagValueSplit.shift();
|
|
56
|
-
tagValueSplit.pop();
|
|
57
|
-
const tagValueJoin = tagValueSplit.join("_");
|
|
58
49
|
const dataStructure = {
|
|
59
50
|
date: new Date().toISOString(),
|
|
60
|
-
tag: `cws_${
|
|
51
|
+
tag: `cws_${tagValue}_i`,
|
|
61
52
|
message: messageValue
|
|
62
53
|
};
|
|
63
|
-
Helper.writeLog(`@cimo/websocket - Message.ts - sendInput()`, `dataStructure: ${Helper.objectOutput(dataStructure)}`);
|
|
64
54
|
const result = prepareMessage(JSON.stringify(dataStructure));
|
|
65
55
|
socket.write(result);
|
|
66
56
|
}
|
|
67
57
|
};
|
|
68
58
|
exports.sendInput = sendInput;
|
|
69
59
|
const sendInputBroadcast = (socket, tag, message, excludeSender = true) => {
|
|
70
|
-
Helper.writeLog("@cimo/websocket - Message.ts - sendInputBroadcast()", `tag: ${tag} - message: ${Helper.objectOutput(message)}`);
|
|
71
60
|
for (const client of socketList) {
|
|
72
61
|
if (client && !client.destroyed) {
|
|
73
62
|
if ((excludeSender && client !== socket) || !excludeSender) {
|
|
74
|
-
(0, exports.sendInput)(client,
|
|
63
|
+
(0, exports.sendInput)(client, tag, message);
|
|
75
64
|
}
|
|
76
65
|
}
|
|
77
66
|
}
|
|
78
67
|
};
|
|
79
68
|
exports.sendInputBroadcast = sendInputBroadcast;
|
|
80
|
-
const create = (server
|
|
81
|
-
Helper.setPathLog(pathLogValue);
|
|
69
|
+
const create = (server) => {
|
|
82
70
|
server.on("upgrade", onServerUpgrade);
|
|
83
71
|
};
|
|
84
72
|
exports.create = create;
|
|
85
|
-
const messageHandle = (data) => {
|
|
86
|
-
for (const [tag, eventHandler] of messageHandleList) {
|
|
87
|
-
if (data.tag === tag) {
|
|
88
|
-
eventHandler(data);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
73
|
const prepareMessage = (data) => {
|
|
94
74
|
const message = Buffer.from(data);
|
|
95
75
|
const messageSize = message.length;
|
|
96
76
|
let dataBuffer;
|
|
97
|
-
const firstByte = 0x80 |
|
|
77
|
+
const firstByte = 0x80 | 0x01;
|
|
98
78
|
if (messageSize <= SEVEN_BITS_INTEGER_MARKER) {
|
|
99
79
|
const bytes = [firstByte];
|
|
100
80
|
dataBuffer = Buffer.from(bytes.concat(messageSize));
|
|
101
81
|
}
|
|
102
|
-
else if (messageSize <=
|
|
103
|
-
const
|
|
104
|
-
const target = Buffer.allocUnsafe(offsetFourBytes);
|
|
82
|
+
else if (messageSize <= 2 ** 16) {
|
|
83
|
+
const target = Buffer.allocUnsafe(4);
|
|
105
84
|
target[0] = firstByte;
|
|
106
85
|
target[1] = SIXTEEN_BITS_INTEGER_MARKER | 0x0;
|
|
107
86
|
target.writeUint16BE(messageSize, 2);
|
|
@@ -119,52 +98,58 @@ const prepareMessage = (data) => {
|
|
|
119
98
|
}
|
|
120
99
|
return result;
|
|
121
100
|
};
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
101
|
+
const messageHandle = (socket, data) => {
|
|
102
|
+
for (const [tag, eventHandler] of messageHandleList) {
|
|
103
|
+
if (data.tag === tag) {
|
|
104
|
+
eventHandler(socket, data);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
126
107
|
}
|
|
127
|
-
return finalBuffer;
|
|
128
108
|
};
|
|
129
109
|
const onSocketEnd = (socket) => {
|
|
130
110
|
(0, exports.sendInputBroadcast)(socket, "broadcast", `Client ${socket.remoteAddress || ""} disconnected.`);
|
|
131
111
|
const index = socketList.indexOf(socket);
|
|
132
|
-
if (index
|
|
112
|
+
if (index > -1) {
|
|
133
113
|
socketList.splice(index, 1);
|
|
134
114
|
}
|
|
135
115
|
socket.destroy();
|
|
136
116
|
};
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
117
|
+
const onSocketData = (socket, buffer) => {
|
|
118
|
+
let data = {};
|
|
119
|
+
let payloadLength = buffer[1] & 0x7f;
|
|
120
|
+
let payloadOffset = 2;
|
|
121
|
+
const opcode = buffer[0] & 0x0f;
|
|
122
|
+
const isMasked = (buffer[1] & 0x80) !== 0;
|
|
123
|
+
if (payloadLength === SIXTEEN_BITS_INTEGER_MARKER) {
|
|
124
|
+
payloadLength = buffer.readUInt16BE(2);
|
|
125
|
+
payloadOffset = 4;
|
|
126
|
+
}
|
|
127
|
+
else if (payloadLength === THIRTYTWO_BITS_INTEGER_MARKER) {
|
|
128
|
+
payloadLength = buffer.readUInt32BE(2);
|
|
129
|
+
payloadOffset = 10;
|
|
130
|
+
}
|
|
131
|
+
if (isMasked) {
|
|
132
|
+
const maskingKey = buffer.slice(payloadOffset, payloadOffset + MASK_KEY_BYTES_LENGTH);
|
|
133
|
+
payloadOffset += MASK_KEY_BYTES_LENGTH;
|
|
134
|
+
for (let i = 0; i < payloadLength; i++) {
|
|
135
|
+
buffer[payloadOffset + i] ^= maskingKey[i % MASK_KEY_BYTES_LENGTH];
|
|
153
136
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
137
|
+
}
|
|
138
|
+
const payloadData = buffer.slice(payloadOffset, payloadOffset + payloadLength);
|
|
139
|
+
if (opcode === 0x01) {
|
|
140
|
+
const payloadOutput = payloadData.toString("utf-8");
|
|
141
|
+
if (/^[\],:{}\s]*$/.test(payloadOutput
|
|
142
|
+
.replace(/\\["\\/bfnrtu]/g, "@")
|
|
143
|
+
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\\-]?\d+)?/g, "]")
|
|
144
|
+
.replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {
|
|
145
|
+
data = JSON.parse(payloadOutput);
|
|
161
146
|
}
|
|
162
|
-
messageHandle(data);
|
|
163
147
|
}
|
|
148
|
+
messageHandle(socket, data);
|
|
164
149
|
};
|
|
165
150
|
const onServerUpgrade = (request, socket) => {
|
|
166
151
|
if (request.headers["upgrade"] !== "websocket") {
|
|
167
|
-
socket.
|
|
152
|
+
socket.end("HTTP/1.1 400 Bad Request");
|
|
168
153
|
return;
|
|
169
154
|
}
|
|
170
155
|
const { "sec-websocket-key": webClientSocketKey } = request.headers;
|
|
@@ -175,13 +160,16 @@ const onServerUpgrade = (request, socket) => {
|
|
|
175
160
|
.join("");
|
|
176
161
|
socket.write(header, (error) => {
|
|
177
162
|
if (error) {
|
|
178
|
-
throw new Error(`@cimo/websocket - Message.ts - onServerUpgrade - Error: ${
|
|
163
|
+
throw new Error(`@cimo/websocket - Message.ts - onServerUpgrade - Error: ${error.toString()}`);
|
|
179
164
|
}
|
|
180
165
|
});
|
|
181
166
|
socketList.push(socket);
|
|
182
|
-
socket.on("
|
|
183
|
-
|
|
167
|
+
socket.on("data", (buffer) => {
|
|
168
|
+
onSocketData(socket, buffer);
|
|
169
|
+
});
|
|
170
|
+
socket.on("end", () => {
|
|
171
|
+
onSocketEnd(socket);
|
|
172
|
+
});
|
|
184
173
|
(0, exports.sendInputBroadcast)(socket, "broadcast", `Client ${socket.remoteAddress || ""} connected.`);
|
|
185
174
|
};
|
|
186
|
-
Helper.keepProcess();
|
|
187
175
|
//# sourceMappingURL=Message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/server/Message.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/server/Message.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAKjC,MAAM,0BAA0B,GAAG,sCAAsC,CAAC;AAC1E,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAC1C,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,UAAU,GAAwB,EAAE,CAAC;AAC3C,MAAM,iBAAiB,GAA+E,IAAI,GAAG,EAAE,CAAC;AAEzG,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,QAA0C,EAAE,EAAE;IACrF,iBAAiB,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACnD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE;QACvC,iBAAiB,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;KAC5C;AACL,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAEK,MAAM,SAAS,GAAG,CAAC,MAAyB,EAAE,QAAgB,EAAE,YAA8C,EAAE,EAAE;IACrH,IAAI,QAAQ,EAAE;QACV,MAAM,aAAa,GAAG;YAClB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,GAAG,EAAE,OAAO,QAAQ,IAAI;YACxB,OAAO,EAAE,YAAY;SACxB,CAAC;QAEF,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QAE7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACxB;AACL,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB;AAEK,MAAM,kBAAkB,GAAG,CAAC,MAAyB,EAAE,GAAW,EAAE,OAAyC,EAAE,aAAa,GAAG,IAAI,EAAE,EAAE;IAC1I,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;QAC7B,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,aAAa,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;gBACxD,IAAA,iBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;aACnC;SACJ;KACJ;AACL,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEK,MAAM,MAAM,GAAG,CAAC,MAA6B,EAAE,EAAE;IACpD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAEnC,IAAI,UAAkB,CAAC;IAEvB,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9B,IAAI,WAAW,IAAI,yBAAyB,EAAE;QAC1C,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1B,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;KACvD;SAAM,IAAI,WAAW,IAAI,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,GAAG,2BAA2B,GAAG,GAAG,CAAC;QAE9C,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAErC,UAAU,GAAG,MAAM,CAAC;KACvB;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;KAC/F;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC;IAExD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;KAC3B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAyB,EAAE,IAAwB,EAAE,EAAE;IAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,iBAAiB,EAAE;QACjD,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;YAClB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAE3B,OAAO;SACV;KACJ;AACL,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,EAAE;IAC9C,IAAA,0BAAkB,EAAC,MAAM,EAAE,WAAW,EAAE,UAAU,MAAM,CAAC,aAAa,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE9F,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACZ,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC/B;IAED,MAAM,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAyB,EAAE,MAAc,EAAE,EAAE;IAC/D,IAAI,IAAI,GAAG,EAAwB,CAAC;IAEpC,IAAI,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,aAAa,KAAK,2BAA2B,EAAE;QAC/C,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,aAAa,GAAG,CAAC,CAAC;KACrB;SAAM,IAAI,aAAa,KAAK,6BAA6B,EAAE;QACxD,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,aAAa,GAAG,EAAE,CAAC;KACtB;IAED,IAAI,QAAQ,EAAE;QACV,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,qBAAqB,CAAC,CAAC;QACtF,aAAa,IAAI,qBAAqB,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC;SACtE;KACJ;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC;IAE/E,IAAI,MAAM,KAAK,IAAI,EAAE;QACjB,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEpD,IACI,eAAe,CAAC,IAAI,CAChB,aAAa;aACR,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;aAC/B,OAAO,CAAC,mEAAmE,EAAE,GAAG,CAAC;aACjF,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAC3C,EACH;YACE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAuB,CAAC;SAC1D;KACJ;IAED,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAA6C,EAAE,MAAyB,EAAE,EAAE;IACjG,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE;QAC5C,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAEvC,OAAO;KACV;IAED,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpE,MAAM,SAAS,GAAG,kBAA4B,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAElH,MAAM,MAAM,GAAG,CAAC,kCAAkC,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,SAAS,EAAE,EAAE,EAAE,CAAC;SACrI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAClC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,KAAK,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,2DAA2D,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAClG;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACzB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAClB,WAAW,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAA,0BAAkB,EAAC,MAAM,EAAE,WAAW,EAAE,UAAU,MAAM,CAAC,aAAa,IAAI,EAAE,aAAa,CAAC,CAAC;AAC/F,CAAC,CAAC"}
|
package/package.json
CHANGED
package/dist/client/Helper.d.ts
DELETED
package/dist/client/Helper.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.objectOutput = exports.writeLog = exports.setDebug = void 0;
|
|
4
|
-
let debug = undefined;
|
|
5
|
-
const setDebug = (value) => {
|
|
6
|
-
debug = value;
|
|
7
|
-
};
|
|
8
|
-
exports.setDebug = setDebug;
|
|
9
|
-
const writeLog = (tag, value) => {
|
|
10
|
-
if (debug) {
|
|
11
|
-
console.log(`WriteLog => ${tag}: `, value);
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
exports.writeLog = writeLog;
|
|
15
|
-
const objectOutput = (obj) => {
|
|
16
|
-
return JSON.stringify(obj, circularReplacer(), 2);
|
|
17
|
-
};
|
|
18
|
-
exports.objectOutput = objectOutput;
|
|
19
|
-
const circularReplacer = () => {
|
|
20
|
-
const seen = new WeakSet();
|
|
21
|
-
return (_key, value) => {
|
|
22
|
-
if (value !== null && typeof value === "object") {
|
|
23
|
-
if (seen.has(value)) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
seen.add(value);
|
|
27
|
-
}
|
|
28
|
-
return value;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=Helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Helper.js","sourceRoot":"","sources":["../../src/client/Helper.ts"],"names":[],"mappings":";;;AAGA,IAAI,KAAK,GAAwB,SAAS,CAAC;AAEpC,MAAM,QAAQ,GAAG,CAAC,KAA0B,EAAE,EAAE;IACnD,KAAK,GAAG,KAAK,CAAC;AAClB,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAuB,EAAQ,EAAE;IACnE,IAAI,KAAK,EAAE;QAEP,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;KAC9C;AACL,CAAC,CAAC;AALW,QAAA,QAAQ,YAKnB;AAEK,MAAM,YAAY,GAAG,CAAC,GAAY,EAAU,EAAE;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,MAAM,gBAAgB,GAAG,GAAgC,EAAE;IACvD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,OAAO,CAAC,IAAY,EAAE,KAAa,EAAiB,EAAE;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACnB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC,CAAC"}
|
package/dist/server/Helper.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const setPathLog: (value: string | undefined) => void;
|
|
2
|
-
export declare const writeLog: (tag: string, value: string | boolean) => void;
|
|
3
|
-
export declare const objectOutput: (obj: unknown) => string;
|
|
4
|
-
export declare const checkJson: (json: string) => boolean;
|
|
5
|
-
export declare const keepProcess: () => void;
|
package/dist/server/Helper.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
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.keepProcess = exports.checkJson = exports.objectOutput = exports.writeLog = exports.setPathLog = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
let pathLog = undefined;
|
|
9
|
-
const setPathLog = (value) => {
|
|
10
|
-
pathLog = value;
|
|
11
|
-
};
|
|
12
|
-
exports.setPathLog = setPathLog;
|
|
13
|
-
const writeLog = (tag, value) => {
|
|
14
|
-
if (pathLog) {
|
|
15
|
-
fs_1.default.appendFile(pathLog, `${tag}: ${value.toString()}\n`, () => {
|
|
16
|
-
console.log(`WriteLog => ${tag}: `, value);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
exports.writeLog = writeLog;
|
|
21
|
-
const objectOutput = (obj) => {
|
|
22
|
-
return JSON.stringify(obj, circularReplacer(), 2);
|
|
23
|
-
};
|
|
24
|
-
exports.objectOutput = objectOutput;
|
|
25
|
-
const checkJson = (json) => {
|
|
26
|
-
if (/^[\],:{}\s]*$/.test(json
|
|
27
|
-
.replace(/\\["\\/bfnrtu]/g, "@")
|
|
28
|
-
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\\-]?\d+)?/g, "]")
|
|
29
|
-
.replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
};
|
|
34
|
-
exports.checkJson = checkJson;
|
|
35
|
-
const keepProcess = () => {
|
|
36
|
-
for (const event of ["uncaughtException", "unhandledRejection"]) {
|
|
37
|
-
process.on(event, (error) => {
|
|
38
|
-
(0, exports.writeLog)("@cimo/websocket - Helper.ts - keepProcess()", `Event: ${event} - Message: ${(0, exports.objectOutput)(error.stack) || (0, exports.objectOutput)(error)}`);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
exports.keepProcess = keepProcess;
|
|
43
|
-
const circularReplacer = () => {
|
|
44
|
-
const seen = new WeakSet();
|
|
45
|
-
return (_key, value) => {
|
|
46
|
-
if (value !== null && typeof value === "object") {
|
|
47
|
-
if (seen.has(value)) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
seen.add(value);
|
|
51
|
-
}
|
|
52
|
-
return value;
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
//# sourceMappingURL=Helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Helper.js","sourceRoot":"","sources":["../../src/server/Helper.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAKpB,IAAI,OAAO,GAAuB,SAAS,CAAC;AAErC,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAE,EAAE;IACpD,OAAO,GAAG,KAAK,CAAC;AACpB,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAuB,EAAQ,EAAE;IACnE,IAAI,OAAO,EAAE;QACT,YAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAEzD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;KACN;AACL,CAAC,CAAC;AAPW,QAAA,QAAQ,YAOnB;AAEK,MAAM,YAAY,GAAG,CAAC,GAAY,EAAU,EAAE;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEK,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACtC,IACI,eAAe,CAAC,IAAI,CAChB,IAAI;SACC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,OAAO,CAAC,mEAAmE,EAAE,GAAG,CAAC;SACjF,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAC3C,EACH;QACE,OAAO,IAAI,CAAC;KACf;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAbW,QAAA,SAAS,aAapB;AAEK,MAAM,WAAW,GAAG,GAAG,EAAE;IAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,EAAE;QAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE;YAC/B,IAAA,gBAAQ,EAAC,6CAA6C,EAAE,UAAU,KAAK,eAAe,IAAA,oBAAY,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9I,CAAC,CAAC,CAAC;KACN;AACL,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEF,MAAM,gBAAgB,GAAG,GAAgC,EAAE;IACvD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,OAAO,CAAC,IAAY,EAAE,KAAa,EAAiB,EAAE;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACnB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC,CAAC"}
|