summaryrefslogtreecommitdiffstats
path: root/node_modules/node-gyp/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/node-gyp/lib')
-rw-r--r--node_modules/node-gyp/lib/Find-VS2017.cs273
-rw-r--r--node_modules/node-gyp/lib/build.js270
-rw-r--r--node_modules/node-gyp/lib/clean.js22
-rw-r--r--node_modules/node-gyp/lib/configure.js524
-rw-r--r--node_modules/node-gyp/lib/find-node-directory.js61
-rw-r--r--node_modules/node-gyp/lib/find-vs2017.js46
-rw-r--r--node_modules/node-gyp/lib/install.js475
-rw-r--r--node_modules/node-gyp/lib/list.js33
-rw-r--r--node_modules/node-gyp/lib/node-gyp.js216
-rw-r--r--node_modules/node-gyp/lib/process-release.js155
-rw-r--r--node_modules/node-gyp/lib/rebuild.js14
-rw-r--r--node_modules/node-gyp/lib/remove.js52
12 files changed, 0 insertions, 2141 deletions
diff --git a/node_modules/node-gyp/lib/Find-VS2017.cs b/node_modules/node-gyp/lib/Find-VS2017.cs
deleted file mode 100644
index 6e7429b..0000000
--- a/node_modules/node-gyp/lib/Find-VS2017.cs
+++ /dev/null
@@ -1,273 +0,0 @@
-// Copyright 2017 - Refael Ackermann
-// Distributed under MIT style license
-// See accompanying file LICENSE at https://github.com/node4good/windows-autoconf
-
-// Usage:
-// powershell -ExecutionPolicy Unrestricted -Version "2.0" -Command "&{Add-Type -Path Find-VS2017.cs; [VisualStudioConfiguration.Main]::Query()}"
-using System;
-using System.Text;
-using System.Runtime.InteropServices;
-
-namespace VisualStudioConfiguration
-{
- [Flags]
- public enum InstanceState : uint
- {
- None = 0,
- Local = 1,
- Registered = 2,
- NoRebootRequired = 4,
- NoErrors = 8,
- Complete = 4294967295,
- }
-
- [Guid("6380BCFF-41D3-4B2E-8B2E-BF8A6810C848")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface IEnumSetupInstances
- {
-
- void Next([MarshalAs(UnmanagedType.U4), In] int celt,
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Interface), Out] ISetupInstance[] rgelt,
- [MarshalAs(UnmanagedType.U4)] out int pceltFetched);
-
- void Skip([MarshalAs(UnmanagedType.U4), In] int celt);
-
- void Reset();
-
- [return: MarshalAs(UnmanagedType.Interface)]
- IEnumSetupInstances Clone();
- }
-
- [Guid("42843719-DB4C-46C2-8E7C-64F1816EFD5B")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface ISetupConfiguration
- {
- }
-
- [Guid("26AAB78C-4A60-49D6-AF3B-3C35BC93365D")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface ISetupConfiguration2 : ISetupConfiguration
- {
-
- [return: MarshalAs(UnmanagedType.Interface)]
- IEnumSetupInstances EnumInstances();
-
- [return: MarshalAs(UnmanagedType.Interface)]
- ISetupInstance GetInstanceForCurrentProcess();
-
- [return: MarshalAs(UnmanagedType.Interface)]
- ISetupInstance GetInstanceForPath([MarshalAs(UnmanagedType.LPWStr), In] string path);
-
- [return: MarshalAs(UnmanagedType.Interface)]
- IEnumSetupInstances EnumAllInstances();
- }
-
- [Guid("B41463C3-8866-43B5-BC33-2B0676F7F42E")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface ISetupInstance
- {
- }
-
- [Guid("89143C9A-05AF-49B0-B717-72E218A2185C")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface ISetupInstance2 : ISetupInstance
- {
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetInstanceId();
-
- [return: MarshalAs(UnmanagedType.Struct)]
- System.Runtime.InteropServices.ComTypes.FILETIME GetInstallDate();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetInstallationName();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetInstallationPath();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetInstallationVersion();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetDisplayName([MarshalAs(UnmanagedType.U4), In] int lcid);
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetDescription([MarshalAs(UnmanagedType.U4), In] int lcid);
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string ResolvePath([MarshalAs(UnmanagedType.LPWStr), In] string pwszRelativePath);
-
- [return: MarshalAs(UnmanagedType.U4)]
- InstanceState GetState();
-
- [return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UNKNOWN)]
- ISetupPackageReference[] GetPackages();
-
- ISetupPackageReference GetProduct();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetProductPath();
-
- [return: MarshalAs(UnmanagedType.VariantBool)]
- bool IsLaunchable();
-
- [return: MarshalAs(UnmanagedType.VariantBool)]
- bool IsComplete();
-
- [return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UNKNOWN)]
- ISetupPropertyStore GetProperties();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetEnginePath();
- }
-
- [Guid("DA8D8A16-B2B6-4487-A2F1-594CCCCD6BF5")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface ISetupPackageReference
- {
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetId();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetVersion();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetChip();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetLanguage();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetBranch();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetType();
-
- [return: MarshalAs(UnmanagedType.BStr)]
- string GetUniqueId();
-
- [return: MarshalAs(UnmanagedType.VariantBool)]
- bool GetIsExtension();
- }
-
- [Guid("c601c175-a3be-44bc-91f6-4568d230fc83")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [ComImport]
- public interface ISetupPropertyStore
- {
-
- [return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)]
- string[] GetNames();
-
- object GetValue([MarshalAs(UnmanagedType.LPWStr), In] string pwszName);
- }
-
- [Guid("42843719-DB4C-46C2-8E7C-64F1816EFD5B")]
- [CoClass(typeof(SetupConfigurationClass))]
- [ComImport]
- public interface SetupConfiguration : ISetupConfiguration2, ISetupConfiguration
- {
- }
-
- [Guid("177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D")]
- [ClassInterface(ClassInterfaceType.None)]
- [ComImport]
- public class SetupConfigurationClass
- {
- }
-
- public static class Main
- {
- public static void Query()
- {
- ISetupConfiguration query = new SetupConfiguration();
- ISetupConfiguration2 query2 = (ISetupConfiguration2)query;
- IEnumSetupInstances e = query2.EnumAllInstances();
-
- int pceltFetched;
- ISetupInstance2[] rgelt = new ISetupInstance2[1];
- StringBuilder log = new StringBuilder();
- while (true)
- {
- e.Next(1, rgelt, out pceltFetched);
- if (pceltFetched <= 0)
- {
- Console.WriteLine(String.Format("{{\"log\":\"{0}\"}}", log.ToString()));
- return;
- }
- if (CheckInstance(rgelt[0], ref log))
- return;
- }
- }
-
- private static bool CheckInstance(ISetupInstance2 setupInstance2, ref StringBuilder log)
- {
- // Visual Studio Community 2017 component directory:
- // https://www.visualstudio.com/en-us/productinfo/vs2017-install-product-Community.workloads
-
- string path = setupInstance2.GetInstallationPath().Replace("\\", "\\\\");
- log.Append(String.Format("Found installation at: {0}\\n", path));
-
- bool hasMSBuild = false;
- bool hasVCTools = false;
- uint Win10SDKVer = 0;
- bool hasWin8SDK = false;
-
- foreach (ISetupPackageReference package in setupInstance2.GetPackages())
- {
- const string Win10SDKPrefix = "Microsoft.VisualStudio.Component.Windows10SDK.";
-
- string id = package.GetId();
- if (id == "Microsoft.VisualStudio.VC.MSBuild.Base")
- hasMSBuild = true;
- else if (id == "Microsoft.VisualStudio.Component.VC.Tools.x86.x64")
- hasVCTools = true;
- else if (id.StartsWith(Win10SDKPrefix)) {
- string[] parts = id.Substring(Win10SDKPrefix.Length).Split('.');
- if (parts.Length > 1 && parts[1] != "Desktop")
- continue;
- uint foundSdkVer;
- if (UInt32.TryParse(parts[0], out foundSdkVer))
- Win10SDKVer = Math.Max(Win10SDKVer, foundSdkVer);
- } else if (id == "Microsoft.VisualStudio.Component.Windows81SDK")
- hasWin8SDK = true;
- else
- continue;
-
- log.Append(String.Format(" - Found {0}\\n", id));
- }
-
- if (!hasMSBuild)
- log.Append(" - Missing Visual Studio C++ core features (Microsoft.VisualStudio.VC.MSBuild.Base)\\n");
- if (!hasVCTools)
- log.Append(" - Missing VC++ 2017 v141 toolset (x86,x64) (Microsoft.VisualStudio.Component.VC.Tools.x86.x64)\\n");
- if ((Win10SDKVer == 0) && (!hasWin8SDK))
- log.Append(" - Missing a Windows SDK (Microsoft.VisualStudio.Component.Windows10SDK.* or Microsoft.VisualStudio.Component.Windows81SDK)\\n");
-
- if (hasMSBuild && hasVCTools)
- {
- if (Win10SDKVer > 0)
- {
- log.Append(" - Using this installation with Windows 10 SDK"/*\\n*/);
- Console.WriteLine(String.Format("{{\"log\":\"{0}\",\"path\":\"{1}\",\"sdk\":\"10.0.{2}.0\"}}", log.ToString(), path, Win10SDKVer));
- return true;
- }
- else if (hasWin8SDK)
- {
- log.Append(" - Using this installation with Windows 8.1 SDK"/*\\n*/);
- Console.WriteLine(String.Format("{{\"log\":\"{0}\",\"path\":\"{1}\",\"sdk\":\"8.1\"}}", log.ToString(), path));
- return true;
- }
- }
-
- log.Append(" - Some required components are missing, not using this installation\\n");
- return false;
- }
- }
-}
diff --git a/node_modules/node-gyp/lib/build.js b/node_modules/node-gyp/lib/build.js
deleted file mode 100644
index 2f8e14c..0000000
--- a/node_modules/node-gyp/lib/build.js
+++ /dev/null
@@ -1,270 +0,0 @@
-
-module.exports = exports = build
-
-/**
- * Module dependencies.
- */
-
-var fs = require('graceful-fs')
- , rm = require('rimraf')
- , path = require('path')
- , glob = require('glob')
- , log = require('npmlog')
- , which = require('which')
- , exec = require('child_process').exec
- , processRelease = require('./process-release')
- , win = process.platform === 'win32'
-
-exports.usage = 'Invokes `' + (win ? 'msbuild' : 'make') + '` and builds the module'
-
-function build (gyp, argv, callback) {
- var platformMake = 'make'
- if (process.platform === 'aix') {
- platformMake = 'gmake'
- } else if (process.platform.indexOf('bsd') !== -1) {
- platformMake = 'gmake'
- } else if (win && argv.length > 0) {
- argv = argv.map(function(target) {
- return '/t:' + target
- })
- }
-
- var release = processRelease(argv, gyp, process.version, process.release)
- , makeCommand = gyp.opts.make || process.env.MAKE || platformMake
- , command = win ? 'msbuild' : makeCommand
- , buildDir = path.resolve('build')
- , configPath = path.resolve(buildDir, 'config.gypi')
- , jobs = gyp.opts.jobs || process.env.JOBS
- , buildType
- , config
- , arch
- , nodeDir
-
- loadConfigGypi()
-
- /**
- * Load the "config.gypi" file that was generated during "configure".
- */
-
- function loadConfigGypi () {
- fs.readFile(configPath, 'utf8', function (err, data) {
- if (err) {
- if (err.code == 'ENOENT') {
- callback(new Error('You must run `node-gyp configure` first!'))
- } else {
- callback(err)
- }
- return
- }
- config = JSON.parse(data.replace(/\#.+\n/, ''))
-
- // get the 'arch', 'buildType', and 'nodeDir' vars from the config
- buildType = config.target_defaults.default_configuration
- arch = config.variables.target_arch
- nodeDir = config.variables.nodedir
-
- if ('debug' in gyp.opts) {
- buildType = gyp.opts.debug ? 'Debug' : 'Release'
- }
- if (!buildType) {
- buildType = 'Release'
- }
-
- log.verbose('build type', buildType)
- log.verbose('architecture', arch)
- log.verbose('node dev dir', nodeDir)
-
- if (win) {
- findSolutionFile()
- } else {
- doWhich()
- }
- })
- }
-
- /**
- * On Windows, find the first build/*.sln file.
- */
-
- function findSolutionFile () {
- glob('build/*.sln', function (err, files) {
- if (err) return callback(err)
- if (files.length === 0) {
- return callback(new Error('Could not find *.sln file. Did you run "configure"?'))
- }
- guessedSolution = files[0]
- log.verbose('found first Solution file', guessedSolution)
- doWhich()
- })
- }
-
- /**
- * Uses node-which to locate the msbuild / make executable.
- */
-
- function doWhich () {
- // First make sure we have the build command in the PATH
- which(command, function (err, execPath) {
- if (err) {
- if (win && /not found/.test(err.message)) {
- // On windows and no 'msbuild' found. Let's guess where it is
- findMsbuild()
- } else {
- // Some other error or 'make' not found on Unix, report that to the user
- callback(err)
- }
- return
- }
- log.verbose('`which` succeeded for `' + command + '`', execPath)
- doBuild()
- })
- }
-
- /**
- * Search for the location of "msbuild.exe" file on Windows.
- */
-
- function findMsbuild () {
- if (config.variables.msbuild_path) {
- command = config.variables.msbuild_path
- log.verbose('using MSBuild:', command)
- doBuild()
- return
- }
-
- log.verbose('could not find "msbuild.exe" in PATH - finding location in registry')
- var notfoundErr = 'Can\'t find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008+ installed?'
- var cmd = 'reg query "HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions" /s'
- if (process.arch !== 'ia32')
- cmd += ' /reg:32'
- exec(cmd, function (err, stdout, stderr) {
- if (err) {
- return callback(new Error(err.message + '\n' + notfoundErr))
- }
- var reVers = /ToolsVersions\\([^\\]+)$/i
- , rePath = /\r\n[ \t]+MSBuildToolsPath[ \t]+REG_SZ[ \t]+([^\r]+)/i
- , msbuilds = []
- , r
- , msbuildPath
- stdout.split('\r\n\r\n').forEach(function(l) {
- if (!l) return
- l = l.trim()
- if (r = reVers.exec(l.substring(0, l.indexOf('\r\n')))) {
- var ver = parseFloat(r[1], 10)
- if (ver >= 3.5) {
- if (r = rePath.exec(l)) {
- msbuilds.push({
- version: ver,
- path: r[1]
- })
- }
- }
- }
- })
- msbuilds.sort(function (x, y) {
- return (x.version < y.version ? -1 : 1)
- })
- ;(function verifyMsbuild () {
- if (!msbuilds.length) return callback(new Error(notfoundErr))
- msbuildPath = path.resolve(msbuilds.pop().path, 'msbuild.exe')
- fs.stat(msbuildPath, function (err, stat) {
- if (err) {
- if (err.code == 'ENOENT') {
- if (msbuilds.length) {
- return verifyMsbuild()
- } else {
- callback(new Error(notfoundErr))
- }
- } else {
- callback(err)
- }
- return
- }
- command = msbuildPath
- doBuild()
- })
- })()
- })
- }
-
-
- /**
- * Actually spawn the process and compile the module.
- */
-
- function doBuild () {
-
- // Enable Verbose build
- var verbose = log.levels[log.level] <= log.levels.verbose
- if (!win && verbose) {
- argv.push('V=1')
- }
- if (win && !verbose) {
- argv.push('/clp:Verbosity=minimal')
- }
-
- if (win) {
- // Turn off the Microsoft logo on Windows
- argv.push('/nologo')
- }
-
- // Specify the build type, Release by default
- if (win) {
- var archLower = arch.toLowerCase()
- var p = archLower === 'x64' ? 'x64' :
- (archLower === 'arm' ? 'ARM' : 'Win32')
- argv.push('/p:Configuration=' + buildType + ';Platform=' + p)
- if (jobs) {
- var j = parseInt(jobs, 10)
- if (!isNaN(j) && j > 0) {
- argv.push('/m:' + j)
- } else if (jobs.toUpperCase() === 'MAX') {
- argv.push('/m:' + require('os').cpus().length)
- }
- }
- } else {
- argv.push('BUILDTYPE=' + buildType)
- // Invoke the Makefile in the 'build' dir.
- argv.push('-C')
- argv.push('build')
- if (jobs) {
- var j = parseInt(jobs, 10)
- if (!isNaN(j) && j > 0) {
- argv.push('--jobs')
- argv.push(j)
- } else if (jobs.toUpperCase() === 'MAX') {
- argv.push('--jobs')
- argv.push(require('os').cpus().length)
- }
- }
- }
-
- if (win) {
- // did the user specify their own .sln file?
- var hasSln = argv.some(function (arg) {
- return path.extname(arg) == '.sln'
- })
- if (!hasSln) {
- argv.unshift(gyp.opts.solution || guessedSolution)
- }
- }
-
- var proc = gyp.spawn(command, argv)
- proc.on('exit', onExit)
- }
-
- /**
- * Invoked after the make/msbuild command exits.
- */
-
- function onExit (code, signal) {
- if (code !== 0) {
- return callback(new Error('`' + command + '` failed with exit code: ' + code))
- }
- if (signal) {
- return callback(new Error('`' + command + '` got signal: ' + signal))
- }
- callback()
- }
-
-}
diff --git a/node_modules/node-gyp/lib/clean.js b/node_modules/node-gyp/lib/clean.js
deleted file mode 100644
index e69164d..0000000
--- a/node_modules/node-gyp/lib/clean.js
+++ /dev/null
@@ -1,22 +0,0 @@
-
-module.exports = exports = clean
-
-exports.usage = 'Removes any generated build files and the "out" dir'
-
-/**
- * Module dependencies.
- */
-
-var rm = require('rimraf')
-var log = require('npmlog')
-
-
-function clean (gyp, argv, callback) {
-
- // Remove the 'build' dir
- var buildDir = 'build'
-
- log.verbose('clean', 'removing "%s" directory', buildDir)
- rm(buildDir, callback)
-
-}
diff --git a/node_modules/node-gyp/lib/configure.js b/node_modules/node-gyp/lib/configure.js
deleted file mode 100644
index 35e6787..0000000
--- a/node_modules/node-gyp/lib/configure.js
+++ /dev/null
@@ -1,524 +0,0 @@
-module.exports = exports = configure
-module.exports.test = {
- PythonFinder: PythonFinder,
- findAccessibleSync: findAccessibleSync,
- findPython: findPython,
-}
-
-/**
- * Module dependencies.
- */
-
-var fs = require('graceful-fs')
- , path = require('path')
- , log = require('npmlog')
- , osenv = require('osenv')
- , which = require('which')
- , semver = require('semver')
- , mkdirp = require('mkdirp')
- , cp = require('child_process')
- , extend = require('util')._extend
- , processRelease = require('./process-release')
- , win = process.platform === 'win32'
- , findNodeDirectory = require('./find-node-directory')
- , msgFormat = require('util').format
-if (win)
- var findVS2017 = require('./find-vs2017')
-
-exports.usage = 'Generates ' + (win ? 'MSVC project files' : 'a Makefile') + ' for the current module'
-
-function configure (gyp, argv, callback) {
-
- var python = gyp.opts.python || process.env.PYTHON || 'python2'
- , buildDir = path.resolve('build')
- , configNames = [ 'config.gypi', 'common.gypi' ]
- , configs = []
- , nodeDir
- , release = processRelease(argv, gyp, process.version, process.release)
-
- findPython(python, function (err, found) {
- if (err) {
- callback(err)
- } else {
- python = found
- getNodeDir()
- }
- })
-
- function getNodeDir () {
-
- // 'python' should be set by now
- process.env.PYTHON = python
-
- if (gyp.opts.nodedir) {
- // --nodedir was specified. use that for the dev files
- nodeDir = gyp.opts.nodedir.replace(/^~/, osenv.home())
-
- log.verbose('get node dir', 'compiling against specified --nodedir dev files: %s', nodeDir)
- createBuildDir()
-
- } else {
- // if no --nodedir specified, ensure node dependencies are installed
- if ('v' + release.version !== process.version) {
- // if --target was given, then determine a target version to compile for
- log.verbose('get node dir', 'compiling against --target node version: %s', release.version)
- } else {
- // if no --target was specified then use the current host node version
- log.verbose('get node dir', 'no --target version specified, falling back to host node version: %s', release.version)
- }
-
- if (!release.semver) {
- // could not parse the version string with semver
- return callback(new Error('Invalid version number: ' + release.version))
- }
-
- // If the tarball option is set, always remove and reinstall the headers
- // into devdir. Otherwise only install if they're not already there.
- gyp.opts.ensure = gyp.opts.tarball ? false : true
-
- gyp.commands.install([ release.version ], function (err, version) {
- if (err) return callback(err)
- log.verbose('get node dir', 'target node version installed:', release.versionDir)
- nodeDir = path.resolve(gyp.devDir, release.versionDir)
- createBuildDir()
- })
- }
- }
-
- function createBuildDir () {
- log.verbose('build dir', 'attempting to create "build" dir: %s', buildDir)
- mkdirp(buildDir, function (err, isNew) {
- if (err) return callback(err)
- log.verbose('build dir', '"build" dir needed to be created?', isNew)
- if (win && (!gyp.opts.msvs_version || gyp.opts.msvs_version === '2017')) {
- findVS2017(function (err, vsSetup) {
- if (err) {
- log.verbose('Not using VS2017:', err.message)
- createConfigFile()
- } else {
- createConfigFile(null, vsSetup)
- }
- })
- } else {
- createConfigFile()
- }
- })
- }
-
- function createConfigFile (err, vsSetup) {
- if (err) return callback(err)
-
- var configFilename = 'config.gypi'
- var configPath = path.resolve(buildDir, configFilename)
-
- log.verbose('build/' + configFilename, 'creating config file')
-
- var config = process.config || {}
- , defaults = config.target_defaults
- , variables = config.variables
-
- // default "config.variables"
- if (!variables) variables = config.variables = {}
-
- // default "config.defaults"
- if (!defaults) defaults = config.target_defaults = {}
-
- // don't inherit the "defaults" from node's `process.config` object.
- // doing so could cause problems in cases where the `node` executable was
- // compiled on a different machine (with different lib/include paths) than
- // the machine where the addon is being built to
- defaults.cflags = []
- defaults.defines = []
- defaults.include_dirs = []
- defaults.libraries = []
-
- // set the default_configuration prop
- if ('debug' in gyp.opts) {
- defaults.default_configuration = gyp.opts.debug ? 'Debug' : 'Release'
- }
- if (!defaults.default_configuration) {
- defaults.default_configuration = 'Release'
- }
-
- // set the target_arch variable
- variables.target_arch = gyp.opts.arch || process.arch || 'ia32'
-
- // set the node development directory
- variables.nodedir = nodeDir
-
- // disable -T "thin" static archives by default
- variables.standalone_static_library = gyp.opts.thin ? 0 : 1
-
- if (vsSetup) {
- // GYP doesn't (yet) have support for VS2017, so we force it to VS2015
- // to avoid pulling a floating patch that has not landed upstream.
- // Ref: https://chromium-review.googlesource.com/#/c/433540/
- gyp.opts.msvs_version = '2015'
- process.env['GYP_MSVS_VERSION'] = 2015
- process.env['GYP_MSVS_OVERRIDE_PATH'] = vsSetup.path
- defaults['msbuild_toolset'] = 'v141'
- defaults['msvs_windows_target_platform_version'] = vsSetup.sdk
- variables['msbuild_path'] = path.join(vsSetup.path, 'MSBuild', '15.0',
- 'Bin', 'MSBuild.exe')
- }
-
- // loop through the rest of the opts and add the unknown ones as variables.
- // this allows for module-specific configure flags like:
- //
- // $ node-gyp configure --shared-libxml2
- Object.keys(gyp.opts).forEach(function (opt) {
- if (opt === 'argv') return
- if (opt in gyp.configDefs) return
- variables[opt.replace(/-/g, '_')] = gyp.opts[opt]
- })
-
- // ensures that any boolean values from `process.config` get stringified
- function boolsToString (k, v) {
- if (typeof v === 'boolean')
- return String(v)
- return v
- }
-
- log.silly('build/' + configFilename, config)
-
- // now write out the config.gypi file to the build/ dir
- var prefix = '# Do not edit. File was generated by node-gyp\'s "configure" step'
- , json = JSON.stringify(config, boolsToString, 2)
- log.verbose('build/' + configFilename, 'writing out config file: %s', configPath)
- configs.push(configPath)
- fs.writeFile(configPath, [prefix, json, ''].join('\n'), findConfigs)
- }
-
- function findConfigs (err) {
- if (err) return callback(err)
- var name = configNames.shift()
- if (!name) return runGyp()
- var fullPath = path.resolve(name)
- log.verbose(name, 'checking for gypi file: %s', fullPath)
- fs.stat(fullPath, function (err, stat) {
- if (err) {
- if (err.code == 'ENOENT') {
- findConfigs() // check next gypi filename
- } else {
- callback(err)
- }
- } else {
- log.verbose(name, 'found gypi file')
- configs.push(fullPath)
- findConfigs()
- }
- })
- }
-
- function runGyp (err) {
- if (err) return callback(err)
-
- if (!~argv.indexOf('-f') && !~argv.indexOf('--format')) {
- if (win) {
- log.verbose('gyp', 'gyp format was not specified; forcing "msvs"')
- // force the 'make' target for non-Windows
- argv.push('-f', 'msvs')
- } else {
- log.verbose('gyp', 'gyp format was not specified; forcing "make"')
- // force the 'make' target for non-Windows
- argv.push('-f', 'make')
- }
- }
-
- function hasMsvsVersion () {
- return argv.some(function (arg) {
- return arg.indexOf('msvs_version') === 0
- })
- }
-
- if (win && !hasMsvsVersion()) {
- if ('msvs_version' in gyp.opts) {
- argv.push('-G', 'msvs_version=' + gyp.opts.msvs_version)
- } else {
- argv.push('-G', 'msvs_version=auto')
- }
- }
-
- // include all the ".gypi" files that were found
- configs.forEach(function (config) {
- argv.push('-I', config)
- })
-
- // For AIX and z/OS we need to set up the path to the exports file
- // which contains the symbols needed for linking.
- var node_exp_file = undefined
- if (process.platform === 'aix' || process.platform === 'os390') {
- var ext = process.platform === 'aix' ? 'exp' : 'x'
- var node_root_dir = findNodeDirectory()
- var candidates = undefined
- if (process.platform === 'aix') {
- candidates = ['include/node/node',
- 'out/Release/node',
- 'out/Debug/node',
- 'node'
- ].map(function(file) {
- return file + '.' + ext
- })
- } else {
- candidates = ['out/Release/obj.target/libnode',
- 'out/Debug/obj.target/libnode',
- 'lib/libnode'
- ].map(function(file) {
- return file + '.' + ext
- })
- }
- var logprefix = 'find exports file'
- node_exp_file = findAccessibleSync(logprefix, node_root_dir, candidates)
- if (node_exp_file !== undefined) {
- log.verbose(logprefix, 'Found exports file: %s', node_exp_file)
- } else {
- var msg = msgFormat('Could not find node.%s file in %s', ext, node_root_dir)
- log.error(logprefix, 'Could not find exports file')
- return callback(new Error(msg))
- }
- }
-
- // this logic ported from the old `gyp_addon` python file
- var gyp_script = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- var addon_gypi = path.resolve(__dirname, '..', 'addon.gypi')
- var common_gypi = path.resolve(nodeDir, 'include/node/common.gypi')
- fs.stat(common_gypi, function (err, stat) {
- if (err)
- common_gypi = path.resolve(nodeDir, 'common.gypi')
-
- var output_dir = 'build'
- if (win) {
- // Windows expects an absolute path
- output_dir = buildDir
- }
- var nodeGypDir = path.resolve(__dirname, '..')
- var nodeLibFile = path.join(nodeDir,
- !gyp.opts.nodedir ? '<(target_arch)' : '$(Configuration)',
- release.name + '.lib')
-
- argv.push('-I', addon_gypi)
- argv.push('-I', common_gypi)
- argv.push('-Dlibrary=shared_library')
- argv.push('-Dvisibility=default')
- argv.push('-Dnode_root_dir=' + nodeDir)
- if (process.platform === 'aix' || process.platform === 'os390') {
- argv.push('-Dnode_exp_file=' + node_exp_file)
- }
- argv.push('-Dnode_gyp_dir=' + nodeGypDir)
- argv.push('-Dnode_lib_file=' + nodeLibFile)
- argv.push('-Dmodule_root_dir=' + process.cwd())
- argv.push('-Dnode_engine=' +
- (gyp.opts.node_engine || process.jsEngine || 'v8'))
- argv.push('--depth=.')
- argv.push('--no-parallel')
-
- // tell gyp to write the Makefile/Solution files into output_dir
- argv.push('--generator-output', output_dir)
-
- // tell make to write its output into the same dir
- argv.push('-Goutput_dir=.')
-
- // enforce use of the "binding.gyp" file
- argv.unshift('binding.gyp')
-
- // execute `gyp` from the current target nodedir
- argv.unshift(gyp_script)
-
- // make sure python uses files that came with this particular node package
- var pypath = [path.join(__dirname, '..', 'gyp', 'pylib')]
- if (process.env.PYTHONPATH) {
- pypath.push(process.env.PYTHONPATH)
- }
- process.env.PYTHONPATH = pypath.join(win ? ';' : ':')
-
- var cp = gyp.spawn(python, argv)
- cp.on('exit', onCpExit)
- })
- }
-
- /**
- * Called when the `gyp` child process exits.
- */
-
- function onCpExit (code, signal) {
- if (code !== 0) {
- callback(new Error('`gyp` failed with exit code: ' + code))
- } else {
- // we're done
- callback()
- }
- }
-
-}
-
-/**
- * Returns the first file or directory from an array of candidates that is
- * readable by the current user, or undefined if none of the candidates are
- * readable.
- */
-function findAccessibleSync (logprefix, dir, candidates) {
- for (var next = 0; next < candidates.length; next++) {
- var candidate = path.resolve(dir, candidates[next])
- try {
- var fd = fs.openSync(candidate, 'r')
- } catch (e) {
- // this candidate was not found or not readable, do nothing
- log.silly(logprefix, 'Could not open %s: %s', candidate, e.message)
- continue
- }
- fs.closeSync(fd)
- log.silly(logprefix, 'Found readable %s', candidate)
- return candidate
- }
-
- return undefined
-}
-
-function PythonFinder(python, callback) {
- this.callback = callback
- this.python = python
-}
-
-PythonFinder.prototype = {
- checkPythonLauncherDepth: 0,
- env: process.env,
- execFile: cp.execFile,
- log: log,
- resolve: path.win32 && path.win32.resolve || path.resolve,
- stat: fs.stat,
- which: which,
- win: win,
-
- checkPython: function checkPython () {
- this.log.verbose('check python',
- 'checking for Python executable "%s" in the PATH',
- this.python)
- this.which(this.python, function (err, execPath) {
- if (err) {
- this.log.verbose('`which` failed', this.python, err)
- if (this.python === 'python2') {
- this.python = 'python'
- return this.checkPython()
- }
- if (this.win) {
- this.checkPythonLauncher()
- } else {
- this.failNoPython()
- }
- } else {
- this.log.verbose('`which` succeeded', this.python, execPath)
- // Found the `python` executable, and from now on we use it explicitly.
- // This solves #667 and #750 (`execFile` won't run batch files
- // (*.cmd, and *.bat))
- this.python = execPath
- this.checkPythonVersion()
- }
- }.bind(this))
- },
-
- // Distributions of Python on Windows by default install with the "py.exe"
- // Python launcher which is more likely to exist than the Python executable
- // being in the $PATH.
- // Because the Python launcher supports all versions of Python, we have to
- // explicitly request a Python 2 version. This is done by supplying "-2" as
- // the first command line argument. Since "py.exe -2" would be an invalid
- // executable for "execFile", we have to use the launcher to figure out
- // where the actual "python.exe" executable is located.
- checkPythonLauncher: function checkPythonLauncher () {
- this.checkPythonLauncherDepth += 1
-
- this.log.verbose(
- 'could not find "' + this.python + '". checking python launcher')
- var env = extend({}, this.env)
- env.TERM = 'dumb'
-
- var launcherArgs = ['-2', '-c', 'import sys; print sys.executable']
- this.execFile('py.exe', launcherArgs, { env: env }, function (err, stdout) {
- if (err) {
- this.guessPython()
- } else {
- this.python = stdout.trim()
- this.log.verbose('check python launcher',
- 'python executable found: %j',
- this.python)
- this.checkPythonVersion()
- }
- this.checkPythonLauncherDepth -= 1
- }.bind(this))
- },
-
- checkPythonVersion: function checkPythonVersion () {
- var args = ['-c', 'import sys; print "%s.%s.%s" % sys.version_info[:3];']
- var env = extend({}, this.env)
- env.TERM = 'dumb'
-
- this.execFile(this.python, args, { env: env }, function (err, stdout) {
- if (err) {
- return this.callback(err)
- }
- this.log.verbose('check python version',
- '`%s -c "' + args[1] + '"` returned: %j',
- this.python, stdout)
- var version = stdout.trim()
- var range = semver.Range('>=2.5.0 <3.0.0')
- var valid = false
- try {
- valid = range.test(version)
- } catch (e) {
- this.log.silly('range.test() error', e)
- }
- if (valid) {
- this.callback(null, this.python)
- } else if (this.win && this.checkPythonLauncherDepth === 0) {
- this.checkPythonLauncher()
- } else {
- this.failPythonVersion(version)
- }
- }.bind(this))
- },
-
- failNoPython: function failNoPython () {
- var errmsg =
- 'Can\'t find Python executable "' + this.python +
- '", you can set the PYTHON env variable.'
- this.callback(new Error(errmsg))
- },
-
- failPythonVersion: function failPythonVersion (badVersion) {
- var errmsg =
- 'Python executable "' + this.python +
- '" is v' + badVersion + ', which is not supported by gyp.\n' +
- 'You can pass the --python switch to point to ' +
- 'Python >= v2.5.0 & < 3.0.0.'
- this.callback(new Error(errmsg))
- },
-
- // Called on Windows when "python" isn't available in the current $PATH.
- // We are going to check if "%SystemDrive%\python27\python.exe" exists.
- guessPython: function guessPython () {
- this.log.verbose('could not find "' + this.python + '". guessing location')
- var rootDir = this.env.SystemDrive || 'C:\\'
- if (rootDir[rootDir.length - 1] !== '\\') {
- rootDir += '\\'
- }
- var pythonPath = this.resolve(rootDir, 'Python27', 'python.exe')
- this.log.verbose('ensuring that file exists:', pythonPath)
- this.stat(pythonPath, function (err, stat) {
- if (err) {
- if (err.code == 'ENOENT') {
- this.failNoPython()
- } else {
- this.callback(err)
- }
- return
- }
- this.python = pythonPath
- this.checkPythonVersion()
- }.bind(this))
- },
-}
-
-function findPython (python, callback) {
- var finder = new PythonFinder(python, callback)
- finder.checkPython()
-}
diff --git a/node_modules/node-gyp/lib/find-node-directory.js b/node_modules/node-gyp/lib/find-node-directory.js
deleted file mode 100644
index 3aee8a1..0000000
--- a/node_modules/node-gyp/lib/find-node-directory.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var path = require('path')
- , log = require('npmlog')
-
-function findNodeDirectory(scriptLocation, processObj) {
- // set dirname and process if not passed in
- // this facilitates regression tests
- if (scriptLocation === undefined) {
- scriptLocation = __dirname
- }
- if (processObj === undefined) {
- processObj = process
- }
-
- // Have a look to see what is above us, to try and work out where we are
- npm_parent_directory = path.join(scriptLocation, '../../../..')
- log.verbose('node-gyp root', 'npm_parent_directory is '
- + path.basename(npm_parent_directory))
- node_root_dir = ""
-
- log.verbose('node-gyp root', 'Finding node root directory')
- if (path.basename(npm_parent_directory) === 'deps') {
- // We are in a build directory where this script lives in
- // deps/npm/node_modules/node-gyp/lib
- node_root_dir = path.join(npm_parent_directory, '..')
- log.verbose('node-gyp root', 'in build directory, root = '
- + node_root_dir)
- } else if (path.basename(npm_parent_directory) === 'node_modules') {
- // We are in a node install directory where this script lives in
- // lib/node_modules/npm/node_modules/node-gyp/lib or
- // node_modules/npm/node_modules/node-gyp/lib depending on the
- // platform
- if (processObj.platform === 'win32') {
- node_root_dir = path.join(npm_parent_directory, '..')
- } else {
- node_root_dir = path.join(npm_parent_directory, '../..')
- }
- log.verbose('node-gyp root', 'in install directory, root = '
- + node_root_dir)
- } else {
- // We don't know where we are, try working it out from the location
- // of the node binary
- var node_dir = path.dirname(processObj.execPath)
- var directory_up = path.basename(node_dir)
- if (directory_up === 'bin') {
- node_root_dir = path.join(node_dir, '..')
- } else if (directory_up === 'Release' || directory_up === 'Debug') {
- // If we are a recently built node, and the directory structure
- // is that of a repository. If we are on Windows then we only need
- // to go one level up, everything else, two
- if (processObj.platform === 'win32') {
- node_root_dir = path.join(node_dir, '..')
- } else {
- node_root_dir = path.join(node_dir, '../..')
- }
- }
- // Else return the default blank, "".
- }
- return node_root_dir
-}
-
-module.exports = findNodeDirectory
diff --git a/node_modules/node-gyp/lib/find-vs2017.js b/node_modules/node-gyp/lib/find-vs2017.js
deleted file mode 100644
index ad46cea..0000000
--- a/node_modules/node-gyp/lib/find-vs2017.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var log = require('npmlog')
- , execFile = require('child_process').execFile
- , path = require('path')
-
-function findVS2017(callback) {
- var ps = path.join(process.env.SystemRoot, 'System32', 'WindowsPowerShell',
- 'v1.0', 'powershell.exe')
- var csFile = path.join(__dirname, 'Find-VS2017.cs')
- var psArgs = ['-ExecutionPolicy', 'Unrestricted', '-NoProfile',
- '-Command', '&{Add-Type -Path \'' + csFile + '\';' +
- '[VisualStudioConfiguration.Main]::Query()}']
-
- log.silly('find vs2017', 'Running', ps, psArgs)
- var child = execFile(ps, psArgs, { encoding: 'utf8' },
- function (err, stdout, stderr) {
- log.silly('find vs2017', 'PS err:', err)
- log.silly('find vs2017', 'PS stdout:', stdout)
- log.silly('find vs2017', 'PS stderr:', stderr)
-
- if (err)
- return callback(new Error('Could not use PowerShell to find VS2017'))
-
- var vsSetup
- try {
- vsSetup = JSON.parse(stdout)
- } catch (e) {
- log.silly('find vs2017', e)
- return callback(new Error('Could not use PowerShell to find VS2017'))
- }
- log.silly('find vs2017', 'vsSetup:', vsSetup)
-
- if (vsSetup && vsSetup.log)
- log.verbose('find vs2017', vsSetup.log.trimRight())
-
- if (!vsSetup || !vsSetup.path || !vsSetup.sdk) {
- return callback(new Error('No usable installation of VS2017 found'))
- }
-
- log.verbose('find vs2017', 'using installation:', vsSetup.path)
- callback(null, { "path": vsSetup.path, "sdk": vsSetup.sdk })
- })
-
- child.stdin.end()
-}
-
-module.exports = findVS2017
diff --git a/node_modules/node-gyp/lib/install.js b/node_modules/node-gyp/lib/install.js
deleted file mode 100644
index cb84972..0000000
--- a/node_modules/node-gyp/lib/install.js
+++ /dev/null
@@ -1,475 +0,0 @@
-module.exports = exports = function (gyp, argv, callback) {
- return install(fs, gyp, argv, callback)
-}
-
-module.exports.test = {
- download: download,
- install: install,
- readCAFile: readCAFile,
-}
-
-exports.usage = 'Install node development files for the specified node version.'
-
-/**
- * Module dependencies.
- */
-
-var fs = require('graceful-fs')
- , osenv = require('osenv')
- , tar = require('tar')
- , rm = require('rimraf')
- , path = require('path')
- , crypto = require('crypto')
- , zlib = require('zlib')
- , log = require('npmlog')
- , semver = require('semver')
- , fstream = require('fstream')
- , request = require('request')
- , mkdir = require('mkdirp')
- , processRelease = require('./process-release')
- , win = process.platform == 'win32'
-
-function install (fs, gyp, argv, callback) {
-
- var release = processRelease(argv, gyp, process.version, process.release)
-
- // ensure no double-callbacks happen
- function cb (err) {
- if (cb.done) return
- cb.done = true
- if (err) {
- log.warn('install', 'got an error, rolling back install')
- // roll-back the install if anything went wrong
- gyp.commands.remove([ release.versionDir ], function (err2) {
- callback(err)
- })
- } else {
- callback(null, release.version)
- }
- }
-
- // Determine which node dev files version we are installing
- log.verbose('install', 'input version string %j', release.version)
-
- if (!release.semver) {
- // could not parse the version string with semver
- return callback(new Error('Invalid version number: ' + release.version))
- }
-
- if (semver.lt(release.version, '0.8.0')) {
- return callback(new Error('Minimum target version is `0.8.0` or greater. Got: ' + release.version))
- }
-
- // 0.x.y-pre versions are not published yet and cannot be installed. Bail.
- if (release.semver.prerelease[0] === 'pre') {
- log.verbose('detected "pre" node version', release.version)
- if (gyp.opts.nodedir) {
- log.verbose('--nodedir flag was passed; skipping install', gyp.opts.nodedir)
- callback()
- } else {
- callback(new Error('"pre" versions of node cannot be installed, use the --nodedir flag instead'))
- }
- return
- }
-
- // flatten version into String
- log.verbose('install', 'installing version: %s', release.versionDir)
-
- // the directory where the dev files will be installed
- var devDir = path.resolve(gyp.devDir, release.versionDir)
-
- // If '--ensure' was passed, then don't *always* install the version;
- // check if it is already installed, and only install when needed
- if (gyp.opts.ensure) {
- log.verbose('install', '--ensure was passed, so won\'t reinstall if already installed')
- fs.stat(devDir, function (err, stat) {
- if (err) {
- if (err.code == 'ENOENT') {
- log.verbose('install', 'version not already installed, continuing with install', release.version)
- go()
- } else if (err.code == 'EACCES') {
- eaccesFallback(err)
- } else {
- cb(err)
- }
- return
- }
- log.verbose('install', 'version is already installed, need to check "installVersion"')
- var installVersionFile = path.resolve(devDir, 'installVersion')
- fs.readFile(installVersionFile, 'ascii', function (err, ver) {
- if (err && err.code != 'ENOENT') {
- return cb(err)
- }
- var installVersion = parseInt(ver, 10) || 0
- log.verbose('got "installVersion"', installVersion)
- log.verbose('needs "installVersion"', gyp.package.installVersion)
- if (installVersion < gyp.package.installVersion) {
- log.verbose('install', 'version is no good; reinstalling')
- go()
- } else {
- log.verbose('install', 'version is good')
- cb()
- }
- })
- })
- } else {
- go()
- }
-
- function getContentSha(res, callback) {
- var shasum = crypto.createHash('sha256')
- res.on('data', function (chunk) {
- shasum.update(chunk)
- }).on('end', function () {
- callback(null, shasum.digest('hex'))
- })
- }
-
- function go () {
-
- log.verbose('ensuring nodedir is created', devDir)
-
- // first create the dir for the node dev files
- mkdir(devDir, function (err, created) {
- if (err) {
- if (err.code == 'EACCES') {
- eaccesFallback(err)
- } else {
- cb(err)
- }
- return
- }
-
- if (created) {
- log.verbose('created nodedir', created)
- }
-
- // now download the node tarball
- var tarPath = gyp.opts.tarball
- var badDownload = false
- , extractCount = 0
- , gunzip = zlib.createGunzip()
- , extracter = tar.Extract({ path: devDir, strip: 1, filter: isValid })
-
- var contentShasums = {}
- var expectShasums = {}
-
- // checks if a file to be extracted from the tarball is valid.
- // only .h header files and the gyp files get extracted
- function isValid () {
- var name = this.path.substring(devDir.length + 1)
- var isValid = valid(name)
- if (name === '' && this.type === 'Directory') {
- // the first directory entry is ok
- return true
- }
- if (isValid) {
- log.verbose('extracted file from tarball', name)
- extractCount++
- } else {
- // invalid
- log.silly('ignoring from tarball', name)
- }
- return isValid
- }
-
- gunzip.on('error', cb)
- extracter.on('error', cb)
- extracter.on('end', afterTarball)
-
- // download the tarball, gunzip and extract!
-
- if (tarPath) {
- var input = fs.createReadStream(tarPath)
- input.pipe(gunzip).pipe(extracter)
- return
- }
-
- try {
- var req = download(gyp, process.env, release.tarballUrl)
- } catch (e) {
- return cb(e)
- }
-
- // something went wrong downloading the tarball?
- req.on('error', function (err) {
- if (err.code === 'ENOTFOUND') {
- return cb(new Error('This is most likely not a problem with node-gyp or the package itself and\n' +
- 'is related to network connectivity. In most cases you are behind a proxy or have bad \n' +
- 'network settings.'))
- }
- badDownload = true
- cb(err)
- })
-
- req.on('close', function () {
- if (extractCount === 0) {
- cb(new Error('Connection closed while downloading tarball file'))
- }
- })
-
- req.on('response', function (res) {
- if (res.statusCode !== 200) {
- badDownload = true
- cb(new Error(res.statusCode + ' response downloading ' + release.tarballUrl))
- return
- }
- // content checksum
- getContentSha(res, function (_, checksum) {
- var filename = path.basename(release.tarballUrl).trim()
- contentShasums[filename] = checksum
- log.verbose('content checksum', filename, checksum)
- })
-
- // start unzipping and untaring
- req.pipe(gunzip).pipe(extracter)
- })
-
- // invoked after the tarball has finished being extracted
- function afterTarball () {
- if (badDownload) return
- if (extractCount === 0) {
- return cb(new Error('There was a fatal problem while downloading/extracting the tarball'))
- }
- log.verbose('tarball', 'done parsing tarball')
- var async = 0
-
- if (win) {
- // need to download node.lib
- async++
- downloadNodeLib(deref)
- }
-
- // write the "installVersion" file
- async++
- var installVersionPath = path.resolve(devDir, 'installVersion')
- fs.writeFile(installVersionPath, gyp.package.installVersion + '\n', deref)
-
- // Only download SHASUMS.txt if not using tarPath override
- if (!tarPath) {
- // download SHASUMS.txt
- async++
- downloadShasums(deref)
- }
-
- if (async === 0) {
- // no async tasks required
- cb()
- }
-
- function deref (err) {
- if (err) return cb(err)
-
- async--
- if (!async) {
- log.verbose('download contents checksum', JSON.stringify(contentShasums))
- // check content shasums
- for (var k in contentShasums) {
- log.verbose('validating download checksum for ' + k, '(%s == %s)', contentShasums[k], expectShasums[k])
- if (contentShasums[k] !== expectShasums[k]) {
- cb(new Error(k + ' local checksum ' + contentShasums[k] + ' not match remote ' + expectShasums[k]))
- return
- }
- }
- cb()
- }
- }
- }
-
- function downloadShasums(done) {
- log.verbose('check download content checksum, need to download `SHASUMS256.txt`...')
- var shasumsPath = path.resolve(devDir, 'SHASUMS256.txt')
-
- log.verbose('checksum url', release.shasumsUrl)
- try {
- var req = download(gyp, process.env, release.shasumsUrl)
- } catch (e) {
- return cb(e)
- }
-
- req.on('error', done)
- req.on('response', function (res) {
- if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading checksum'))
- return
- }
-
- var chunks = []
- res.on('data', function (chunk) {
- chunks.push(chunk)
- })
- res.on('end', function () {
- var lines = Buffer.concat(chunks).toString().trim().split('\n')
- lines.forEach(function (line) {
- var items = line.trim().split(/\s+/)
- if (items.length !== 2) return
-
- // 0035d18e2dcf9aad669b1c7c07319e17abfe3762 ./node-v0.11.4.tar.gz
- var name = items[1].replace(/^\.\//, '')
- expectShasums[name] = items[0]
- })
-
- log.verbose('checksum data', JSON.stringify(expectShasums))
- done()
- })
- })
- }
-
- function downloadNodeLib (done) {
- log.verbose('on Windows; need to download `' + release.name + '.lib`...')
- var dir32 = path.resolve(devDir, 'ia32')
- , dir64 = path.resolve(devDir, 'x64')
- , libPath32 = path.resolve(dir32, release.name + '.lib')
- , libPath64 = path.resolve(dir64, release.name + '.lib')
-
- log.verbose('32-bit ' + release.name + '.lib dir', dir32)
- log.verbose('64-bit ' + release.name + '.lib dir', dir64)
- log.verbose('`' + release.name + '.lib` 32-bit url', release.libUrl32)
- log.verbose('`' + release.name + '.lib` 64-bit url', release.libUrl64)
-
- var async = 2
- mkdir(dir32, function (err) {
- if (err) return done(err)
- log.verbose('streaming 32-bit ' + release.name + '.lib to:', libPath32)
-
- try {
- var req = download(gyp, process.env, release.libUrl32, cb)
- } catch (e) {
- return cb(e)
- }
-
- req.on('error', done)
- req.on('response', function (res) {
- if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading 32-bit ' + release.name + '.lib'))
- return
- }
-
- getContentSha(res, function (_, checksum) {
- contentShasums[release.libPath32] = checksum
- log.verbose('content checksum', release.libPath32, checksum)
- })
-
- var ws = fs.createWriteStream(libPath32)
- ws.on('error', cb)
- req.pipe(ws)
- })
- req.on('end', function () {
- --async || done()
- })
- })
- mkdir(dir64, function (err) {
- if (err) return done(err)
- log.verbose('streaming 64-bit ' + release.name + '.lib to:', libPath64)
-
- try {
- var req = download(gyp, process.env, release.libUrl64, cb)
- } catch (e) {
- return cb(e)
- }
-
- req.on('error', done)
- req.on('response', function (res) {
- if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading 64-bit ' + release.name + '.lib'))
- return
- }
-
- getContentSha(res, function (_, checksum) {
- contentShasums[release.libPath64] = checksum
- log.verbose('content checksum', release.libPath64, checksum)
- })
-
- var ws = fs.createWriteStream(libPath64)
- ws.on('error', cb)
- req.pipe(ws)
- })
- req.on('end', function () {
- --async || done()
- })
- })
- } // downloadNodeLib()
-
- }) // mkdir()
-
- } // go()
-
- /**
- * Checks if a given filename is "valid" for this installation.
- */
-
- function valid (file) {
- // header files
- var extname = path.extname(file);
- return extname === '.h' || extname === '.gypi';
- }
-
- /**
- * The EACCES fallback is a workaround for npm's `sudo` behavior, where
- * it drops the permissions before invoking any child processes (like
- * node-gyp). So what happens is the "nobody" user doesn't have
- * permission to create the dev dir. As a fallback, make the tmpdir() be
- * the dev dir for this installation. This is not ideal, but at least
- * the compilation will succeed...
- */
-
- function eaccesFallback (err) {
- var noretry = '--node_gyp_internal_noretry'
- if (-1 !== argv.indexOf(noretry)) return cb(err)
- var tmpdir = osenv.tmpdir()
- gyp.devDir = path.resolve(tmpdir, '.node-gyp')
- log.warn('EACCES', 'user "%s" does not have permission to access the dev dir "%s"', osenv.user(), devDir)
- log.warn('EACCES', 'attempting to reinstall using temporary dev dir "%s"', gyp.devDir)
- if (process.cwd() == tmpdir) {
- log.verbose('tmpdir == cwd', 'automatically will remove dev files after to save disk space')
- gyp.todo.push({ name: 'remove', args: argv })
- }
- gyp.commands.install([noretry].concat(argv), cb)
- }
-
-}
-
-function download (gyp, env, url) {
- log.http('GET', url)
-
- var requestOpts = {
- uri: url
- , headers: {
- 'User-Agent': 'node-gyp v' + gyp.version + ' (node ' + process.version + ')'
- }
- }
-
- var cafile = gyp.opts.cafile
- if (cafile) {
- requestOpts.ca = readCAFile(cafile)
- }
-
- // basic support for a proxy server
- var proxyUrl = gyp.opts.proxy
- || env.http_proxy
- || env.HTTP_PROXY
- || env.npm_config_proxy
- if (proxyUrl) {
- if (/^https?:\/\//i.test(proxyUrl)) {
- log.verbose('download', 'using proxy url: "%s"', proxyUrl)
- requestOpts.proxy = proxyUrl
- } else {
- log.warn('download', 'ignoring invalid "proxy" config setting: "%s"', proxyUrl)
- }
- }
-
- var req = request(requestOpts)
- req.on('response', function (res) {
- log.http(res.statusCode, url)
- })
-
- return req
-}
-
-function readCAFile (filename) {
- // The CA file can contain multiple certificates so split on certificate
- // boundaries. [\S\s]*? is used to match everything including newlines.
- var ca = fs.readFileSync(filename, 'utf8')
- var re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g
- return ca.match(re)
-}
diff --git a/node_modules/node-gyp/lib/list.js b/node_modules/node-gyp/lib/list.js
deleted file mode 100644
index 9d680a5..0000000
--- a/node_modules/node-gyp/lib/list.js
+++ /dev/null
@@ -1,33 +0,0 @@
-
-module.exports = exports = list
-
-exports.usage = 'Prints a listing of the currently installed node development files'
-
-/**
- * Module dependencies.
- */
-
-var fs = require('graceful-fs')
- , path = require('path')
- , log = require('npmlog')
-
-function list (gyp, args, callback) {
-
- var devDir = gyp.devDir
- log.verbose('list', 'using node-gyp dir:', devDir)
-
- // readdir() the node-gyp dir
- fs.readdir(devDir, onreaddir)
-
- function onreaddir (err, versions) {
- if (err && err.code != 'ENOENT') {
- return callback(err)
- }
- if (Array.isArray(versions)) {
- versions = versions.filter(function (v) { return v != 'current' })
- } else {
- versions = []
- }
- callback(null, versions)
- }
-}
diff --git a/node_modules/node-gyp/lib/node-gyp.js b/node_modules/node-gyp/lib/node-gyp.js
deleted file mode 100644
index a841161..0000000
--- a/node_modules/node-gyp/lib/node-gyp.js
+++ /dev/null
@@ -1,216 +0,0 @@
-
-/**
- * Module exports.
- */
-
-module.exports = exports = gyp
-
-/**
- * Module dependencies.
- */
-
-var fs = require('graceful-fs')
- , path = require('path')
- , nopt = require('nopt')
- , log = require('npmlog')
- , child_process = require('child_process')
- , EE = require('events').EventEmitter
- , inherits = require('util').inherits
- , commands = [
- // Module build commands
- 'build'
- , 'clean'
- , 'configure'
- , 'rebuild'
- // Development Header File management commands
- , 'install'
- , 'list'
- , 'remove'
- ]
- , aliases = {
- 'ls': 'list'
- , 'rm': 'remove'
- }
-
-// differentiate node-gyp's logs from npm's
-log.heading = 'gyp'
-
-/**
- * The `gyp` function.
- */
-
-function gyp () {
- return new Gyp()
-}
-
-function Gyp () {
- var self = this
-
- this.devDir = ''
- this.commands = {}
-
- commands.forEach(function (command) {
- self.commands[command] = function (argv, callback) {
- log.verbose('command', command, argv)
- return require('./' + command)(self, argv, callback)
- }
- })
-}
-inherits(Gyp, EE)
-exports.Gyp = Gyp
-var proto = Gyp.prototype
-
-/**
- * Export the contents of the package.json.
- */
-
-proto.package = require('../package')
-
-/**
- * nopt configuration definitions
- */
-
-proto.configDefs = {
- help: Boolean // everywhere
- , arch: String // 'configure'
- , cafile: String // 'install'
- , debug: Boolean // 'build'
- , directory: String // bin
- , make: String // 'build'
- , msvs_version: String // 'configure'
- , ensure: Boolean // 'install'
- , solution: String // 'build' (windows only)
- , proxy: String // 'install'
- , devdir: String // everywhere
- , nodedir: String // 'configure'
- , loglevel: String // everywhere
- , python: String // 'configure'
- , 'dist-url': String // 'install'
- , 'tarball': String // 'install'
- , jobs: String // 'build'
- , thin: String // 'configure'
-}
-
-/**
- * nopt shorthands
- */
-
-proto.shorthands = {
- release: '--no-debug'
- , C: '--directory'
- , debug: '--debug'
- , j: '--jobs'
- , silly: '--loglevel=silly'
- , verbose: '--loglevel=verbose'
- , silent: '--loglevel=silent'
-}
-
-/**
- * expose the command aliases for the bin file to use.
- */
-
-proto.aliases = aliases
-
-/**
- * Parses the given argv array and sets the 'opts',
- * 'argv' and 'command' properties.
- */
-
-proto.parseArgv = function parseOpts (argv) {
- this.opts = nopt(this.configDefs, this.shorthands, argv)
- this.argv = this.opts.argv.remain.slice()
-
- var commands = this.todo = []
-
- // create a copy of the argv array with aliases mapped
- argv = this.argv.map(function (arg) {
- // is this an alias?
- if (arg in this.aliases) {
- arg = this.aliases[arg]
- }
- return arg
- }, this)
-
- // process the mapped args into "command" objects ("name" and "args" props)
- argv.slice().forEach(function (arg) {
- if (arg in this.commands) {
- var args = argv.splice(0, argv.indexOf(arg))
- argv.shift()
- if (commands.length > 0) {
- commands[commands.length - 1].args = args
- }
- commands.push({ name: arg, args: [] })
- }
- }, this)
- if (commands.length > 0) {
- commands[commands.length - 1].args = argv.splice(0)
- }
-
- // support for inheriting config env variables from npm
- var npm_config_prefix = 'npm_config_'
- Object.keys(process.env).forEach(function (name) {
- if (name.indexOf(npm_config_prefix) !== 0) return
- var val = process.env[name]
- if (name === npm_config_prefix + 'loglevel') {
- log.level = val
- } else {
- // add the user-defined options to the config
- name = name.substring(npm_config_prefix.length)
- // gyp@741b7f1 enters an infinite loop when it encounters
- // zero-length options so ensure those don't get through.
- if (name) this.opts[name] = val
- }
- }, this)
-
- if (this.opts.loglevel) {
- log.level = this.opts.loglevel
- }
- log.resume()
-}
-
-/**
- * Spawns a child process and emits a 'spawn' event.
- */
-
-proto.spawn = function spawn (command, args, opts) {
- if (!opts) opts = {}
- if (!opts.silent && !opts.stdio) {
- opts.stdio = [ 0, 1, 2 ]
- }
- var cp = child_process.spawn(command, args, opts)
- log.info('spawn', command)
- log.info('spawn args', args)
- return cp
-}
-
-/**
- * Returns the usage instructions for node-gyp.
- */
-
-proto.usage = function usage () {
- var str = [
- ''
- , ' Usage: node-gyp <command> [options]'
- , ''
- , ' where <command> is one of:'
- , commands.map(function (c) {
- return ' - ' + c + ' - ' + require('./' + c).usage
- }).join('\n')
- , ''
- , 'node-gyp@' + this.version + ' ' + path.resolve(__dirname, '..')
- , 'node@' + process.versions.node
- ].join('\n')
- return str
-}
-
-/**
- * Version number getter.
- */
-
-Object.defineProperty(proto, 'version', {
- get: function () {
- return this.package.version
- }
- , enumerable: true
-})
-
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 0d177f1..0000000
--- a/node_modules/node-gyp/lib/process-release.js
+++ /dev/null
@@ -1,155 +0,0 @@
-var semver = require('semver')
- , url = require('url')
- , path = require('path')
- , log = require('npmlog')
-
- // versions where -headers.tar.gz started shipping
- , headersTarballRange = '>= 3.0.0 || ~0.12.10 || ~0.10.42'
- , bitsre = /\/win-(x86|x64)\//
- , 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) {
- var version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion
- , versionSemver = semver.parse(version)
- , overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl
- , isDefaultVersion
- , isIojs
- , name
- , distBaseUrl
- , baseUrl
- , libUrl32
- , libUrl64
- , tarballUrl
- , canGetHeaders
-
- if (!versionSemver) {
- // not a valid semver string, nothing we can do
- return { version: version }
- }
- // flatten version into String
- version = versionSemver.version
-
- // defaultVersion should come from process.version so ought to be valid semver
- 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
- isIojs = name === 'iojs'
- } else {
- // old node or alternative --target=
- // semver.satisfies() doesn't like prerelease tags so test major directly
- isIojs = versionSemver.major >= 1 && versionSemver.major < 4
- name = isIojs ? 'iojs' : 'node'
- }
-
- // check for the nvm.sh standard mirror env variables
- if (!overrideDistUrl) {
- if (isIojs) {
- if (process.env.IOJS_ORG_MIRROR) {
- overrideDistUrl = process.env.IOJS_ORG_MIRROR
- } else if (process.env.NVM_IOJS_ORG_MIRROR) {// remove on next semver-major
- overrideDistUrl = process.env.NVM_IOJS_ORG_MIRROR
- log.warn('download',
- 'NVM_IOJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, ' +
- 'please use IOJS_ORG_MIRROR')
- }
- } else {
- if (process.env.NODEJS_ORG_MIRROR) {
- overrideDistUrl = process.env.NODEJS_ORG_MIRROR
- } else if (process.env.NVM_NODEJS_ORG_MIRROR) {// remove on next semver-major
- overrideDistUrl = process.env.NVM_NODEJS_ORG_MIRROR
- log.warn('download',
- 'NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, ' +
- 'please use NODEJS_ORG_MIRROR')
- }
- }
- }
-
- if (overrideDistUrl)
- log.verbose('download', 'using dist-url', overrideDistUrl)
-
- if (overrideDistUrl)
- distBaseUrl = overrideDistUrl.replace(/\/+$/, '')
- else
- distBaseUrl = isIojs ? 'https://iojs.org/download/release' : 'https://nodejs.org/dist'
- 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 = url.resolve(defaultRelease.headersUrl, './')
- libUrl32 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x86', versionSemver.major)
- libUrl64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x64', versionSemver.major)
-
- return {
- version: version,
- semver: versionSemver,
- name: name,
- baseUrl: baseUrl,
- tarballUrl: defaultRelease.headersUrl,
- shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'),
- versionDir: (name !== 'node' ? name + '-' : '') + version,
- libUrl32: libUrl32,
- libUrl64: libUrl64,
- libPath32: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl32).path)),
- libPath64: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl64).path))
- }
- }
-
- // 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)
- // 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 = url.resolve(baseUrl, name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz')
-
- return {
- version: version,
- semver: versionSemver,
- name: name,
- baseUrl: baseUrl,
- tarballUrl: tarballUrl,
- shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'),
- versionDir: (name !== 'node' ? name + '-' : '') + version,
- libUrl32: libUrl32,
- libUrl64: libUrl64,
- libPath32: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl32).path)),
- libPath64: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl64).path))
- }
-}
-
-function normalizePath (p) {
- return path.normalize(p).replace(/\\/g, '/')
-}
-
-function resolveLibUrl (name, defaultUrl, arch, versionMajor) {
- var base = url.resolve(defaultUrl, './')
- , hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl))
-
- if (!hasLibUrl) {
- // let's assume it's a baseUrl then
- if (versionMajor >= 1)
- return url.resolve(base, 'win-' + arch +'/' + name + '.lib')
- // prior to io.js@1.0.0 32-bit node.lib lives in /, 64-bit lives in /x64/
- return url.resolve(base, (arch === 'x64' ? 'x64/' : '') + name + '.lib')
- }
-
- // else we have a proper url to a .lib, just make sure it's the right arch
- return defaultUrl.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/')
-}
-
-module.exports = processRelease
diff --git a/node_modules/node-gyp/lib/rebuild.js b/node_modules/node-gyp/lib/rebuild.js
deleted file mode 100644
index 4c6f472..0000000
--- a/node_modules/node-gyp/lib/rebuild.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-module.exports = exports = rebuild
-
-exports.usage = 'Runs "clean", "configure" and "build" all at once'
-
-function rebuild (gyp, argv, callback) {
-
- gyp.todo.push(
- { name: 'clean', args: [] }
- , { name: 'configure', args: argv }
- , { name: 'build', args: [] }
- )
- process.nextTick(callback)
-}
diff --git a/node_modules/node-gyp/lib/remove.js b/node_modules/node-gyp/lib/remove.js
deleted file mode 100644
index eb80981..0000000
--- a/node_modules/node-gyp/lib/remove.js
+++ /dev/null
@@ -1,52 +0,0 @@
-
-module.exports = exports = remove
-
-exports.usage = 'Removes the node development files for the specified version'
-
-/**
- * Module dependencies.
- */
-
-var fs = require('fs')
- , rm = require('rimraf')
- , path = require('path')
- , log = require('npmlog')
- , semver = require('semver')
-
-function remove (gyp, argv, callback) {
-
- var devDir = gyp.devDir
- log.verbose('remove', 'using node-gyp dir:', devDir)
-
- // get the user-specified version to remove
- var version = argv[0] || gyp.opts.target
- log.verbose('remove', 'removing target version:', version)
-
- if (!version) {
- return callback(new Error('You must specify a version number to remove. Ex: "' + process.version + '"'))
- }
-
- var versionSemver = semver.parse(version)
- if (versionSemver) {
- // flatten the version Array into a String
- version = versionSemver.version
- }
-
- var versionPath = path.resolve(gyp.devDir, version)
- log.verbose('remove', 'removing development files for version:', version)
-
- // first check if its even installed
- fs.stat(versionPath, function (err, stat) {
- if (err) {
- if (err.code == 'ENOENT') {
- callback(null, 'version was already uninstalled: ' + version)
- } else {
- callback(err)
- }
- return
- }
- // Go ahead and delete the dir
- rm(versionPath, callback)
- })
-
-}