@vxrn/utils 1.27.1 → 2.0.0-beta.45.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.
Files changed (47) hide show
  1. package/dist/cjs/createMessageSocket.cjs +115 -121
  2. package/dist/cjs/createMessageSocket.native.cjs +166 -0
  3. package/dist/cjs/createMessageSocket.native.js +152 -166
  4. package/dist/cjs/createMessageSocket.native.js.map +1 -1
  5. package/dist/cjs/detectPackageManager.cjs +76 -72
  6. package/dist/cjs/detectPackageManager.native.cjs +106 -0
  7. package/dist/cjs/detectPackageManager.native.js +82 -77
  8. package/dist/cjs/detectPackageManager.native.js.map +1 -1
  9. package/dist/cjs/exec.cjs +43 -45
  10. package/dist/cjs/exec.native.cjs +65 -0
  11. package/dist/cjs/exec.native.js +48 -49
  12. package/dist/cjs/exec.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +9 -11
  14. package/dist/cjs/index.native.cjs +25 -0
  15. package/dist/cjs/index.native.js +9 -10
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/cjs/mustReplace.cjs +27 -35
  18. package/dist/cjs/mustReplace.native.cjs +60 -0
  19. package/dist/cjs/mustReplace.native.js +44 -60
  20. package/dist/cjs/mustReplace.native.js.map +1 -1
  21. package/dist/esm/createMessageSocket.mjs +103 -103
  22. package/dist/esm/createMessageSocket.mjs.map +1 -1
  23. package/dist/esm/createMessageSocket.native.js +139 -148
  24. package/dist/esm/createMessageSocket.native.js.map +1 -1
  25. package/dist/esm/detectPackageManager.mjs +65 -55
  26. package/dist/esm/detectPackageManager.mjs.map +1 -1
  27. package/dist/esm/detectPackageManager.native.js +71 -61
  28. package/dist/esm/detectPackageManager.native.js.map +1 -1
  29. package/dist/esm/exec.mjs +29 -27
  30. package/dist/esm/exec.mjs.map +1 -1
  31. package/dist/esm/exec.native.js +34 -32
  32. package/dist/esm/exec.native.js.map +1 -1
  33. package/dist/esm/index.js +11 -7
  34. package/dist/esm/index.mjs +11 -7
  35. package/dist/esm/index.native.js +11 -7
  36. package/dist/esm/mustReplace.mjs +15 -17
  37. package/dist/esm/mustReplace.mjs.map +1 -1
  38. package/dist/esm/mustReplace.native.js +32 -43
  39. package/dist/esm/mustReplace.native.js.map +1 -1
  40. package/package.json +4 -4
  41. package/types/createMessageSocket.d.ts +1 -1
  42. package/types/createMessageSocket.d.ts.map +1 -1
  43. package/types/detectPackageManager.d.ts.map +1 -1
  44. package/types/exec.d.ts.map +1 -1
  45. package/dist/esm/index.js.map +0 -1
  46. package/dist/esm/index.mjs.map +0 -1
  47. package/dist/esm/index.native.js.map +0 -1
@@ -1,154 +1,145 @@
1
1
  import { WebSocketServer } from "ws";
2
- function _type_of(obj) {
3
- "@swc/helpers - typeof";
4
2
 
5
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
6
- }
7
3
  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;
