@vxrn/utils 1.25.5 → 1.25.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/cjs/createMessageSocket.cjs +133 -0
  2. package/dist/cjs/createMessageSocket.native.js +182 -0
  3. package/dist/cjs/createMessageSocket.native.js.map +1 -0
  4. package/dist/cjs/detectPackageManager.cjs +93 -0
  5. package/dist/cjs/detectPackageManager.native.js +103 -0
  6. package/dist/cjs/detectPackageManager.native.js.map +1 -0
  7. package/dist/cjs/exec.cjs +63 -0
  8. package/dist/cjs/exec.native.js +68 -0
  9. package/dist/cjs/exec.native.js.map +1 -0
  10. package/dist/cjs/index.cjs +25 -0
  11. package/dist/cjs/index.native.js +28 -0
  12. package/dist/cjs/index.native.js.map +1 -0
  13. package/dist/cjs/mustReplace.cjs +49 -0
  14. package/dist/cjs/mustReplace.native.js +78 -0
  15. package/dist/cjs/mustReplace.native.js.map +1 -0
  16. package/dist/esm/createMessageSocket.mjs +108 -0
  17. package/dist/esm/createMessageSocket.mjs.map +1 -0
  18. package/dist/esm/createMessageSocket.native.js +154 -0
  19. package/dist/esm/createMessageSocket.native.js.map +1 -0
  20. package/dist/esm/detectPackageManager.mjs +68 -0
  21. package/dist/esm/detectPackageManager.mjs.map +1 -0
  22. package/dist/esm/detectPackageManager.native.js +75 -0
  23. package/dist/esm/detectPackageManager.native.js.map +1 -0
  24. package/dist/esm/exec.mjs +36 -0
  25. package/dist/esm/exec.mjs.map +1 -0
  26. package/dist/esm/exec.native.js +38 -0
  27. package/dist/esm/exec.native.js.map +1 -0
  28. package/dist/esm/index.js +7 -0
  29. package/dist/esm/index.js.map +1 -0
  30. package/dist/esm/index.mjs +7 -0
  31. package/dist/esm/index.mjs.map +1 -0
  32. package/dist/esm/index.native.js +7 -0
  33. package/dist/esm/index.native.js.map +1 -0
  34. package/dist/esm/mustReplace.mjs +24 -0
  35. package/dist/esm/mustReplace.mjs.map +1 -0
  36. package/dist/esm/mustReplace.native.js +50 -0
  37. package/dist/esm/mustReplace.native.js.map +1 -0
  38. package/package.json +3 -3
  39. package/types/createMessageSocket.d.ts.map +1 -0
  40. package/types/detectPackageManager.d.ts.map +1 -0
  41. package/types/exec.d.ts.map +1 -0
  42. package/types/index.d.ts.map +1 -0
  43. package/types/mustReplace.d.ts.map +1 -0
