@tamagui/cli 1.61.3 → 1.62.1
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/dist/add.js +31 -74
- package/dist/add.js.map +1 -1
- package/dist/add.native.js +91 -0
- package/dist/add.native.js.map +6 -0
- package/dist/build.js +15 -34
- package/dist/build.js.map +1 -1
- package/dist/build.native.js +65 -0
- package/dist/build.native.js.map +6 -0
- package/dist/cli.js +33 -79
- package/dist/cli.js.map +1 -1
- package/dist/cli.native.js +169 -0
- package/dist/cli.native.js.map +6 -0
- package/dist/create.js +0 -1
- package/dist/create.native.js +2 -0
- package/dist/create.native.js.map +6 -0
- package/dist/dev/clientInjectPlugin.js +22 -55
- package/dist/dev/clientInjectPlugin.js.map +1 -1
- package/dist/dev/clientInjectPlugin.native.js +72 -0
- package/dist/dev/clientInjectPlugin.native.js.map +6 -0
- package/dist/dev/createDevServer.js +33 -84
- package/dist/dev/createDevServer.js.map +1 -1
- package/dist/dev/createDevServer.native.js +131 -0
- package/dist/dev/createDevServer.native.js.map +6 -0
- package/dist/dev/types.js +3 -6
- package/dist/dev/types.js.map +1 -1
- package/dist/dev/types.native.js +15 -0
- package/dist/dev/types.native.js.map +6 -0
- package/dist/dev.js +77 -156
- package/dist/dev.js.map +2 -2
- package/dist/dev.native.js +336 -0
- package/dist/dev.native.js.map +6 -0
- package/dist/generate.js +25 -46
- package/dist/generate.js.map +1 -1
- package/dist/generate.native.js +68 -0
- package/dist/generate.native.js.map +6 -0
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/index.native.js +4 -0
- package/dist/index.native.js.map +6 -0
- package/dist/studio.js +29 -67
- package/dist/studio.js.map +2 -2
- package/dist/studio.native.js +131 -0
- package/dist/studio.native.js.map +6 -0
- package/dist/test.js +8 -15
- package/dist/test.js.map +1 -1
- package/dist/test.native.js +37 -0
- package/dist/test.native.js.map +6 -0
- package/dist/update.js +5 -9
- package/dist/update.js.map +1 -1
- package/dist/update.native.js +27 -0
- package/dist/update.native.js.map +6 -0
- package/dist/utils/constants.js +5 -9
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/constants.native.js +26 -0
- package/dist/utils/constants.native.js.map +6 -0
- package/dist/utils.js +19 -43
- package/dist/utils.js.map +1 -1
- package/dist/utils.native.js +106 -0
- package/dist/utils.native.js.map +6 -0
- package/dist/vendor/debugger-app/index.js +5 -9
- package/dist/vendor/debugger-app/index.js.map +1 -1
- package/dist/vendor/debugger-app/index.native.js +24 -0
- package/dist/vendor/debugger-app/index.native.js.map +6 -0
- package/dist/vendor/debugger-app/src/debuggerWorker.js +16 -33
- package/dist/vendor/debugger-app/src/debuggerWorker.js.map +1 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js +48 -0
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js.map +6 -0
- package/dist/vendor/debugger-app/src/index.css +1 -1
- package/dist/vendor/debugger-app/src/index.css.map +1 -1
- package/dist/vendor/debugger-app/src/index.js +28 -88
- package/dist/vendor/debugger-app/src/index.js.map +1 -1
- package/dist/vendor/debugger-app/src/index.native.js +106 -0
- package/dist/vendor/debugger-app/src/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/createServer.js +21 -58
- package/dist/vendor/repack/dev-server/src/createServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/createServer.native.js +120 -0
- package/dist/vendor/repack/dev-server/src/createServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/index.js +4 -8
- package/dist/vendor/repack/dev-server/src/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/index.native.js +22 -0
- package/dist/vendor/repack/dev-server/src/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/api/apiPlugin.js +10 -19
- package/dist/vendor/repack/dev-server/src/plugins/api/apiPlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/api/apiPlugin.native.js +49 -0
- package/dist/vendor/repack/dev-server/src/plugins/api/apiPlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/api/index.js +7 -13
- package/dist/vendor/repack/dev-server/src/plugins/api/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/api/index.native.js +30 -0
- package/dist/vendor/repack/dev-server/src/plugins/api/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/compiler/compilerPlugin.js +19 -40
- package/dist/vendor/repack/dev-server/src/plugins/compiler/compilerPlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/compiler/compilerPlugin.native.js +77 -0
- package/dist/vendor/repack/dev-server/src/plugins/compiler/compilerPlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/compiler/index.js +8 -16
- package/dist/vendor/repack/dev-server/src/plugins/compiler/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/compiler/index.native.js +34 -0
- package/dist/vendor/repack/dev-server/src/plugins/compiler/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/compiler/types.js +3 -6
- package/dist/vendor/repack/dev-server/src/plugins/compiler/types.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/compiler/types.native.js +15 -0
- package/dist/vendor/repack/dev-server/src/plugins/compiler/types.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/devtools/devtoolsPlugin.js +25 -47
- package/dist/vendor/repack/dev-server/src/plugins/devtools/devtoolsPlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/devtools/devtoolsPlugin.native.js +96 -0
- package/dist/vendor/repack/dev-server/src/plugins/devtools/devtoolsPlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/devtools/index.js +7 -13
- package/dist/vendor/repack/dev-server/src/plugins/devtools/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/devtools/index.native.js +30 -0
- package/dist/vendor/repack/dev-server/src/plugins/devtools/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/favicon/faviconPlugin.js +9 -17
- package/dist/vendor/repack/dev-server/src/plugins/favicon/faviconPlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/favicon/faviconPlugin.native.js +37 -0
- package/dist/vendor/repack/dev-server/src/plugins/favicon/faviconPlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/favicon/index.js +7 -13
- package/dist/vendor/repack/dev-server/src/plugins/favicon/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/favicon/index.native.js +30 -0
- package/dist/vendor/repack/dev-server/src/plugins/favicon/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/multipart/index.js +8 -16
- package/dist/vendor/repack/dev-server/src/plugins/multipart/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/multipart/index.native.js +34 -0
- package/dist/vendor/repack/dev-server/src/plugins/multipart/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/multipart/multipartPlugin.js +15 -34
- package/dist/vendor/repack/dev-server/src/plugins/multipart/multipartPlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/multipart/multipartPlugin.native.js +62 -0
- package/dist/vendor/repack/dev-server/src/plugins/multipart/multipartPlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/multipart/types.js +3 -6
- package/dist/vendor/repack/dev-server/src/plugins/multipart/types.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/multipart/types.native.js +15 -0
- package/dist/vendor/repack/dev-server/src/plugins/multipart/types.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/Symbolicator.js +61 -86
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/Symbolicator.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/Symbolicator.native.js +186 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/Symbolicator.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/index.js +8 -16
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/index.native.js +36 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/sybmolicatePlugin.js +13 -23
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/sybmolicatePlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/sybmolicatePlugin.native.js +56 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/sybmolicatePlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/types.js +3 -6
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/types.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/types.native.js +15 -0
- package/dist/vendor/repack/dev-server/src/plugins/symbolicate/types.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketRouter.js +17 -29
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketRouter.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketRouter.native.js +66 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketRouter.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketServer.js +13 -15
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketServer.native.js +50 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/WebSocketServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/index.js +8 -16
- package/dist/vendor/repack/dev-server/src/plugins/wss/index.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/index.native.js +36 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/index.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/HermesInspectorProxy.js +30 -56
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/HermesInspectorProxy.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/HermesInspectorProxy.native.js +118 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/HermesInspectorProxy.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketApiServer.js +13 -23
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketApiServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketApiServer.native.js +70 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketApiServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDebuggerServer.js +21 -41
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDebuggerServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDebuggerServer.native.js +103 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDebuggerServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDevClientServer.js +11 -26
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDevClientServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDevClientServer.native.js +72 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDevClientServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketEventsServer.js +63 -92
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketEventsServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketEventsServer.native.js +163 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketEventsServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketHMRServer.js +26 -40
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketHMRServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketHMRServer.native.js +87 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketHMRServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.js +54 -87
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.native.js +325 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/types.js +3 -6
- package/dist/vendor/repack/dev-server/src/plugins/wss/types.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/types.native.js +15 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/types.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/wssPlugin.js +11 -39
- package/dist/vendor/repack/dev-server/src/plugins/wss/wssPlugin.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/plugins/wss/wssPlugin.native.js +51 -0
- package/dist/vendor/repack/dev-server/src/plugins/wss/wssPlugin.native.js.map +6 -0
- package/dist/vendor/repack/dev-server/src/types.js +7 -15
- package/dist/vendor/repack/dev-server/src/types.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/types.native.js +30 -0
- package/dist/vendor/repack/dev-server/src/types.native.js.map +6 -0
- package/package.json +9 -9
- package/src/dev.ts +0 -13
- package/src/index.ts +0 -2
- package/src/studio.ts +0 -2
- package/src/utils.ts +1 -0
- package/types/dev.d.ts.map +1 -1
- package/types/studio.d.ts.map +1 -1
- package/types/utils.d.ts.map +1 -1
|
@@ -1,40 +1,25 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
12
10
|
for (let key of __getOwnPropNames(from))
|
|
13
|
-
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
11
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
12
|
return to;
|
|
17
13
|
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
19
15
|
var WebSocketMessageServer_exports = {};
|
|
20
16
|
__export(WebSocketMessageServer_exports, {
|
|
21
17
|
WebSocketMessageServer: () => WebSocketMessageServer
|
|
22
18
|
});
|
|
23
19
|
module.exports = __toCommonJS(WebSocketMessageServer_exports);
|
|
24
|
-
var import_url = require("url");
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Create new instance of WebSocketMessageServer and attach it to the given Fastify instance.
|
|
29
|
-
* Any logging information, will be passed through standard `fastify.log` API.
|
|
30
|
-
*
|
|
31
|
-
* @param fastify Fastify instance to attach the WebSocket server to.
|
|
32
|
-
*/
|
|
33
|
-
constructor(fastify) {
|
|
34
|
-
super(fastify, "/message");
|
|
35
|
-
this.clients = /* @__PURE__ */ new Map();
|
|
36
|
-
this.nextClientId = 0;
|
|
37
|
-
}
|
|
20
|
+
var import_url = require("url"), import_WebSocketServer = require("../WebSocketServer");
|
|
21
|
+
class WebSocketMessageServer extends import_WebSocketServer.WebSocketServer {
|
|
22
|
+
static PROTOCOL_VERSION = 2;
|
|
38
23
|
/**
|
|
39
24
|
* Check if message is a broadcast request.
|
|
40
25
|
*
|
|
@@ -43,7 +28,7 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
43
28
|
* with {@link sendBroadcast}.
|
|
44
29
|
*/
|
|
45
30
|
static isBroadcast(message) {
|
|
46
|
-
return typeof message.method
|
|
31
|
+
return typeof message.method == "string" && message.id === void 0 && message.target === void 0;
|
|
47
32
|
}
|
|
48
33
|
/**
|
|
49
34
|
* Check if message is a method request.
|
|
@@ -52,7 +37,7 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
52
37
|
* @returns True if message is a request.
|
|
53
38
|
*/
|
|
54
39
|
static isRequest(message) {
|
|
55
|
-
return typeof message.method
|
|
40
|
+
return typeof message.method == "string" && typeof message.target == "string";
|
|
56
41
|
}
|
|
57
42
|
/**
|
|
58
43
|
* Check if message is a response with results of performing some request.
|
|
@@ -61,7 +46,18 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
61
46
|
* @returns True if message is a response.
|
|
62
47
|
*/
|
|
63
48
|
static isResponse(message) {
|
|
64
|
-
return typeof message.id
|
|
49
|
+
return typeof message.id == "object" && typeof message.id.requestId < "u" && typeof message.id.clientId == "string" && (message.result !== void 0 || message.error !== void 0);
|
|
50
|
+
}
|
|
51
|
+
clients = /* @__PURE__ */ new Map();
|
|
52
|
+
nextClientId = 0;
|
|
53
|
+
/**
|
|
54
|
+
* Create new instance of WebSocketMessageServer and attach it to the given Fastify instance.
|
|
55
|
+
* Any logging information, will be passed through standard `fastify.log` API.
|
|
56
|
+
*
|
|
57
|
+
* @param fastify Fastify instance to attach the WebSocket server to.
|
|
58
|
+
*/
|
|
59
|
+
constructor(fastify) {
|
|
60
|
+
super(fastify, "/message");
|
|
65
61
|
}
|
|
66
62
|
/**
|
|
67
63
|
* Parse stringified message into a {@link ReactNativeMessage}.
|
|
@@ -75,25 +71,22 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
75
71
|
this.fastify.log.error({
|
|
76
72
|
msg: "Failed to parse message - expected text message, got binary"
|
|
77
73
|
});
|
|
78
|
-
return
|
|
74
|
+
return;
|
|
79
75
|
}
|
|
80
76
|
try {
|
|
81
77
|
const message = JSON.parse(data);
|
|
82
|
-
console.log("message", message)
|
|
83
|
-
if (message.version === _WebSocketMessageServer.PROTOCOL_VERSION.toString()) {
|
|
78
|
+
if (console.log("message", message), message.version === WebSocketMessageServer.PROTOCOL_VERSION.toString())
|
|
84
79
|
return message;
|
|
85
|
-
}
|
|
86
80
|
this.fastify.log.error({
|
|
87
81
|
msg: "Received message had wrong protocol version",
|
|
88
82
|
message
|
|
89
83
|
});
|
|
90
|
-
} catch
|
|
84
|
+
} catch {
|
|
91
85
|
this.fastify.log.error({
|
|
92
86
|
msg: "Failed to parse the message as JSON",
|
|
93
87
|
data
|
|
94
88
|
});
|
|
95
89
|
}
|
|
96
|
-
return void 0;
|
|
97
90
|
}
|
|
98
91
|
/**
|
|
99
92
|
* Get client's WebSocket connection for given `clientId`.
|
|
@@ -104,9 +97,8 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
104
97
|
*/
|
|
105
98
|
getClientSocket(clientId) {
|
|
106
99
|
const socket = this.clients.get(clientId);
|
|
107
|
-
if (socket === void 0)
|
|
100
|
+
if (socket === void 0)
|
|
108
101
|
throw new Error(`Could not find client with id "${clientId}"`);
|
|
109
|
-
}
|
|
110
102
|
return socket;
|
|
111
103
|
}
|
|
112
104
|
/**
|
|
@@ -126,19 +118,18 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
126
118
|
params: message.params === void 0 ? "undefined" : "defined",
|
|
127
119
|
result: message.result === void 0 ? "undefined" : "defined"
|
|
128
120
|
};
|
|
129
|
-
if (message.id === void 0)
|
|
121
|
+
if (message.id === void 0)
|
|
130
122
|
this.fastify.log.error({
|
|
131
123
|
msg: "Handling message failed",
|
|
132
124
|
clientId,
|
|
133
125
|
error,
|
|
134
126
|
errorMessage
|
|
135
127
|
});
|
|
136
|
-
|
|
128
|
+
else
|
|
137
129
|
try {
|
|
138
|
-
|
|
139
|
-
socket.send(
|
|
130
|
+
this.getClientSocket(clientId).send(
|
|
140
131
|
JSON.stringify({
|
|
141
|
-
version:
|
|
132
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
142
133
|
error,
|
|
143
134
|
id: message.id
|
|
144
135
|
})
|
|
@@ -150,7 +141,6 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
150
141
|
errorMessage
|
|
151
142
|
});
|
|
152
143
|
}
|
|
153
|
-
}
|
|
154
144
|
}
|
|
155
145
|
/**
|
|
156
146
|
* Send given request `message` to it's designated client's socket based on `message.target`.
|
|
@@ -168,10 +158,9 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
168
158
|
});
|
|
169
159
|
return;
|
|
170
160
|
}
|
|
171
|
-
|
|
172
|
-
socket.send(
|
|
161
|
+
this.getClientSocket(message.target).send(
|
|
173
162
|
JSON.stringify({
|
|
174
|
-
version:
|
|
163
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
175
164
|
method: message.method,
|
|
176
165
|
params: message.params,
|
|
177
166
|
id: message.id === void 0 ? void 0 : { requestId: message.id, clientId }
|
|
@@ -186,13 +175,11 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
186
175
|
* @param message Message to forward.
|
|
187
176
|
*/
|
|
188
177
|
forwardResponse(message) {
|
|
189
|
-
if (!message.id)
|
|
178
|
+
if (!message.id)
|
|
190
179
|
return;
|
|
191
|
-
|
|
192
|
-
const socket = this.getClientSocket(message.id.clientId);
|
|
193
|
-
socket.send(
|
|
180
|
+
this.getClientSocket(message.id.clientId).send(
|
|
194
181
|
JSON.stringify({
|
|
195
|
-
version:
|
|
182
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
196
183
|
result: message.result,
|
|
197
184
|
error: message.error,
|
|
198
185
|
id: message.id.requestId
|
|
@@ -215,9 +202,8 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
215
202
|
case "getpeers": {
|
|
216
203
|
const output = {};
|
|
217
204
|
this.clients.forEach((peerSocket, peerId) => {
|
|
218
|
-
var _a;
|
|
219
205
|
if (clientId !== peerId) {
|
|
220
|
-
const { searchParams } = new import_url.URL(
|
|
206
|
+
const { searchParams } = new import_url.URL(peerSocket.upgradeReq?.url || "");
|
|
221
207
|
output[peerId] = [...searchParams.entries()].reduce(
|
|
222
208
|
(acc, [key, value]) => ({
|
|
223
209
|
...acc,
|
|
@@ -226,8 +212,7 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
226
212
|
{}
|
|
227
213
|
);
|
|
228
214
|
}
|
|
229
|
-
});
|
|
230
|
-
result = output;
|
|
215
|
+
}), result = output;
|
|
231
216
|
break;
|
|
232
217
|
}
|
|
233
218
|
default:
|
|
@@ -238,10 +223,9 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
238
223
|
})}`
|
|
239
224
|
);
|
|
240
225
|
}
|
|
241
|
-
|
|
242
|
-
socket.send(
|
|
226
|
+
this.getClientSocket(clientId).send(
|
|
243
227
|
JSON.stringify({
|
|
244
|
-
version:
|
|
228
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
245
229
|
result,
|
|
246
230
|
id: message.id
|
|
247
231
|
})
|
|
@@ -255,17 +239,15 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
255
239
|
*/
|
|
256
240
|
sendBroadcast(broadcasterId, message) {
|
|
257
241
|
const forwarded = {
|
|
258
|
-
version:
|
|
242
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
259
243
|
method: message.method,
|
|
260
244
|
params: message.params
|
|
261
245
|
};
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
for (const [clientId, socket] of this.clients) {
|
|
268
|
-
if (clientId !== broadcasterId) {
|
|
246
|
+
this.clients.size === 0 && this.fastify.log.warn({
|
|
247
|
+
msg: `No apps connected. Sending "${message.method}" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.`
|
|
248
|
+
});
|
|
249
|
+
for (const [clientId, socket] of this.clients)
|
|
250
|
+
if (clientId !== broadcasterId)
|
|
269
251
|
try {
|
|
270
252
|
socket.send(JSON.stringify(forwarded));
|
|
271
253
|
} catch (error) {
|
|
@@ -276,8 +258,6 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
276
258
|
forwarded
|
|
277
259
|
});
|
|
278
260
|
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
261
|
}
|
|
282
262
|
/**
|
|
283
263
|
* Send method broadcast to all connected clients.
|
|
@@ -297,17 +277,11 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
297
277
|
onConnection(socket, request) {
|
|
298
278
|
const clientId = `client#${this.nextClientId++}`;
|
|
299
279
|
let client = socket;
|
|
300
|
-
client.upgradeReq = request;
|
|
301
|
-
this.clients.set(clientId, client);
|
|
302
|
-
this.fastify.log.debug({ msg: "Message client connected", clientId });
|
|
280
|
+
client.upgradeReq = request, this.clients.set(clientId, client), this.fastify.log.debug({ msg: "Message client connected", clientId });
|
|
303
281
|
const onClose = () => {
|
|
304
|
-
this.fastify.log.debug({ msg: "Message client disconnected", clientId });
|
|
305
|
-
socket.removeAllListeners();
|
|
306
|
-
this.clients.delete(clientId);
|
|
282
|
+
this.fastify.log.debug({ msg: "Message client disconnected", clientId }), socket.removeAllListeners(), this.clients.delete(clientId);
|
|
307
283
|
};
|
|
308
|
-
socket.addEventListener("error", onClose)
|
|
309
|
-
socket.addEventListener("close", onClose);
|
|
310
|
-
socket.addEventListener("message", (event) => {
|
|
284
|
+
socket.addEventListener("error", onClose), socket.addEventListener("close", onClose), socket.addEventListener("message", (event) => {
|
|
311
285
|
const message = this.parseMessage(
|
|
312
286
|
event.data.toString(),
|
|
313
287
|
// @ts-ignore
|
|
@@ -322,32 +296,25 @@ const _WebSocketMessageServer = class _WebSocketMessageServer extends import_Web
|
|
|
322
296
|
return;
|
|
323
297
|
}
|
|
324
298
|
try {
|
|
325
|
-
if (
|
|
299
|
+
if (WebSocketMessageServer.isBroadcast(message))
|
|
326
300
|
this.sendBroadcast(clientId, message);
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
} else {
|
|
331
|
-
this.forwardRequest(clientId, message);
|
|
332
|
-
}
|
|
333
|
-
} else if (_WebSocketMessageServer.isResponse(message)) {
|
|
301
|
+
else if (WebSocketMessageServer.isRequest(message))
|
|
302
|
+
message.target === "server" ? this.processServerRequest(clientId, message) : this.forwardRequest(clientId, message);
|
|
303
|
+
else if (WebSocketMessageServer.isResponse(message))
|
|
334
304
|
this.forwardResponse(message);
|
|
335
|
-
|
|
305
|
+
else
|
|
336
306
|
throw new Error(
|
|
337
307
|
`Invalid message, did not match the protocol ${JSON.stringify({
|
|
338
308
|
clientId,
|
|
339
309
|
message
|
|
340
310
|
})}`
|
|
341
311
|
);
|
|
342
|
-
}
|
|
343
312
|
} catch (error) {
|
|
344
313
|
this.handleError(clientId, message, error);
|
|
345
314
|
}
|
|
346
315
|
});
|
|
347
316
|
}
|
|
348
|
-
}
|
|
349
|
-
_WebSocketMessageServer.PROTOCOL_VERSION = 2;
|
|
350
|
-
let WebSocketMessageServer = _WebSocketMessageServer;
|
|
317
|
+
}
|
|
351
318
|
// Annotate the CommonJS export names for ESM import in node:
|
|
352
319
|
0 && (module.exports = {
|
|
353
320
|
WebSocketMessageServer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["error"]
|
|
6
6
|
}
|
package/dist/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.native.js
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
|
+
var WebSocketMessageServer_exports = {};
|
|
17
|
+
__export(WebSocketMessageServer_exports, {
|
|
18
|
+
WebSocketMessageServer: () => WebSocketMessageServer
|
|
19
|
+
});
|
|
20
|
+
module.exports = __toCommonJS(WebSocketMessageServer_exports);
|
|
21
|
+
var import_url = require("url"), import_WebSocketServer = require("../WebSocketServer");
|
|
22
|
+
class WebSocketMessageServer extends import_WebSocketServer.WebSocketServer {
|
|
23
|
+
/**
|
|
24
|
+
* Create new instance of WebSocketMessageServer and attach it to the given Fastify instance.
|
|
25
|
+
* Any logging information, will be passed through standard `fastify.log` API.
|
|
26
|
+
*
|
|
27
|
+
* @param fastify Fastify instance to attach the WebSocket server to.
|
|
28
|
+
*/
|
|
29
|
+
constructor(fastify) {
|
|
30
|
+
super(fastify, "/message");
|
|
31
|
+
this.clients = /* @__PURE__ */ new Map();
|
|
32
|
+
this.nextClientId = 0;
|
|
33
|
+
}
|
|
34
|
+
static {
|
|
35
|
+
this.PROTOCOL_VERSION = 2;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if message is a broadcast request.
|
|
39
|
+
*
|
|
40
|
+
* @param message Message to check.
|
|
41
|
+
* @returns True if message is a broadcast request and should be broadcasted
|
|
42
|
+
* with {@link sendBroadcast}.
|
|
43
|
+
*/
|
|
44
|
+
static isBroadcast(message) {
|
|
45
|
+
return typeof message.method == "string" && message.id === void 0 && message.target === void 0;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if message is a method request.
|
|
49
|
+
*
|
|
50
|
+
* @param message Message to check.
|
|
51
|
+
* @returns True if message is a request.
|
|
52
|
+
*/
|
|
53
|
+
static isRequest(message) {
|
|
54
|
+
return typeof message.method == "string" && typeof message.target == "string";
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if message is a response with results of performing some request.
|
|
58
|
+
*
|
|
59
|
+
* @param message Message to check.
|
|
60
|
+
* @returns True if message is a response.
|
|
61
|
+
*/
|
|
62
|
+
static isResponse(message) {
|
|
63
|
+
return typeof message.id == "object" && typeof message.id.requestId < "u" && typeof message.id.clientId == "string" && (message.result !== void 0 || message.error !== void 0);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Parse stringified message into a {@link ReactNativeMessage}.
|
|
67
|
+
*
|
|
68
|
+
* @param data Stringified message.
|
|
69
|
+
* @param binary Additional binary data if any.
|
|
70
|
+
* @returns Parsed message or `undefined` if parsing failed.
|
|
71
|
+
*/
|
|
72
|
+
parseMessage(data, binary) {
|
|
73
|
+
if (binary) {
|
|
74
|
+
this.fastify.log.error({
|
|
75
|
+
msg: "Failed to parse message - expected text message, got binary"
|
|
76
|
+
});
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const message = JSON.parse(data);
|
|
81
|
+
if (console.log("message", message), message.version === WebSocketMessageServer.PROTOCOL_VERSION.toString())
|
|
82
|
+
return message;
|
|
83
|
+
this.fastify.log.error({
|
|
84
|
+
msg: "Received message had wrong protocol version",
|
|
85
|
+
message
|
|
86
|
+
});
|
|
87
|
+
} catch {
|
|
88
|
+
this.fastify.log.error({
|
|
89
|
+
msg: "Failed to parse the message as JSON",
|
|
90
|
+
data
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get client's WebSocket connection for given `clientId`.
|
|
96
|
+
* Throws if no such client is connected.
|
|
97
|
+
*
|
|
98
|
+
* @param clientId Id of the client.
|
|
99
|
+
* @returns WebSocket connection.
|
|
100
|
+
*/
|
|
101
|
+
getClientSocket(clientId) {
|
|
102
|
+
const socket = this.clients.get(clientId);
|
|
103
|
+
if (socket === void 0)
|
|
104
|
+
throw new Error(`Could not find client with id "${clientId}"`);
|
|
105
|
+
return socket;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Process error by sending an error message to the client whose message caused the error
|
|
109
|
+
* to occur.
|
|
110
|
+
*
|
|
111
|
+
* @param clientId Id of the client whose message caused an error.
|
|
112
|
+
* @param message Original message which caused the error.
|
|
113
|
+
* @param error Concrete instance of an error that occurred.
|
|
114
|
+
*/
|
|
115
|
+
handleError(clientId, message, error) {
|
|
116
|
+
const errorMessage = {
|
|
117
|
+
id: message.id,
|
|
118
|
+
method: message.method,
|
|
119
|
+
target: message.target,
|
|
120
|
+
error: message.error === void 0 ? "undefined" : "defined",
|
|
121
|
+
params: message.params === void 0 ? "undefined" : "defined",
|
|
122
|
+
result: message.result === void 0 ? "undefined" : "defined"
|
|
123
|
+
};
|
|
124
|
+
if (message.id === void 0)
|
|
125
|
+
this.fastify.log.error({
|
|
126
|
+
msg: "Handling message failed",
|
|
127
|
+
clientId,
|
|
128
|
+
error,
|
|
129
|
+
errorMessage
|
|
130
|
+
});
|
|
131
|
+
else
|
|
132
|
+
try {
|
|
133
|
+
this.getClientSocket(clientId).send(
|
|
134
|
+
JSON.stringify({
|
|
135
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
136
|
+
error,
|
|
137
|
+
id: message.id
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
} catch (error2) {
|
|
141
|
+
this.fastify.log.error("Failed to reply", {
|
|
142
|
+
clientId,
|
|
143
|
+
error: error2,
|
|
144
|
+
errorMessage
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Send given request `message` to it's designated client's socket based on `message.target`.
|
|
150
|
+
* The target client must be connected, otherwise it will throw an error.
|
|
151
|
+
*
|
|
152
|
+
* @param clientId Id of the client that requested the forward.
|
|
153
|
+
* @param message Message to forward.
|
|
154
|
+
*/
|
|
155
|
+
forwardRequest(clientId, message) {
|
|
156
|
+
if (!message.target) {
|
|
157
|
+
this.fastify.log.error({
|
|
158
|
+
msg: "Failed to forward request - message.target is missing",
|
|
159
|
+
clientId,
|
|
160
|
+
message
|
|
161
|
+
});
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
this.getClientSocket(message.target).send(
|
|
165
|
+
JSON.stringify({
|
|
166
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
167
|
+
method: message.method,
|
|
168
|
+
params: message.params,
|
|
169
|
+
id: message.id === void 0 ? void 0 : { requestId: message.id, clientId }
|
|
170
|
+
})
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Send given response `message` to it's designated client's socket based
|
|
175
|
+
* on `message.id.clientId`.
|
|
176
|
+
* The target client must be connected, otherwise it will throw an error.
|
|
177
|
+
*
|
|
178
|
+
* @param message Message to forward.
|
|
179
|
+
*/
|
|
180
|
+
forwardResponse(message) {
|
|
181
|
+
if (!message.id)
|
|
182
|
+
return;
|
|
183
|
+
this.getClientSocket(message.id.clientId).send(
|
|
184
|
+
JSON.stringify({
|
|
185
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
186
|
+
result: message.result,
|
|
187
|
+
error: message.error,
|
|
188
|
+
id: message.id.requestId
|
|
189
|
+
})
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Process request message targeted towards this {@link WebSocketMessageServer}
|
|
194
|
+
* and send back the results.
|
|
195
|
+
*
|
|
196
|
+
* @param clientId Id of the client who send the message.
|
|
197
|
+
* @param message The message to process by the server.
|
|
198
|
+
*/
|
|
199
|
+
processServerRequest(clientId, message) {
|
|
200
|
+
let result;
|
|
201
|
+
switch (message.method) {
|
|
202
|
+
case "getid":
|
|
203
|
+
result = clientId;
|
|
204
|
+
break;
|
|
205
|
+
case "getpeers": {
|
|
206
|
+
const output = {};
|
|
207
|
+
this.clients.forEach((peerSocket, peerId) => {
|
|
208
|
+
if (clientId !== peerId) {
|
|
209
|
+
const { searchParams } = new import_url.URL(peerSocket.upgradeReq?.url || "");
|
|
210
|
+
output[peerId] = [...searchParams.entries()].reduce(
|
|
211
|
+
(acc, [key, value]) => ({
|
|
212
|
+
...acc,
|
|
213
|
+
[key]: value
|
|
214
|
+
}),
|
|
215
|
+
{}
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
}), result = output;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
default:
|
|
222
|
+
throw new Error(
|
|
223
|
+
`Cannot process server request - unknown method ${JSON.stringify({
|
|
224
|
+
clientId,
|
|
225
|
+
message
|
|
226
|
+
})}`
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
this.getClientSocket(clientId).send(
|
|
230
|
+
JSON.stringify({
|
|
231
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
232
|
+
result,
|
|
233
|
+
id: message.id
|
|
234
|
+
})
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Broadcast given message to all connected clients.
|
|
239
|
+
*
|
|
240
|
+
* @param broadcasterId Id of the client who is broadcasting.
|
|
241
|
+
* @param message Message to broadcast.
|
|
242
|
+
*/
|
|
243
|
+
sendBroadcast(broadcasterId, message) {
|
|
244
|
+
const forwarded = {
|
|
245
|
+
version: WebSocketMessageServer.PROTOCOL_VERSION,
|
|
246
|
+
method: message.method,
|
|
247
|
+
params: message.params
|
|
248
|
+
};
|
|
249
|
+
this.clients.size === 0 && this.fastify.log.warn({
|
|
250
|
+
msg: `No apps connected. Sending "${message.method}" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.`
|
|
251
|
+
});
|
|
252
|
+
for (const [clientId, socket] of this.clients)
|
|
253
|
+
if (clientId !== broadcasterId)
|
|
254
|
+
try {
|
|
255
|
+
socket.send(JSON.stringify(forwarded));
|
|
256
|
+
} catch (error) {
|
|
257
|
+
this.fastify.log.error({
|
|
258
|
+
msg: "Failed to send broadcast",
|
|
259
|
+
clientId,
|
|
260
|
+
error,
|
|
261
|
+
forwarded
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Send method broadcast to all connected clients.
|
|
267
|
+
*
|
|
268
|
+
* @param method Method name to broadcast.
|
|
269
|
+
* @param params Method parameters.
|
|
270
|
+
*/
|
|
271
|
+
broadcast(method, params) {
|
|
272
|
+
this.sendBroadcast(void 0, { method, params });
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Process new client's WebSocket connection.
|
|
276
|
+
*
|
|
277
|
+
* @param socket Incoming WebSocket connection.
|
|
278
|
+
* @param request Upgrade request for the connection.
|
|
279
|
+
*/
|
|
280
|
+
onConnection(socket, request) {
|
|
281
|
+
const clientId = `client#${this.nextClientId++}`;
|
|
282
|
+
let client = socket;
|
|
283
|
+
client.upgradeReq = request, this.clients.set(clientId, client), this.fastify.log.debug({ msg: "Message client connected", clientId });
|
|
284
|
+
const onClose = () => {
|
|
285
|
+
this.fastify.log.debug({ msg: "Message client disconnected", clientId }), socket.removeAllListeners(), this.clients.delete(clientId);
|
|
286
|
+
};
|
|
287
|
+
socket.addEventListener("error", onClose), socket.addEventListener("close", onClose), socket.addEventListener("message", (event) => {
|
|
288
|
+
const message = this.parseMessage(
|
|
289
|
+
event.data.toString(),
|
|
290
|
+
// @ts-ignore
|
|
291
|
+
event.binary
|
|
292
|
+
);
|
|
293
|
+
if (!message) {
|
|
294
|
+
this.fastify.log.error({
|
|
295
|
+
msg: "Received message not matching protocol",
|
|
296
|
+
clientId,
|
|
297
|
+
message
|
|
298
|
+
});
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
try {
|
|
302
|
+
if (WebSocketMessageServer.isBroadcast(message))
|
|
303
|
+
this.sendBroadcast(clientId, message);
|
|
304
|
+
else if (WebSocketMessageServer.isRequest(message))
|
|
305
|
+
message.target === "server" ? this.processServerRequest(clientId, message) : this.forwardRequest(clientId, message);
|
|
306
|
+
else if (WebSocketMessageServer.isResponse(message))
|
|
307
|
+
this.forwardResponse(message);
|
|
308
|
+
else
|
|
309
|
+
throw new Error(
|
|
310
|
+
`Invalid message, did not match the protocol ${JSON.stringify({
|
|
311
|
+
clientId,
|
|
312
|
+
message
|
|
313
|
+
})}`
|
|
314
|
+
);
|
|
315
|
+
} catch (error) {
|
|
316
|
+
this.handleError(clientId, message, error);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
322
|
+
0 && (module.exports = {
|
|
323
|
+
WebSocketMessageServer
|
|
324
|
+
});
|
|
325
|
+
//# sourceMappingURL=WebSocketMessageServer.js.map
|