4
+ var PROTOCOL_VERSION = 2;
5
+ var wss = new WebSocketServer({ noServer: true });
6
+ var clients = /* @__PURE__ */ new Map();
7
+ var nextClientId = 0;
8
+ function broadcast(broadcasterId, message) {
9
+ var forwarded = JSON.stringify({
10
+ version: PROTOCOL_VERSION,
11
+ method: message.method,
12
+ params: message.params
13
+ });
14
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
15
+ try {
16
+ for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
17
+ var [otherId, other] = _step.value;
18
+ if (otherId !== broadcasterId) {
19
+ try {
20
+ other.ws.send(forwarded);
21
+ } catch (unused) {}
22
+ }
23
+ }
24
+ } catch (err) {
25
+ _didIteratorError = true;
26
+ _iteratorError = err;
27
+ } finally {
28
+ try {
29
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
30
+ _iterator.return();
31
+ }
32
+ } finally {
33
+ if (_didIteratorError) {
34
+ throw _iteratorError;
35
+ }
36
+ }
37
+ }
38
+ }
39
+ wss.on("connection", function(clientWs, req) {
40
+ var clientId = `client#${nextClientId++}`;
41
+ var query = Object.fromEntries(new URL((req === null || req === void 0 ? void 0 : req.url) || "/", "http://localhost").searchParams);
42
+ clients.set(clientId, {
43
+ ws: clientWs,
44
+ query
45
+ });
46
+ var remove = function() {
47
+ return clients.delete(clientId);
48
+ };
49
+ clientWs.on("close", remove);
50
+ clientWs.on("error", remove);
51
+ clientWs.on("message", function(data, isBinary) {
52
+ if (isBinary) return;
53
+ var message;
54
+ try {
55
+ message = JSON.parse(data.toString());
56
+ } catch (unused) {
57
+ return;
58
+ }
59
+ if ((message === null || message === void 0 ? void 0 : message.version) !== PROTOCOL_VERSION) return;
60
+ try {
61
+ var _message_id, _message_id1;
62
+ var isBroadcastMsg = typeof message.method === "string" && message.id === void 0 && message.target === void 0;
63
+ var isRequest = typeof message.method === "string" && typeof message.target === "string";
64
+ var isResponse = typeof 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);
65
+ if (isBroadcastMsg) {
66
+ broadcast(clientId, message);
67
+ } else if (isRequest) {
68
+ if (message.target === "server") {
69
+ var result;
70
+ if (message.method === "getid") {
71
+ result = clientId;
72
+ } else if (message.method === "getpeers") {
73
+ var peers = {};
74
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
75
+ try {
76
+ for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
77
+ var [otherId, other] = _step.value;
78
+ if (otherId !== clientId) peers[otherId] = other.query;
79
+ }
80
+ } catch (err) {
81
+ _didIteratorError = true;
82
+ _iteratorError = err;
83
+ } finally {
84
+ try {
85
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
86
+ _iterator.return();
87
+ }
88
+ } finally {
89
+ if (_didIteratorError) {
90
+ throw _iteratorError;
91
+ }
92
+ }
93
+ }
94
+ result = peers;
95
+ } else {
96
+ throw new Error(`unknown method: ${message.method}`);
97
+ }
98
+ clientWs.send(JSON.stringify({
99
+ version: PROTOCOL_VERSION,
100
+ result,
101
+ id: message.id
102
+ }));
103
+ } else {
104
+ var target = clients.get(message.target);
105
+ if (!target) {
106
+ throw new Error(`could not find id "${message.target}" while forwarding request`);
107
+ }
108
+ target.ws.send(JSON.stringify({
109
+ version: PROTOCOL_VERSION,
110
+ method: message.method,
111
+ params: message.params,
112
+ id: message.id === void 0 ? void 0 : {
113
+ requestId: message.id,
114
+ clientId
115
+ }
116
+ }));
117
+ }
118
+ } else if (isResponse) {
119
+ if (!message.id) return;
120
+ var target1 = clients.get(message.id.clientId);
121
+ target1 === null || target1 === void 0 ? void 0 : target1.ws.send(JSON.stringify({
122
+ version: PROTOCOL_VERSION,
123
+ result: message.result,
124
+ error: message.error,
125
+ id: message.id.requestId
126
+ }));
127
+ }
128
+ } catch (err) {
129
+ if (message.id !== void 0) {
130
+ try {
131
+ clientWs.send(JSON.stringify({
132
+ version: PROTOCOL_VERSION,
133
+ error: String(err),
134
+ id: message.id
135
+ }));
136
+ } catch (unused) {}
137
+ }
138
+ }
139
+ });
140
+ });
141
+ return wss;
152
142
  }
143
+
153
144
  export { createMessageSocket };