@@ -0,0 +1,25 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
8
+ get: () => from[key],
9
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
10
+ });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
16
+ value: true
17
+ }), mod);
18
+ var index_exports = {};
19
+ module.exports = __toCommonJS(index_exports);
20
+ __reExport(index_exports, require("@vxrn/debug"), module.exports);
21
+ __reExport(index_exports, require("@vxrn/resolve"), module.exports);
22
+ __reExport(index_exports, require("./createMessageSocket.cjs"), module.exports);
23
+ __reExport(index_exports, require("./detectPackageManager.cjs"), module.exports);
24
+ __reExport(index_exports, require("./exec.cjs"), module.exports);
25
+ __reExport(index_exports, require("./mustReplace.cjs"), module.exports);
@@ -0,0 +1,28 @@
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 __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
14
+ return to;
15
+ };
16
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
18
+ value: true
19
+ }), mod);
20
+ var index_exports = {};
21
+ module.exports = __toCommonJS(index_exports);
22
+ __reExport(index_exports, require("@vxrn/debug"), module.exports);
23
+ __reExport(index_exports, require("@vxrn/resolve"), module.exports);
24
+ __reExport(index_exports, require("./createMessageSocket.native.js"), module.exports);
25
+ __reExport(index_exports, require("./detectPackageManager.native.js"), module.exports);
26
+ __reExport(index_exports, require("./exec.native.js"), module.exports);
27
+ __reExport(index_exports, require("./mustReplace.native.js"), module.exports);
28
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +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,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":[]}
@@ -0,0 +1,49 @@
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 mustReplace_exports = {};
24
+ __export(mustReplace_exports, {
25
+ mustReplace: () => mustReplace
26
+ });
27
+ module.exports = __toCommonJS(mustReplace_exports);
28
+ var import_node_fs = require("node:fs");
29
+ var import_node_os = require("node:os");
30
+ var import_node_path = require("node:path");
31
+ function mustReplace(source, replacements) {
32
+ let sourceOut = source;
33
+ for (const {
34
+ find,
35
+ replace,
36
+ optional
37
+ } of replacements) {
38
+ if (!optional) {
39
+ const found = find instanceof RegExp ? find.test(sourceOut) : sourceOut.includes(find);
40
+ if (!found) {
41
+ const tmpPath = (0, import_node_path.join)((0, import_node_os.tmpdir)(), `replace-error-${Math.random()}`);
42
+ (0, import_node_fs.writeFileSync)(tmpPath, sourceOut, "utf-8");
43
+ throw new Error(`Substring or pattern "${find}" not found in the string, replacing in source: ${tmpPath}.`);
44
+ }
45
+ }
46
+ sourceOut = sourceOut.replace(find, replace);
47
+ }
48
+ return sourceOut;
49
+ }
@@ -0,0 +1,78 @@
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 mustReplace_exports = {};
26
+ __export(mustReplace_exports, {
27
+ mustReplace: () => mustReplace
28
+ });
29
+ module.exports = __toCommonJS(mustReplace_exports);
30
+ var import_fs = require("fs");
31
+ var import_os = require("os");
32
+ var import_path = require("path");
33
+ function _instanceof(left, right) {
34
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
35
+ return !!right[Symbol.hasInstance](left);
36
+ } else {
37
+ return left instanceof right;
38
+ }
39
+ }
40
+ function mustReplace(source, replacements) {
41
+ var sourceOut = source;
42
+ var _iteratorNormalCompletion = true,
43
+ _didIteratorError = false,
44
+ _iteratorError = void 0;
45
+ try {
46
+ for (var _iterator = replacements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
47
+ var {
48
+ find,
49
+ replace,
50
+ optional
51
+ } = _step.value;
52
+ if (!optional) {
53
+ var found = _instanceof(find, RegExp) ? find.test(sourceOut) : sourceOut.includes(find);
54
+ if (!found) {
55
+ var tmpPath = (0, import_path.join)((0, import_os.tmpdir)(), `replace-error-${Math.random()}`);
56
+ (0, import_fs.writeFileSync)(tmpPath, sourceOut, "utf-8");
57
+ throw new Error(`Substring or pattern "${find}" not found in the string, replacing in source: ${tmpPath}.`);
58
+ }
59
+ }
60
+ sourceOut = sourceOut.replace(find, replace);
61
+ }
62
+ } catch (err) {
63
+ _didIteratorError = true;
64
+ _iteratorError = err;
65
+ } finally {
66
+ try {
67
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
68
+ _iterator.return();
69
+ }
70
+ } finally {
71
+ if (_didIteratorError) {
72
+ throw _iteratorError;
73
+ }
74
+ }
75
+ }
76
+ return sourceOut;
77
+ }
78
+ //# sourceMappingURL=mustReplace.native.js.map
@@ -0,0 +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,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","Error"],"sources":["../../src/createMessageSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ import { promises as fs } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { exec } from "./exec.mjs";
4
+ async function pathExists(p) {
5
+ try {
6
+ await fs.access(p);
7
+ return true;
8
+ } catch {
9
+ return false;
10
+ }
11
+ }
12
+ async function hasGlobal(pm) {
13
+ try {
14
+ const command = process.platform === "win32" ? `where ${pm}` : `which ${pm}`;
15
+ const res = exec(command);
16
+ return !!res.length;
17
+ } catch {
18
+ return false;
19
+ }
20
+ }
21
+ async function getFromLockfile(cwd = ".") {
22
+ const [yarn, npm, pnpm, bun] = await Promise.all([pathExists(resolve(cwd, "yarn.lock")), pathExists(resolve(cwd, "package-lock.json")), pathExists(resolve(cwd, "pnpm-lock.yaml")), pathExists(resolve(cwd, "bun.lockb"))]);
23
+ return {
24
+ bun,
25
+ yarn,
26
+ pnpm,
27
+ npm
28
+ };
29
+ }
30
+ async function getFromPackage(cwd = ".") {
31
+ if (await pathExists(resolve(cwd, "package.json"))) {
32
+ const json = JSON.parse(await fs.readFile(resolve(cwd, "package.json"), "utf-8"));
33
+ if (json.packageManager) {
34
+ const yarn = !!json.packageManager.startsWith("yarn");
35
+ const pnpm = !!json.packageManager.startsWith("pnpm");
36
+ const bun = !!json.packageManager.startsWith("bun");
37
+ const npm = !!json.packageManager.startsWith("npm");
38
+ return {
39
+ bun,
40
+ yarn,
41
+ pnpm,
42
+ npm
43
+ };
44
+ }
45
+ }
46
+ }
47
+ const foundSome = obj => Object.keys(obj).some(k => !!obj[k]);
48
+ const detectPackageManager = async ({
49
+ cwd
50
+ } = {}) => {
51
+ const fromLockfile = await getFromLockfile(cwd);
52
+ if (foundSome(fromLockfile)) {
53
+ return fromLockfile;
54
+ }
55
+ const fromPackageJson = await getFromPackage(cwd);
56
+ if (fromPackageJson && foundSome(fromPackageJson)) {
57
+ return fromPackageJson;
58
+ }
59
+ const [npm, yarn, pnpm, bun] = await Promise.all([hasGlobal("npm"), hasGlobal("yarn"), hasGlobal("pnpm"), hasGlobal("bun")]);
60
+ return {
61
+ bun,
62
+ yarn,
63
+ pnpm,
64
+ npm
65
+ };
66
+ };
67
+ export { detectPackageManager };
68
+ //# sourceMappingURL=detectPackageManager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["promises","fs","resolve","exec","pathExists","p","access","hasGlobal","pm","command","process","platform","res","length","getFromLockfile","cwd","yarn","npm","pnpm","bun","Promise","all","getFromPackage","json","JSON","parse","readFile","packageManager","startsWith","foundSome","obj","Object","keys","some","k","detectPackageManager","fromLockfile","fromPackageJson"],"sources":["../../src/detectPackageManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ import { promises as fs } from "fs";
2
+ import { resolve } from "path";
3
+ import { exec } from "./exec.native.js";
4
+ async function pathExists(p) {
5
+ try {
6
+ await fs.access(p);
7
+ return true;
8
+ } catch (unused) {
9
+ return false;
10
+ }
11
+ }
12
+ async function hasGlobal(pm) {
13
+ try {
14
+ var command = process.platform === "win32" ? `where ${pm}` : `which ${pm}`;
15
+ var res = exec(command);
16
+ return !!res.length;
17
+ } catch (unused) {
18
+ return false;
19
+ }
20
+ }
21
+ async function getFromLockfile() {
22
+ var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ".";
23
+ var [yarn, npm, pnpm, bun] = await Promise.all([pathExists(resolve(cwd, "yarn.lock")), pathExists(resolve(cwd, "package-lock.json")), pathExists(resolve(cwd, "pnpm-lock.yaml")), pathExists(resolve(cwd, "bun.lockb"))]);
24
+ return {
25
+ bun,
26
+ yarn,
27
+ pnpm,
28
+ npm
29
+ };
30
+ }
31
+ async function getFromPackage() {
32
+ var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ".";
33
+ if (await pathExists(resolve(cwd, "package.json"))) {
34
+ var json = JSON.parse(await fs.readFile(resolve(cwd, "package.json"), "utf-8"));
35
+ if (json.packageManager) {
36
+ var yarn = !!json.packageManager.startsWith("yarn");
37
+ var pnpm = !!json.packageManager.startsWith("pnpm");
38
+ var bun = !!json.packageManager.startsWith("bun");
39
+ var npm = !!json.packageManager.startsWith("npm");
40
+ return {
41
+ bun,
42
+ yarn,
43
+ pnpm,
44
+ npm
45
+ };
46
+ }
47
+ }
48
+ }
49
+ var foundSome = function (obj) {
50
+ return Object.keys(obj).some(function (k) {
51
+ return !!obj[k];
52
+ });
53
+ };
54
+ var detectPackageManager = async function () {
55
+ var {
56
+ cwd
57
+ } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
58
+ var fromLockfile = await getFromLockfile(cwd);
59
+ if (foundSome(fromLockfile)) {
60
+ return fromLockfile;
61
+ }
62
+ var fromPackageJson = await getFromPackage(cwd);
63
+ if (fromPackageJson && foundSome(fromPackageJson)) {
64
+ return fromPackageJson;
65
+ }
66
+ var [npm, yarn, pnpm, bun] = await Promise.all([hasGlobal("npm"), hasGlobal("yarn"), hasGlobal("pnpm"), hasGlobal("bun")]);
67
+ return {
68
+ bun,
69
+ yarn,
70
+ pnpm,
71
+ npm
72
+ };
73
+ };
74
+ export { detectPackageManager };
75
+ //# sourceMappingURL=detectPackageManager.native.js.map
@@ -0,0 +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","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":[]}