@metamask-previews/local-node-utils 1.0.0-preview-4f4c98e → 1.0.0-preview-eb263b0ee
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/CHANGELOG.md +0 -4
- package/dist/archive.cjs +13 -0
- package/dist/archive.cjs.map +1 -0
- package/dist/{archive.d.ts → archive.d.cts} +1 -1
- package/dist/archive.d.cts.map +1 -0
- package/dist/archive.d.mts +3 -0
- package/dist/archive.d.mts.map +1 -0
- package/dist/{archive.js → archive.mjs} +2 -2
- package/dist/archive.mjs.map +1 -0
- package/dist/artifact.cjs +40 -0
- package/dist/artifact.cjs.map +1 -0
- package/dist/{artifact.d.ts → artifact.d.cts} +2 -2
- package/dist/artifact.d.cts.map +1 -0
- package/dist/artifact.d.mts +6 -0
- package/dist/artifact.d.mts.map +1 -0
- package/dist/{artifact.js → artifact.mjs} +2 -2
- package/dist/artifact.mjs.map +1 -0
- package/dist/cache-directory.cjs +28 -0
- package/dist/cache-directory.cjs.map +1 -0
- package/dist/{cache-directory.d.ts → cache-directory.d.cts} +1 -1
- package/dist/cache-directory.d.cts.map +1 -0
- package/dist/cache-directory.d.mts +6 -0
- package/dist/cache-directory.d.mts.map +1 -0
- package/dist/{cache-directory.js → cache-directory.mjs} +6 -6
- package/dist/cache-directory.mjs.map +1 -0
- package/dist/cache.cjs +14 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/{cache.d.ts → cache.d.cts} +1 -1
- package/dist/cache.d.cts.map +1 -0
- package/dist/cache.d.mts +5 -0
- package/dist/cache.d.mts.map +1 -0
- package/dist/{cache.js → cache.mjs} +3 -3
- package/dist/cache.mjs.map +1 -0
- package/dist/checksum.cjs +17 -0
- package/dist/checksum.cjs.map +1 -0
- package/dist/{checksum.d.ts → checksum.d.cts} +1 -1
- package/dist/checksum.d.cts.map +1 -0
- package/dist/checksum.d.mts +2 -0
- package/dist/checksum.d.mts.map +1 -0
- package/dist/{checksum.js → checksum.mjs} +4 -4
- package/dist/checksum.mjs.map +1 -0
- package/dist/cli.cjs +11 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/{cli.d.ts → cli.d.cts} +1 -1
- package/dist/cli.d.cts.map +1 -0
- package/dist/cli.d.mts +2 -0
- package/dist/cli.d.mts.map +1 -0
- package/dist/{cli.js → cli.mjs} +1 -1
- package/dist/cli.mjs.map +1 -0
- package/dist/command.cjs +28 -0
- package/dist/command.cjs.map +1 -0
- package/dist/{command.d.ts → command.d.cts} +1 -1
- package/dist/command.d.cts.map +1 -0
- package/dist/command.d.mts +2 -0
- package/dist/command.d.mts.map +1 -0
- package/dist/{command.js → command.mjs} +2 -2
- package/dist/command.mjs.map +1 -0
- package/dist/download.cjs +47 -0
- package/dist/download.cjs.map +1 -0
- package/dist/{download.d.ts → download.d.cts} +1 -1
- package/dist/download.d.cts.map +1 -0
- package/dist/download.d.mts +3 -0
- package/dist/download.d.mts.map +1 -0
- package/dist/{download.js → download.mjs} +7 -7
- package/dist/download.mjs.map +1 -0
- package/dist/errors.cjs +11 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/{errors.d.ts → errors.d.cts} +1 -1
- package/dist/errors.d.cts.map +1 -0
- package/dist/errors.d.mts +2 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/{errors.js → errors.mjs} +1 -1
- package/dist/errors.mjs.map +1 -0
- package/dist/executable-wrapper.cjs +76 -0
- package/dist/executable-wrapper.cjs.map +1 -0
- package/dist/{executable-wrapper.d.ts → executable-wrapper.d.cts} +1 -1
- package/dist/executable-wrapper.d.cts.map +1 -0
- package/dist/executable-wrapper.d.mts +9 -0
- package/dist/executable-wrapper.d.mts.map +1 -0
- package/dist/{executable-wrapper.js → executable-wrapper.mjs} +4 -4
- package/dist/executable-wrapper.mjs.map +1 -0
- package/dist/filesystem.cjs +45 -0
- package/dist/filesystem.cjs.map +1 -0
- package/dist/{filesystem.d.ts → filesystem.d.cts} +1 -1
- package/dist/filesystem.d.cts.map +1 -0
- package/dist/filesystem.d.mts +4 -0
- package/dist/filesystem.d.mts.map +1 -0
- package/dist/{filesystem.js → filesystem.mjs} +3 -3
- package/dist/filesystem.mjs.map +1 -0
- package/dist/index.cjs +37 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +16 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +14 -0
- package/dist/index.mjs.map +1 -0
- package/dist/package-json.cjs +29 -0
- package/dist/package-json.cjs.map +1 -0
- package/dist/{package-json.d.ts → package-json.d.cts} +1 -1
- package/dist/package-json.d.cts.map +1 -0
- package/dist/package-json.d.mts +6 -0
- package/dist/package-json.d.mts.map +1 -0
- package/dist/{package-json.js → package-json.mjs} +4 -4
- package/dist/package-json.mjs.map +1 -0
- package/dist/platform.cjs +25 -0
- package/dist/platform.cjs.map +1 -0
- package/dist/{platform.d.ts → platform.d.cts} +1 -1
- package/dist/platform.d.cts.map +1 -0
- package/dist/platform.d.mts +3 -0
- package/dist/platform.d.mts.map +1 -0
- package/dist/{platform.js → platform.mjs} +3 -3
- package/dist/platform.mjs.map +1 -0
- package/dist/types.cjs +3 -0
- package/dist/types.cjs.map +1 -0
- package/dist/{types.d.ts → types.d.cts} +1 -1
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +14 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +2 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +16 -12
- package/dist/archive.d.ts.map +0 -1
- package/dist/archive.js.map +0 -1
- package/dist/artifact.d.ts.map +0 -1
- package/dist/artifact.js.map +0 -1
- package/dist/cache-directory.d.ts.map +0 -1
- package/dist/cache-directory.js.map +0 -1
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js.map +0 -1
- package/dist/checksum.d.ts.map +0 -1
- package/dist/checksum.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/command.d.ts.map +0 -1
- package/dist/command.js.map +0 -1
- package/dist/download.d.ts.map +0 -1
- package/dist/download.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/executable-wrapper.d.ts.map +0 -1
- package/dist/executable-wrapper.js.map +0 -1
- package/dist/filesystem.d.ts.map +0 -1
- package/dist/filesystem.js.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/package-json.d.ts.map +0 -1
- package/dist/package-json.js.map +0 -1
- package/dist/platform.d.ts.map +0 -1
- package/dist/platform.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable import-x/no-nodejs-modules */
|
|
2
|
-
import { createWriteStream } from
|
|
3
|
-
import { mkdir } from
|
|
4
|
-
import { request as requestHttp } from
|
|
5
|
-
import { request as requestHttps } from
|
|
6
|
-
import { dirname } from
|
|
7
|
-
import { pipeline } from
|
|
2
|
+
import { createWriteStream } from "node:fs";
|
|
3
|
+
import { mkdir } from "node:fs/promises";
|
|
4
|
+
import { request as requestHttp } from "node:http";
|
|
5
|
+
import { request as requestHttps } from "node:https";
|
|
6
|
+
import { dirname } from "node:path";
|
|
7
|
+
import { pipeline } from "node:stream/promises";
|
|
8
8
|
export async function downloadFileFromUrl(url, destination) {
|
|
9
9
|
await mkdir(dirname(destination), { recursive: true });
|
|
10
10
|
await pipeline(await openDownloadStream(new URL(url)), createWriteStream(destination));
|
|
@@ -39,4 +39,4 @@ export async function openDownloadStream(url, redirectsRemaining = 5) {
|
|
|
39
39
|
req.end();
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=download.
|
|
42
|
+
//# sourceMappingURL=download.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.mjs","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB;AAC5C,OAAO,EAAE,KAAK,EAAE,yBAAyB;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,mBAAmB;AACrD,OAAO,EAAE,OAAO,EAAE,kBAAkB;AACpC,OAAO,EAAE,QAAQ,EAAE,6BAA6B;AAEhD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,WAAmB;IAEnB,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,CACZ,MAAM,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EACtC,iBAAiB,CAAC,WAAW,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAQ,EACR,kBAAkB,GAAG,CAAC;IAEtB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAEtE,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;YAExD,IACE,UAAU;gBACV,UAAU,IAAI,GAAG;gBACjB,UAAU,GAAG,GAAG;gBAChB,OAAO,CAAC,QAAQ,EAChB,CAAC;gBACD,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;oBAC5B,aAAa,CAAC,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAClE,OAAO;gBACT,CAAC;gBAED,kBAAkB,CAChB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAC9B,kBAAkB,GAAG,CAAC,CACvB;qBACE,IAAI,CAAC,cAAc,CAAC;qBACpB,KAAK,CAAC,aAAa,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;gBACzD,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,aAAa,CACX,IAAI,KAAK,CACP,cAAc,GAAG,gBAAgB,UAAU,IAAI,SAAS,IACtD,aAAa,IAAI,EACnB,EAAE,CAAC,IAAI,EAAE,CACV,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC/B,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { createWriteStream } from 'node:fs';\nimport { mkdir } from 'node:fs/promises';\nimport { request as requestHttp } from 'node:http';\nimport { request as requestHttps } from 'node:https';\nimport { dirname } from 'node:path';\nimport { pipeline } from 'node:stream/promises';\n\nexport async function downloadFileFromUrl(\n url: string,\n destination: string,\n): Promise<void> {\n await mkdir(dirname(destination), { recursive: true });\n await pipeline(\n await openDownloadStream(new URL(url)),\n createWriteStream(destination),\n );\n}\n\nexport async function openDownloadStream(\n url: URL,\n redirectsRemaining = 5,\n): Promise<NodeJS.ReadableStream> {\n const request = url.protocol === 'http:' ? requestHttp : requestHttps;\n\n return await new Promise((resolvePromise, rejectPromise) => {\n const req = request(url, (response) => {\n const { headers, statusCode, statusMessage } = response;\n\n if (\n statusCode &&\n statusCode >= 300 &&\n statusCode < 400 &&\n headers.location\n ) {\n response.resume();\n if (redirectsRemaining <= 0) {\n rejectPromise(new Error(`Too many redirects downloading ${url}`));\n return;\n }\n\n openDownloadStream(\n new URL(headers.location, url),\n redirectsRemaining - 1,\n )\n .then(resolvePromise)\n .catch(rejectPromise);\n return;\n }\n\n if (!statusCode || statusCode < 200 || statusCode >= 300) {\n response.resume();\n rejectPromise(\n new Error(\n `Request to ${url} failed with ${statusCode ?? 'unknown'} ${\n statusMessage ?? ''\n }`.trim(),\n ),\n );\n return;\n }\n\n resolvePromise(response);\n });\n\n req.on('error', rejectPromise);\n req.end();\n });\n}\n"]}
|
package/dist/errors.cjs
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isFileMissingError = void 0;
|
|
4
|
+
function isFileMissingError(error) {
|
|
5
|
+
return (typeof error === 'object' &&
|
|
6
|
+
error !== null &&
|
|
7
|
+
Object.prototype.hasOwnProperty.call(error, 'code') &&
|
|
8
|
+
error.code === 'ENOENT');
|
|
9
|
+
}
|
|
10
|
+
exports.isFileMissingError = isFileMissingError;
|
|
11
|
+
//# sourceMappingURL=errors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.cjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAClD,KAA+B,CAAC,IAAI,KAAK,QAAQ,CACnD,CAAC;AACJ,CAAC;AAPD,gDAOC","sourcesContent":["export function isFileMissingError(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n Object.prototype.hasOwnProperty.call(error, 'code') &&\n (error as NodeJS.ErrnoException).code === 'ENOENT'\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare function isFileMissingError(error: unknown): boolean;
|
|
2
|
-
//# sourceMappingURL=errors.d.
|
|
2
|
+
//# sourceMappingURL=errors.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.cts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.mts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAClD,KAA+B,CAAC,IAAI,KAAK,QAAQ,CACnD,CAAC;AACJ,CAAC","sourcesContent":["export function isFileMissingError(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n Object.prototype.hasOwnProperty.call(error, 'code') &&\n (error as NodeJS.ErrnoException).code === 'ENOENT'\n );\n}\n"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.installExecutableWrapper = void 0;
|
|
4
|
+
/* eslint-disable import-x/no-nodejs-modules */
|
|
5
|
+
const promises_1 = require("node:fs/promises");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const errors_js_1 = require("./errors.cjs");
|
|
8
|
+
async function installExecutableWrapper({ binDirectory, commandName, executableArgs = [], executablePath, pathResolution = 'absolute', }) {
|
|
9
|
+
const binaryPath = (0, node_path_1.join)(binDirectory, commandName);
|
|
10
|
+
const wrapperSource = buildExecutableWrapperSource({
|
|
11
|
+
binDirectory,
|
|
12
|
+
executableArgs,
|
|
13
|
+
executablePath,
|
|
14
|
+
pathResolution,
|
|
15
|
+
});
|
|
16
|
+
await (0, promises_1.mkdir)(binDirectory, { recursive: true });
|
|
17
|
+
await (0, promises_1.unlink)(binaryPath).catch((error) => {
|
|
18
|
+
if (!(0, errors_js_1.isFileMissingError)(error)) {
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
await (0, promises_1.writeFile)(binaryPath, wrapperSource);
|
|
23
|
+
await (0, promises_1.chmod)(binaryPath, 0o755);
|
|
24
|
+
return binaryPath;
|
|
25
|
+
}
|
|
26
|
+
exports.installExecutableWrapper = installExecutableWrapper;
|
|
27
|
+
function buildExecutableWrapperSource({ binDirectory, executableArgs, executablePath, pathResolution, }) {
|
|
28
|
+
if (pathResolution === 'relative') {
|
|
29
|
+
const relativeExecutablePath = (0, node_path_1.relative)(binDirectory, executablePath);
|
|
30
|
+
return `#!/usr/bin/env node
|
|
31
|
+
const { spawnSync } = require('node:child_process');
|
|
32
|
+
const path = require('node:path');
|
|
33
|
+
|
|
34
|
+
const executablePath = path.resolve(__dirname, ${JSON.stringify(relativeExecutablePath)});
|
|
35
|
+
const executableArgs = ${JSON.stringify(executableArgs)};
|
|
36
|
+
const result = spawnSync(executablePath, executableArgs.concat(process.argv.slice(2)), {
|
|
37
|
+
stdio: 'inherit',
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
if (result.error) {
|
|
41
|
+
console.error(result.error.message);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (result.signal) {
|
|
46
|
+
process.kill(process.pid, result.signal);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
process.exit(result.status ?? 0);
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
const resolvedExecutablePath = (0, node_path_1.resolve)(executablePath);
|
|
54
|
+
return `#!/usr/bin/env node
|
|
55
|
+
const { spawnSync } = require('node:child_process');
|
|
56
|
+
|
|
57
|
+
const executablePath = ${JSON.stringify(resolvedExecutablePath)};
|
|
58
|
+
const executableArgs = ${JSON.stringify(executableArgs)};
|
|
59
|
+
const result = spawnSync(executablePath, executableArgs.concat(process.argv.slice(2)), {
|
|
60
|
+
stdio: 'inherit',
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
if (result.error) {
|
|
64
|
+
console.error(result.error.message);
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (result.signal) {
|
|
69
|
+
process.kill(process.pid, result.signal);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
process.exit(result.status ?? 0);
|
|
74
|
+
`;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=executable-wrapper.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-wrapper.cjs","sourceRoot":"","sources":["../src/executable-wrapper.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,+CAAmE;AACnE,yCAAoD;AAEpD,4CAAiD;AAI1C,KAAK,UAAU,wBAAwB,CAAC,EAC7C,YAAY,EACZ,WAAW,EACX,cAAc,GAAG,EAAE,EACnB,cAAc,EACd,cAAc,GAAG,UAAU,GAO5B;IACC,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,4BAA4B,CAAC;QACjD,YAAY;QACZ,cAAc;QACd,cAAc;QACd,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,IAAA,gBAAK,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAA,iBAAM,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,IAAI,CAAC,IAAA,8BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,IAAA,gBAAK,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE/B,OAAO,UAAU,CAAC;AACpB,CAAC;AA/BD,4DA+BC;AAED,SAAS,4BAA4B,CAAC,EACpC,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,GAMf;IACC,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,sBAAsB,GAAG,IAAA,oBAAQ,EAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAEtE,OAAO;;;;iDAIsC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;yBAC9D,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;CAgBtD,CAAC;IACA,CAAC;IAED,MAAM,sBAAsB,GAAG,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC;IAEvD,OAAO;;;yBAGgB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;yBACtC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;CAgBtD,CAAC;AACF,CAAC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { chmod, mkdir, unlink, writeFile } from 'node:fs/promises';\nimport { join, relative, resolve } from 'node:path';\n\nimport { isFileMissingError } from './errors.js';\n\nexport type ExecutableWrapperPathResolution = 'absolute' | 'relative';\n\nexport async function installExecutableWrapper({\n binDirectory,\n commandName,\n executableArgs = [],\n executablePath,\n pathResolution = 'absolute',\n}: {\n binDirectory: string;\n commandName: string;\n executableArgs?: string[];\n executablePath: string;\n pathResolution?: ExecutableWrapperPathResolution;\n}): Promise<string> {\n const binaryPath = join(binDirectory, commandName);\n const wrapperSource = buildExecutableWrapperSource({\n binDirectory,\n executableArgs,\n executablePath,\n pathResolution,\n });\n\n await mkdir(binDirectory, { recursive: true });\n await unlink(binaryPath).catch((error) => {\n if (!isFileMissingError(error)) {\n throw error;\n }\n });\n await writeFile(binaryPath, wrapperSource);\n await chmod(binaryPath, 0o755);\n\n return binaryPath;\n}\n\nfunction buildExecutableWrapperSource({\n binDirectory,\n executableArgs,\n executablePath,\n pathResolution,\n}: {\n binDirectory: string;\n executableArgs: string[];\n executablePath: string;\n pathResolution: ExecutableWrapperPathResolution;\n}): string {\n if (pathResolution === 'relative') {\n const relativeExecutablePath = relative(binDirectory, executablePath);\n\n return `#!/usr/bin/env node\nconst { spawnSync } = require('node:child_process');\nconst path = require('node:path');\n\nconst executablePath = path.resolve(__dirname, ${JSON.stringify(relativeExecutablePath)});\nconst executableArgs = ${JSON.stringify(executableArgs)};\nconst result = spawnSync(executablePath, executableArgs.concat(process.argv.slice(2)), {\n stdio: 'inherit',\n});\n\nif (result.error) {\n console.error(result.error.message);\n process.exit(1);\n}\n\nif (result.signal) {\n process.kill(process.pid, result.signal);\n process.exit(1);\n}\n\nprocess.exit(result.status ?? 0);\n`;\n }\n\n const resolvedExecutablePath = resolve(executablePath);\n\n return `#!/usr/bin/env node\nconst { spawnSync } = require('node:child_process');\n\nconst executablePath = ${JSON.stringify(resolvedExecutablePath)};\nconst executableArgs = ${JSON.stringify(executableArgs)};\nconst result = spawnSync(executablePath, executableArgs.concat(process.argv.slice(2)), {\n stdio: 'inherit',\n});\n\nif (result.error) {\n console.error(result.error.message);\n process.exit(1);\n}\n\nif (result.signal) {\n process.kill(process.pid, result.signal);\n process.exit(1);\n}\n\nprocess.exit(result.status ?? 0);\n`;\n}\n"]}
|
|
@@ -6,4 +6,4 @@ export declare function installExecutableWrapper({ binDirectory, commandName, ex
|
|
|
6
6
|
executablePath: string;
|
|
7
7
|
pathResolution?: ExecutableWrapperPathResolution;
|
|
8
8
|
}): Promise<string>;
|
|
9
|
-
//# sourceMappingURL=executable-wrapper.d.
|
|
9
|
+
//# sourceMappingURL=executable-wrapper.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-wrapper.d.cts","sourceRoot":"","sources":["../src/executable-wrapper.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,+BAA+B,GAAG,UAAU,GAAG,UAAU,CAAC;AAEtE,wBAAsB,wBAAwB,CAAC,EAC7C,YAAY,EACZ,WAAW,EACX,cAAmB,EACnB,cAAc,EACd,cAA2B,GAC5B,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,+BAA+B,CAAC;CAClD,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ExecutableWrapperPathResolution = 'absolute' | 'relative';
|
|
2
|
+
export declare function installExecutableWrapper({ binDirectory, commandName, executableArgs, executablePath, pathResolution, }: {
|
|
3
|
+
binDirectory: string;
|
|
4
|
+
commandName: string;
|
|
5
|
+
executableArgs?: string[];
|
|
6
|
+
executablePath: string;
|
|
7
|
+
pathResolution?: ExecutableWrapperPathResolution;
|
|
8
|
+
}): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=executable-wrapper.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-wrapper.d.mts","sourceRoot":"","sources":["../src/executable-wrapper.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,+BAA+B,GAAG,UAAU,GAAG,UAAU,CAAC;AAEtE,wBAAsB,wBAAwB,CAAC,EAC7C,YAAY,EACZ,WAAW,EACX,cAAmB,EACnB,cAAc,EACd,cAA2B,GAC5B,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,+BAA+B,CAAC;CAClD,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable import-x/no-nodejs-modules */
|
|
2
|
-
import { chmod, mkdir, unlink, writeFile } from
|
|
3
|
-
import { join, relative, resolve } from
|
|
4
|
-
import { isFileMissingError } from
|
|
2
|
+
import { chmod, mkdir, unlink, writeFile } from "node:fs/promises";
|
|
3
|
+
import { join, relative, resolve } from "node:path";
|
|
4
|
+
import { isFileMissingError } from "./errors.mjs";
|
|
5
5
|
export async function installExecutableWrapper({ binDirectory, commandName, executableArgs = [], executablePath, pathResolution = 'absolute', }) {
|
|
6
6
|
const binaryPath = join(binDirectory, commandName);
|
|
7
7
|
const wrapperSource = buildExecutableWrapperSource({
|
|
@@ -69,4 +69,4 @@ if (result.signal) {
|
|
|
69
69
|
process.exit(result.status ?? 0);
|
|
70
70
|
`;
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=executable-wrapper.
|
|
72
|
+
//# sourceMappingURL=executable-wrapper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-wrapper.mjs","sourceRoot":"","sources":["../src/executable-wrapper.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB;AAEpD,OAAO,EAAE,kBAAkB,EAAE,qBAAoB;AAIjD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,YAAY,EACZ,WAAW,EACX,cAAc,GAAG,EAAE,EACnB,cAAc,EACd,cAAc,GAAG,UAAU,GAO5B;IACC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,4BAA4B,CAAC;QACjD,YAAY;QACZ,cAAc;QACd,cAAc;QACd,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE/B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,4BAA4B,CAAC,EACpC,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,GAMf;IACC,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAEtE,OAAO;;;;iDAIsC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;yBAC9D,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;CAgBtD,CAAC;IACA,CAAC;IAED,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEvD,OAAO;;;yBAGgB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;yBACtC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;CAgBtD,CAAC;AACF,CAAC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { chmod, mkdir, unlink, writeFile } from 'node:fs/promises';\nimport { join, relative, resolve } from 'node:path';\n\nimport { isFileMissingError } from './errors.js';\n\nexport type ExecutableWrapperPathResolution = 'absolute' | 'relative';\n\nexport async function installExecutableWrapper({\n binDirectory,\n commandName,\n executableArgs = [],\n executablePath,\n pathResolution = 'absolute',\n}: {\n binDirectory: string;\n commandName: string;\n executableArgs?: string[];\n executablePath: string;\n pathResolution?: ExecutableWrapperPathResolution;\n}): Promise<string> {\n const binaryPath = join(binDirectory, commandName);\n const wrapperSource = buildExecutableWrapperSource({\n binDirectory,\n executableArgs,\n executablePath,\n pathResolution,\n });\n\n await mkdir(binDirectory, { recursive: true });\n await unlink(binaryPath).catch((error) => {\n if (!isFileMissingError(error)) {\n throw error;\n }\n });\n await writeFile(binaryPath, wrapperSource);\n await chmod(binaryPath, 0o755);\n\n return binaryPath;\n}\n\nfunction buildExecutableWrapperSource({\n binDirectory,\n executableArgs,\n executablePath,\n pathResolution,\n}: {\n binDirectory: string;\n executableArgs: string[];\n executablePath: string;\n pathResolution: ExecutableWrapperPathResolution;\n}): string {\n if (pathResolution === 'relative') {\n const relativeExecutablePath = relative(binDirectory, executablePath);\n\n return `#!/usr/bin/env node\nconst { spawnSync } = require('node:child_process');\nconst path = require('node:path');\n\nconst executablePath = path.resolve(__dirname, ${JSON.stringify(relativeExecutablePath)});\nconst executableArgs = ${JSON.stringify(executableArgs)};\nconst result = spawnSync(executablePath, executableArgs.concat(process.argv.slice(2)), {\n stdio: 'inherit',\n});\n\nif (result.error) {\n console.error(result.error.message);\n process.exit(1);\n}\n\nif (result.signal) {\n process.kill(process.pid, result.signal);\n process.exit(1);\n}\n\nprocess.exit(result.status ?? 0);\n`;\n }\n\n const resolvedExecutablePath = resolve(executablePath);\n\n return `#!/usr/bin/env node\nconst { spawnSync } = require('node:child_process');\n\nconst executablePath = ${JSON.stringify(resolvedExecutablePath)};\nconst executableArgs = ${JSON.stringify(executableArgs)};\nconst result = spawnSync(executablePath, executableArgs.concat(process.argv.slice(2)), {\n stdio: 'inherit',\n});\n\nif (result.error) {\n console.error(result.error.message);\n process.exit(1);\n}\n\nif (result.signal) {\n process.kill(process.pid, result.signal);\n process.exit(1);\n}\n\nprocess.exit(result.status ?? 0);\n`;\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isFile = exports.isDirectory = exports.findExecutable = void 0;
|
|
4
|
+
/* eslint-disable import-x/no-nodejs-modules */
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
function findExecutable(root, name) {
|
|
8
|
+
if (!(0, node_fs_1.existsSync)(root)) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
for (const entry of (0, node_fs_1.readdirSync)(root)) {
|
|
12
|
+
const entryPath = (0, node_path_1.join)(root, entry);
|
|
13
|
+
const stat = (0, node_fs_1.statSync)(entryPath);
|
|
14
|
+
if (stat.isDirectory()) {
|
|
15
|
+
const found = findExecutable(entryPath, name);
|
|
16
|
+
if (found) {
|
|
17
|
+
return found;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else if (entry === name) {
|
|
21
|
+
return entryPath;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
exports.findExecutable = findExecutable;
|
|
27
|
+
function isDirectory(path) {
|
|
28
|
+
try {
|
|
29
|
+
return (0, node_fs_1.statSync)(path).isDirectory();
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.isDirectory = isDirectory;
|
|
36
|
+
function isFile(path) {
|
|
37
|
+
try {
|
|
38
|
+
return (0, node_fs_1.statSync)(path).isFile();
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.isFile = isFile;
|
|
45
|
+
//# sourceMappingURL=filesystem.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.cjs","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,qCAA4D;AAC5D,yCAAiC;AAEjC,SAAgB,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAA,qBAAW,EAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAnBD,wCAmBC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,OAAO,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAND,kCAMC;AAED,SAAgB,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,OAAO,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAND,wBAMC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { existsSync, readdirSync, statSync } from 'node:fs';\nimport { join } from 'node:path';\n\nexport function findExecutable(root: string, name: string): string | undefined {\n if (!existsSync(root)) {\n return undefined;\n }\n\n for (const entry of readdirSync(root)) {\n const entryPath = join(root, entry);\n const stat = statSync(entryPath);\n if (stat.isDirectory()) {\n const found = findExecutable(entryPath, name);\n if (found) {\n return found;\n }\n } else if (entry === name) {\n return entryPath;\n }\n }\n\n return undefined;\n}\n\nexport function isDirectory(path: string): boolean {\n try {\n return statSync(path).isDirectory();\n } catch {\n return false;\n }\n}\n\nexport function isFile(path: string): boolean {\n try {\n return statSync(path).isFile();\n } catch {\n return false;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare function findExecutable(root: string, name: string): string | undefined;
|
|
2
2
|
export declare function isDirectory(path: string): boolean;
|
|
3
3
|
export declare function isFile(path: string): boolean;
|
|
4
|
-
//# sourceMappingURL=filesystem.d.
|
|
4
|
+
//# sourceMappingURL=filesystem.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.cts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmB7E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.mts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmB7E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM5C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import-x/no-nodejs-modules */
|
|
2
|
-
import { existsSync, readdirSync, statSync } from
|
|
3
|
-
import { join } from
|
|
2
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
4
|
export function findExecutable(root, name) {
|
|
5
5
|
if (!existsSync(root)) {
|
|
6
6
|
return undefined;
|
|
@@ -36,4 +36,4 @@ export function isFile(path) {
|
|
|
36
36
|
return false;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=filesystem.
|
|
39
|
+
//# sourceMappingURL=filesystem.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.mjs","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAkB;AAEjC,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { existsSync, readdirSync, statSync } from 'node:fs';\nimport { join } from 'node:path';\n\nexport function findExecutable(root: string, name: string): string | undefined {\n if (!existsSync(root)) {\n return undefined;\n }\n\n for (const entry of readdirSync(root)) {\n const entryPath = join(root, entry);\n const stat = statSync(entryPath);\n if (stat.isDirectory()) {\n const found = findExecutable(entryPath, name);\n if (found) {\n return found;\n }\n } else if (entry === name) {\n return entryPath;\n }\n }\n\n return undefined;\n}\n\nexport function isDirectory(path: string): boolean {\n try {\n return statSync(path).isDirectory();\n } catch {\n return false;\n }\n}\n\nexport function isFile(path: string): boolean {\n try {\n return statSync(path).isFile();\n } catch {\n return false;\n }\n}\n"]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readPackageJsonToolConfig = exports.normalizeSystemArchitecture = exports.getPlatformKey = exports.isFile = exports.isDirectory = exports.findExecutable = exports.installExecutableWrapper = exports.downloadFileFromUrl = exports.extractTarGzArchive = exports.extractTarBz2Archive = exports.isFileMissingError = exports.runCommand = exports.readCliValue = exports.verifyFileChecksum = exports.getMetamaskCacheDirectory = exports.cleanInstallerCache = exports.resolvePlatformConfig = exports.requireCompletePlatformConfig = exports.mergeArtifactConfig = exports.getCacheKey = void 0;
|
|
4
|
+
var artifact_js_1 = require("./artifact.cjs");
|
|
5
|
+
Object.defineProperty(exports, "getCacheKey", { enumerable: true, get: function () { return artifact_js_1.getCacheKey; } });
|
|
6
|
+
Object.defineProperty(exports, "mergeArtifactConfig", { enumerable: true, get: function () { return artifact_js_1.mergeArtifactConfig; } });
|
|
7
|
+
Object.defineProperty(exports, "requireCompletePlatformConfig", { enumerable: true, get: function () { return artifact_js_1.requireCompletePlatformConfig; } });
|
|
8
|
+
Object.defineProperty(exports, "resolvePlatformConfig", { enumerable: true, get: function () { return artifact_js_1.resolvePlatformConfig; } });
|
|
9
|
+
var cache_js_1 = require("./cache.cjs");
|
|
10
|
+
Object.defineProperty(exports, "cleanInstallerCache", { enumerable: true, get: function () { return cache_js_1.cleanInstallerCache; } });
|
|
11
|
+
var cache_directory_js_1 = require("./cache-directory.cjs");
|
|
12
|
+
Object.defineProperty(exports, "getMetamaskCacheDirectory", { enumerable: true, get: function () { return cache_directory_js_1.getMetamaskCacheDirectory; } });
|
|
13
|
+
var checksum_js_1 = require("./checksum.cjs");
|
|
14
|
+
Object.defineProperty(exports, "verifyFileChecksum", { enumerable: true, get: function () { return checksum_js_1.verifyFileChecksum; } });
|
|
15
|
+
var cli_js_1 = require("./cli.cjs");
|
|
16
|
+
Object.defineProperty(exports, "readCliValue", { enumerable: true, get: function () { return cli_js_1.readCliValue; } });
|
|
17
|
+
var command_js_1 = require("./command.cjs");
|
|
18
|
+
Object.defineProperty(exports, "runCommand", { enumerable: true, get: function () { return command_js_1.runCommand; } });
|
|
19
|
+
var errors_js_1 = require("./errors.cjs");
|
|
20
|
+
Object.defineProperty(exports, "isFileMissingError", { enumerable: true, get: function () { return errors_js_1.isFileMissingError; } });
|
|
21
|
+
var archive_js_1 = require("./archive.cjs");
|
|
22
|
+
Object.defineProperty(exports, "extractTarBz2Archive", { enumerable: true, get: function () { return archive_js_1.extractTarBz2Archive; } });
|
|
23
|
+
Object.defineProperty(exports, "extractTarGzArchive", { enumerable: true, get: function () { return archive_js_1.extractTarGzArchive; } });
|
|
24
|
+
var download_js_1 = require("./download.cjs");
|
|
25
|
+
Object.defineProperty(exports, "downloadFileFromUrl", { enumerable: true, get: function () { return download_js_1.downloadFileFromUrl; } });
|
|
26
|
+
var executable_wrapper_js_1 = require("./executable-wrapper.cjs");
|
|
27
|
+
Object.defineProperty(exports, "installExecutableWrapper", { enumerable: true, get: function () { return executable_wrapper_js_1.installExecutableWrapper; } });
|
|
28
|
+
var filesystem_js_1 = require("./filesystem.cjs");
|
|
29
|
+
Object.defineProperty(exports, "findExecutable", { enumerable: true, get: function () { return filesystem_js_1.findExecutable; } });
|
|
30
|
+
Object.defineProperty(exports, "isDirectory", { enumerable: true, get: function () { return filesystem_js_1.isDirectory; } });
|
|
31
|
+
Object.defineProperty(exports, "isFile", { enumerable: true, get: function () { return filesystem_js_1.isFile; } });
|
|
32
|
+
var platform_js_1 = require("./platform.cjs");
|
|
33
|
+
Object.defineProperty(exports, "getPlatformKey", { enumerable: true, get: function () { return platform_js_1.getPlatformKey; } });
|
|
34
|
+
Object.defineProperty(exports, "normalizeSystemArchitecture", { enumerable: true, get: function () { return platform_js_1.normalizeSystemArchitecture; } });
|
|
35
|
+
var package_json_js_1 = require("./package-json.cjs");
|
|
36
|
+
Object.defineProperty(exports, "readPackageJsonToolConfig", { enumerable: true, get: function () { return package_json_js_1.readPackageJsonToolConfig; } });
|
|
37
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAKA,8CAKuB;AAJrB,0GAAA,WAAW,OAAA;AACX,kHAAA,mBAAmB,OAAA;AACnB,4HAAA,6BAA6B,OAAA;AAC7B,oHAAA,qBAAqB,OAAA;AAEvB,wCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAC5B,4DAAiE;AAAxD,+HAAA,yBAAyB,OAAA;AAClC,8CAAmD;AAA1C,iHAAA,kBAAkB,OAAA;AAC3B,oCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,4CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,0CAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAC3B,4CAAyE;AAAhE,kHAAA,oBAAoB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAClD,8CAAoD;AAA3C,kHAAA,mBAAmB,OAAA;AAC5B,kEAAmE;AAA1D,iIAAA,wBAAwB,OAAA;AAEjC,kDAAsE;AAA7D,+GAAA,cAAc,OAAA;AAAE,4GAAA,WAAW,OAAA;AAAE,uGAAA,MAAM,OAAA;AAC5C,8CAA4E;AAAnE,6GAAA,cAAc,OAAA;AAAE,0HAAA,2BAA2B,OAAA;AACpD,sDAA8D;AAArD,4HAAA,yBAAyB,OAAA","sourcesContent":["export type {\n ArtifactConfig,\n ArtifactPlatformConfig,\n InstallDependencies,\n} from './types.js';\nexport {\n getCacheKey,\n mergeArtifactConfig,\n requireCompletePlatformConfig,\n resolvePlatformConfig,\n} from './artifact.js';\nexport { cleanInstallerCache } from './cache.js';\nexport { getMetamaskCacheDirectory } from './cache-directory.js';\nexport { verifyFileChecksum } from './checksum.js';\nexport { readCliValue } from './cli.js';\nexport { runCommand } from './command.js';\nexport { isFileMissingError } from './errors.js';\nexport { extractTarBz2Archive, extractTarGzArchive } from './archive.js';\nexport { downloadFileFromUrl } from './download.js';\nexport { installExecutableWrapper } from './executable-wrapper.js';\nexport type { ExecutableWrapperPathResolution } from './executable-wrapper.js';\nexport { findExecutable, isDirectory, isFile } from './filesystem.js';\nexport { getPlatformKey, normalizeSystemArchitecture } from './platform.js';\nexport { readPackageJsonToolConfig } from './package-json.js';\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type { ArtifactConfig, ArtifactPlatformConfig, InstallDependencies, } from "./types.cjs";
|
|
2
|
+
export { getCacheKey, mergeArtifactConfig, requireCompletePlatformConfig, resolvePlatformConfig, } from "./artifact.cjs";
|
|
3
|
+
export { cleanInstallerCache } from "./cache.cjs";
|
|
4
|
+
export { getMetamaskCacheDirectory } from "./cache-directory.cjs";
|
|
5
|
+
export { verifyFileChecksum } from "./checksum.cjs";
|
|
6
|
+
export { readCliValue } from "./cli.cjs";
|
|
7
|
+
export { runCommand } from "./command.cjs";
|
|
8
|
+
export { isFileMissingError } from "./errors.cjs";
|
|
9
|
+
export { extractTarBz2Archive, extractTarGzArchive } from "./archive.cjs";
|
|
10
|
+
export { downloadFileFromUrl } from "./download.cjs";
|
|
11
|
+
export { installExecutableWrapper } from "./executable-wrapper.cjs";
|
|
12
|
+
export type { ExecutableWrapperPathResolution } from "./executable-wrapper.cjs";
|
|
13
|
+
export { findExecutable, isDirectory, isFile } from "./filesystem.cjs";
|
|
14
|
+
export { getPlatformKey, normalizeSystemArchitecture } from "./platform.cjs";
|
|
15
|
+
export { readPackageJsonToolConfig } from "./package-json.cjs";
|
|
16
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,oBAAmB;AACpB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,GACtB,uBAAsB;AACvB,OAAO,EAAE,mBAAmB,EAAE,oBAAmB;AACjD,OAAO,EAAE,yBAAyB,EAAE,8BAA6B;AACjE,OAAO,EAAE,kBAAkB,EAAE,uBAAsB;AACnD,OAAO,EAAE,YAAY,EAAE,kBAAiB;AACxC,OAAO,EAAE,UAAU,EAAE,sBAAqB;AAC1C,OAAO,EAAE,kBAAkB,EAAE,qBAAoB;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,sBAAqB;AACzE,OAAO,EAAE,mBAAmB,EAAE,uBAAsB;AACpD,OAAO,EAAE,wBAAwB,EAAE,iCAAgC;AACnE,YAAY,EAAE,+BAA+B,EAAE,iCAAgC;AAC/E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,yBAAwB;AACtE,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,uBAAsB;AAC5E,OAAO,EAAE,yBAAyB,EAAE,2BAA0B"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type { ArtifactConfig, ArtifactPlatformConfig, InstallDependencies, } from "./types.mjs";
|
|
2
|
+
export { getCacheKey, mergeArtifactConfig, requireCompletePlatformConfig, resolvePlatformConfig, } from "./artifact.mjs";
|
|
3
|
+
export { cleanInstallerCache } from "./cache.mjs";
|
|
4
|
+
export { getMetamaskCacheDirectory } from "./cache-directory.mjs";
|
|
5
|
+
export { verifyFileChecksum } from "./checksum.mjs";
|
|
6
|
+
export { readCliValue } from "./cli.mjs";
|
|
7
|
+
export { runCommand } from "./command.mjs";
|
|
8
|
+
export { isFileMissingError } from "./errors.mjs";
|
|
9
|
+
export { extractTarBz2Archive, extractTarGzArchive } from "./archive.mjs";
|
|
10
|
+
export { downloadFileFromUrl } from "./download.mjs";
|
|
11
|
+
export { installExecutableWrapper } from "./executable-wrapper.mjs";
|
|
12
|
+
export type { ExecutableWrapperPathResolution } from "./executable-wrapper.mjs";
|
|
13
|
+
export { findExecutable, isDirectory, isFile } from "./filesystem.mjs";
|
|
14
|
+
export { getPlatformKey, normalizeSystemArchitecture } from "./platform.mjs";
|
|
15
|
+
export { readPackageJsonToolConfig } from "./package-json.mjs";
|
|
16
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,oBAAmB;AACpB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,GACtB,uBAAsB;AACvB,OAAO,EAAE,mBAAmB,EAAE,oBAAmB;AACjD,OAAO,EAAE,yBAAyB,EAAE,8BAA6B;AACjE,OAAO,EAAE,kBAAkB,EAAE,uBAAsB;AACnD,OAAO,EAAE,YAAY,EAAE,kBAAiB;AACxC,OAAO,EAAE,UAAU,EAAE,sBAAqB;AAC1C,OAAO,EAAE,kBAAkB,EAAE,qBAAoB;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,sBAAqB;AACzE,OAAO,EAAE,mBAAmB,EAAE,uBAAsB;AACpD,OAAO,EAAE,wBAAwB,EAAE,iCAAgC;AACnE,YAAY,EAAE,+BAA+B,EAAE,iCAAgC;AAC/E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,yBAAwB;AACtE,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,uBAAsB;AAC5E,OAAO,EAAE,yBAAyB,EAAE,2BAA0B"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { getCacheKey, mergeArtifactConfig, requireCompletePlatformConfig, resolvePlatformConfig } from "./artifact.mjs";
|
|
2
|
+
export { cleanInstallerCache } from "./cache.mjs";
|
|
3
|
+
export { getMetamaskCacheDirectory } from "./cache-directory.mjs";
|
|
4
|
+
export { verifyFileChecksum } from "./checksum.mjs";
|
|
5
|
+
export { readCliValue } from "./cli.mjs";
|
|
6
|
+
export { runCommand } from "./command.mjs";
|
|
7
|
+
export { isFileMissingError } from "./errors.mjs";
|
|
8
|
+
export { extractTarBz2Archive, extractTarGzArchive } from "./archive.mjs";
|
|
9
|
+
export { downloadFileFromUrl } from "./download.mjs";
|
|
10
|
+
export { installExecutableWrapper } from "./executable-wrapper.mjs";
|
|
11
|
+
export { findExecutable, isDirectory, isFile } from "./filesystem.mjs";
|
|
12
|
+
export { getPlatformKey, normalizeSystemArchitecture } from "./platform.mjs";
|
|
13
|
+
export { readPackageJsonToolConfig } from "./package-json.mjs";
|
|
14
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,EACtB,uBAAsB;AACvB,OAAO,EAAE,mBAAmB,EAAE,oBAAmB;AACjD,OAAO,EAAE,yBAAyB,EAAE,8BAA6B;AACjE,OAAO,EAAE,kBAAkB,EAAE,uBAAsB;AACnD,OAAO,EAAE,YAAY,EAAE,kBAAiB;AACxC,OAAO,EAAE,UAAU,EAAE,sBAAqB;AAC1C,OAAO,EAAE,kBAAkB,EAAE,qBAAoB;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,sBAAqB;AACzE,OAAO,EAAE,mBAAmB,EAAE,uBAAsB;AACpD,OAAO,EAAE,wBAAwB,EAAE,iCAAgC;AAEnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,yBAAwB;AACtE,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,uBAAsB;AAC5E,OAAO,EAAE,yBAAyB,EAAE,2BAA0B","sourcesContent":["export type {\n ArtifactConfig,\n ArtifactPlatformConfig,\n InstallDependencies,\n} from './types.js';\nexport {\n getCacheKey,\n mergeArtifactConfig,\n requireCompletePlatformConfig,\n resolvePlatformConfig,\n} from './artifact.js';\nexport { cleanInstallerCache } from './cache.js';\nexport { getMetamaskCacheDirectory } from './cache-directory.js';\nexport { verifyFileChecksum } from './checksum.js';\nexport { readCliValue } from './cli.js';\nexport { runCommand } from './command.js';\nexport { isFileMissingError } from './errors.js';\nexport { extractTarBz2Archive, extractTarGzArchive } from './archive.js';\nexport { downloadFileFromUrl } from './download.js';\nexport { installExecutableWrapper } from './executable-wrapper.js';\nexport type { ExecutableWrapperPathResolution } from './executable-wrapper.js';\nexport { findExecutable, isDirectory, isFile } from './filesystem.js';\nexport { getPlatformKey, normalizeSystemArchitecture } from './platform.js';\nexport { readPackageJsonToolConfig } from './package-json.js';\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readPackageJsonToolConfig = void 0;
|
|
4
|
+
/* eslint-disable import-x/no-nodejs-modules, no-restricted-globals */
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const errors_js_1 = require("./errors.cjs");
|
|
8
|
+
function readPackageJsonToolConfig({ cwd = process.cwd(), packageJsonPath = (0, node_path_1.join)(cwd, 'package.json'), configKeys, }) {
|
|
9
|
+
let raw;
|
|
10
|
+
try {
|
|
11
|
+
raw = (0, node_fs_1.readFileSync)(packageJsonPath, 'utf8');
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if ((0, errors_js_1.isFileMissingError)(error)) {
|
|
15
|
+
return {};
|
|
16
|
+
}
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
const packageJson = JSON.parse(raw);
|
|
20
|
+
for (const key of configKeys) {
|
|
21
|
+
const config = packageJson[key];
|
|
22
|
+
if (config && typeof config === 'object') {
|
|
23
|
+
return config;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
exports.readPackageJsonToolConfig = readPackageJsonToolConfig;
|
|
29
|
+
//# sourceMappingURL=package-json.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.cjs","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,qCAAuC;AACvC,yCAAiC;AAEjC,4CAAiD;AAEjD,SAAgB,yBAAyB,CAAC,EACxC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,eAAe,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,cAAc,CAAC,EAC3C,UAAU,GAKX;IACC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAA,sBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,IAAA,8BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AA5BD,8DA4BC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules, no-restricted-globals */\nimport { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\nimport { isFileMissingError } from './errors.js';\n\nexport function readPackageJsonToolConfig({\n cwd = process.cwd(),\n packageJsonPath = join(cwd, 'package.json'),\n configKeys,\n}: {\n cwd?: string;\n packageJsonPath?: string;\n configKeys: string[];\n}): Record<string, unknown> {\n let raw: string;\n try {\n raw = readFileSync(packageJsonPath, 'utf8');\n } catch (error) {\n if (isFileMissingError(error)) {\n return {};\n }\n throw error;\n }\n\n const packageJson = JSON.parse(raw) as Record<string, unknown>;\n for (const key of configKeys) {\n const config = packageJson[key];\n if (config && typeof config === 'object') {\n return config as Record<string, unknown>;\n }\n }\n\n return {};\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.d.cts","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAMA,wBAAgB,yBAAyB,CAAC,EACxC,GAAmB,EACnB,eAA2C,EAC3C,UAAU,GACX,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.d.mts","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAMA,wBAAgB,yBAAyB,CAAC,EACxC,GAAmB,EACnB,eAA2C,EAC3C,UAAU,GACX,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB1B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable import-x/no-nodejs-modules, no-restricted-globals */
|
|
2
|
-
import { readFileSync } from
|
|
3
|
-
import { join } from
|
|
4
|
-
import { isFileMissingError } from
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { isFileMissingError } from "./errors.mjs";
|
|
5
5
|
export function readPackageJsonToolConfig({ cwd = process.cwd(), packageJsonPath = join(cwd, 'package.json'), configKeys, }) {
|
|
6
6
|
let raw;
|
|
7
7
|
try {
|
|
@@ -22,4 +22,4 @@ export function readPackageJsonToolConfig({ cwd = process.cwd(), packageJsonPath
|
|
|
22
22
|
}
|
|
23
23
|
return {};
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=package-json.
|
|
25
|
+
//# sourceMappingURL=package-json.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.mjs","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,YAAY,EAAE,gBAAgB;AACvC,OAAO,EAAE,IAAI,EAAE,kBAAkB;AAEjC,OAAO,EAAE,kBAAkB,EAAE,qBAAoB;AAEjD,MAAM,UAAU,yBAAyB,CAAC,EACxC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAC3C,UAAU,GAKX;IACC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules, no-restricted-globals */\nimport { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\nimport { isFileMissingError } from './errors.js';\n\nexport function readPackageJsonToolConfig({\n cwd = process.cwd(),\n packageJsonPath = join(cwd, 'package.json'),\n configKeys,\n}: {\n cwd?: string;\n packageJsonPath?: string;\n configKeys: string[];\n}): Record<string, unknown> {\n let raw: string;\n try {\n raw = readFileSync(packageJsonPath, 'utf8');\n } catch (error) {\n if (isFileMissingError(error)) {\n return {};\n }\n throw error;\n }\n\n const packageJson = JSON.parse(raw) as Record<string, unknown>;\n for (const key of configKeys) {\n const config = packageJson[key];\n if (config && typeof config === 'object') {\n return config as Record<string, unknown>;\n }\n }\n\n return {};\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeSystemArchitecture = exports.getPlatformKey = void 0;
|
|
4
|
+
/* eslint-disable import-x/no-nodejs-modules */
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
function getPlatformKey() {
|
|
8
|
+
return `${(0, node_os_1.platform)()}-${normalizeSystemArchitecture()}`;
|
|
9
|
+
}
|
|
10
|
+
exports.getPlatformKey = getPlatformKey;
|
|
11
|
+
function normalizeSystemArchitecture(architecture = (0, node_os_1.arch)()) {
|
|
12
|
+
if (architecture === 'x64' && (0, node_os_1.platform)() === 'darwin') {
|
|
13
|
+
const result = (0, node_child_process_1.spawnSync)('sysctl', ['-n', 'sysctl.proc_translated'], {
|
|
14
|
+
encoding: 'utf8',
|
|
15
|
+
shell: false,
|
|
16
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
17
|
+
});
|
|
18
|
+
if (result.stdout.trim() === '1') {
|
|
19
|
+
return 'arm64';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return architecture;
|
|
23
|
+
}
|
|
24
|
+
exports.normalizeSystemArchitecture = normalizeSystemArchitecture;
|
|
25
|
+
//# sourceMappingURL=platform.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.cjs","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,2DAA+C;AAC/C,qCAAiE;AAEjE,SAAgB,cAAc;IAC5B,OAAO,GAAG,IAAA,kBAAU,GAAE,IAAI,2BAA2B,EAAE,EAAE,CAAC;AAC5D,CAAC;AAFD,wCAEC;AAED,SAAgB,2BAA2B,CAAC,YAAY,GAAG,IAAA,cAAM,GAAE;IACjE,IAAI,YAAY,KAAK,KAAK,IAAI,IAAA,kBAAU,GAAE,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE;YACnE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAbD,kEAaC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { spawnSync } from 'node:child_process';\nimport { arch as osArch, platform as osPlatform } from 'node:os';\n\nexport function getPlatformKey(): string {\n return `${osPlatform()}-${normalizeSystemArchitecture()}`;\n}\n\nexport function normalizeSystemArchitecture(architecture = osArch()): string {\n if (architecture === 'x64' && osPlatform() === 'darwin') {\n const result = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], {\n encoding: 'utf8',\n shell: false,\n stdio: ['ignore', 'pipe', 'ignore'],\n });\n if (result.stdout.trim() === '1') {\n return 'arm64';\n }\n }\n\n return architecture;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.cts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,2BAA2B,CAAC,YAAY,SAAW,GAAG,MAAM,CAa3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.mts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,2BAA2B,CAAC,YAAY,SAAW,GAAG,MAAM,CAa3E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import-x/no-nodejs-modules */
|
|
2
|
-
import { spawnSync } from
|
|
3
|
-
import { arch as osArch, platform as osPlatform } from
|
|
2
|
+
import { spawnSync } from "node:child_process";
|
|
3
|
+
import { arch as osArch, platform as osPlatform } from "node:os";
|
|
4
4
|
export function getPlatformKey() {
|
|
5
5
|
return `${osPlatform()}-${normalizeSystemArchitecture()}`;
|
|
6
6
|
}
|
|
@@ -17,4 +17,4 @@ export function normalizeSystemArchitecture(architecture = osArch()) {
|
|
|
17
17
|
}
|
|
18
18
|
return architecture;
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=platform.
|
|
20
|
+
//# sourceMappingURL=platform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.mjs","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAE,2BAA2B;AAC/C,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,QAAQ,IAAI,UAAU,EAAE,gBAAgB;AAEjE,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,UAAU,EAAE,IAAI,2BAA2B,EAAE,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,YAAY,GAAG,MAAM,EAAE;IACjE,IAAI,YAAY,KAAK,KAAK,IAAI,UAAU,EAAE,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE;YACnE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["/* eslint-disable import-x/no-nodejs-modules */\nimport { spawnSync } from 'node:child_process';\nimport { arch as osArch, platform as osPlatform } from 'node:os';\n\nexport function getPlatformKey(): string {\n return `${osPlatform()}-${normalizeSystemArchitecture()}`;\n}\n\nexport function normalizeSystemArchitecture(architecture = osArch()): string {\n if (architecture === 'x64' && osPlatform() === 'darwin') {\n const result = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], {\n encoding: 'utf8',\n shell: false,\n stdio: ['ignore', 'pipe', 'ignore'],\n });\n if (result.stdout.trim() === '1') {\n return 'arm64';\n }\n }\n\n return architecture;\n}\n"]}
|
package/dist/types.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ArtifactPlatformConfig = {\n checksum: string;\n size?: number;\n url: string;\n};\n\nexport type ArtifactConfig = {\n platforms: Record<string, ArtifactPlatformConfig | undefined>;\n version?: string;\n};\n\nexport type InstallDependencies = {\n downloadFile?: (url: string, destination: string) => Promise<void>;\n extractArchive?: (archivePath: string, destination: string) => Promise<void>;\n};\n"]}
|