154
145
  //# sourceMappingURL=createMessageSocket.native.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"createMessageSocket.native.js","names":[],"sources":["esm/createMessageSocket.native.js"],"sourcesContent":["import { WebSocketServer } from \"ws\";\nfunction createMessageSocket() {\n var PROTOCOL_VERSION = 2;\n var wss = new WebSocketServer({\n noServer: true\n });\n var clients = /* @__PURE__ */ new Map();\n var nextClientId = 0;\n function broadcast(broadcasterId, message) {\n var forwarded = JSON.stringify({\n version: PROTOCOL_VERSION,\n method: message.method,\n params: message.params\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [otherId, other] = _step.value;\n if (otherId !== broadcasterId) {\n try {\n other.ws.send(forwarded);\n } catch (unused) {\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n wss.on(\"connection\", function(clientWs, req) {\n var clientId = `client#${nextClientId++}`;\n var query = Object.fromEntries(new URL((req === null || req === void 0 ? void 0 : req.url) || \"/\", \"http://localhost\").searchParams);\n clients.set(clientId, {\n ws: clientWs,\n query\n });\n var remove = function() {\n return clients.delete(clientId);\n };\n clientWs.on(\"close\", remove);\n clientWs.on(\"error\", remove);\n clientWs.on(\"message\", function(data, isBinary) {\n if (isBinary) return;\n var message;\n try {\n message = JSON.parse(data.toString());\n } catch (unused) {\n return;\n }\n if ((message === null || message === void 0 ? void 0 : message.version) !== PROTOCOL_VERSION) return;\n try {\n var _message_id, _message_id1;\n var isBroadcastMsg = typeof message.method === \"string\" && message.id === void 0 && message.target === void 0;\n var isRequest = typeof message.method === \"string\" && typeof message.target === \"string\";\n var isResponse = typeof 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);\n if (isBroadcastMsg) {\n broadcast(clientId, message);\n } else if (isRequest) {\n if (message.target === \"server\") {\n var result;\n if (message.method === \"getid\") {\n result = clientId;\n } else if (message.method === \"getpeers\") {\n var peers = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [otherId, other] = _step.value;\n if (otherId !== clientId) peers[otherId] = other.query;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n result = peers;\n } else {\n throw new Error(`unknown method: ${message.method}`);\n }\n clientWs.send(JSON.stringify({\n version: PROTOCOL_VERSION,\n result,\n id: message.id\n }));\n } else {\n var target = clients.get(message.target);\n if (!target) {\n throw new Error(`could not find id \"${message.target}\" while forwarding request`);\n }\n target.ws.send(JSON.stringify({\n version: PROTOCOL_VERSION,\n method: message.method,\n params: message.params,\n id: message.id === void 0 ? void 0 : {\n requestId: message.id,\n clientId\n }\n }));\n }\n } else if (isResponse) {\n if (!message.id) return;\n var target1 = clients.get(message.id.clientId);\n target1 === null || target1 === void 0 ? void 0 : target1.ws.send(JSON.stringify({\n version: PROTOCOL_VERSION,\n result: message.result,\n error: message.error,\n id: message.id.requestId\n }));\n }\n } catch (err) {\n if (message.id !== void 0) {\n try {\n clientWs.send(JSON.stringify({\n version: PROTOCOL_VERSION,\n error: String(err),\n id: message.id\n }));\n } catch (unused) {\n }\n }\n }\n });\n });\n return wss;\n}\nexport {\n createMessageSocket\n};\n//# sourceMappingURL=createMessageSocket.js.map\n"],"mappings":"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"}
@@ -1,68 +1,78 @@
1
- import { promises as fs } from "node:fs";
1
+ import { promises } from "node:fs";
2
2
  import { resolve } from "node:path";
3
3
  import { exec } from "./exec.mjs";
4
+
4
5
  async function pathExists(p) {
5
- try {
6
- await fs.access(p);
7
- return true;
8
- } catch {
9
- return false;
10
- }
6
+ try {
7
+ await promises.access(p);
8
+ return true;
9
+ } catch {
10
+ return false;
11
+ }
11
12
  }
12
13
  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
