node-install-release 1.18.6 → 1.19.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/dist/cjs/installNPM/installLib.js +33 -32
- package/dist/cjs/installNPM/installLib.js.map +1 -1
- package/dist/cjs/workers/install.js +7 -11
- package/dist/cjs/workers/install.js.map +1 -1
- package/dist/esm/installNPM/installLib.js +28 -27
- package/dist/esm/installNPM/installLib.js.map +1 -1
- package/dist/esm/workers/install.js +8 -12
- package/dist/esm/workers/install.js.map +1 -1
- package/package.json +2 -2
|
@@ -44,41 +44,42 @@ function installLib(version, dest, options, callback) {
|
|
|
44
44
|
var platform = options.platform;
|
|
45
45
|
var libPath = platform === 'win32' ? dest : _path.default.join(dest, 'lib');
|
|
46
46
|
var installPath = _path.default.join(libPath, 'node_modules', 'npm');
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
47
|
+
(0, _nodefilenametodistpaths.getDistAsync)(version, function(_err, dist) {
|
|
48
|
+
// pin the npm major only when the dist index knows this version; unknown means use latest
|
|
49
|
+
var npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], _constantsts.NPM_MIN_VERSION) : null;
|
|
50
|
+
(0, _getfilecompat.getContent)(_constantsts.NPM_DIST_TAGS_URL, 'utf8', function(err, res) {
|
|
51
|
+
if (err) return callback(err);
|
|
52
|
+
try {
|
|
53
|
+
var _ref, _options_cachePath;
|
|
54
|
+
var distTags = JSON.parse((_ref = res === null || res === void 0 ? void 0 : res.content) !== null && _ref !== void 0 ? _ref : '{}');
|
|
55
|
+
var npmVersion = npmMajor === null ? distTags.latest : distTags["latest-".concat(npmMajor)] || distTags["next-".concat(npmMajor)] || distTags.latest;
|
|
56
|
+
var downloadPath = "".concat(_constantsts.NPM_DIST_URL, "/-/npm-").concat(npmVersion, ".tgz");
|
|
57
|
+
var cachePath = _path.default.join((_options_cachePath = options.cachePath) !== null && _options_cachePath !== void 0 ? _options_cachePath : (0, _compatts.tmpdir)(), _path.default.basename(downloadPath));
|
|
58
|
+
var checksum;
|
|
59
|
+
var queue = new _queuecb.default(1);
|
|
60
|
+
queue.defer(function(cb) {
|
|
61
|
+
return (0, _conditionalCachets.default)(downloadPath, cachePath, options, function(err) {
|
|
62
|
+
return cb(err);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
queue.defer(function(cb) {
|
|
66
|
+
calculateChecksum(cachePath, function(err, hash) {
|
|
67
|
+
checksum = hash;
|
|
68
|
+
cb(err);
|
|
69
|
+
});
|
|
63
70
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
cb(err);
|
|
71
|
+
queue.defer(function(cb) {
|
|
72
|
+
return (0, _extractts.default)(cachePath, installPath, function(err) {
|
|
73
|
+
return cb(err);
|
|
74
|
+
});
|
|
69
75
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return (0, _extractts.default)(cachePath, installPath, function(err) {
|
|
73
|
-
return cb(err);
|
|
76
|
+
queue.await(function(err) {
|
|
77
|
+
err ? callback(err) : callback(undefined, npmVersion, checksum);
|
|
74
78
|
});
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
} catch (_e) {
|
|
80
|
-
return callback(new Error('Failed to parse npm dist-tags'));
|
|
81
|
-
}
|
|
79
|
+
} catch (_e) {
|
|
80
|
+
return callback(new Error('Failed to parse npm dist-tags'));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
82
83
|
});
|
|
83
84
|
}
|
|
84
85
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport { getContent } from 'get-file-compat';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport { getContent } from 'get-file-compat';\nimport { getDistAsync } from 'node-filename-to-dist-paths';\nimport oo from 'on-one';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { tmpdir } from '../compat.ts';\nimport { NPM_DIST_TAGS_URL, NPM_DIST_URL, NPM_MIN_VERSION } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport extract from '../lib/extract.ts';\n\nimport type { InstallOptions } from '../types.ts';\n\nexport type Callback = (error?: Error | null, npmVersion?: string, checksum?: string) => void;\n\nfunction calculateChecksum(filePath: string, callback: (err?: Error | null, checksum?: string) => void): void {\n const hash = crypto.createHash('sha256');\n const stream = fs.createReadStream(filePath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err: Error | null) => {\n if (err) return callback(err);\n callback(undefined, hash.digest('hex'));\n });\n}\n\nexport default function installLib(version: string, dest: string, options: InstallOptions, callback: Callback): void {\n const platform = options.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const installPath = path.join(libPath, 'node_modules', 'npm');\n\n getDistAsync(version, (_err, dist) => {\n // pin the npm major only when the dist index knows this version; unknown means use latest\n const npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], NPM_MIN_VERSION) : null;\n\n getContent(NPM_DIST_TAGS_URL, 'utf8', (err, res) => {\n if (err) return callback(err);\n try {\n const distTags = JSON.parse(res?.content ?? '{}') as Record<string, string>;\n const npmVersion = npmMajor === null ? distTags.latest : distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;\n const downloadPath = `${NPM_DIST_URL}/-/npm-${npmVersion}.tgz`;\n const cachePath = path.join(options.cachePath ?? tmpdir(), path.basename(downloadPath));\n\n let checksum: string | undefined;\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => {\n calculateChecksum(cachePath, (err, hash) => {\n checksum = hash;\n cb(err);\n });\n });\n queue.defer((cb) => extract(cachePath, installPath, (err) => cb(err)));\n queue.await((err) => {\n err ? callback(err) : callback(undefined, npmVersion, checksum);\n });\n } catch (_e) {\n return callback(new Error('Failed to parse npm dist-tags'));\n }\n });\n });\n}\n"],"names":["installLib","calculateChecksum","filePath","callback","hash","crypto","createHash","stream","fs","createReadStream","on","data","update","oo","err","undefined","digest","version","dest","options","platform","libPath","path","join","installPath","getDistAsync","_err","dist","npmMajor","npm","Math","max","split","NPM_MIN_VERSION","getContent","NPM_DIST_TAGS_URL","res","distTags","JSON","parse","content","npmVersion","latest","downloadPath","NPM_DIST_URL","cachePath","tmpdir","basename","checksum","queue","Queue","defer","cb","conditionalCache","extract","await","_e","Error"],"mappings":";;;;+BA0BA;;;eAAwBA;;;6DA1BL;yDACJ;6BACY;uCACE;4DACd;2DACE;8DACC;wBACK;2BAC0C;yEACpC;gEACT;;;;;;AAMpB,SAASC,kBAAkBC,QAAgB,EAAEC,QAAyD;IACpG,IAAMC,OAAOC,eAAM,CAACC,UAAU,CAAC;IAC/B,IAAMC,SAASC,WAAE,CAACC,gBAAgB,CAACP;IACnCK,OAAOG,EAAE,CAAC,QAAQ,SAACC;eAASP,KAAKQ,MAAM,CAACD;;IACxCE,IAAAA,cAAE,EAACN,QAAQ;QAAC;QAAS;QAAO;QAAS;KAAS,EAAE,SAACO;QAC/C,IAAIA,KAAK,OAAOX,SAASW;QACzBX,SAASY,WAAWX,KAAKY,MAAM,CAAC;IAClC;AACF;AAEe,SAAShB,WAAWiB,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEhB,QAAkB;IAC3G,IAAMiB,WAAWD,QAAQC,QAAQ;IACjC,IAAMC,UAAUD,aAAa,UAAUF,OAAOI,aAAI,CAACC,IAAI,CAACL,MAAM;IAC9D,IAAMM,cAAcF,aAAI,CAACC,IAAI,CAACF,SAAS,gBAAgB;IAEvDI,IAAAA,qCAAY,EAACR,SAAS,SAACS,MAAMC;QAC3B,0FAA0F;QAC1F,IAAMC,WAAWD,QAAQA,KAAKE,GAAG,GAAGC,KAAKC,GAAG,CAAC,CAACJ,KAAKE,GAAG,CAACG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAEC,4BAAe,IAAI;QAEzFC,IAAAA,yBAAU,EAACC,8BAAiB,EAAE,QAAQ,SAACrB,KAAKsB;YAC1C,IAAItB,KAAK,OAAOX,SAASW;YACzB,IAAI;0BAI0BK;gBAH5B,IAAMkB,WAAWC,KAAKC,KAAK,SAACH,gBAAAA,0BAAAA,IAAKI,OAAO,uCAAI;gBAC5C,IAAMC,aAAab,aAAa,OAAOS,SAASK,MAAM,GAAGL,QAAQ,CAAC,AAAC,UAAkB,OAATT,UAAW,IAAIS,QAAQ,CAAC,AAAC,QAAgB,OAATT,UAAW,IAAIS,SAASK,MAAM;gBAC1I,IAAMC,eAAe,AAAC,GAAwBF,OAAtBG,yBAAY,EAAC,WAAoB,OAAXH,YAAW;gBACzD,IAAMI,YAAYvB,aAAI,CAACC,IAAI,EAACJ,qBAAAA,QAAQ0B,SAAS,cAAjB1B,gCAAAA,qBAAqB2B,IAAAA,gBAAM,KAAIxB,aAAI,CAACyB,QAAQ,CAACJ;gBAEzE,IAAIK;gBACJ,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAAC,SAACC;2BAAOC,IAAAA,2BAAgB,EAACV,cAAcE,WAAW1B,SAAS,SAACL;+BAAQsC,GAAGtC;;;gBACnFmC,MAAME,KAAK,CAAC,SAACC;oBACXnD,kBAAkB4C,WAAW,SAAC/B,KAAKV;wBACjC4C,WAAW5C;wBACXgD,GAAGtC;oBACL;gBACF;gBACAmC,MAAME,KAAK,CAAC,SAACC;2BAAOE,IAAAA,kBAAO,EAACT,WAAWrB,aAAa,SAACV;+BAAQsC,GAAGtC;;;gBAChEmC,MAAMM,KAAK,CAAC,SAACzC;oBACXA,MAAMX,SAASW,OAAOX,SAASY,WAAW0B,YAAYO;gBACxD;YACF,EAAE,OAAOQ,IAAI;gBACX,OAAOrD,SAAS,IAAIsD,MAAM;YAC5B;QACF;IACF;AACF"}
|
|
@@ -103,14 +103,12 @@ function install(versionExpression, options, callback) {
|
|
|
103
103
|
queue.defer(function(cb) {
|
|
104
104
|
(0, _checkMissingts.default)(tempPath, options, function(err, npmMissing) {
|
|
105
105
|
if (err) return cb(err);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
106
|
+
// npm not bundled with node - download it
|
|
107
|
+
if (~(npmMissing || []).indexOf('npm')) return (0, _indexts1.default)(version, tempPath, options, cb);
|
|
108
|
+
// npm is present (bundled with node) - keep it unless the dist index positively says it is ancient (<3)
|
|
109
|
+
(0, _nodefilenametodistpaths.getDistAsync)(version, function(_err, dist) {
|
|
110
|
+
var bundledNpmIsAncient = dist && dist.npm && +dist.npm.split('.')[0] < 3;
|
|
111
|
+
if (!bundledNpmIsAncient) return cb(); // unknown version keeps the bundled npm
|
|
114
112
|
// old npm (<3) is buggy - delete it so installNPM can override
|
|
115
113
|
var platform = options.platform;
|
|
116
114
|
var libPath = platform === 'win32' ? tempPath : _path.default.join(tempPath, 'lib');
|
|
@@ -118,9 +116,7 @@ function install(versionExpression, options, callback) {
|
|
|
118
116
|
(0, _fsremovecompat.safeRm)(npmPath, function() {
|
|
119
117
|
return (0, _indexts1.default)(version, tempPath, options, cb);
|
|
120
118
|
});
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
(0, _indexts1.default)(version, tempPath, options, cb);
|
|
119
|
+
});
|
|
124
120
|
});
|
|
125
121
|
});
|
|
126
122
|
// Atomic rename: move temp folder to final destination
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport isVersion from 'is-version';\nimport mkdirp from 'mkdirp-classic';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport isVersion from 'is-version';\nimport mkdirp from 'mkdirp-classic';\nimport { getDistAsync } from 'node-filename-to-dist-paths';\nimport resolveVersions from 'node-resolve-versions';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\n\nimport { DEFAULT_STORAGE_PATHS } from '../constants.ts';\n\nimport createResult from '../createResult.ts';\nimport createStoragePaths from '../createStoragePaths.ts';\nimport installNode from '../installNode/index.ts';\n\nimport installNPM from '../installNPM/index.ts';\nimport checkMissing from '../lib/checkMissing.ts';\nimport ensureDestinationParent from '../lib/ensureDestinationParent.ts';\nimport getTarget from '../lib/getTarget.ts';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\ntype GetVersionsCallback = (error?: Error | null, results?: string[]) => void;\nfunction getVersions(versionExpression: string, options: InstallOptions, callback: GetVersionsCallback) {\n // short circuit\n if (isVersion(versionExpression)) callback(undefined, [versionExpression]);\n else resolveVersions(versionExpression, options, (err?: Error | null, result?: string[] | unknown[]) => callback(err, result as string[] | undefined));\n}\n\nexport default function install(versionExpression: string, options: InstallOptions, callback: InstallCallback): void {\n const storagePaths = options.storagePath ? createStoragePaths(options.storagePath) : DEFAULT_STORAGE_PATHS;\n options = { ...storagePaths, ...options, ...getTarget(options) };\n getVersions(versionExpression, options, (err?: Error | null, versions?: string[]): void => {\n if (err) return callback(err);\n if (!versions || !versions.length) {\n callback(new Error(`Could not resolve versions for: ${versionExpression}`));\n return;\n }\n if (versions.length !== 1) {\n callback(new Error(`Version ${versionExpression} resolved to multiple versions: ${versions.map((x) => x)}. Expecting one.`));\n return;\n }\n\n const version = versions[0];\n const result = createResult(options, version);\n\n // Fast path: with atomic installs, folder exists = complete installation\n fs.stat(result.installPath, (err) => {\n if (!err) return callback(undefined, result);\n\n // Folder doesn't exist - do atomic install with temp folder\n const tempPath = tempSuffix(result.installPath);\n\n const queue = new Queue(1);\n queue.defer((cb) => mkdirp(options.cachePath!, (err) => cb(err)));\n queue.defer(ensureDestinationParent.bind(null, tempPath));\n\n // Install node to temp folder\n queue.defer(installNode.bind(null, version, tempPath, options));\n\n // Check and install npm to temp folder\n // Skip npm download only if bundled npm is modern (>= 3)\n queue.defer((cb) => {\n checkMissing(tempPath, options, (err, npmMissing): void => {\n if (err) return cb(err);\n // npm not bundled with node - download it\n if (~(npmMissing || []).indexOf('npm')) return installNPM(version, tempPath, options, cb);\n\n // npm is present (bundled with node) - keep it unless the dist index positively says it is ancient (<3)\n getDistAsync(version, (_err, dist) => {\n const bundledNpmIsAncient = dist && dist.npm && +dist.npm.split('.')[0] < 3;\n if (!bundledNpmIsAncient) return cb(); // unknown version keeps the bundled npm\n\n // old npm (<3) is buggy - delete it so installNPM can override\n const platform = options.platform;\n const libPath = platform === 'win32' ? tempPath : path.join(tempPath, 'lib');\n const npmPath = path.join(libPath, 'node_modules', 'npm');\n safeRm(npmPath, () => installNPM(version, tempPath, options, cb));\n });\n });\n });\n\n // Atomic rename: move temp folder to final destination\n queue.defer((cb) => {\n fs.rename(tempPath, result.installPath, (err) => {\n if (!err) return cb();\n // Race condition: another process may have already created dest\n if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {\n // Another process won the race - clean up temp and succeed\n safeRm(tempPath, () => cb());\n return;\n }\n cb(err);\n });\n });\n\n queue.await((err) => {\n // Clean up temp folder on error\n if (err) return safeRm(tempPath, () => callback(err));\n\n callback(undefined, result);\n });\n });\n });\n}\n"],"names":["install","getVersions","versionExpression","options","callback","isVersion","undefined","resolveVersions","err","result","storagePaths","storagePath","createStoragePaths","DEFAULT_STORAGE_PATHS","getTarget","versions","length","Error","map","x","version","createResult","fs","stat","installPath","tempPath","tempSuffix","queue","Queue","defer","cb","mkdirp","cachePath","ensureDestinationParent","bind","installNode","checkMissing","npmMissing","indexOf","installNPM","getDistAsync","_err","dist","bundledNpmIsAncient","npm","split","platform","libPath","path","join","npmPath","safeRm","rename","code","await"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { getContent } from 'get-file-compat';
|
|
4
|
-
import {
|
|
4
|
+
import { getDistAsync } from 'node-filename-to-dist-paths';
|
|
5
5
|
import oo from 'on-one';
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import Queue from 'queue-cb';
|
|
@@ -27,32 +27,33 @@ export default function installLib(version, dest, options, callback) {
|
|
|
27
27
|
const platform = options.platform;
|
|
28
28
|
const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');
|
|
29
29
|
const installPath = path.join(libPath, 'node_modules', 'npm');
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
30
|
+
getDistAsync(version, (_err, dist)=>{
|
|
31
|
+
// pin the npm major only when the dist index knows this version; unknown means use latest
|
|
32
|
+
const npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], NPM_MIN_VERSION) : null;
|
|
33
|
+
getContent(NPM_DIST_TAGS_URL, 'utf8', (err, res)=>{
|
|
34
|
+
if (err) return callback(err);
|
|
35
|
+
try {
|
|
36
|
+
var _ref, _options_cachePath;
|
|
37
|
+
const distTags = JSON.parse((_ref = res === null || res === void 0 ? void 0 : res.content) !== null && _ref !== void 0 ? _ref : '{}');
|
|
38
|
+
const npmVersion = npmMajor === null ? distTags.latest : distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;
|
|
39
|
+
const downloadPath = `${NPM_DIST_URL}/-/npm-${npmVersion}.tgz`;
|
|
40
|
+
const cachePath = path.join((_options_cachePath = options.cachePath) !== null && _options_cachePath !== void 0 ? _options_cachePath : tmpdir(), path.basename(downloadPath));
|
|
41
|
+
let checksum;
|
|
42
|
+
const queue = new Queue(1);
|
|
43
|
+
queue.defer((cb)=>conditionalCache(downloadPath, cachePath, options, (err)=>cb(err)));
|
|
44
|
+
queue.defer((cb)=>{
|
|
45
|
+
calculateChecksum(cachePath, (err, hash)=>{
|
|
46
|
+
checksum = hash;
|
|
47
|
+
cb(err);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
queue.defer((cb)=>extract(cachePath, installPath, (err)=>cb(err)));
|
|
51
|
+
queue.await((err)=>{
|
|
52
|
+
err ? callback(err) : callback(undefined, npmVersion, checksum);
|
|
48
53
|
});
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
54
|
-
} catch (_e) {
|
|
55
|
-
return callback(new Error('Failed to parse npm dist-tags'));
|
|
56
|
-
}
|
|
54
|
+
} catch (_e) {
|
|
55
|
+
return callback(new Error('Failed to parse npm dist-tags'));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
57
58
|
});
|
|
58
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport { getContent } from 'get-file-compat';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport { getContent } from 'get-file-compat';\nimport { getDistAsync } from 'node-filename-to-dist-paths';\nimport oo from 'on-one';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { tmpdir } from '../compat.ts';\nimport { NPM_DIST_TAGS_URL, NPM_DIST_URL, NPM_MIN_VERSION } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport extract from '../lib/extract.ts';\n\nimport type { InstallOptions } from '../types.ts';\n\nexport type Callback = (error?: Error | null, npmVersion?: string, checksum?: string) => void;\n\nfunction calculateChecksum(filePath: string, callback: (err?: Error | null, checksum?: string) => void): void {\n const hash = crypto.createHash('sha256');\n const stream = fs.createReadStream(filePath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err: Error | null) => {\n if (err) return callback(err);\n callback(undefined, hash.digest('hex'));\n });\n}\n\nexport default function installLib(version: string, dest: string, options: InstallOptions, callback: Callback): void {\n const platform = options.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const installPath = path.join(libPath, 'node_modules', 'npm');\n\n getDistAsync(version, (_err, dist) => {\n // pin the npm major only when the dist index knows this version; unknown means use latest\n const npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], NPM_MIN_VERSION) : null;\n\n getContent(NPM_DIST_TAGS_URL, 'utf8', (err, res) => {\n if (err) return callback(err);\n try {\n const distTags = JSON.parse(res?.content ?? '{}') as Record<string, string>;\n const npmVersion = npmMajor === null ? distTags.latest : distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;\n const downloadPath = `${NPM_DIST_URL}/-/npm-${npmVersion}.tgz`;\n const cachePath = path.join(options.cachePath ?? tmpdir(), path.basename(downloadPath));\n\n let checksum: string | undefined;\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => {\n calculateChecksum(cachePath, (err, hash) => {\n checksum = hash;\n cb(err);\n });\n });\n queue.defer((cb) => extract(cachePath, installPath, (err) => cb(err)));\n queue.await((err) => {\n err ? callback(err) : callback(undefined, npmVersion, checksum);\n });\n } catch (_e) {\n return callback(new Error('Failed to parse npm dist-tags'));\n }\n });\n });\n}\n"],"names":["crypto","fs","getContent","getDistAsync","oo","path","Queue","tmpdir","NPM_DIST_TAGS_URL","NPM_DIST_URL","NPM_MIN_VERSION","conditionalCache","extract","calculateChecksum","filePath","callback","hash","createHash","stream","createReadStream","on","data","update","err","undefined","digest","installLib","version","dest","options","platform","libPath","join","installPath","_err","dist","npmMajor","npm","Math","max","split","res","distTags","JSON","parse","content","npmVersion","latest","downloadPath","cachePath","basename","checksum","queue","defer","cb","await","_e","Error"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,QAAQ,KAAK;AACpB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,QAAQ,8BAA8B;AAC3D,OAAOC,QAAQ,SAAS;AACxB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,iBAAiB,EAAEC,YAAY,EAAEC,eAAe,QAAQ,kBAAkB;AACnF,OAAOC,sBAAsB,6BAA6B;AAC1D,OAAOC,aAAa,oBAAoB;AAMxC,SAASC,kBAAkBC,QAAgB,EAAEC,QAAyD;IACpG,MAAMC,OAAOhB,OAAOiB,UAAU,CAAC;IAC/B,MAAMC,SAASjB,GAAGkB,gBAAgB,CAACL;IACnCI,OAAOE,EAAE,CAAC,QAAQ,CAACC,OAASL,KAAKM,MAAM,CAACD;IACxCjB,GAAGc,QAAQ;QAAC;QAAS;QAAO;QAAS;KAAS,EAAE,CAACK;QAC/C,IAAIA,KAAK,OAAOR,SAASQ;QACzBR,SAASS,WAAWR,KAAKS,MAAM,CAAC;IAClC;AACF;AAEA,eAAe,SAASC,WAAWC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEd,QAAkB;IAC3G,MAAMe,WAAWD,QAAQC,QAAQ;IACjC,MAAMC,UAAUD,aAAa,UAAUF,OAAOvB,KAAK2B,IAAI,CAACJ,MAAM;IAC9D,MAAMK,cAAc5B,KAAK2B,IAAI,CAACD,SAAS,gBAAgB;IAEvD5B,aAAawB,SAAS,CAACO,MAAMC;QAC3B,0FAA0F;QAC1F,MAAMC,WAAWD,QAAQA,KAAKE,GAAG,GAAGC,KAAKC,GAAG,CAAC,CAACJ,KAAKE,GAAG,CAACG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE9B,mBAAmB;QAEzFR,WAAWM,mBAAmB,QAAQ,CAACe,KAAKkB;YAC1C,IAAIlB,KAAK,OAAOR,SAASQ;YACzB,IAAI;0BAI0BM;gBAH5B,MAAMa,WAAWC,KAAKC,KAAK,SAACH,gBAAAA,0BAAAA,IAAKI,OAAO,uCAAI;gBAC5C,MAAMC,aAAaV,aAAa,OAAOM,SAASK,MAAM,GAAGL,QAAQ,CAAC,CAAC,OAAO,EAAEN,UAAU,CAAC,IAAIM,QAAQ,CAAC,CAAC,KAAK,EAAEN,UAAU,CAAC,IAAIM,SAASK,MAAM;gBAC1I,MAAMC,eAAe,GAAGvC,aAAa,OAAO,EAAEqC,WAAW,IAAI,CAAC;gBAC9D,MAAMG,YAAY5C,KAAK2B,IAAI,EAACH,qBAAAA,QAAQoB,SAAS,cAAjBpB,gCAAAA,qBAAqBtB,UAAUF,KAAK6C,QAAQ,CAACF;gBAEzE,IAAIG;gBACJ,MAAMC,QAAQ,IAAI9C,MAAM;gBACxB8C,MAAMC,KAAK,CAAC,CAACC,KAAO3C,iBAAiBqC,cAAcC,WAAWpB,SAAS,CAACN,MAAQ+B,GAAG/B;gBACnF6B,MAAMC,KAAK,CAAC,CAACC;oBACXzC,kBAAkBoC,WAAW,CAAC1B,KAAKP;wBACjCmC,WAAWnC;wBACXsC,GAAG/B;oBACL;gBACF;gBACA6B,MAAMC,KAAK,CAAC,CAACC,KAAO1C,QAAQqC,WAAWhB,aAAa,CAACV,MAAQ+B,GAAG/B;gBAChE6B,MAAMG,KAAK,CAAC,CAAChC;oBACXA,MAAMR,SAASQ,OAAOR,SAASS,WAAWsB,YAAYK;gBACxD;YACF,EAAE,OAAOK,IAAI;gBACX,OAAOzC,SAAS,IAAI0C,MAAM;YAC5B;QACF;IACF;AACF"}
|
|
@@ -2,7 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import { safeRm } from 'fs-remove-compat';
|
|
3
3
|
import isVersion from 'is-version';
|
|
4
4
|
import mkdirp from 'mkdirp-classic';
|
|
5
|
-
import {
|
|
5
|
+
import { getDistAsync } from 'node-filename-to-dist-paths';
|
|
6
6
|
import resolveVersions from 'node-resolve-versions';
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import Queue from 'queue-cb';
|
|
@@ -56,22 +56,18 @@ export default function install(versionExpression, options, callback) {
|
|
|
56
56
|
queue.defer((cb)=>{
|
|
57
57
|
checkMissing(tempPath, options, (err, npmMissing)=>{
|
|
58
58
|
if (err) return cb(err);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
59
|
+
// npm not bundled with node - download it
|
|
60
|
+
if (~(npmMissing || []).indexOf('npm')) return installNPM(version, tempPath, options, cb);
|
|
61
|
+
// npm is present (bundled with node) - keep it unless the dist index positively says it is ancient (<3)
|
|
62
|
+
getDistAsync(version, (_err, dist)=>{
|
|
63
|
+
const bundledNpmIsAncient = dist && dist.npm && +dist.npm.split('.')[0] < 3;
|
|
64
|
+
if (!bundledNpmIsAncient) return cb(); // unknown version keeps the bundled npm
|
|
67
65
|
// old npm (<3) is buggy - delete it so installNPM can override
|
|
68
66
|
const platform = options.platform;
|
|
69
67
|
const libPath = platform === 'win32' ? tempPath : path.join(tempPath, 'lib');
|
|
70
68
|
const npmPath = path.join(libPath, 'node_modules', 'npm');
|
|
71
69
|
safeRm(npmPath, ()=>installNPM(version, tempPath, options, cb));
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
installNPM(version, tempPath, options, cb);
|
|
70
|
+
});
|
|
75
71
|
});
|
|
76
72
|
});
|
|
77
73
|
// Atomic rename: move temp folder to final destination
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport isVersion from 'is-version';\nimport mkdirp from 'mkdirp-classic';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport isVersion from 'is-version';\nimport mkdirp from 'mkdirp-classic';\nimport { getDistAsync } from 'node-filename-to-dist-paths';\nimport resolveVersions from 'node-resolve-versions';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\n\nimport { DEFAULT_STORAGE_PATHS } from '../constants.ts';\n\nimport createResult from '../createResult.ts';\nimport createStoragePaths from '../createStoragePaths.ts';\nimport installNode from '../installNode/index.ts';\n\nimport installNPM from '../installNPM/index.ts';\nimport checkMissing from '../lib/checkMissing.ts';\nimport ensureDestinationParent from '../lib/ensureDestinationParent.ts';\nimport getTarget from '../lib/getTarget.ts';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\ntype GetVersionsCallback = (error?: Error | null, results?: string[]) => void;\nfunction getVersions(versionExpression: string, options: InstallOptions, callback: GetVersionsCallback) {\n // short circuit\n if (isVersion(versionExpression)) callback(undefined, [versionExpression]);\n else resolveVersions(versionExpression, options, (err?: Error | null, result?: string[] | unknown[]) => callback(err, result as string[] | undefined));\n}\n\nexport default function install(versionExpression: string, options: InstallOptions, callback: InstallCallback): void {\n const storagePaths = options.storagePath ? createStoragePaths(options.storagePath) : DEFAULT_STORAGE_PATHS;\n options = { ...storagePaths, ...options, ...getTarget(options) };\n getVersions(versionExpression, options, (err?: Error | null, versions?: string[]): void => {\n if (err) return callback(err);\n if (!versions || !versions.length) {\n callback(new Error(`Could not resolve versions for: ${versionExpression}`));\n return;\n }\n if (versions.length !== 1) {\n callback(new Error(`Version ${versionExpression} resolved to multiple versions: ${versions.map((x) => x)}. Expecting one.`));\n return;\n }\n\n const version = versions[0];\n const result = createResult(options, version);\n\n // Fast path: with atomic installs, folder exists = complete installation\n fs.stat(result.installPath, (err) => {\n if (!err) return callback(undefined, result);\n\n // Folder doesn't exist - do atomic install with temp folder\n const tempPath = tempSuffix(result.installPath);\n\n const queue = new Queue(1);\n queue.defer((cb) => mkdirp(options.cachePath!, (err) => cb(err)));\n queue.defer(ensureDestinationParent.bind(null, tempPath));\n\n // Install node to temp folder\n queue.defer(installNode.bind(null, version, tempPath, options));\n\n // Check and install npm to temp folder\n // Skip npm download only if bundled npm is modern (>= 3)\n queue.defer((cb) => {\n checkMissing(tempPath, options, (err, npmMissing): void => {\n if (err) return cb(err);\n // npm not bundled with node - download it\n if (~(npmMissing || []).indexOf('npm')) return installNPM(version, tempPath, options, cb);\n\n // npm is present (bundled with node) - keep it unless the dist index positively says it is ancient (<3)\n getDistAsync(version, (_err, dist) => {\n const bundledNpmIsAncient = dist && dist.npm && +dist.npm.split('.')[0] < 3;\n if (!bundledNpmIsAncient) return cb(); // unknown version keeps the bundled npm\n\n // old npm (<3) is buggy - delete it so installNPM can override\n const platform = options.platform;\n const libPath = platform === 'win32' ? tempPath : path.join(tempPath, 'lib');\n const npmPath = path.join(libPath, 'node_modules', 'npm');\n safeRm(npmPath, () => installNPM(version, tempPath, options, cb));\n });\n });\n });\n\n // Atomic rename: move temp folder to final destination\n queue.defer((cb) => {\n fs.rename(tempPath, result.installPath, (err) => {\n if (!err) return cb();\n // Race condition: another process may have already created dest\n if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {\n // Another process won the race - clean up temp and succeed\n safeRm(tempPath, () => cb());\n return;\n }\n cb(err);\n });\n });\n\n queue.await((err) => {\n // Clean up temp folder on error\n if (err) return safeRm(tempPath, () => callback(err));\n\n callback(undefined, result);\n });\n });\n });\n}\n"],"names":["fs","safeRm","isVersion","mkdirp","getDistAsync","resolveVersions","path","Queue","tempSuffix","DEFAULT_STORAGE_PATHS","createResult","createStoragePaths","installNode","installNPM","checkMissing","ensureDestinationParent","getTarget","getVersions","versionExpression","options","callback","undefined","err","result","install","storagePaths","storagePath","versions","length","Error","map","x","version","stat","installPath","tempPath","queue","defer","cb","cachePath","bind","npmMissing","indexOf","_err","dist","bundledNpmIsAncient","npm","split","platform","libPath","join","npmPath","rename","code","await"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-install-release",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "Cross-platform solution for installing releases of Node.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"is-version": "^1.0.9",
|
|
56
56
|
"lodash.keys": "^4.2.0",
|
|
57
57
|
"mkdirp-classic": "^0.5.2",
|
|
58
|
-
"node-filename-to-dist-paths": "^1.
|
|
58
|
+
"node-filename-to-dist-paths": "^1.5.0",
|
|
59
59
|
"node-resolve-versions": "^1.3.13",
|
|
60
60
|
"on-one": "^1.0.0",
|
|
61
61
|
"os-shim": "^0.1.3",
|