@vxrn/utils 1.20.0 → 1.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/createMessageSocket.cjs +133 -0
- package/dist/cjs/createMessageSocket.native.js +182 -0
- package/dist/cjs/createMessageSocket.native.js.map +1 -0
- package/dist/cjs/detectPackageManager.native.js +2 -2
- package/dist/cjs/detectPackageManager.native.js.map +1 -1
- package/dist/cjs/exec.native.js +3 -3
- package/dist/cjs/exec.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/mustReplace.native.js +0 -2
- package/dist/cjs/mustReplace.native.js.map +1 -1
- package/dist/esm/createMessageSocket.mjs +108 -0
- package/dist/esm/createMessageSocket.mjs.map +1 -0
- package/dist/esm/createMessageSocket.native.js +154 -0
- package/dist/esm/createMessageSocket.native.js.map +1 -0
- package/dist/esm/detectPackageManager.native.js +2 -2
- package/dist/esm/detectPackageManager.native.js.map +1 -1
- package/dist/esm/exec.native.js +3 -3
- package/dist/esm/exec.native.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/mustReplace.native.js +0 -2
- package/dist/esm/mustReplace.native.js.map +1 -1
- package/package.json +6 -4
- package/src/createMessageSocket.ts +114 -0
- package/src/index.ts +1 -0
- package/types/createMessageSocket.d.ts +2 -0
- package/types/createMessageSocket.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var createMessageSocket_exports = {};
|
|
24
|
+
__export(createMessageSocket_exports, {
|
|
25
|
+
createMessageSocket: () => createMessageSocket
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(createMessageSocket_exports);
|
|
28
|
+
var import_ws = require("ws");
|
|
29
|
+
function createMessageSocket() {
|
|
30
|
+
const PROTOCOL_VERSION = 2;
|
|
31
|
+
const wss = new import_ws.WebSocketServer({
|
|
32
|
+
noServer: true
|
|
33
|
+
});
|
|
34
|
+
const clients = /* @__PURE__ */new Map();
|
|
35
|
+
let nextClientId = 0;
|
|
36
|
+
function broadcast(broadcasterId, message) {
|
|
37
|
+
const forwarded = JSON.stringify({
|
|
38
|
+
version: PROTOCOL_VERSION,
|
|
39
|
+
method: message.method,
|
|
40
|
+
params: message.params
|
|
41
|
+
});
|
|
42
|
+
for (const [otherId, other] of clients) {
|
|
43
|
+
if (otherId !== broadcasterId) {
|
|
44
|
+
try {
|
|
45
|
+
other.ws.send(forwarded);
|
|
46
|
+
} catch {}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
wss.on("connection", (clientWs, req) => {
|
|
51
|
+
const clientId = `client#${nextClientId++}`;
|
|
52
|
+
const query = Object.fromEntries(new URL(req?.url || "/", "http://localhost").searchParams);
|
|
53
|
+
clients.set(clientId, {
|
|
54
|
+
ws: clientWs,
|
|
55
|
+
query
|
|
56
|
+
});
|
|
57
|
+
const remove = () => clients.delete(clientId);
|
|
58
|
+
clientWs.on("close", remove);
|
|
59
|
+
clientWs.on("error", remove);
|
|
60
|
+
clientWs.on("message", (data, isBinary) => {
|
|
61
|
+
if (isBinary) return;
|
|
62
|
+
let message;
|
|
63
|
+
try {
|
|
64
|
+
message = JSON.parse(data.toString());
|
|
65
|
+
} catch {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (message?.version !== PROTOCOL_VERSION) return;
|
|
69
|
+
try {
|
|
70
|
+
const isBroadcastMsg = typeof message.method === "string" && message.id === void 0 && message.target === void 0;
|
|
71
|
+
const isRequest = typeof message.method === "string" && typeof message.target === "string";
|
|
72
|
+
const isResponse = typeof message.id === "object" && message.id?.requestId !== void 0 && typeof message.id?.clientId === "string" && (message.result !== void 0 || message.error !== void 0);
|
|
73
|
+
if (isBroadcastMsg) {
|
|
74
|
+
broadcast(clientId, message);
|
|
75
|
+
} else if (isRequest) {
|
|
76
|
+
if (message.target === "server") {
|
|
77
|
+
let result;
|
|
78
|
+
if (message.method === "getid") {
|
|
79
|
+
result = clientId;
|
|
80
|
+
} else if (message.method === "getpeers") {
|
|
81
|
+
const peers = {};
|
|
82
|
+
for (const [otherId, other] of clients) {
|
|
83
|
+
if (otherId !== clientId) peers[otherId] = other.query;
|
|
84
|
+
}
|
|
85
|
+
result = peers;
|
|
86
|
+
} else {
|
|
87
|
+
throw new Error(`unknown method: ${message.method}`);
|
|
88
|
+
}
|
|
89
|
+
clientWs.send(JSON.stringify({
|
|
90
|
+
version: PROTOCOL_VERSION,
|
|
91
|
+
result,
|
|
92
|
+
id: message.id
|
|
93
|
+
}));
|
|
94
|
+
} else {
|
|
95
|
+
const target = clients.get(message.target);
|
|
96
|
+
if (!target) {
|
|
97
|
+
throw new Error(`could not find id "${message.target}" while forwarding request`);
|
|
98
|
+
}
|
|
99
|
+
target.ws.send(JSON.stringify({
|
|
100
|
+
version: PROTOCOL_VERSION,
|
|
101
|
+
method: message.method,
|
|
102
|
+
params: message.params,
|
|
103
|
+
id: message.id === void 0 ? void 0 : {
|
|
104
|
+
requestId: message.id,
|
|
105
|
+
clientId
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
} else if (isResponse) {
|
|
110
|
+
if (!message.id) return;
|
|
111
|
+
const target = clients.get(message.id.clientId);
|
|
112
|
+
target?.ws.send(JSON.stringify({
|
|
113
|
+
version: PROTOCOL_VERSION,
|
|
114
|
+
result: message.result,
|
|
115
|
+
error: message.error,
|
|
116
|
+
id: message.id.requestId
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
} catch (err) {
|
|
120
|
+
if (message.id !== void 0) {
|
|
121
|
+
try {
|
|
122
|
+
clientWs.send(JSON.stringify({
|
|
123
|
+
version: PROTOCOL_VERSION,
|
|
124
|
+
error: String(err),
|
|
125
|
+
id: message.id
|
|
126
|
+
}));
|
|
127
|
+
} catch {}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
return wss;
|
|
133
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var createMessageSocket_exports = {};
|
|
26
|
+
__export(createMessageSocket_exports, {
|
|
27
|
+
createMessageSocket: () => createMessageSocket
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(createMessageSocket_exports);
|
|
30
|
+
var import_ws = require("ws");
|
|
31
|
+
function _type_of(obj) {
|
|
32
|
+
"@swc/helpers - typeof";
|
|
33
|
+
|
|
34
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
35
|
+
}
|
|
36
|
+
function createMessageSocket() {
|
|
37
|
+
var PROTOCOL_VERSION = 2;
|
|
38
|
+
var wss = new import_ws.WebSocketServer({
|
|
39
|
+
noServer: true
|
|
40
|
+
});
|
|
41
|
+
var clients = /* @__PURE__ */new Map();
|
|
42
|
+
var nextClientId = 0;
|
|
43
|
+
function broadcast(broadcasterId, message) {
|
|
44
|
+
var forwarded = JSON.stringify({
|
|
45
|
+
version: PROTOCOL_VERSION,
|
|
46
|
+
method: message.method,
|
|
47
|
+
params: message.params
|
|
48
|
+
});
|
|
49
|
+
var _iteratorNormalCompletion = true,
|
|
50
|
+
_didIteratorError = false,
|
|
51
|
+
_iteratorError = void 0;
|
|
52
|
+
try {
|
|
53
|
+
for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
54
|
+
var [otherId, other] = _step.value;
|
|
55
|
+
if (otherId !== broadcasterId) {
|
|
56
|
+
try {
|
|
57
|
+
other.ws.send(forwarded);
|
|
58
|
+
} catch (unused) {}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
} catch (err) {
|
|
62
|
+
_didIteratorError = true;
|
|
63
|
+
_iteratorError = err;
|
|
64
|
+
} finally {
|
|
65
|
+
try {
|
|
66
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
67
|
+
_iterator.return();
|
|
68
|
+
}
|
|
69
|
+
} finally {
|
|
70
|
+
if (_didIteratorError) {
|
|
71
|
+
throw _iteratorError;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
wss.on("connection", function (clientWs, req) {
|
|
77
|
+
var clientId = `client#${nextClientId++}`;
|
|
78
|
+
var query = Object.fromEntries(new URL((req === null || req === void 0 ? void 0 : req.url) || "/", "http://localhost").searchParams);
|
|
79
|
+
clients.set(clientId, {
|
|
80
|
+
ws: clientWs,
|
|
81
|
+
query
|
|
82
|
+
});
|
|
83
|
+
var remove = function () {
|
|
84
|
+
return clients.delete(clientId);
|
|
85
|
+
};
|
|
86
|
+
clientWs.on("close", remove);
|
|
87
|
+
clientWs.on("error", remove);
|
|
88
|
+
clientWs.on("message", function (data, isBinary) {
|
|
89
|
+
if (isBinary) return;
|
|
90
|
+
var message;
|
|
91
|
+
try {
|
|
92
|
+
message = JSON.parse(data.toString());
|
|
93
|
+
} catch (unused) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if ((message === null || message === void 0 ? void 0 : message.version) !== PROTOCOL_VERSION) return;
|
|
97
|
+
try {
|
|
98
|
+
var _message_id, _message_id1;
|
|
99
|
+
var isBroadcastMsg = typeof message.method === "string" && message.id === void 0 && message.target === void 0;
|
|
100
|
+
var isRequest = typeof message.method === "string" && typeof message.target === "string";
|
|
101
|
+
var isResponse = _type_of(message.id) === "object" && ((_message_id = message.id) === null || _message_id === void 0 ? void 0 : _message_id.requestId) !== void 0 && typeof ((_message_id1 = message.id) === null || _message_id1 === void 0 ? void 0 : _message_id1.clientId) === "string" && (message.result !== void 0 || message.error !== void 0);
|
|
102
|
+
if (isBroadcastMsg) {
|
|
103
|
+
broadcast(clientId, message);
|
|
104
|
+
} else if (isRequest) {
|
|
105
|
+
if (message.target === "server") {
|
|
106
|
+
var result;
|
|
107
|
+
if (message.method === "getid") {
|
|
108
|
+
result = clientId;
|
|
109
|
+
} else if (message.method === "getpeers") {
|
|
110
|
+
var peers = {};
|
|
111
|
+
var _iteratorNormalCompletion = true,
|
|
112
|
+
_didIteratorError = false,
|
|
113
|
+
_iteratorError = void 0;
|
|
114
|
+
try {
|
|
115
|
+
for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
116
|
+
var [otherId, other] = _step.value;
|
|
117
|
+
if (otherId !== clientId) peers[otherId] = other.query;
|
|
118
|
+
}
|
|
119
|
+
} catch (err) {
|
|
120
|
+
_didIteratorError = true;
|
|
121
|
+
_iteratorError = err;
|
|
122
|
+
} finally {
|
|
123
|
+
try {
|
|
124
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
125
|
+
_iterator.return();
|
|
126
|
+
}
|
|
127
|
+
} finally {
|
|
128
|
+
if (_didIteratorError) {
|
|
129
|
+
throw _iteratorError;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
result = peers;
|
|
134
|
+
} else {
|
|
135
|
+
throw new Error(`unknown method: ${message.method}`);
|
|
136
|
+
}
|
|
137
|
+
clientWs.send(JSON.stringify({
|
|
138
|
+
version: PROTOCOL_VERSION,
|
|
139
|
+
result,
|
|
140
|
+
id: message.id
|
|
141
|
+
}));
|
|
142
|
+
} else {
|
|
143
|
+
var target = clients.get(message.target);
|
|
144
|
+
if (!target) {
|
|
145
|
+
throw new Error(`could not find id "${message.target}" while forwarding request`);
|
|
146
|
+
}
|
|
147
|
+
target.ws.send(JSON.stringify({
|
|
148
|
+
version: PROTOCOL_VERSION,
|
|
149
|
+
method: message.method,
|
|
150
|
+
params: message.params,
|
|
151
|
+
id: message.id === void 0 ? void 0 : {
|
|
152
|
+
requestId: message.id,
|
|
153
|
+
clientId
|
|
154
|
+
}
|
|
155
|
+
}));
|
|
156
|
+
}
|
|
157
|
+
} else if (isResponse) {
|
|
158
|
+
if (!message.id) return;
|
|
159
|
+
var target1 = clients.get(message.id.clientId);
|
|
160
|
+
target1 === null || target1 === void 0 ? void 0 : target1.ws.send(JSON.stringify({
|
|
161
|
+
version: PROTOCOL_VERSION,
|
|
162
|
+
result: message.result,
|
|
163
|
+
error: message.error,
|
|
164
|
+
id: message.id.requestId
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
} catch (err) {
|
|
168
|
+
if (message.id !== void 0) {
|
|
169
|
+
try {
|
|
170
|
+
clientWs.send(JSON.stringify({
|
|
171
|
+
version: PROTOCOL_VERSION,
|
|
172
|
+
error: String(err),
|
|
173
|
+
id: message.id
|
|
174
|
+
}));
|
|
175
|
+
} catch (unused) {}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
return wss;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=createMessageSocket.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createMessageSocket_exports","__export","createMessageSocket","module","exports","import_ws","require","_type_of","obj","Symbol","constructor","PROTOCOL_VERSION","wss","WebSocketServer","noServer","clients","Map","nextClientId","broadcast","broadcasterId","message","forwarded","JSON","stringify","version","method","params","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","otherId","other","ws","send","unused","err","return","on","clientWs","req","clientId","query","Object","fromEntries","URL","url","searchParams","set","remove","delete","data","isBinary","parse","toString","_message_id","_message_id1","isBroadcastMsg","id","target","isRequest","isResponse","requestId","result","error","peers"],"sources":["../../src/createMessageSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -75,12 +75,12 @@ async function getFromPackage() {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
var foundSome = function
|
|
78
|
+
var foundSome = function (obj) {
|
|
79
79
|
return Object.keys(obj).some(function (k) {
|
|
80
80
|
return !!obj[k];
|
|
81
81
|
});
|
|
82
82
|
};
|
|
83
|
-
var detectPackageManager = async function
|
|
83
|
+
var detectPackageManager = async function () {
|
|
84
84
|
var {
|
|
85
85
|
cwd
|
|
86
86
|
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","detectPackageManager_exports","__export","detectPackageManager","module","exports","import_fs","require","import_path","import_exec","pathExists","p","promises","access","unused","hasGlobal","pm","command","process","platform","res","exec","length","getFromLockfile","cwd","arguments","yarn","npm","pnpm","bun","Promise","all","resolve","getFromPackage","json","JSON","parse","readFile","packageManager","startsWith","foundSome","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","detectPackageManager_exports","__export","detectPackageManager","module","exports","import_fs","require","import_path","import_exec","pathExists","p","promises","access","unused","hasGlobal","pm","command","process","platform","res","exec","length","getFromLockfile","cwd","arguments","yarn","npm","pnpm","bun","Promise","all","resolve","getFromPackage","json","JSON","parse","readFile","packageManager","startsWith","foundSome","obj","Object","keys","some","k","fromLockfile"],"sources":["../../src/detectPackageManager.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,4BAAA;AAAAC,QAAA,CAAAD,4BAAA;EAAAE,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA+B,CAAAK,4BAAA;AAC/B,IAAAK,SAAA,GAAAC,OAAwB;AACxB,IAAAC,WAAA,GAAqBD,OAAA;AAIrB,IAAAE,WAAe,GAAAF,OAAA,CAAW,kBAAW;AACnC,eAAIG,WAAAC,CAAA;EACF;IACA,MAAAL,SAAO,CAAAM,QAAA,CAAAC,MAAA,CAAAF,CAAA;IACT,OAAQ;EACN,SAAOG,MAAA;IACT;EACF;AAEA;AACE,eAAIC,UAAAC,EAAA;EACF;IACA,IAAAC,OAAM,GAAAC,OAAM,CAAAC,QAAA,KAAK,OAAO,YAAAH,EAAA,cAAAA,EAAA;IACxB,IAAAI,GAAO,GAAE,IAAIX,WAAA,CAAAY,IAAA,EAAAJ,OAAA;IACf,OAAQ,EAAAG,GAAA,CAAAE,MAAA;EACN,SAAOR,MAAA;IACT;EACF;AAEA;AACE,eAAaS,eAAcA,CAAA,EAAI;EAAkB,IAC/CC,GAAA,GAAAC,SAAW,CAAAH,MAAA,QAAAG,SAAQ,QAAK,SAAYA,SAAA;EAAA,IACpC,CAAAC,IAAA,EAAAC,GAAA,EAAAC,IAAW,EAAAC,GAAA,UAAAC,OAAA,CAAQC,GAAA,EACnBrB,UAAA,KAAWF,WAAA,CAAAwB,OAAA,EAAAR,GAAA,EAAQ,WAAK,IACxBd,UAAA,KAAWF,WAAA,CAAAwB,OAAA,EAAAR,GAAA,EAAQ,mBAAiB,IACrCd,UAAA,KAAAF,WAAA,CAAAwB,OAAA,EAAAR,GAAA,sBAEDd,UAAS,EAAK,GAAAF,WAAY,CAAAwB,OAAI,EAAAR,GAAA,gBAChC;EAEA;IACEK,GAAI;IACFH,IAAA;IACAE,IAAI;IACFD;EACA;AACA;AACA,eAAMM,cAAaA,CAAA;EACnB,IAAAT,GAAA,GAAAC,SAAc,CAAAH,MAAM,IAAM,IAAIG,SAAA,iBAAAA,SAAA;EAAA,IAChC,MAAAf,UAAA,KAAAF,WAAA,CAAAwB,OAAA,EAAAR,GAAA;IACF,IAAAU,IAAA,GAAAC,IAAA,CAAAC,KAAA,OAAA9B,SAAA,CAAAM,QAAA,CAAAyB,QAAA,KAAA7B,WAAA,CAAAwB,OAAA,EAAAR,GAAA;IACF,IAAAU,IAAA,CAAAI,cAAA;MAEM,IAAAZ,IAAA,IAAY,CAACQ,IAAA,CAAAI,cAAuB,CAAKC,UAAU,CAAC,MAAM,CAAC;MAEpD,IAAAX,IAAA,KAAAM,IAAA,CAAAI,cAAgC,CAAAC,UAA2B,OAAM;MAC5E,IAAMV,GAAA,KAAAK,IAAA,CAAeI,cAAM,CAAAC,UAAmB;MAC1C,IAAAZ,GAAA,GAAU,EAAAO,IAAA,CAAAI,cAAe,CAAAC,UAAA;MAC3B,OAAO;QACTV,GAAA;QAEMH,IAAA;QACFE,IAAA;QACFD;MACF;IAEA;EAAiD;AAChC;AACC,IAChBa,SAAA,GAAU,SAAAA,CAAMC,GAAA;EAAA,OAChBC,MAAU,CAAAC,IAAK,CAAAF,GAAA,EAAAG,IAAA,WAAAC,CAAA;IAChB,SAAAJ,GAAA,CAAAI,CAAA;EAED;AAAO;AACL,IACA1C,oBAAA,kBAAAA,CAAA;EAAA,IACA;IAAAqB;EAAA,IAAAC,SAAA,CAAAH,MAAA,QAAAG,SAAA,iBAAAA,SAAA;EAAA,IACAqB,YAAA,SAAAvB,eAAA,CAAAC,GAAA;EACF,IAAAgB,SAAA,CAAAM,YAAA;IACF,OAAAA,YAAA","ignoreList":[]}
|
package/dist/cjs/exec.native.js
CHANGED
|
@@ -30,11 +30,11 @@ __export(exec_exports, {
|
|
|
30
30
|
});
|
|
31
31
|
module.exports = __toCommonJS(exec_exports);
|
|
32
32
|
var import_child_process = require("child_process");
|
|
33
|
-
var exec = function
|
|
33
|
+
var exec = function (cmd, options) {
|
|
34
34
|
var _execSync;
|
|
35
35
|
return ((_execSync = (0, import_child_process.execSync)(cmd, options)) === null || _execSync === void 0 ? void 0 : _execSync.toString()) || "";
|
|
36
36
|
};
|
|
37
|
-
var execPromise = function
|
|
37
|
+
var execPromise = function (cmd, options) {
|
|
38
38
|
return new Promise(function (resolve, reject) {
|
|
39
39
|
var [command, ...args] = cmd.split(" ");
|
|
40
40
|
var child = (0, import_child_process.spawn)(command, args, {
|
|
@@ -59,7 +59,7 @@ var execPromise = function execPromise2(cmd, options) {
|
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
61
|
};
|
|
62
|
-
var execPromiseQuiet = function
|
|
62
|
+
var execPromiseQuiet = function (cmd, options) {
|
|
63
63
|
return execPromise(cmd, {
|
|
64
64
|
...options,
|
|
65
65
|
quiet: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","exec_exports","__export","exec","execPromise","execPromiseQuiet","module","exports","import_child_process","require","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","exec_exports","__export","exec","execPromise","execPromiseQuiet","module","exports","import_child_process","require","cmd","options","_execSync","execSync","toString","Promise","resolve","reject","command","args","split","child","spawn","stdio","quiet","shell","process","env","DEBUG","_child_stdout","_child_stderr","stdout","pipe","stderr","on","code","Error","error"],"sources":["../../src/exec.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,YAAA;AAAAC,QAAA,CAAAD,YAAA;EAAAE,IAAA,EAAAA,CAAA,KAAAA,IAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAX,YAAA,CAAAK,YAAmD;AAG5C,IAAAO,oBAA2B,GAAAC,OAA6C;AAC7E,IAAAN,IAAA,YAAAA,CAAOO,GAAA,EAAAC,OAAA;EACT,IAAAC,SAAA;EAEO,OAAM,EAAAA,SAAc,GACzB,IACAJ,oBAGG,CAAAK,QAAA,EAAAH,GAAA,EAAAC,OAAA,eAAAC,SAAA,uBAAAA,SAAA,CAAAE,QAAA;AACH;AACE,IAAAV,WAAO,YAAAA,CAAgBM,GAAA,EAAIC,OAAI,EAAM;EAErC,WAAMI,OAAA,WAAQC,OAAA,EAAAC,MAAA;IAAqB,IACjC,CAAAC,OAAO,KAAAC,IAAS,IAAAT,GAAQ,CAAAU,KAAA,CAAS;IAAA,IACjCC,KAAO,OAAAb,oBAAA,CAAAc,KAAA,EAAAJ,OAAA,EAAAC,IAAA;MACPI,KAAG,GAAAZ,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAa,KAAA;MACJC,KAAA;MAED,GAAKd;IACH;IACA,MAAAA,OAAM,KAAQ,IAAK,IAAAA,OAAQ,KAAM,kBAAAA,OAAA,CAAAa,KAAA,KAAAE,OAAA,CAAAC,GAAA,CAAAC,KAAA;MACnC,IAAAC,aAAA,EAAAC,aAAA;MAEA,CAAAD,aAAS,GAAUR,KAAA,CAAAU,MAAS,cAAAF,aAAA,uBAAAA,aAAA,CAAAG,IAAA,CAAAN,OAAA,CAAAK,MAAA;MAC1B,CAAAD,aAAa,GAAGT,KAAA,CAAAY,MAAA,cAAAH,aAAA,uBAAAA,aAAA,CAAAE,IAAA,CAAAN,OAAA,CAAAO,MAAA;IACd;IAAiEZ,KACnE,CAAAa,EAAA,CAAO,mBAAAC,IAAA;MACL,IAAAA,IAAA,KAAQ;QACVlB,MAAA,KAAAmB,KAAA,kCAAAD,IAAA,KAAAzB,GAAA;MACD;QAEDM,OAAS;MACP;IACF,CAAC;IACFK,KAAA,CAAAa,EAAA,oBAAAG,KAAA;MACHpB,MAAA,CAAAoB,KAAA;IAEO,EAAM;EAMX;AAAwB;AACnB,IACHhC,gBAAO,YAAAA,CAAAK,GAAA,EAAAC,OAAA;EACT,OAACP,WAAA,CAAAM,GAAA;IACH,GAAAC,OAAA","ignoreList":[]}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -19,6 +19,7 @@ var index_exports = {};
|
|
|
19
19
|
module.exports = __toCommonJS(index_exports);
|
|
20
20
|
__reExport(index_exports, require("@vxrn/debug"), module.exports);
|
|
21
21
|
__reExport(index_exports, require("@vxrn/resolve"), module.exports);
|
|
22
|
+
__reExport(index_exports, require("./createMessageSocket.cjs"), module.exports);
|
|
22
23
|
__reExport(index_exports, require("./detectPackageManager.cjs"), module.exports);
|
|
23
24
|
__reExport(index_exports, require("./exec.cjs"), module.exports);
|
|
24
25
|
__reExport(index_exports, require("./mustReplace.cjs"), module.exports);
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -21,6 +21,7 @@ var index_exports = {};
|
|
|
21
21
|
module.exports = __toCommonJS(index_exports);
|
|
22
22
|
__reExport(index_exports, require("@vxrn/debug"), module.exports);
|
|
23
23
|
__reExport(index_exports, require("@vxrn/resolve"), module.exports);
|
|
24
|
+
__reExport(index_exports, require("./createMessageSocket.native.js"), module.exports);
|
|
24
25
|
__reExport(index_exports, require("./detectPackageManager.native.js"), module.exports);
|
|
25
26
|
__reExport(index_exports, require("./exec.native.js"), module.exports);
|
|
26
27
|
__reExport(index_exports, require("./mustReplace.native.js"), module.exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAP,YAAc,CAAAK,aAAA;AACdG,UAAA,CAAAH,aAAA,EAAcI,OAAA,iBAAAH,MADd,CAAAC,OAAA;AAEAC,UAAA,CAAAH,aAAA,EAAcI,OAAA,mBAAAH,MAAA,CAAAC,OAFd;AAGAC,UAAA,CAAAH,aAAA,EAAcI,OAAA,
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAP,YAAc,CAAAK,aAAA;AACdG,UAAA,CAAAH,aAAA,EAAcI,OAAA,iBAAAH,MADd,CAAAC,OAAA;AAEAC,UAAA,CAAAH,aAAA,EAAcI,OAAA,mBAAAH,MAAA,CAAAC,OAFd;AAGAC,UAAA,CAAAH,aAAA,EAAcI,OAAA,qCAAAH,MAHd,CAAAC,OAAA;AAIAC,UAAA,CAAAH,aAAA,EAAcI,OAAA,mCAJd,GAAAH,MAAA,CAAAC,OAAA;AAKAC,UAAA,CAAAH,aAAA,EAAcI,OAAA,sBAAAH,MAAA,CALdC,OAAA","ignoreList":[]}
|
|
@@ -31,8 +31,6 @@ var import_fs = require("fs");
|
|
|
31
31
|
var import_os = require("os");
|
|
32
32
|
var import_path = require("path");
|
|
33
33
|
function _instanceof(left, right) {
|
|
34
|
-
"@swc/helpers - instanceof";
|
|
35
|
-
|
|
36
34
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
37
35
|
return !!right[Symbol.hasInstance](left);
|
|
38
36
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mustReplace_exports","__export","mustReplace","module","exports","import_fs","require","import_os","import_path","_instanceof","left","right","Symbol","hasInstance","source","replacements","sourceOut","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","find","replace","optional","found","RegExp","test","includes"],"sources":["../../src/mustReplace.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,mBAAA;AAAAC,QAAA,CAAAD,mBAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA8B,CAAAK,mBAAA;AAC9B,IAAAK,SAAA,GAAAC,OAAuB;AACvB,IAAAC,SAAA,GAAAD,OAAqB;AAEd,IAAAE,WAAS,GAAAF,OACd,OACA;AAMA,SAAIG,WAAYA,CAAAC,IAAA,EAAAC,KAAA;EAChB,
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mustReplace_exports","__export","mustReplace","module","exports","import_fs","require","import_os","import_path","_instanceof","left","right","Symbol","hasInstance","source","replacements","sourceOut","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","find","replace","optional","found","RegExp","test","includes"],"sources":["../../src/mustReplace.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,mBAAA;AAAAC,QAAA,CAAAD,mBAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA8B,CAAAK,mBAAA;AAC9B,IAAAK,SAAA,GAAAC,OAAuB;AACvB,IAAAC,SAAA,GAAAD,OAAqB;AAEd,IAAAE,WAAS,GAAAF,OACd,OACA;AAMA,SAAIG,WAAYA,CAAAC,IAAA,EAAAC,KAAA;EAChB,IAAAA,KAAA,IAAa,QAAM,OAASC,MAAA,KAAS,WAAK,IAAAD,KAAc,CAAAC,MAAA,CAAAC,WAAA;IACtD,OAAK,EAAAF,KAAA,CAAUC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EACb;IAEA,OAAKA,IAAA,YAAOC,KAAA;EACV;AACA;AACA,SAAAT,WAAUA,CAAAY,MAAA,EAAAC,YAAA;EAAA,IAAAC,SACR,GAAAF,MAAA;EAAuF,IAAAG,yBACzF;IAAAC,iBAAA;IAAAC,cAAA;EAAA,IACF;IACF,SAAAC,SAAA,GAAAL,YAAA,CAAAH,MAAA,CAAAS,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MAGA;QAAAQ,IAAY;QAAAC,OAAA;QAAUC;MAAQ,IAAML,KAAA,CAAAvB,KAAO;MAC7C,KAAA4B,QAAA;QACA,IAAOC,KAAA,GAAAnB,WAAA,CAAAgB,IAAA,EAAAI,MAAA,IAAAJ,IAAA,CAAAK,IAAA,CAAAd,SAAA,IAAAA,SAAA,CAAAe,QAAA,CAAAN,IAAA;QACT,KAAAG,KAAA","ignoreList":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { WebSocketServer } from "ws";
|
|
2
|
+
function createMessageSocket() {
|
|
3
|
+
const PROTOCOL_VERSION = 2;
|
|
4
|
+
const wss = new WebSocketServer({
|
|
5
|
+
noServer: true
|
|
6
|
+
});
|
|
7
|
+
const clients = /* @__PURE__ */new Map();
|
|
8
|
+
let nextClientId = 0;
|
|
9
|
+
function broadcast(broadcasterId, message) {
|
|
10
|
+
const forwarded = JSON.stringify({
|
|
11
|
+
version: PROTOCOL_VERSION,
|
|
12
|
+
method: message.method,
|
|
13
|
+
params: message.params
|
|
14
|
+
});
|
|
15
|
+
for (const [otherId, other] of clients) {
|
|
16
|
+
if (otherId !== broadcasterId) {
|
|
17
|
+
try {
|
|
18
|
+
other.ws.send(forwarded);
|
|
19
|
+
} catch {}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
wss.on("connection", (clientWs, req) => {
|
|
24
|
+
const clientId = `client#${nextClientId++}`;
|
|
25
|
+
const query = Object.fromEntries(new URL(req?.url || "/", "http://localhost").searchParams);
|
|
26
|
+
clients.set(clientId, {
|
|
27
|
+
ws: clientWs,
|
|
28
|
+
query
|
|
29
|
+
});
|
|
30
|
+
const remove = () => clients.delete(clientId);
|
|
31
|
+
clientWs.on("close", remove);
|
|
32
|
+
clientWs.on("error", remove);
|
|
33
|
+
clientWs.on("message", (data, isBinary) => {
|
|
34
|
+
if (isBinary) return;
|
|
35
|
+
let message;
|
|
36
|
+
try {
|
|
37
|
+
message = JSON.parse(data.toString());
|
|
38
|
+
} catch {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (message?.version !== PROTOCOL_VERSION) return;
|
|
42
|
+
try {
|
|
43
|
+
const isBroadcastMsg = typeof message.method === "string" && message.id === void 0 && message.target === void 0;
|
|
44
|
+
const isRequest = typeof message.method === "string" && typeof message.target === "string";
|
|
45
|
+
const isResponse = typeof message.id === "object" && message.id?.requestId !== void 0 && typeof message.id?.clientId === "string" && (message.result !== void 0 || message.error !== void 0);
|
|
46
|
+
if (isBroadcastMsg) {
|
|
47
|
+
broadcast(clientId, message);
|
|
48
|
+
} else if (isRequest) {
|
|
49
|
+
if (message.target === "server") {
|
|
50
|
+
let result;
|
|
51
|
+
if (message.method === "getid") {
|
|
52
|
+
result = clientId;
|
|
53
|
+
} else if (message.method === "getpeers") {
|
|
54
|
+
const peers = {};
|
|
55
|
+
for (const [otherId, other] of clients) {
|
|
56
|
+
if (otherId !== clientId) peers[otherId] = other.query;
|
|
57
|
+
}
|
|
58
|
+
result = peers;
|
|
59
|
+
} else {
|
|
60
|
+
throw new Error(`unknown method: ${message.method}`);
|
|
61
|
+
}
|
|
62
|
+
clientWs.send(JSON.stringify({
|
|
63
|
+
version: PROTOCOL_VERSION,
|
|
64
|
+
result,
|
|
65
|
+
id: message.id
|
|
66
|
+
}));
|
|
67
|
+
} else {
|
|
68
|
+
const target = clients.get(message.target);
|
|
69
|
+
if (!target) {
|
|
70
|
+
throw new Error(`could not find id "${message.target}" while forwarding request`);
|
|
71
|
+
}
|
|
72
|
+
target.ws.send(JSON.stringify({
|
|
73
|
+
version: PROTOCOL_VERSION,
|
|
74
|
+
method: message.method,
|
|
75
|
+
params: message.params,
|
|
76
|
+
id: message.id === void 0 ? void 0 : {
|
|
77
|
+
requestId: message.id,
|
|
78
|
+
clientId
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
} else if (isResponse) {
|
|
83
|
+
if (!message.id) return;
|
|
84
|
+
const target = clients.get(message.id.clientId);
|
|
85
|
+
target?.ws.send(JSON.stringify({
|
|
86
|
+
version: PROTOCOL_VERSION,
|
|
87
|
+
result: message.result,
|
|
88
|
+
error: message.error,
|
|
89
|
+
id: message.id.requestId
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
} catch (err) {
|
|
93
|
+
if (message.id !== void 0) {
|
|
94
|
+
try {
|
|
95
|
+
clientWs.send(JSON.stringify({
|
|
96
|
+
version: PROTOCOL_VERSION,
|
|
97
|
+
error: String(err),
|
|
98
|
+
id: message.id
|
|
99
|
+
}));
|
|
100
|
+
} catch {}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
return wss;
|
|
106
|
+
}
|
|
107
|
+
export { createMessageSocket };
|
|
108
|
+
//# sourceMappingURL=createMessageSocket.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WebSocketServer","createMessageSocket","PROTOCOL_VERSION","wss","noServer","clients","Map","nextClientId","broadcast","broadcasterId","message","forwarded","JSON","stringify","version","method","params","otherId","other","ws","send","on","clientWs","req","clientId","query","Object","fromEntries","URL","url","searchParams","set","remove","delete","data","isBinary","parse","toString","isBroadcastMsg","id","target","isRequest","isResponse","requestId","result","error","peers","Error","get","err","String"],"sources":["../../src/createMessageSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { WebSocketServer } from "ws";
|
|
2
|
+
function _type_of(obj) {
|
|
3
|
+
"@swc/helpers - typeof";
|
|
4
|
+
|
|
5
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
6
|
+
}
|
|
7
|
+
function createMessageSocket() {
|
|
8
|
+
var PROTOCOL_VERSION = 2;
|
|
9
|
+
var wss = new WebSocketServer({
|
|
10
|
+
noServer: true
|
|
11
|
+
});
|
|
12
|
+
var clients = /* @__PURE__ */new Map();
|
|
13
|
+
var nextClientId = 0;
|
|
14
|
+
function broadcast(broadcasterId, message) {
|
|
15
|
+
var forwarded = JSON.stringify({
|
|
16
|
+
version: PROTOCOL_VERSION,
|
|
17
|
+
method: message.method,
|
|
18
|
+
params: message.params
|
|
19
|
+
});
|
|
20
|
+
var _iteratorNormalCompletion = true,
|
|
21
|
+
_didIteratorError = false,
|
|
22
|
+
_iteratorError = void 0;
|
|
23
|
+
try {
|
|
24
|
+
for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
25
|
+
var [otherId, other] = _step.value;
|
|
26
|
+
if (otherId !== broadcasterId) {
|
|
27
|
+
try {
|
|
28
|
+
other.ws.send(forwarded);
|
|
29
|
+
} catch (unused) {}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
} catch (err) {
|
|
33
|
+
_didIteratorError = true;
|
|
34
|
+
_iteratorError = err;
|
|
35
|
+
} finally {
|
|
36
|
+
try {
|
|
37
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
38
|
+
_iterator.return();
|
|
39
|
+
}
|
|
40
|
+
} finally {
|
|
41
|
+
if (_didIteratorError) {
|
|
42
|
+
throw _iteratorError;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
wss.on("connection", function (clientWs, req) {
|
|
48
|
+
var clientId = `client#${nextClientId++}`;
|
|
49
|
+
var query = Object.fromEntries(new URL((req === null || req === void 0 ? void 0 : req.url) || "/", "http://localhost").searchParams);
|
|
50
|
+
clients.set(clientId, {
|
|
51
|
+
ws: clientWs,
|
|
52
|
+
query
|
|
53
|
+
});
|
|
54
|
+
var remove = function () {
|
|
55
|
+
return clients.delete(clientId);
|
|
56
|
+
};
|
|
57
|
+
clientWs.on("close", remove);
|
|
58
|
+
clientWs.on("error", remove);
|
|
59
|
+
clientWs.on("message", function (data, isBinary) {
|
|
60
|
+
if (isBinary) return;
|
|
61
|
+
var message;
|
|
62
|
+
try {
|
|
63
|
+
message = JSON.parse(data.toString());
|
|
64
|
+
} catch (unused) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if ((message === null || message === void 0 ? void 0 : message.version) !== PROTOCOL_VERSION) return;
|
|
68
|
+
try {
|
|
69
|
+
var _message_id, _message_id1;
|
|
70
|
+
var isBroadcastMsg = typeof message.method === "string" && message.id === void 0 && message.target === void 0;
|
|
71
|
+
var isRequest = typeof message.method === "string" && typeof message.target === "string";
|
|
72
|
+
var isResponse = _type_of(message.id) === "object" && ((_message_id = message.id) === null || _message_id === void 0 ? void 0 : _message_id.requestId) !== void 0 && typeof ((_message_id1 = message.id) === null || _message_id1 === void 0 ? void 0 : _message_id1.clientId) === "string" && (message.result !== void 0 || message.error !== void 0);
|
|
73
|
+
if (isBroadcastMsg) {
|
|
74
|
+
broadcast(clientId, message);
|
|
75
|
+
} else if (isRequest) {
|
|
76
|
+
if (message.target === "server") {
|
|
77
|
+
var result;
|
|
78
|
+
if (message.method === "getid") {
|
|
79
|
+
result = clientId;
|
|
80
|
+
} else if (message.method === "getpeers") {
|
|
81
|
+
var peers = {};
|
|
82
|
+
var _iteratorNormalCompletion = true,
|
|
83
|
+
_didIteratorError = false,
|
|
84
|
+
_iteratorError = void 0;
|
|
85
|
+
try {
|
|
86
|
+
for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
87
|
+
var [otherId, other] = _step.value;
|
|
88
|
+
if (otherId !== clientId) peers[otherId] = other.query;
|
|
89
|
+
}
|
|
90
|
+
} catch (err) {
|
|
91
|
+
_didIteratorError = true;
|
|
92
|
+
_iteratorError = err;
|
|
93
|
+
} finally {
|
|
94
|
+
try {
|
|
95
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
96
|
+
_iterator.return();
|
|
97
|
+
}
|
|
98
|
+
} finally {
|
|
99
|
+
if (_didIteratorError) {
|
|
100
|
+
throw _iteratorError;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
result = peers;
|
|
105
|
+
} else {
|
|
106
|
+
throw new Error(`unknown method: ${message.method}`);
|
|
107
|
+
}
|
|
108
|
+
clientWs.send(JSON.stringify({
|
|
109
|
+
version: PROTOCOL_VERSION,
|
|
110
|
+
result,
|
|
111
|
+
id: message.id
|
|
112
|
+
}));
|
|
113
|
+
} else {
|
|
114
|
+
var target = clients.get(message.target);
|
|
115
|
+
if (!target) {
|
|
116
|
+
throw new Error(`could not find id "${message.target}" while forwarding request`);
|
|
117
|
+
}
|
|
118
|
+
target.ws.send(JSON.stringify({
|
|
119
|
+
version: PROTOCOL_VERSION,
|
|
120
|
+
method: message.method,
|
|
121
|
+
params: message.params,
|
|
122
|
+
id: message.id === void 0 ? void 0 : {
|
|
123
|
+
requestId: message.id,
|
|
124
|
+
clientId
|
|
125
|
+
}
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
} else if (isResponse) {
|
|
129
|
+
if (!message.id) return;
|
|
130
|
+
var target1 = clients.get(message.id.clientId);
|
|
131
|
+
target1 === null || target1 === void 0 ? void 0 : target1.ws.send(JSON.stringify({
|
|
132
|
+
version: PROTOCOL_VERSION,
|
|
133
|
+
result: message.result,
|
|
134
|
+
error: message.error,
|
|
135
|
+
id: message.id.requestId
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
} catch (err) {
|
|
139
|
+
if (message.id !== void 0) {
|
|
140
|
+
try {
|
|
141
|
+
clientWs.send(JSON.stringify({
|
|
142
|
+
version: PROTOCOL_VERSION,
|
|
143
|
+
error: String(err),
|
|
144
|
+
id: message.id
|
|
145
|
+
}));
|
|
146
|
+
} catch (unused) {}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
return wss;
|
|
152
|
+
}
|
|
153
|
+
export { createMessageSocket };
|
|
154
|
+
//# sourceMappingURL=createMessageSocket.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WebSocketServer","_type_of","obj","Symbol","constructor","createMessageSocket","PROTOCOL_VERSION","wss","noServer","clients","Map","nextClientId","broadcast","broadcasterId","message","forwarded","JSON","stringify","version","method","params","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","otherId","other","value","ws","send","unused","err","return","on","clientWs","req","clientId","query","Object","fromEntries","URL","url","searchParams","set","remove","delete","data","isBinary","parse","toString","_message_id","_message_id1","isBroadcastMsg","id","target","isRequest","isResponse","requestId","result","error","peers"],"sources":["../../src/createMessageSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -46,12 +46,12 @@ async function getFromPackage() {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
var foundSome = function
|
|
49
|
+
var foundSome = function (obj) {
|
|
50
50
|
return Object.keys(obj).some(function (k) {
|
|
51
51
|
return !!obj[k];
|
|
52
52
|
});
|
|
53
53
|
};
|
|
54
|
-
var detectPackageManager = async function
|
|
54
|
+
var detectPackageManager = async function () {
|
|
55
55
|
var {
|
|
56
56
|
cwd
|
|
57
57
|
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["promises","fs","resolve","exec","pathExists","p","access","unused","hasGlobal","pm","command","process","platform","res","length","getFromLockfile","cwd","arguments","yarn","npm","pnpm","bun","Promise","all","getFromPackage","json","JSON","parse","readFile","packageManager","startsWith","foundSome","
|
|
1
|
+
{"version":3,"names":["promises","fs","resolve","exec","pathExists","p","access","unused","hasGlobal","pm","command","process","platform","res","length","getFromLockfile","cwd","arguments","yarn","npm","pnpm","bun","Promise","all","getFromPackage","json","JSON","parse","readFile","packageManager","startsWith","foundSome","obj","Object","keys","some","k","detectPackageManager","fromLockfile"],"sources":["../../src/detectPackageManager.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,EAAA,QAAU;AAC/B,SAASC,OAAA,QAAe;AACxB,SAASC,IAAA,QAAY;AAIrB,eAAeC,WAAWC,CAAA,EAAW;EACnC,IAAI;IACF,MAAMJ,EAAA,CAAGK,MAAA,CAAOD,CAAC;IACjB,OAAO;EACT,SAAQE,MAAA;IACN,OAAO;EACT;AACF;AAEA,eAAeC,UAAUC,EAAA,EAA0C;EACjE,IAAI;IACF,IAAAC,OAAM,GAAAC,OAAU,CAAAC,QAAQ,YAAa,YAAUH,EAAS,EAAE,YAAKA,EAAS,EAAE;IAC1E,IAAAI,GAAM,GAAAV,IAAM,CAAAO,OAAK;IACjB,OAAO,CAAC,CAACG,GAAA,CAAIC,MAAA;EACf,SAAQP,MAAA;IACN,OAAO;EACT;AACF;AAEA,eAAeQ,gBAAA,EAAgB;EAC7B,IAAAC,GAAO,GAAAC,SAAW,CAAAH,MAAM,GAAG,KAAIG,SAAM,EAAQ,MAAI,SAAAA,SAAA;EAAA,IAC/C,CAAAC,IAAA,EAAAC,GAAW,EAAAC,IAAA,EAAQC,GAAA,CAAK,SAAAC,OAAY,CAAAC,GAAA,EACpCnB,UAAA,CAAWF,OAAA,CAAQc,GAAA,EAAK,eACxBZ,UAAA,CAAWF,OAAA,CAAQc,GAAA,EAAK,mBAAiB,IACzCZ,UAAA,CAAWF,OAAA,CAAQc,GAAA,EAAK,gBAAY,IACrCZ,UAAA,CAAAF,OAAA,CAAAc,GAAA,gBAED;EACF;IAEAK,GAAA;IACEH,IAAI;IACFE,IAAA;IACAD;EACE;AACA;AACA,eAAMK,cAAaA,CAAA;EACnB,IAAAR,GAAA,GAAMC,SAAQ,CAAAH,MAAK,QAAAG,SAAe,QAAW,KAAK,IAAAA,SAAA;EAClD,UAAAb,UAAc,CAAAF,OAAM,CAAAc,GAAM,EAAI;IAChC,IAAAS,IAAA,GAAAC,IAAA,CAAAC,KAAA,OAAA1B,EAAA,CAAA2B,QAAA,CAAA1B,OAAA,CAAAc,GAAA;IACF,IAAAS,IAAA,CAAAI,cAAA;MACF,IAAAX,IAAA,KAAAO,IAAA,CAAAI,cAAA,CAAAC,UAAA;MAEM,IAAAV,IAAA,IAAY,CAACK,IAAA,CAAAI,cAAuB,CAAKC,UAAU,CAAC,MAAM,CAAC;MAEpD,IAAAT,GAAA,KAAAI,IAAA,CAAAI,cAA8B,CAAEC,UAA2B,MAAM;MAC5E,IAAMX,GAAA,KAAAM,IAAA,CAAeI,cAAM,CAAAC,UAAmB;MAC1C;QACFT,GAAO;QACTH,IAAA;QAEME,IAAA;QACFD;MACF;IACF;EAEA;AAAiD;AAChC,IACfY,SAAA,GAAU,SAAAA,CAAMC,GAAA;EAAA,OAChBC,MAAU,CAAAC,IAAM,CAAAF,GAAA,EAAAG,IAAA,WAAAC,CAAA;IAChB,SAAAJ,GAAU,CAAAI,CAAA,CAAK;EACjB,CAAC;AAED;AAAO,IACLC,oBAAA,kBAAAA,CAAA;EAAA,IACA;IAAArB;EAAA,IAAAC,SAAA,CAAAH,MAAA,QAAAG,SAAA,iBAAAA,SAAA;EAAA,IACAqB,YAAA,SAAAvB,eAAA,CAAAC,GAAA;EAAA,IACAe,SAAA,CAAAO,YAAA;IACF,OAAAA,YAAA;EACF","ignoreList":[]}
|
package/dist/esm/exec.native.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { execSync, spawn } from "child_process";
|
|
2
|
-
var exec = function
|
|
2
|
+
var exec = function (cmd, options) {
|
|
3
3
|
var _execSync;
|
|
4
4
|
return ((_execSync = execSync(cmd, options)) === null || _execSync === void 0 ? void 0 : _execSync.toString()) || "";
|
|
5
5
|
};
|
|
6
|
-
var execPromise = function
|
|
6
|
+
var execPromise = function (cmd, options) {
|
|
7
7
|
return new Promise(function (resolve, reject) {
|
|
8
8
|
var [command, ...args] = cmd.split(" ");
|
|
9
9
|
var child = spawn(command, args, {
|
|
@@ -28,7 +28,7 @@ var execPromise = function execPromise2(cmd, options) {
|
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
|
-
var execPromiseQuiet = function
|
|
31
|
+
var execPromiseQuiet = function (cmd, options) {
|
|
32
32
|
return execPromise(cmd, {
|
|
33
33
|
...options,
|
|
34
34
|
quiet: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["execSync","spawn","exec","
|
|
1
|
+
{"version":3,"names":["execSync","spawn","exec","cmd","options","_execSync","toString","execPromise","Promise","resolve","reject","command","args","split","child","stdio","quiet","shell","process","env","DEBUG","_child_stdout","_child_stderr","stdout","pipe","stderr","on","code","Error","error","execPromiseQuiet"],"sources":["../../src/exec.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAA6BC,KAAA,QAAa;AAG5C,IAAAC,IAAM,YAAAA,CAAqBC,GAAA,EAAAC,OAA6C;EAC7E,IAAAC,SAAO;EACT,SAAAA,SAAA,GAAAL,QAAA,CAAAG,GAAA,EAAAC,OAAA,eAAAC,SAAA,uBAAAA,SAAA,CAAAC,QAAA;AAEO;AAML,IAAAC,WAAW,YAAAA,CAAeJ,GAAA,EAASC,OAAA;EACjC,WAAOI,OAAS,WAAOC,OAAQ,EAAAC,MAAS;IAExC,KAAAC,OAAM,EAAQ,GAAAC,IAAM,IAAAT,GAAA,CAASU,KAAA,CAAM;IAAA,IACjCC,KAAO,GAAAb,KAAA,CAASU,OAAA,EAAQC,IAAA;MACxBG,KAAA,EAAO,CAAAX,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAY,KAAA;MACPC,KAAG;MACJ,GAAAb;IAED;IACE,MAAAA,OAAM,KAAQ,IAAK,IAAAA,OAAQ,KAAM,kBAAAA,OAAA,CAAAY,KAAA,KAAAE,OAAA,CAAAC,GAAA,CAAAC,KAAA;MACjC,IAAAC,aAAc,EAAKC,aAAQ;MAC7B,CAAAD,aAAA,GAAAP,KAAA,CAAAS,MAAA,cAAAF,aAAA,uBAAAA,aAAA,CAAAG,IAAA,CAAAN,OAAA,CAAAK,MAAA;MAEA,CAAAD,aAAS,GAAUR,KAAA,CAAAW,MAAS,cAAAH,aAAA,uBAAAA,aAAA,CAAAE,IAAA,CAAAN,OAAA,CAAAO,MAAA;IAC1B;IACEX,KAAA,CAAAY,EAAA,QAAW,YAAMC,IAAA;MACnB,IAAAA,IAAO;QACLjB,MAAA,KAAQkB,KAAA,kCAAAD,IAAA,KAAAxB,GAAA;MACV;QACDM,OAAA;MAED;IACE;IACFK,KAAC,CAAAY,EAAA,oBAAAG,KAAA;MACFnB,MAAA,CAAAmB,KAAA;IACH;EAEO;AAML;AAAwB,IACtBC,gBAAG,YAAAA,CAAA3B,GAAA,EAAAC,OAAA;EAAA,OACHG,WAAO,CAAAJ,GAAA;IACR,GAAAC,OAAA;IACHY,KAAA","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -2,8 +2,6 @@ import { writeFileSync } from "fs";
|
|
|
2
2
|
import { tmpdir } from "os";
|
|
3
3
|
import { join } from "path";
|
|
4
4
|
function _instanceof(left, right) {
|
|
5
|
-
"@swc/helpers - instanceof";
|
|
6
|
-
|
|
7
5
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
8
6
|
return !!right[Symbol.hasInstance](left);
|
|
9
7
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["writeFileSync","tmpdir","join","_instanceof","left","right","Symbol","hasInstance","mustReplace","source","replacements","sourceOut","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","find","replace","optional","value","found","RegExp","test","includes"],"sources":["../../src/mustReplace.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAqB;AAC9B,SAASC,MAAA,QAAc;AACvB,SAASC,IAAA,QAAY;AAEd,SAASC,YACdC,IAAA,EAAAC,KACA;EAMA,
|
|
1
|
+
{"version":3,"names":["writeFileSync","tmpdir","join","_instanceof","left","right","Symbol","hasInstance","mustReplace","source","replacements","sourceOut","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","find","replace","optional","value","found","RegExp","test","includes","tmpPath","Math","random"],"sources":["../../src/mustReplace.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAqB;AAC9B,SAASC,MAAA,QAAc;AACvB,SAASC,IAAA,QAAY;AAEd,SAASC,YACdC,IAAA,EAAAC,KACA;EAMA,IAAIA,KAAA,QAAY,WAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IAChB,SAAWF,KAAE,CAAAC,MAAM,CAAAC,WAAS,EAASH,IAAA,CAAK;EACxC,OAAK;IACH,OAAAA,IAAM,YACJC,KAAA;EACF;AACE;AACA,SAAAG,YAAAC,MAAc,EAAAC,YAAS,EAAW;EAClC,IAAAC,SAAM,GAAIF,MAAA;EAAA,IAAAG,yBACR,OAAyB;IAAIC,iBAAA;IAAAC,cAAA,SAAmD;EAAO;IACzF,KACF,IAAAC,SAAA,GAAAL,YAAA,CAAAJ,MAAA,CAAAU,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MACF;QAAAQ,IAAA;QAAAC,OAAA;QAAAC;MAAA,IAAAL,KAAA,CAAAM,KAAA;MAGA,KAAAD,QAAY;QACd,IAAAE,KAAA,GAAArB,WAAA,CAAAiB,IAAA,EAAAK,MAAA,IAAAL,IAAA,CAAAM,IAAA,CAAAf,SAAA,IAAAA,SAAA,CAAAgB,QAAA,CAAAP,IAAA;QACA,IAAO,CAAAI,KAAA;UACT,IAAAI,OAAA,GAAA1B,IAAA,CAAAD,MAAA,qBAAA4B,IAAA,CAAAC,MAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vxrn/utils",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.2",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
@@ -30,11 +30,13 @@
|
|
|
30
30
|
"typecheck": "tsc --noEmit"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@vxrn/debug": "1.20.
|
|
34
|
-
"@vxrn/resolve": "1.20.
|
|
33
|
+
"@vxrn/debug": "1.20.2",
|
|
34
|
+
"@vxrn/resolve": "1.20.2",
|
|
35
|
+
"ws": "^8.21.0"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
|
-
"@tamagui/build": "2.3.0"
|
|
38
|
+
"@tamagui/build": "2.3.0",
|
|
39
|
+
"@types/ws": "^8.18.1"
|
|
38
40
|
},
|
|
39
41
|
"publishConfig": {
|
|
40
42
|
"access": "public"
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { WebSocketServer } from 'ws'
|
|
2
|
+
|
|
3
|
+
// metro parity: the packager message socket, mirroring
|
|
4
|
+
// @react-native-community/cli-server-api createMessageSocketEndpoint (protocol v2:
|
|
5
|
+
// broadcast / request / response routing, getid + getpeers server methods). RN's
|
|
6
|
+
// packager connection dials /message on launch; an unanswered upgrade leaves the
|
|
7
|
+
// socket dangling forever, and chromium then queues every later websocket handshake
|
|
8
|
+
// to the same host:port behind it (blocking e.g. zero /sync in sootsim standalone).
|
|
9
|
+
export function createMessageSocket() {
|
|
10
|
+
const PROTOCOL_VERSION = 2
|
|
11
|
+
const wss = new WebSocketServer({ noServer: true })
|
|
12
|
+
const clients = new Map<string, { ws: import('ws').WebSocket; query: Record<string, string> }>()
|
|
13
|
+
let nextClientId = 0
|
|
14
|
+
|
|
15
|
+
function broadcast(broadcasterId: string | null, message: { method: string; params?: unknown }) {
|
|
16
|
+
const forwarded = JSON.stringify({
|
|
17
|
+
version: PROTOCOL_VERSION,
|
|
18
|
+
method: message.method,
|
|
19
|
+
params: message.params,
|
|
20
|
+
})
|
|
21
|
+
for (const [otherId, other] of clients) {
|
|
22
|
+
if (otherId !== broadcasterId) {
|
|
23
|
+
try {
|
|
24
|
+
other.ws.send(forwarded)
|
|
25
|
+
} catch {}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
wss.on('connection', (clientWs, req) => {
|
|
31
|
+
const clientId = `client#${nextClientId++}`
|
|
32
|
+
const query = Object.fromEntries(new URL(req?.url || '/', 'http://localhost').searchParams)
|
|
33
|
+
clients.set(clientId, { ws: clientWs, query })
|
|
34
|
+
const remove = () => clients.delete(clientId)
|
|
35
|
+
clientWs.on('close', remove)
|
|
36
|
+
clientWs.on('error', remove)
|
|
37
|
+
clientWs.on('message', (data, isBinary) => {
|
|
38
|
+
if (isBinary) return
|
|
39
|
+
let message: any
|
|
40
|
+
try {
|
|
41
|
+
message = JSON.parse(data.toString())
|
|
42
|
+
} catch {
|
|
43
|
+
return
|
|
44
|
+
}
|
|
45
|
+
if (message?.version !== PROTOCOL_VERSION) return
|
|
46
|
+
try {
|
|
47
|
+
const isBroadcastMsg =
|
|
48
|
+
typeof message.method === 'string' &&
|
|
49
|
+
message.id === undefined &&
|
|
50
|
+
message.target === undefined
|
|
51
|
+
const isRequest = typeof message.method === 'string' && typeof message.target === 'string'
|
|
52
|
+
const isResponse =
|
|
53
|
+
typeof message.id === 'object' &&
|
|
54
|
+
message.id?.requestId !== undefined &&
|
|
55
|
+
typeof message.id?.clientId === 'string' &&
|
|
56
|
+
(message.result !== undefined || message.error !== undefined)
|
|
57
|
+
|
|
58
|
+
if (isBroadcastMsg) {
|
|
59
|
+
broadcast(clientId, message)
|
|
60
|
+
} else if (isRequest) {
|
|
61
|
+
if (message.target === 'server') {
|
|
62
|
+
let result: unknown
|
|
63
|
+
if (message.method === 'getid') {
|
|
64
|
+
result = clientId
|
|
65
|
+
} else if (message.method === 'getpeers') {
|
|
66
|
+
const peers: Record<string, Record<string, string>> = {}
|
|
67
|
+
for (const [otherId, other] of clients) {
|
|
68
|
+
if (otherId !== clientId) peers[otherId] = other.query
|
|
69
|
+
}
|
|
70
|
+
result = peers
|
|
71
|
+
} else {
|
|
72
|
+
throw new Error(`unknown method: ${message.method}`)
|
|
73
|
+
}
|
|
74
|
+
clientWs.send(JSON.stringify({ version: PROTOCOL_VERSION, result, id: message.id }))
|
|
75
|
+
} else {
|
|
76
|
+
const target = clients.get(message.target)
|
|
77
|
+
if (!target) {
|
|
78
|
+
throw new Error(`could not find id "${message.target}" while forwarding request`)
|
|
79
|
+
}
|
|
80
|
+
target.ws.send(
|
|
81
|
+
JSON.stringify({
|
|
82
|
+
version: PROTOCOL_VERSION,
|
|
83
|
+
method: message.method,
|
|
84
|
+
params: message.params,
|
|
85
|
+
id: message.id === undefined ? undefined : { requestId: message.id, clientId },
|
|
86
|
+
})
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
} else if (isResponse) {
|
|
90
|
+
if (!message.id) return
|
|
91
|
+
const target = clients.get(message.id.clientId)
|
|
92
|
+
target?.ws.send(
|
|
93
|
+
JSON.stringify({
|
|
94
|
+
version: PROTOCOL_VERSION,
|
|
95
|
+
result: message.result,
|
|
96
|
+
error: message.error,
|
|
97
|
+
id: message.id.requestId,
|
|
98
|
+
})
|
|
99
|
+
)
|
|
100
|
+
}
|
|
101
|
+
} catch (err) {
|
|
102
|
+
if (message.id !== undefined) {
|
|
103
|
+
try {
|
|
104
|
+
clientWs.send(
|
|
105
|
+
JSON.stringify({ version: PROTOCOL_VERSION, error: String(err), id: message.id })
|
|
106
|
+
)
|
|
107
|
+
} catch {}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
return wss
|
|
114
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMessageSocket.d.ts","sourceRoot":"","sources":["../src/createMessageSocket.ts"],"names":[],"mappings":"AAQA,wBAAgB,mBAAmB,4FAyGlC"}
|
package/types/index.d.ts
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA"}
|