- }
14
+ try {
15
+ const command = process.platform === "win32" ? `where ${pm}` : `which ${pm}`;
16
+ const res = exec(command);
17
+ return !!res.length;
18
+ } catch {
19
+ return false;
20
+ }
20
21
  }
21
22
  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
- };
23
+ const [yarn, npm, pnpm, bun] = await Promise.all([
24
+ pathExists(resolve(cwd, "yarn.lock")),
25
+ pathExists(resolve(cwd, "package-lock.json")),
26
+ pathExists(resolve(cwd, "pnpm-lock.yaml")),
27
+ pathExists(resolve(cwd, "bun.lockb"))
28
+ ]);
29
+ return {
30
+ bun,
31
+ yarn,
32
+ pnpm,
33
+ npm
34
+ };
29
35
  }
30
36
  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
- }
37
+ if (await pathExists(resolve(cwd, "package.json"))) {
38
+ const json = JSON.parse(await promises.readFile(resolve(cwd, "package.json"), "utf-8"));
39
+ if (json.packageManager) {
40
+ const yarn = !!json.packageManager.startsWith("yarn");
41
+ const pnpm = !!json.packageManager.startsWith("pnpm");
42
+ const bun = !!json.packageManager.startsWith("bun");
43
+ const npm = !!json.packageManager.startsWith("npm");
44
+ return {
45
+ bun,
46
+ yarn,
47
+ pnpm,
48
+ npm
49
+ };
50
+ }
51
+ }
46
52
  }
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
- };
53
+ const foundSome = (obj) => Object.keys(obj).some((k) => !!obj[k]);
54
+ const detectPackageManager = async ({ cwd } = {}) => {
55
+ const fromLockfile = await getFromLockfile(cwd);
56
+ if (foundSome(fromLockfile)) {
57
+ return fromLockfile;
58
+ }
59
+ const fromPackageJson = await getFromPackage(cwd);
60
+ if (fromPackageJson && foundSome(fromPackageJson)) {
61
+ return fromPackageJson;
62
+ }
63
+ const [npm, yarn, pnpm, bun] = await Promise.all([
64
+ hasGlobal("npm"),
65
+ hasGlobal("yarn"),
66
+ hasGlobal("pnpm"),
67
+ hasGlobal("bun")
68
+ ]);
69
+ return {
70
+ bun,
71
+ yarn,
72
+ pnpm,
73
+ npm
74
+ };
66
75
  };
76
+
67
77
  export { detectPackageManager };
