diff options
Diffstat (limited to '')
| -rw-r--r-- | node_modules/node-gyp/lib/process-release.js | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/node_modules/node-gyp/lib/process-release.js b/node_modules/node-gyp/lib/process-release.js deleted file mode 100644 index 75f3fc1..0000000 --- a/node_modules/node-gyp/lib/process-release.js +++ /dev/null @@ -1,144 +0,0 @@ -'use strict' - -const semver = require('semver') -const path = require('path') -const log = require('./log') - -// versions where -headers.tar.gz started shipping -const headersTarballRange = '>= 3.0.0 || ~0.12.10 || ~0.10.42' -const bitsre = /\/win-(x86|x64|arm64)\// -const bitsreV3 = /\/win-(x86|ia32|x64)\// // io.js v3.x.x shipped with "ia32" but should -// have been "x86" - -// Captures all the logic required to determine download URLs, local directory and -// file names. Inputs come from command-line switches (--target, --dist-url), -// `process.version` and `process.release` where it exists. -function processRelease (argv, gyp, defaultVersion, defaultRelease) { - let version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion - const versionSemver = semver.parse(version) - let overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl - let isNamedForLegacyIojs - let name - let distBaseUrl - let baseUrl - let libUrl32 - let libUrl64 - let libUrlArm64 - let tarballUrl - let canGetHeaders - - if (!versionSemver) { - // not a valid semver string, nothing we can do - return { version } - } - // flatten version into String - version = versionSemver.version - - // defaultVersion should come from process.version so ought to be valid semver - const isDefaultVersion = version === semver.parse(defaultVersion).version - - // can't use process.release if we're using --target=x.y.z - if (!isDefaultVersion) { - defaultRelease = null - } - - if (defaultRelease) { - // v3 onward, has process.release - name = defaultRelease.name.replace(/io\.js/, 'iojs') // remove the '.' for directory naming purposes - } else { - // old node or alternative --target= - // semver.satisfies() doesn't like prerelease tags so test major directly - isNamedForLegacyIojs = versionSemver.major >= 1 && versionSemver.major < 4 - // isNamedForLegacyIojs is required to support Electron < 4 (in particular Electron 3) - // as previously this logic was used to ensure "iojs" was used to download iojs releases - // and "node" for node releases. Unfortunately the logic was broad enough that electron@3 - // published release assets as "iojs" so that the node-gyp logic worked. Once Electron@3 has - // been EOL for a while (late 2019) we should remove this hack. - name = isNamedForLegacyIojs ? 'iojs' : 'node' - } - - // check for the nvm.sh standard mirror env variables - if (!overrideDistUrl && process.env.NODEJS_ORG_MIRROR) { - overrideDistUrl = process.env.NODEJS_ORG_MIRROR - } - - if (overrideDistUrl) { - log.verbose('download', 'using dist-url', overrideDistUrl) - } - - if (overrideDistUrl) { - distBaseUrl = overrideDistUrl.replace(/\/+$/, '') - } else { - distBaseUrl = 'https://nodejs.org/dist' - } - distBaseUrl = new URL(distBaseUrl + '/v' + version + '/') - - // new style, based on process.release so we have a lot of the data we need - if (defaultRelease && defaultRelease.headersUrl && !overrideDistUrl) { - baseUrl = new URL('./', defaultRelease.headersUrl) - libUrl32 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x86', versionSemver.major) - libUrl64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x64', versionSemver.major) - libUrlArm64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'arm64', versionSemver.major) - tarballUrl = defaultRelease.headersUrl - } else { - // older versions without process.release are captured here and we have to make - // a lot of assumptions, additionally if you --target=x.y.z then we can't use the - // current process.release - baseUrl = distBaseUrl - libUrl32 = resolveLibUrl(name, baseUrl, 'x86', versionSemver.major) - libUrl64 = resolveLibUrl(name, baseUrl, 'x64', versionSemver.major) - libUrlArm64 = resolveLibUrl(name, baseUrl, 'arm64', versionSemver.major) - - // making the bold assumption that anything with a version number >3.0.0 will - // have a *-headers.tar.gz file in its dist location, even some frankenstein - // custom version - canGetHeaders = semver.satisfies(versionSemver, headersTarballRange) - tarballUrl = new URL(name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz', baseUrl).href - } - - return { - version, - semver: versionSemver, - name, - baseUrl: baseUrl.href, - tarballUrl, - shasumsUrl: new URL('SHASUMS256.txt', baseUrl).href, - versionDir: (name !== 'node' ? name + '-' : '') + version, - ia32: { - libUrl: libUrl32.href, - libPath: normalizePath(path.relative(baseUrl.pathname, libUrl32.pathname)) - }, - x64: { - libUrl: libUrl64.href, - libPath: normalizePath(path.relative(baseUrl.pathname, libUrl64.pathname)) - }, - arm64: { - libUrl: libUrlArm64.href, - libPath: normalizePath(path.relative(baseUrl.pathname, libUrlArm64.pathname)) - } - } -} - -function normalizePath (p) { - return path.normalize(p).replace(/\\/g, '/') -} - -function resolveLibUrl (name, defaultUrl, arch, versionMajor) { - if (!defaultUrl.pathname) defaultUrl = new URL(defaultUrl) - const base = new URL('./', defaultUrl) - const hasLibUrl = bitsre.test(defaultUrl.pathname) || (versionMajor === 3 && bitsreV3.test(defaultUrl.pathname)) - - if (!hasLibUrl) { - // let's assume it's a baseUrl then - if (versionMajor >= 1) { - return new URL('win-' + arch + '/' + name + '.lib', base) - } - // prior to io.js@1.0.0 32-bit node.lib lives in /, 64-bit lives in /x64/ - return new URL((arch === 'x86' ? '' : arch + '/') + name + '.lib', base) - } - - // else we have a proper url to a .lib, just make sure it's the right arch - return new URL(defaultUrl.pathname.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/'), defaultUrl) -} - -module.exports = processRelease |