aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/node-gyp/lib/process-release.js
diff options
context:
space:
mode:
authorpack <pack@packgekko.xyz>2026-08-09 10:54:08 +0000
committerpack <pack@packgekko.xyz>2026-08-09 10:54:08 +0000
commitd3adc16a08d95d6e331de55d7d3bf05a66a874a8 (patch)
treea2dabd199501e67c547c2ce79e1374ca3aa55443 /node_modules/node-gyp/lib/process-release.js
parent55a4f1fc869e41aca748c63d3018f0448b1606e0 (diff)
downloadcrud-d3adc16a08d95d6e331de55d7d3bf05a66a874a8.tar.gz
stop tracking node_modules/
Diffstat (limited to 'node_modules/node-gyp/lib/process-release.js')
-rw-r--r--node_modules/node-gyp/lib/process-release.js144
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