containless 0.1.0
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/LICENSE +21 -0
- package/README.md +185 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +234 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +81 -0
- package/dist/config.js.map +1 -0
- package/dist/installer.d.ts +2 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +237 -0
- package/dist/installer.js.map +1 -0
- package/dist/runner.d.ts +11 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +88 -0
- package/dist/runner.js.map +1 -0
- package/dist/runtimes/go.d.ts +8 -0
- package/dist/runtimes/go.d.ts.map +1 -0
- package/dist/runtimes/go.js +44 -0
- package/dist/runtimes/go.js.map +1 -0
- package/dist/runtimes/index.d.ts +11 -0
- package/dist/runtimes/index.d.ts.map +1 -0
- package/dist/runtimes/index.js +55 -0
- package/dist/runtimes/index.js.map +1 -0
- package/dist/runtimes/java.d.ts +14 -0
- package/dist/runtimes/java.d.ts.map +1 -0
- package/dist/runtimes/java.js +49 -0
- package/dist/runtimes/java.js.map +1 -0
- package/dist/runtimes/node.d.ts +9 -0
- package/dist/runtimes/node.d.ts.map +1 -0
- package/dist/runtimes/node.js +45 -0
- package/dist/runtimes/node.js.map +1 -0
- package/dist/runtimes/python.d.ts +22 -0
- package/dist/runtimes/python.d.ts.map +1 -0
- package/dist/runtimes/python.js +115 -0
- package/dist/runtimes/python.js.map +1 -0
- package/dist/utils.d.ts +29 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +170 -0
- package/dist/utils.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.installRuntime = installRuntime;
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const fs = __importStar(require("fs-extra"));
|
|
42
|
+
const axios_1 = __importDefault(require("axios"));
|
|
43
|
+
const tar = __importStar(require("tar"));
|
|
44
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
+
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
46
|
+
const utils_1 = require("./utils");
|
|
47
|
+
const index_1 = require("./runtimes/index");
|
|
48
|
+
// ── Main Install Function ───────────────────────────────────────────────────
|
|
49
|
+
async function installRuntime(name, version, cwd) {
|
|
50
|
+
const destDir = (0, utils_1.runtimeDir)(name, version, cwd);
|
|
51
|
+
const binDir = (0, utils_1.runtimeBinDir)(name, version, cwd);
|
|
52
|
+
const info = (0, index_1.getRuntimeInfo)(name, version);
|
|
53
|
+
// Check if already installed
|
|
54
|
+
if (await fs.pathExists(destDir)) {
|
|
55
|
+
const binPath = path.join(binDir, info.binaryName);
|
|
56
|
+
if (await fs.pathExists(binPath)) {
|
|
57
|
+
(0, utils_1.logInfo)(`${chalk_1.default.bold(name)}@${chalk_1.default.bold(version)} is already installed.`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Directory exists but binary is missing — re-install
|
|
61
|
+
(0, utils_1.logInfo)(`Existing installation appears broken. Re-installing...`);
|
|
62
|
+
await fs.remove(destDir);
|
|
63
|
+
}
|
|
64
|
+
// Resolve the download URL (may need async resolution for Python)
|
|
65
|
+
(0, utils_1.logInfo)(`Resolving download URL for ${chalk_1.default.bold(name)}@${chalk_1.default.bold(version)}...`);
|
|
66
|
+
const downloadUrl = await (0, index_1.resolveDownloadUrl)(name, version, info);
|
|
67
|
+
// Check cache
|
|
68
|
+
const cache = (0, utils_1.cacheDir)(cwd);
|
|
69
|
+
await fs.ensureDir(cache);
|
|
70
|
+
const cachedArchive = path.join(cache, info.archiveName);
|
|
71
|
+
if (await fs.pathExists(cachedArchive)) {
|
|
72
|
+
(0, utils_1.logInfo)(`Using cached archive: ${chalk_1.default.dim(info.archiveName)}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Download
|
|
76
|
+
await downloadFile(downloadUrl, cachedArchive, name, version);
|
|
77
|
+
}
|
|
78
|
+
// Extract
|
|
79
|
+
(0, utils_1.logInfo)(`Extracting ${chalk_1.default.bold(name)}@${chalk_1.default.bold(version)}...`);
|
|
80
|
+
await fs.ensureDir(destDir);
|
|
81
|
+
await extractArchive(cachedArchive, destDir, info.stripLevel);
|
|
82
|
+
// Verify binary
|
|
83
|
+
const binPath = findBinary(destDir, info.binaryName);
|
|
84
|
+
if (!binPath) {
|
|
85
|
+
(0, utils_1.logError)(`Binary "${info.binaryName}" not found after extraction. ` +
|
|
86
|
+
`The archive format may have changed. Try cleaning and reinstalling.`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
// Make binary executable on Unix
|
|
90
|
+
if (!(0, utils_1.isWindows)()) {
|
|
91
|
+
await fs.chmod(binPath, 0o755);
|
|
92
|
+
}
|
|
93
|
+
(0, utils_1.logSuccess)(`${chalk_1.default.bold(name)}@${chalk_1.default.bold(version)} installed → ${chalk_1.default.dim(path.relative(process.cwd(), destDir))}`);
|
|
94
|
+
}
|
|
95
|
+
// ── Download File ───────────────────────────────────────────────────────────
|
|
96
|
+
async function downloadFile(url, dest, name, version) {
|
|
97
|
+
(0, utils_1.logInfo)(`Downloading ${chalk_1.default.bold(name)}@${chalk_1.default.bold(version)}...`);
|
|
98
|
+
(0, utils_1.logInfo)(`URL: ${chalk_1.default.dim(url)}`);
|
|
99
|
+
const response = await axios_1.default.get(url, {
|
|
100
|
+
responseType: 'stream',
|
|
101
|
+
maxRedirects: 10,
|
|
102
|
+
headers: {
|
|
103
|
+
'User-Agent': 'containless-cli',
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
const totalLength = parseInt(response.headers['content-length'] || '0', 10);
|
|
107
|
+
const bar = new cli_progress_1.default.SingleBar({
|
|
108
|
+
format: ` ${chalk_1.default.cyan('{bar}')} ${chalk_1.default.bold('{percentage}%')} | ${chalk_1.default.dim('{value}/{total}')} | {speed}`,
|
|
109
|
+
barCompleteChar: '█',
|
|
110
|
+
barIncompleteChar: '░',
|
|
111
|
+
hideCursor: true,
|
|
112
|
+
}, cli_progress_1.default.Presets.shades_classic);
|
|
113
|
+
if (totalLength > 0) {
|
|
114
|
+
bar.start(totalLength, 0, { speed: '...' });
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
process.stdout.write(chalk_1.default.dim(' Downloading (size unknown)... '));
|
|
118
|
+
}
|
|
119
|
+
const writer = fs.createWriteStream(dest);
|
|
120
|
+
let downloaded = 0;
|
|
121
|
+
const startTime = Date.now();
|
|
122
|
+
return new Promise((resolve, reject) => {
|
|
123
|
+
response.data.on('data', (chunk) => {
|
|
124
|
+
downloaded += chunk.length;
|
|
125
|
+
if (totalLength > 0) {
|
|
126
|
+
const elapsed = (Date.now() - startTime) / 1000;
|
|
127
|
+
const speed = elapsed > 0 ? (0, utils_1.formatBytes)(downloaded / elapsed) + '/s' : '...';
|
|
128
|
+
bar.update(downloaded, { speed });
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
response.data.pipe(writer);
|
|
132
|
+
writer.on('finish', () => {
|
|
133
|
+
if (totalLength > 0) {
|
|
134
|
+
bar.stop();
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
process.stdout.write(chalk_1.default.green('done') + ` (${(0, utils_1.formatBytes)(downloaded)})\n`);
|
|
138
|
+
}
|
|
139
|
+
resolve();
|
|
140
|
+
});
|
|
141
|
+
writer.on('error', (err) => {
|
|
142
|
+
if (totalLength > 0)
|
|
143
|
+
bar.stop();
|
|
144
|
+
reject(err);
|
|
145
|
+
});
|
|
146
|
+
response.data.on('error', (err) => {
|
|
147
|
+
if (totalLength > 0)
|
|
148
|
+
bar.stop();
|
|
149
|
+
reject(err);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
// ── Extract Archive ─────────────────────────────────────────────────────────
|
|
154
|
+
async function extractArchive(archivePath, destDir, stripLevel) {
|
|
155
|
+
if (archivePath.endsWith('.zip')) {
|
|
156
|
+
await extractZip(archivePath, destDir);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
await extractTarGz(archivePath, destDir, stripLevel);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async function extractTarGz(archivePath, destDir, strip) {
|
|
163
|
+
await tar.extract({
|
|
164
|
+
file: archivePath,
|
|
165
|
+
cwd: destDir,
|
|
166
|
+
strip,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
async function extractZip(archivePath, destDir) {
|
|
170
|
+
const unzipper = await Promise.resolve().then(() => __importStar(require('unzipper')));
|
|
171
|
+
const zip = fs.createReadStream(archivePath).pipe(unzipper.Parse({ forceStream: true }));
|
|
172
|
+
for await (const entry of zip) {
|
|
173
|
+
const entryPath = entry.path;
|
|
174
|
+
const type = entry.type;
|
|
175
|
+
// Strip the top-level directory from the path
|
|
176
|
+
const parts = entryPath.split(/[/\\]/);
|
|
177
|
+
const stripped = parts.slice(1).join(path.sep);
|
|
178
|
+
if (!stripped) {
|
|
179
|
+
entry.autodrain();
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const fullPath = path.join(destDir, stripped);
|
|
183
|
+
if (type === 'Directory') {
|
|
184
|
+
await fs.ensureDir(fullPath);
|
|
185
|
+
entry.autodrain();
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
await fs.ensureDir(path.dirname(fullPath));
|
|
189
|
+
entry.pipe(fs.createWriteStream(fullPath));
|
|
190
|
+
await new Promise((resolve, reject) => {
|
|
191
|
+
entry.on('end', resolve);
|
|
192
|
+
entry.on('error', reject);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// ── Find Binary ─────────────────────────────────────────────────────────────
|
|
198
|
+
/**
|
|
199
|
+
* Recursively search for a binary file within the extracted directory.
|
|
200
|
+
* This handles cases where the directory structure may vary.
|
|
201
|
+
*/
|
|
202
|
+
function findBinary(dir, binaryName) {
|
|
203
|
+
// First, check the standard bin/ path
|
|
204
|
+
const standardPaths = [
|
|
205
|
+
path.join(dir, 'bin', binaryName),
|
|
206
|
+
path.join(dir, binaryName),
|
|
207
|
+
// macOS Java layout
|
|
208
|
+
path.join(dir, 'Contents', 'Home', 'bin', binaryName),
|
|
209
|
+
// Windows Python layout
|
|
210
|
+
path.join(dir, 'python.exe'),
|
|
211
|
+
// Windows may have binaries at root level within the extracted dir
|
|
212
|
+
];
|
|
213
|
+
for (const p of standardPaths) {
|
|
214
|
+
if (fs.existsSync(p))
|
|
215
|
+
return p;
|
|
216
|
+
}
|
|
217
|
+
// Walk the bin/ directories if present
|
|
218
|
+
try {
|
|
219
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
220
|
+
for (const entry of entries) {
|
|
221
|
+
if (entry.isDirectory()) {
|
|
222
|
+
const binPath = path.join(dir, entry.name, 'bin', binaryName);
|
|
223
|
+
if (fs.existsSync(binPath))
|
|
224
|
+
return binPath;
|
|
225
|
+
// Check macOS java layout
|
|
226
|
+
const macJavaPath = path.join(dir, entry.name, 'Contents', 'Home', 'bin', binaryName);
|
|
227
|
+
if (fs.existsSync(macJavaPath))
|
|
228
|
+
return macJavaPath;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
// ignore
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface RunOptions {
|
|
2
|
+
command: string;
|
|
3
|
+
runtimes: Record<string, string>;
|
|
4
|
+
cwd?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Spawn a child process with all local runtime bin directories prepended to PATH.
|
|
8
|
+
* This ensures the local runtimes take precedence over any global installation.
|
|
9
|
+
*/
|
|
10
|
+
export declare function runCommand(opts: RunOptions): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA+ClE"}
|
package/dist/runner.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runCommand = runCommand;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
/**
|
|
11
|
+
* Spawn a child process with all local runtime bin directories prepended to PATH.
|
|
12
|
+
* This ensures the local runtimes take precedence over any global installation.
|
|
13
|
+
*/
|
|
14
|
+
async function runCommand(opts) {
|
|
15
|
+
const { command, runtimes, cwd } = opts;
|
|
16
|
+
const workDir = cwd || process.cwd();
|
|
17
|
+
const sep = (0, utils_1.pathSeparator)();
|
|
18
|
+
// Build the PATH with all local runtime bin directories prepended
|
|
19
|
+
const binPaths = [];
|
|
20
|
+
for (const [name, version] of Object.entries(runtimes)) {
|
|
21
|
+
const binDir = (0, utils_1.runtimeBinDir)(name, version, workDir);
|
|
22
|
+
binPaths.push(binDir);
|
|
23
|
+
}
|
|
24
|
+
const injectedPath = binPaths.join(sep) + sep + (process.env.PATH || '');
|
|
25
|
+
(0, utils_1.logInfo)(`Running: ${chalk_1.default.bold(command)}`);
|
|
26
|
+
(0, utils_1.logInfo)(`With runtimes: ${Object.entries(runtimes).map(([n, v]) => `${n}@${v}`).join(', ')}`);
|
|
27
|
+
console.log(''); // blank line before output
|
|
28
|
+
// Parse command string into executable and args
|
|
29
|
+
const parts = parseCommand(command);
|
|
30
|
+
if (parts.length === 0) {
|
|
31
|
+
(0, utils_1.logError)('Empty command');
|
|
32
|
+
return 1;
|
|
33
|
+
}
|
|
34
|
+
const [executable, ...args] = parts;
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
const child = (0, child_process_1.spawn)(executable, args, {
|
|
37
|
+
env: {
|
|
38
|
+
...process.env,
|
|
39
|
+
PATH: injectedPath,
|
|
40
|
+
},
|
|
41
|
+
stdio: 'inherit',
|
|
42
|
+
cwd: workDir,
|
|
43
|
+
shell: true,
|
|
44
|
+
});
|
|
45
|
+
child.on('error', (err) => {
|
|
46
|
+
(0, utils_1.logError)(`Failed to run command: ${err.message}`);
|
|
47
|
+
resolve(1);
|
|
48
|
+
});
|
|
49
|
+
child.on('close', (code) => {
|
|
50
|
+
resolve(code ?? 0);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// ── Parse Command String ────────────────────────────────────────────────────
|
|
55
|
+
/**
|
|
56
|
+
* Simple command parser that handles quoted strings.
|
|
57
|
+
*/
|
|
58
|
+
function parseCommand(cmd) {
|
|
59
|
+
const parts = [];
|
|
60
|
+
let current = '';
|
|
61
|
+
let inQuote = null;
|
|
62
|
+
for (const char of cmd) {
|
|
63
|
+
if (inQuote) {
|
|
64
|
+
if (char === inQuote) {
|
|
65
|
+
inQuote = null;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
current += char;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (char === '"' || char === "'") {
|
|
72
|
+
inQuote = char;
|
|
73
|
+
}
|
|
74
|
+
else if (char === ' ') {
|
|
75
|
+
if (current) {
|
|
76
|
+
parts.push(current);
|
|
77
|
+
current = '';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
current += char;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (current)
|
|
85
|
+
parts.push(current);
|
|
86
|
+
return parts;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function getGoDownloadUrl(version: string): string;
|
|
2
|
+
export declare function getGoArchiveName(version: string): string;
|
|
3
|
+
export declare function getGoBinaryName(): string;
|
|
4
|
+
/**
|
|
5
|
+
* Go tarballs contain a top-level `go/` directory.
|
|
6
|
+
*/
|
|
7
|
+
export declare const GO_STRIP_LEVEL = 1;
|
|
8
|
+
//# sourceMappingURL=go.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/runtimes/go.ts"],"names":[],"mappings":"AAqBA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAID,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GO_STRIP_LEVEL = void 0;
|
|
4
|
+
exports.getGoDownloadUrl = getGoDownloadUrl;
|
|
5
|
+
exports.getGoArchiveName = getGoArchiveName;
|
|
6
|
+
exports.getGoBinaryName = getGoBinaryName;
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
// ── Platform/Arch Mapping ───────────────────────────────────────────────────
|
|
9
|
+
function mapPlatform(p) {
|
|
10
|
+
switch (p) {
|
|
11
|
+
case 'linux': return 'linux';
|
|
12
|
+
case 'darwin': return 'darwin';
|
|
13
|
+
case 'win32': return 'windows';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function mapArch(a) {
|
|
17
|
+
switch (a) {
|
|
18
|
+
case 'x64': return 'amd64';
|
|
19
|
+
case 'arm64': return 'arm64';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// ── Download URL ────────────────────────────────────────────────────────────
|
|
23
|
+
function getGoDownloadUrl(version) {
|
|
24
|
+
const platform = mapPlatform((0, utils_1.getPlatform)());
|
|
25
|
+
const arch = mapArch((0, utils_1.getArch)());
|
|
26
|
+
const ext = (0, utils_1.isWindows)() ? 'zip' : 'tar.gz';
|
|
27
|
+
return `https://go.dev/dl/go${version}.${platform}-${arch}.${ext}`;
|
|
28
|
+
}
|
|
29
|
+
// ── Archive Name (cache key) ────────────────────────────────────────────────
|
|
30
|
+
function getGoArchiveName(version) {
|
|
31
|
+
const platform = mapPlatform((0, utils_1.getPlatform)());
|
|
32
|
+
const arch = mapArch((0, utils_1.getArch)());
|
|
33
|
+
const ext = (0, utils_1.isWindows)() ? 'zip' : 'tar.gz';
|
|
34
|
+
return `go-${version}-${platform}-${arch}.${ext}`;
|
|
35
|
+
}
|
|
36
|
+
// ── Binary Path ─────────────────────────────────────────────────────────────
|
|
37
|
+
function getGoBinaryName() {
|
|
38
|
+
return (0, utils_1.isWindows)() ? 'go.exe' : 'go';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Go tarballs contain a top-level `go/` directory.
|
|
42
|
+
*/
|
|
43
|
+
exports.GO_STRIP_LEVEL = 1;
|
|
44
|
+
//# sourceMappingURL=go.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/runtimes/go.ts"],"names":[],"mappings":";;;AAqBA,4CAMC;AAID,4CAMC;AAID,0CAEC;AA3CD,oCAAqF;AAErF,+EAA+E;AAE/E,SAAS,WAAW,CAAC,CAAW;IAC9B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO,CAAC,CAAE,OAAO,OAAO,CAAC;QAC9B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,OAAO,CAAC,CAAE,OAAO,SAAS,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAO;IACtB,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,KAAK,CAAC,CAAG,OAAO,OAAO,CAAC;QAC7B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3C,OAAO,uBAAuB,OAAO,IAAI,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AACrE,CAAC;AAED,+EAA+E;AAE/E,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3C,OAAO,MAAM,OAAO,IAAI,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AACpD,CAAC;AAED,+EAA+E;AAE/E,SAAgB,eAAe;IAC7B,OAAO,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface RuntimeInfo {
|
|
2
|
+
downloadUrl: string;
|
|
3
|
+
archiveName: string;
|
|
4
|
+
binaryName: string;
|
|
5
|
+
stripLevel: number;
|
|
6
|
+
/** If true, downloadUrl must be resolved asynchronously before use */
|
|
7
|
+
needsResolve: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function getRuntimeInfo(name: string, version: string): RuntimeInfo;
|
|
10
|
+
export declare function resolveDownloadUrl(name: string, version: string, info: RuntimeInfo): Promise<string>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAyCzE;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1G"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRuntimeInfo = getRuntimeInfo;
|
|
4
|
+
exports.resolveDownloadUrl = resolveDownloadUrl;
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const node_1 = require("./node");
|
|
7
|
+
const python_1 = require("./python");
|
|
8
|
+
const java_1 = require("./java");
|
|
9
|
+
const go_1 = require("./go");
|
|
10
|
+
function getRuntimeInfo(name, version) {
|
|
11
|
+
if (!(0, utils_1.isSupportedRuntime)(name)) {
|
|
12
|
+
throw new Error(`Unsupported runtime: "${name}". Supported runtimes: node, python, java, go`);
|
|
13
|
+
}
|
|
14
|
+
switch (name) {
|
|
15
|
+
case 'node':
|
|
16
|
+
return {
|
|
17
|
+
downloadUrl: (0, node_1.getNodeDownloadUrl)(version),
|
|
18
|
+
archiveName: (0, node_1.getNodeArchiveName)(version),
|
|
19
|
+
binaryName: (0, node_1.getNodeBinaryName)(),
|
|
20
|
+
stripLevel: node_1.NODE_STRIP_LEVEL,
|
|
21
|
+
needsResolve: false,
|
|
22
|
+
};
|
|
23
|
+
case 'python':
|
|
24
|
+
return {
|
|
25
|
+
downloadUrl: (0, python_1.getPythonDownloadUrl)(version),
|
|
26
|
+
archiveName: (0, python_1.getPythonArchiveName)(version),
|
|
27
|
+
binaryName: (0, python_1.getPythonBinaryName)(),
|
|
28
|
+
stripLevel: python_1.PYTHON_STRIP_LEVEL,
|
|
29
|
+
needsResolve: true,
|
|
30
|
+
};
|
|
31
|
+
case 'java':
|
|
32
|
+
return {
|
|
33
|
+
downloadUrl: (0, java_1.getJavaDownloadUrl)(version),
|
|
34
|
+
archiveName: (0, java_1.getJavaArchiveName)(version),
|
|
35
|
+
binaryName: (0, java_1.getJavaBinaryName)(),
|
|
36
|
+
stripLevel: java_1.JAVA_STRIP_LEVEL,
|
|
37
|
+
needsResolve: false,
|
|
38
|
+
};
|
|
39
|
+
case 'go':
|
|
40
|
+
return {
|
|
41
|
+
downloadUrl: (0, go_1.getGoDownloadUrl)(version),
|
|
42
|
+
archiveName: (0, go_1.getGoArchiveName)(version),
|
|
43
|
+
binaryName: (0, go_1.getGoBinaryName)(),
|
|
44
|
+
stripLevel: go_1.GO_STRIP_LEVEL,
|
|
45
|
+
needsResolve: false,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function resolveDownloadUrl(name, version, info) {
|
|
50
|
+
if (name === 'python' && info.needsResolve) {
|
|
51
|
+
return (0, python_1.resolvePythonDownloadUrl)(version);
|
|
52
|
+
}
|
|
53
|
+
return info.downloadUrl;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":";;AAiBA,wCAyCC;AAED,gDAKC;AAjED,oCAA2D;AAC3D,iCAAqG;AACrG,qCAAyI;AACzI,iCAAqG;AACrG,6BAA2F;AAa3F,SAAgB,cAAc,CAAC,IAAY,EAAE,OAAe;IAC1D,IAAI,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,+CAA+C,CAC7E,CAAC;IACJ,CAAC;IAED,QAAQ,IAAmB,EAAE,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO;gBACL,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC;gBACxC,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC;gBACxC,UAAU,EAAE,IAAA,wBAAiB,GAAE;gBAC/B,UAAU,EAAE,uBAAgB;gBAC5B,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,WAAW,EAAE,IAAA,6BAAoB,EAAC,OAAO,CAAC;gBAC1C,WAAW,EAAE,IAAA,6BAAoB,EAAC,OAAO,CAAC;gBAC1C,UAAU,EAAE,IAAA,4BAAmB,GAAE;gBACjC,UAAU,EAAE,2BAAkB;gBAC9B,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC;gBACxC,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC;gBACxC,UAAU,EAAE,IAAA,wBAAiB,GAAE;gBAC/B,UAAU,EAAE,uBAAgB;gBAC5B,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,KAAK,IAAI;YACP,OAAO;gBACL,WAAW,EAAE,IAAA,qBAAgB,EAAC,OAAO,CAAC;gBACtC,WAAW,EAAE,IAAA,qBAAgB,EAAC,OAAO,CAAC;gBACtC,UAAU,EAAE,IAAA,oBAAe,GAAE;gBAC7B,UAAU,EAAE,mBAAc;gBAC1B,YAAY,EAAE,KAAK;aACpB,CAAC;IACN,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,OAAe,EAAE,IAAiB;IACvF,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,IAAA,iCAAwB,EAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adoptium API for latest JDK binary.
|
|
3
|
+
* https://api.adoptium.net/v3/binary/latest/{feature_version}/ga/{os}/{arch}/jdk/hotspot/normal/eclipse
|
|
4
|
+
*
|
|
5
|
+
* This returns a redirect to the actual download URL.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getJavaDownloadUrl(version: string): string;
|
|
8
|
+
export declare function getJavaArchiveName(version: string): string;
|
|
9
|
+
export declare function getJavaBinaryName(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Adoptium tarballs contain one top-level directory (e.g., jdk-21.0.2+13/).
|
|
12
|
+
*/
|
|
13
|
+
export declare const JAVA_STRIP_LEVEL = 1;
|
|
14
|
+
//# sourceMappingURL=java.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/runtimes/java.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK1D;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAID,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JAVA_STRIP_LEVEL = void 0;
|
|
4
|
+
exports.getJavaDownloadUrl = getJavaDownloadUrl;
|
|
5
|
+
exports.getJavaArchiveName = getJavaArchiveName;
|
|
6
|
+
exports.getJavaBinaryName = getJavaBinaryName;
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
// ── Platform/Arch Mapping ───────────────────────────────────────────────────
|
|
9
|
+
function mapPlatform(p) {
|
|
10
|
+
switch (p) {
|
|
11
|
+
case 'linux': return 'linux';
|
|
12
|
+
case 'darwin': return 'mac';
|
|
13
|
+
case 'win32': return 'windows';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function mapArch(a) {
|
|
17
|
+
switch (a) {
|
|
18
|
+
case 'x64': return 'x64';
|
|
19
|
+
case 'arm64': return 'aarch64';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// ── Download URL ────────────────────────────────────────────────────────────
|
|
23
|
+
/**
|
|
24
|
+
* Adoptium API for latest JDK binary.
|
|
25
|
+
* https://api.adoptium.net/v3/binary/latest/{feature_version}/ga/{os}/{arch}/jdk/hotspot/normal/eclipse
|
|
26
|
+
*
|
|
27
|
+
* This returns a redirect to the actual download URL.
|
|
28
|
+
*/
|
|
29
|
+
function getJavaDownloadUrl(version) {
|
|
30
|
+
const os = mapPlatform((0, utils_1.getPlatform)());
|
|
31
|
+
const arch = mapArch((0, utils_1.getArch)());
|
|
32
|
+
return `https://api.adoptium.net/v3/binary/latest/${version}/ga/${os}/${arch}/jdk/hotspot/normal/eclipse`;
|
|
33
|
+
}
|
|
34
|
+
// ── Archive Name (cache key) ────────────────────────────────────────────────
|
|
35
|
+
function getJavaArchiveName(version) {
|
|
36
|
+
const os = mapPlatform((0, utils_1.getPlatform)());
|
|
37
|
+
const arch = mapArch((0, utils_1.getArch)());
|
|
38
|
+
const ext = (0, utils_1.isWindows)() ? 'zip' : 'tar.gz';
|
|
39
|
+
return `java-${version}-${os}-${arch}.${ext}`;
|
|
40
|
+
}
|
|
41
|
+
// ── Binary Path ─────────────────────────────────────────────────────────────
|
|
42
|
+
function getJavaBinaryName() {
|
|
43
|
+
return (0, utils_1.isWindows)() ? 'java.exe' : 'java';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Adoptium tarballs contain one top-level directory (e.g., jdk-21.0.2+13/).
|
|
47
|
+
*/
|
|
48
|
+
exports.JAVA_STRIP_LEVEL = 1;
|
|
49
|
+
//# sourceMappingURL=java.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../src/runtimes/java.ts"],"names":[],"mappings":";;;AA2BA,gDAKC;AAID,gDAMC;AAID,8CAEC;AAhDD,oCAAqF;AAErF,+EAA+E;AAE/E,SAAS,WAAW,CAAC,CAAW;IAC9B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO,CAAC,CAAE,OAAO,OAAO,CAAC;QAC9B,KAAK,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAE,OAAO,SAAS,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAO;IACtB,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,KAAK,CAAC,CAAG,OAAO,KAAK,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IACjC,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,EAAE,GAAG,WAAW,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAEhC,OAAO,6CAA6C,OAAO,OAAO,EAAE,IAAI,IAAI,6BAA6B,CAAC;AAC5G,CAAC;AAED,+EAA+E;AAE/E,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,EAAE,GAAG,WAAW,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3C,OAAO,QAAQ,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAChD,CAAC;AAED,+EAA+E;AAE/E,SAAgB,iBAAiB;IAC/B,OAAO,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3C,CAAC;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function getNodeDownloadUrl(version: string): string;
|
|
2
|
+
export declare function getNodeArchiveName(version: string): string;
|
|
3
|
+
export declare function getNodeBinaryName(): string;
|
|
4
|
+
/**
|
|
5
|
+
* Number of directory levels to strip when extracting.
|
|
6
|
+
* Node.js tarballs have one top-level directory (e.g. node-v18.17.0-linux-x64/).
|
|
7
|
+
*/
|
|
8
|
+
export declare const NODE_STRIP_LEVEL = 1;
|
|
9
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/runtimes/node.ts"],"names":[],"mappings":"AAqBA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAID,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NODE_STRIP_LEVEL = void 0;
|
|
4
|
+
exports.getNodeDownloadUrl = getNodeDownloadUrl;
|
|
5
|
+
exports.getNodeArchiveName = getNodeArchiveName;
|
|
6
|
+
exports.getNodeBinaryName = getNodeBinaryName;
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
// ── Platform/Arch Mapping ───────────────────────────────────────────────────
|
|
9
|
+
function mapPlatform(p) {
|
|
10
|
+
switch (p) {
|
|
11
|
+
case 'linux': return 'linux';
|
|
12
|
+
case 'darwin': return 'darwin';
|
|
13
|
+
case 'win32': return 'win';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function mapArch(a) {
|
|
17
|
+
switch (a) {
|
|
18
|
+
case 'x64': return 'x64';
|
|
19
|
+
case 'arm64': return 'arm64';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// ── Download URL ────────────────────────────────────────────────────────────
|
|
23
|
+
function getNodeDownloadUrl(version) {
|
|
24
|
+
const platform = mapPlatform((0, utils_1.getPlatform)());
|
|
25
|
+
const arch = mapArch((0, utils_1.getArch)());
|
|
26
|
+
const ext = (0, utils_1.isWindows)() ? 'zip' : 'tar.gz';
|
|
27
|
+
return `https://nodejs.org/dist/v${version}/node-v${version}-${platform}-${arch}.${ext}`;
|
|
28
|
+
}
|
|
29
|
+
// ── Archive Name (cache key) ────────────────────────────────────────────────
|
|
30
|
+
function getNodeArchiveName(version) {
|
|
31
|
+
const platform = mapPlatform((0, utils_1.getPlatform)());
|
|
32
|
+
const arch = mapArch((0, utils_1.getArch)());
|
|
33
|
+
const ext = (0, utils_1.isWindows)() ? 'zip' : 'tar.gz';
|
|
34
|
+
return `node-${version}-${platform}-${arch}.${ext}`;
|
|
35
|
+
}
|
|
36
|
+
// ── Binary Path ─────────────────────────────────────────────────────────────
|
|
37
|
+
function getNodeBinaryName() {
|
|
38
|
+
return (0, utils_1.isWindows)() ? 'node.exe' : 'node';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Number of directory levels to strip when extracting.
|
|
42
|
+
* Node.js tarballs have one top-level directory (e.g. node-v18.17.0-linux-x64/).
|
|
43
|
+
*/
|
|
44
|
+
exports.NODE_STRIP_LEVEL = 1;
|
|
45
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/runtimes/node.ts"],"names":[],"mappings":";;;AAqBA,gDAMC;AAID,gDAMC;AAID,8CAEC;AA3CD,oCAAqF;AAErF,+EAA+E;AAE/E,SAAS,WAAW,CAAC,CAAW;IAC9B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO,CAAC,CAAE,OAAO,OAAO,CAAC;QAC9B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,OAAO,CAAC,CAAE,OAAO,KAAK,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAO;IACtB,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,KAAK,CAAC,CAAG,OAAO,KAAK,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3C,OAAO,4BAA4B,OAAO,UAAU,OAAO,IAAI,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAC3F,CAAC;AAED,+EAA+E;AAE/E,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3C,OAAO,QAAQ,OAAO,IAAI,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AACtD,CAAC;AAED,+EAA+E;AAE/E,SAAgB,iBAAiB;IAC/B,OAAO,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACU,QAAA,gBAAgB,GAAG,CAAC,CAAC"}
|