68
78
  //# sourceMappingURL=detectPackageManager.mjs.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"detectPackageManager.js","names":["fs"],"sources":["esm/detectPackageManager.js"],"sourcesContent":["import { promises as fs } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { exec } from \"./exec\";\nasync function pathExists(p) {\n try {\n await fs.access(p);\n return true;\n } catch {\n return false;\n }\n}\nasync function hasGlobal(pm) {\n try {\n const command = process.platform === \"win32\" ? `where ${pm}` : `which ${pm}`;\n const res = exec(command);\n return !!res.length;\n } catch {\n return false;\n }\n}\nasync function getFromLockfile(cwd = \".\") {\n const [yarn, npm, pnpm, bun] = await Promise.all([\n pathExists(resolve(cwd, \"yarn.lock\")),\n pathExists(resolve(cwd, \"package-lock.json\")),\n pathExists(resolve(cwd, \"pnpm-lock.yaml\")),\n pathExists(resolve(cwd, \"bun.lockb\"))\n ]);\n return { bun, yarn, pnpm, npm };\n}\nasync function getFromPackage(cwd = \".\") {\n if (await pathExists(resolve(cwd, \"package.json\"))) {\n const json = JSON.parse(await fs.readFile(resolve(cwd, \"package.json\"), \"utf-8\"));\n if (json.packageManager) {\n const yarn = !!json.packageManager.startsWith(\"yarn\");\n const pnpm = !!json.packageManager.startsWith(\"pnpm\");\n const bun = !!json.packageManager.startsWith(\"bun\");\n const npm = !!json.packageManager.startsWith(\"npm\");\n return { bun, yarn, pnpm, npm };\n }\n }\n}\nconst foundSome = (obj) => Object.keys(obj).some((k) => !!obj[k]);\nconst detectPackageManager = async ({ cwd } = {}) => {\n const fromLockfile = await getFromLockfile(cwd);\n if (foundSome(fromLockfile)) {\n return fromLockfile;\n }\n const fromPackageJson = await getFromPackage(cwd);\n if (fromPackageJson && foundSome(fromPackageJson)) {\n return fromPackageJson;\n }\n const [npm, yarn, pnpm, bun] = await Promise.all([\n hasGlobal(\"npm\"),\n hasGlobal(\"yarn\"),\n hasGlobal(\"pnpm\"),\n hasGlobal(\"bun\")\n ]);\n return {\n bun,\n yarn,\n pnpm,\n npm\n };\n};\nexport {\n detectPackageManager\n};\n//# sourceMappingURL=detectPackageManager.js.map\n"],"mappings":";;;;;AAGA,eAAe,WAAW,GAAG;CAC3B,IAAI;EACF,MAAMA,SAAG,OAAO,CAAC;EACjB,OAAO;CACT,QAAQ;EACN,OAAO;CACT;AACF;AACA,eAAe,UAAU,IAAI;CAC3B,IAAI;EACF,MAAM,UAAU,QAAQ,aAAa,UAAU,SAAS,OAAO,SAAS;EACxE,MAAM,MAAM,KAAK,OAAO;EACxB,OAAO,CAAC,CAAC,IAAI;CACf,QAAQ;EACN,OAAO;CACT;AACF;AACA,eAAe,gBAAgB,MAAM,KAAK;CACxC,MAAM,CAAC,MAAM,KAAK,MAAM,OAAO,MAAM,QAAQ,IAAI;EAC/C,WAAW,QAAQ,KAAK,WAAW,CAAC;EACpC,WAAW,QAAQ,KAAK,mBAAmB,CAAC;EAC5C,WAAW,QAAQ,KAAK,gBAAgB,CAAC;EACzC,WAAW,QAAQ,KAAK,WAAW,CAAC;CACtC,CAAC;CACD,OAAO;EAAE;EAAK;EAAM;EAAM;CAAI;AAChC;AACA,eAAe,eAAe,MAAM,KAAK;CACvC,IAAI,MAAM,WAAW,QAAQ,KAAK,cAAc,CAAC,GAAG;EAClD,MAAM,OAAO,KAAK,MAAM,MAAMA,SAAG,SAAS,QAAQ,KAAK,cAAc,GAAG,OAAO,CAAC;EAChF,IAAI,KAAK,gBAAgB;GACvB,MAAM,OAAO,CAAC,CAAC,KAAK,eAAe,WAAW,MAAM;GACpD,MAAM,OAAO,CAAC,CAAC,KAAK,eAAe,WAAW,MAAM;GACpD,MAAM,MAAM,CAAC,CAAC,KAAK,eAAe,WAAW,KAAK;GAClD,MAAM,MAAM,CAAC,CAAC,KAAK,eAAe,WAAW,KAAK;GAClD,OAAO;IAAE;IAAK;IAAM;IAAM;GAAI;EAChC;CACF;AACF;AACA,MAAM,aAAa,QAAQ,OAAO,KAAK,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE;AAChE,MAAM,uBAAuB,OAAO,EAAE,QAAQ,CAAC,MAAM;CACnD,MAAM,eAAe,MAAM,gBAAgB,GAAG;CAC9C,IAAI,UAAU,YAAY,GAAG;EAC3B,OAAO;CACT;CACA,MAAM,kBAAkB,MAAM,eAAe,GAAG;CAChD,IAAI,mBAAmB,UAAU,eAAe,GAAG;EACjD,OAAO;CACT;CACA,MAAM,CAAC,KAAK,MAAM,MAAM,OAAO,MAAM,QAAQ,IAAI;EAC/C,UAAU,KAAK;EACf,UAAU,MAAM;EAChB,UAAU,MAAM;EAChB,UAAU,KAAK;CACjB,CAAC;CACD,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"}