Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclaudiahdz <cghr1990@gmail.com>2020-02-06 21:31:06 +0300
committerisaacs <i@izs.me>2020-05-08 04:11:51 +0300
commit019e6c41a85edf62727b517e1dfe2d5b9e53ba0e (patch)
tree16dd0603d249aa50fb165548bb4d0c358fe5f719 /node_modules
parent38983c09f936ad372bca4f2113548ab2d7095c58 (diff)
which@2.0.2
Diffstat (limited to 'node_modules')
l---------node_modules/cross-spawn/node_modules/.bin/which1
-rw-r--r--node_modules/cross-spawn/node_modules/which/CHANGELOG.md152
-rw-r--r--node_modules/cross-spawn/node_modules/which/LICENSE15
-rw-r--r--node_modules/cross-spawn/node_modules/which/README.md51
-rwxr-xr-xnode_modules/cross-spawn/node_modules/which/bin/which (renamed from node_modules/which/bin/which)0
-rw-r--r--node_modules/cross-spawn/node_modules/which/package.json65
-rw-r--r--node_modules/cross-spawn/node_modules/which/which.js135
l---------node_modules/libnpx/node_modules/.bin/which1
-rw-r--r--node_modules/libnpx/node_modules/which/CHANGELOG.md152
-rw-r--r--node_modules/libnpx/node_modules/which/LICENSE15
-rw-r--r--node_modules/libnpx/node_modules/which/README.md51
-rwxr-xr-xnode_modules/libnpx/node_modules/which/bin/which52
-rw-r--r--node_modules/libnpx/node_modules/which/package.json65
-rw-r--r--node_modules/libnpx/node_modules/which/which.js135
l---------node_modules/node-gyp/node_modules/.bin/which1
-rw-r--r--node_modules/node-gyp/node_modules/which/CHANGELOG.md152
-rw-r--r--node_modules/node-gyp/node_modules/which/LICENSE15
-rw-r--r--node_modules/node-gyp/node_modules/which/README.md51
-rwxr-xr-xnode_modules/node-gyp/node_modules/which/bin/which52
-rw-r--r--node_modules/node-gyp/node_modules/which/package.json65
-rw-r--r--node_modules/node-gyp/node_modules/which/which.js135
l---------node_modules/npm-lifecycle/node_modules/.bin/which1
-rw-r--r--node_modules/npm-lifecycle/node_modules/which/CHANGELOG.md152
-rw-r--r--node_modules/npm-lifecycle/node_modules/which/LICENSE15
-rw-r--r--node_modules/npm-lifecycle/node_modules/which/README.md51
-rwxr-xr-xnode_modules/npm-lifecycle/node_modules/which/bin/which52
-rw-r--r--node_modules/npm-lifecycle/node_modules/which/package.json65
-rw-r--r--node_modules/npm-lifecycle/node_modules/which/which.js135
l---------node_modules/os-locale/node_modules/cross-spawn/node_modules/.bin/which1
-rw-r--r--node_modules/os-locale/node_modules/cross-spawn/node_modules/which/CHANGELOG.md152
-rw-r--r--node_modules/os-locale/node_modules/cross-spawn/node_modules/which/LICENSE15
-rw-r--r--node_modules/os-locale/node_modules/cross-spawn/node_modules/which/README.md51
-rwxr-xr-xnode_modules/os-locale/node_modules/cross-spawn/node_modules/which/bin/which52
-rw-r--r--node_modules/os-locale/node_modules/cross-spawn/node_modules/which/package.json65
-rw-r--r--node_modules/os-locale/node_modules/cross-spawn/node_modules/which/which.js135
l---------node_modules/pacote/node_modules/.bin/which1
-rw-r--r--node_modules/pacote/node_modules/which/CHANGELOG.md152
-rw-r--r--node_modules/pacote/node_modules/which/LICENSE15
-rw-r--r--node_modules/pacote/node_modules/which/README.md51
-rwxr-xr-xnode_modules/pacote/node_modules/which/bin/which52
-rw-r--r--node_modules/pacote/node_modules/which/package.json65
-rw-r--r--node_modules/pacote/node_modules/which/which.js135
-rw-r--r--node_modules/which/CHANGELOG.md14
-rw-r--r--node_modules/which/README.md3
-rwxr-xr-xnode_modules/which/bin/node-which52
-rw-r--r--node_modules/which/package.json53
-rw-r--r--node_modules/which/which.js168
47 files changed, 2951 insertions, 113 deletions
diff --git a/node_modules/cross-spawn/node_modules/.bin/which b/node_modules/cross-spawn/node_modules/.bin/which
new file mode 120000
index 000000000..f62471c85
--- /dev/null
+++ b/node_modules/cross-spawn/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which \ No newline at end of file
diff --git a/node_modules/cross-spawn/node_modules/which/CHANGELOG.md b/node_modules/cross-spawn/node_modules/which/CHANGELOG.md
new file mode 100644
index 000000000..3d83d2694
--- /dev/null
+++ b/node_modules/cross-spawn/node_modules/which/CHANGELOG.md
@@ -0,0 +1,152 @@
+# Changes
+
+
+## 1.3.1
+
+* update deps
+* update travis
+
+## v1.3.0
+
+* Add nothrow option to which.sync
+* update tap
+
+## v1.2.14
+
+* appveyor: drop node 5 and 0.x
+* travis-ci: add node 6, drop 0.x
+
+## v1.2.13
+
+* test: Pass missing option to pass on windows
+* update tap
+* update isexe to 2.0.0
+* neveragain.tech pledge request
+
+## v1.2.12
+
+* Removed unused require
+
+## v1.2.11
+
+* Prevent changelog script from being included in package
+
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
+## v1.2.8
+
+* bullet items in changelog that contain (but don't start with) #
+
+## v1.2.7
+
+* strip 'update changelog' changelog entries out of changelog
+
+## v1.2.6
+
+* make the changelog bulleted
+
+## v1.2.5
+
+* make a changelog, and keep it up to date
+* don't include tests in package
+* Properly handle relative-path executables
+* appveyor
+* Attach error code to Not Found error
+* Make tests pass on Windows
+
+## v1.2.4
+
+* Fix typo
+
+## v1.2.3
+
+* update isexe, fix regression in pathExt handling
+
+## v1.2.2
+
+* update deps, use isexe module, test windows
+
+## v1.2.1
+
+* Sometimes windows PATH entries are quoted
+* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
+* doc cli
+
+## v1.2.0
+
+* Add support for opt.all and -as cli flags
+* test the bin
+* update travis
+* Allow checking for multiple programs in bin/which
+* tap 2
+
+## v1.1.2
+
+* travis
+* Refactored and fixed undefined error on Windows
+* Support strict mode
+
+## v1.1.1
+
+* test +g exes against secondary groups, if available
+* Use windows exe semantics on cygwin & msys
+* cwd should be first in path on win32, not last
+* Handle lower-case 'env.Path' on Windows
+* Update docs
+* use single-quotes
+
+## v1.1.0
+
+* Add tests, depend on is-absolute
+
+## v1.0.9
+
+* which.js: root is allowed to execute files owned by anyone
+
+## v1.0.8
+
+* don't use graceful-fs
+
+## v1.0.7
+
+* add license to package.json
+
+## v1.0.6
+
+* isc license
+
+## 1.0.5
+
+* Awful typo
+
+## 1.0.4
+
+* Test for path absoluteness properly
+* win: Allow '' as a pathext if cmd has a . in it
+
+## 1.0.3
+
+* Remove references to execPath
+* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
+* Make `isExe()` always return true on Windows.
+* MIT
+
+## 1.0.2
+
+* Only files can be exes
+
+## 1.0.1
+
+* Respect the PATHEXT env for win32 support
+* should 0755 the bin
+* binary
+* guts
+* package
+* 1st
diff --git a/node_modules/cross-spawn/node_modules/which/LICENSE b/node_modules/cross-spawn/node_modules/which/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/cross-spawn/node_modules/which/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/cross-spawn/node_modules/which/README.md b/node_modules/cross-spawn/node_modules/which/README.md
new file mode 100644
index 000000000..8c0b0cbf7
--- /dev/null
+++ b/node_modules/cross-spawn/node_modules/which/README.md
@@ -0,0 +1,51 @@
+# which
+
+Like the unix `which` utility.
+
+Finds the first instance of a specified executable in the PATH
+environment variable. Does not cache the results, so `hash -r` is not
+needed when the PATH changes.
+
+## USAGE
+
+```javascript
+var which = require('which')
+
+// async usage
+which('node', function (er, resolvedPath) {
+ // er is returned if no "node" is found on the PATH
+ // if it is found, then the absolute path to the exec is returned
+})
+
+// sync usage
+// throws if not found
+var resolved = which.sync('node')
+
+// if nothrow option is used, returns null if not found
+resolved = which.sync('node', {nothrow: true})
+
+// Pass options to override the PATH and PATHEXT environment vars.
+which('node', { path: someOtherPath }, function (er, resolved) {
+ if (er)
+ throw er
+ console.log('found at %j', resolved)
+})
+```
+
+## CLI USAGE
+
+Same as the BSD `which(1)` binary.
+
+```
+usage: which [-as] program ...
+```
+
+## OPTIONS
+
+You may pass an options object as the second argument.
+
+- `path`: Use instead of the `PATH` environment variable.
+- `pathExt`: Use instead of the `PATHEXT` environment variable.
+- `all`: Return all matches, instead of just the first one. Note that
+ this means the function returns an array of strings instead of a
+ single string.
diff --git a/node_modules/which/bin/which b/node_modules/cross-spawn/node_modules/which/bin/which
index 7cee3729e..7cee3729e 100755
--- a/node_modules/which/bin/which
+++ b/node_modules/cross-spawn/node_modules/which/bin/which
diff --git a/node_modules/cross-spawn/node_modules/which/package.json b/node_modules/cross-spawn/node_modules/which/package.json
new file mode 100644
index 000000000..6a22cf78c
--- /dev/null
+++ b/node_modules/cross-spawn/node_modules/which/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "which@^1.2.9",
+ "_id": "which@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_location": "/cross-spawn/which",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which@^1.2.9",
+ "name": "which",
+ "escapedName": "which",
+ "rawSpec": "^1.2.9",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.9"
+ },
+ "_requiredBy": [
+ "/cross-spawn"
+ ],
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
+ "_spec": "which@^1.2.9",
+ "_where": "/Users/claudiahdz/npm/cli/node_modules/cross-spawn",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-which/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
+ "devDependencies": {
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.6.2",
+ "tap": "^12.0.1"
+ },
+ "files": [
+ "which.js",
+ "bin/which"
+ ],
+ "homepage": "https://github.com/isaacs/node-which#readme",
+ "license": "ISC",
+ "main": "which.js",
+ "name": "which",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-which.git"
+ },
+ "scripts": {
+ "changelog": "bash gen-changelog.sh",
+ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.3.1"
+}
diff --git a/node_modules/cross-spawn/node_modules/which/which.js b/node_modules/cross-spawn/node_modules/which/which.js
new file mode 100644
index 000000000..4347f91a1
--- /dev/null
+++ b/node_modules/cross-spawn/node_modules/which/which.js
@@ -0,0 +1,135 @@
+module.exports = which
+which.sync = whichSync
+
+var isWindows = process.platform === 'win32' ||
+ process.env.OSTYPE === 'cygwin' ||
+ process.env.OSTYPE === 'msys'
+
+var path = require('path')
+var COLON = isWindows ? ';' : ':'
+var isexe = require('isexe')
+
+function getNotFoundError (cmd) {
+ var er = new Error('not found: ' + cmd)
+ er.code = 'ENOENT'
+
+ return er
+}
+
+function getPathInfo (cmd, opt) {
+ var colon = opt.colon || COLON
+ var pathEnv = opt.path || process.env.PATH || ''
+ var pathExt = ['']
+
+ pathEnv = pathEnv.split(colon)
+
+ var pathExtExe = ''
+ if (isWindows) {
+ pathEnv.unshift(process.cwd())
+ pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
+ pathExt = pathExtExe.split(colon)
+
+
+ // Always test the cmd itself first. isexe will check to make sure
+ // it's found in the pathExt set.
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
+ pathExt.unshift('')
+ }
+
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
+ pathEnv = ['']
+
+ return {
+ env: pathEnv,
+ ext: pathExt,
+ extExe: pathExtExe
+ }
+}
+
+function which (cmd, opt, cb) {
+ if (typeof opt === 'function') {
+ cb = opt
+ opt = {}
+ }
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ ;(function F (i, l) {
+ if (i === l) {
+ if (opt.all && found.length)
+ return cb(null, found)
+ else
+ return cb(getNotFoundError(cmd))
+ }
+
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ ;(function E (ii, ll) {
+ if (ii === ll) return F(i + 1, l)
+ var ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return cb(null, p + ext)
+ }
+ return E(ii + 1, ll)
+ })
+ })(0, pathExt.length)
+ })(0, pathEnv.length)
+}
+
+function whichSync (cmd, opt) {
+ opt = opt || {}
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ for (var i = 0, l = pathEnv.length; i < l; i ++) {
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ for (var j = 0, ll = pathExt.length; j < ll; j ++) {
+ var cur = p + pathExt[j]
+ var is
+ try {
+ is = isexe.sync(cur, { pathExt: pathExtExe })
+ if (is) {
+ if (opt.all)
+ found.push(cur)
+ else
+ return cur
+ }
+ } catch (ex) {}
+ }
+ }
+
+ if (opt.all && found.length)
+ return found
+
+ if (opt.nothrow)
+ return null
+
+ throw getNotFoundError(cmd)
+}
diff --git a/node_modules/libnpx/node_modules/.bin/which b/node_modules/libnpx/node_modules/.bin/which
new file mode 120000
index 000000000..f62471c85
--- /dev/null
+++ b/node_modules/libnpx/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which \ No newline at end of file
diff --git a/node_modules/libnpx/node_modules/which/CHANGELOG.md b/node_modules/libnpx/node_modules/which/CHANGELOG.md
new file mode 100644
index 000000000..3d83d2694
--- /dev/null
+++ b/node_modules/libnpx/node_modules/which/CHANGELOG.md
@@ -0,0 +1,152 @@
+# Changes
+
+
+## 1.3.1
+
+* update deps
+* update travis
+
+## v1.3.0
+
+* Add nothrow option to which.sync
+* update tap
+
+## v1.2.14
+
+* appveyor: drop node 5 and 0.x
+* travis-ci: add node 6, drop 0.x
+
+## v1.2.13
+
+* test: Pass missing option to pass on windows
+* update tap
+* update isexe to 2.0.0
+* neveragain.tech pledge request
+
+## v1.2.12
+
+* Removed unused require
+
+## v1.2.11
+
+* Prevent changelog script from being included in package
+
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
+## v1.2.8
+
+* bullet items in changelog that contain (but don't start with) #
+
+## v1.2.7
+
+* strip 'update changelog' changelog entries out of changelog
+
+## v1.2.6
+
+* make the changelog bulleted
+
+## v1.2.5
+
+* make a changelog, and keep it up to date
+* don't include tests in package
+* Properly handle relative-path executables
+* appveyor
+* Attach error code to Not Found error
+* Make tests pass on Windows
+
+## v1.2.4
+
+* Fix typo
+
+## v1.2.3
+
+* update isexe, fix regression in pathExt handling
+
+## v1.2.2
+
+* update deps, use isexe module, test windows
+
+## v1.2.1
+
+* Sometimes windows PATH entries are quoted
+* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
+* doc cli
+
+## v1.2.0
+
+* Add support for opt.all and -as cli flags
+* test the bin
+* update travis
+* Allow checking for multiple programs in bin/which
+* tap 2
+
+## v1.1.2
+
+* travis
+* Refactored and fixed undefined error on Windows
+* Support strict mode
+
+## v1.1.1
+
+* test +g exes against secondary groups, if available
+* Use windows exe semantics on cygwin & msys
+* cwd should be first in path on win32, not last
+* Handle lower-case 'env.Path' on Windows
+* Update docs
+* use single-quotes
+
+## v1.1.0
+
+* Add tests, depend on is-absolute
+
+## v1.0.9
+
+* which.js: root is allowed to execute files owned by anyone
+
+## v1.0.8
+
+* don't use graceful-fs
+
+## v1.0.7
+
+* add license to package.json
+
+## v1.0.6
+
+* isc license
+
+## 1.0.5
+
+* Awful typo
+
+## 1.0.4
+
+* Test for path absoluteness properly
+* win: Allow '' as a pathext if cmd has a . in it
+
+## 1.0.3
+
+* Remove references to execPath
+* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
+* Make `isExe()` always return true on Windows.
+* MIT
+
+## 1.0.2
+
+* Only files can be exes
+
+## 1.0.1
+
+* Respect the PATHEXT env for win32 support
+* should 0755 the bin
+* binary
+* guts
+* package
+* 1st
diff --git a/node_modules/libnpx/node_modules/which/LICENSE b/node_modules/libnpx/node_modules/which/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/libnpx/node_modules/which/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/libnpx/node_modules/which/README.md b/node_modules/libnpx/node_modules/which/README.md
new file mode 100644
index 000000000..8c0b0cbf7
--- /dev/null
+++ b/node_modules/libnpx/node_modules/which/README.md
@@ -0,0 +1,51 @@
+# which
+
+Like the unix `which` utility.
+
+Finds the first instance of a specified executable in the PATH
+environment variable. Does not cache the results, so `hash -r` is not
+needed when the PATH changes.
+
+## USAGE
+
+```javascript
+var which = require('which')
+
+// async usage
+which('node', function (er, resolvedPath) {
+ // er is returned if no "node" is found on the PATH
+ // if it is found, then the absolute path to the exec is returned
+})
+
+// sync usage
+// throws if not found
+var resolved = which.sync('node')
+
+// if nothrow option is used, returns null if not found
+resolved = which.sync('node', {nothrow: true})
+
+// Pass options to override the PATH and PATHEXT environment vars.
+which('node', { path: someOtherPath }, function (er, resolved) {
+ if (er)
+ throw er
+ console.log('found at %j', resolved)
+})
+```
+
+## CLI USAGE
+
+Same as the BSD `which(1)` binary.
+
+```
+usage: which [-as] program ...
+```
+
+## OPTIONS
+
+You may pass an options object as the second argument.
+
+- `path`: Use instead of the `PATH` environment variable.
+- `pathExt`: Use instead of the `PATHEXT` environment variable.
+- `all`: Return all matches, instead of just the first one. Note that
+ this means the function returns an array of strings instead of a
+ single string.
diff --git a/node_modules/libnpx/node_modules/which/bin/which b/node_modules/libnpx/node_modules/which/bin/which
new file mode 100755
index 000000000..7cee3729e
--- /dev/null
+++ b/node_modules/libnpx/node_modules/which/bin/which
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+var which = require("../")
+if (process.argv.length < 3)
+ usage()
+
+function usage () {
+ console.error('usage: which [-as] program ...')
+ process.exit(1)
+}
+
+var all = false
+var silent = false
+var dashdash = false
+var args = process.argv.slice(2).filter(function (arg) {
+ if (dashdash || !/^-/.test(arg))
+ return true
+
+ if (arg === '--') {
+ dashdash = true
+ return false
+ }
+
+ var flags = arg.substr(1).split('')
+ for (var f = 0; f < flags.length; f++) {
+ var flag = flags[f]
+ switch (flag) {
+ case 's':
+ silent = true
+ break
+ case 'a':
+ all = true
+ break
+ default:
+ console.error('which: illegal option -- ' + flag)
+ usage()
+ }
+ }
+ return false
+})
+
+process.exit(args.reduce(function (pv, current) {
+ try {
+ var f = which.sync(current, { all: all })
+ if (all)
+ f = f.join('\n')
+ if (!silent)
+ console.log(f)
+ return pv;
+ } catch (e) {
+ return 1;
+ }
+}, 0))
diff --git a/node_modules/libnpx/node_modules/which/package.json b/node_modules/libnpx/node_modules/which/package.json
new file mode 100644
index 000000000..39add93f8
--- /dev/null
+++ b/node_modules/libnpx/node_modules/which/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "which@^1.3.0",
+ "_id": "which@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_location": "/libnpx/which",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which@^1.3.0",
+ "name": "which",
+ "escapedName": "which",
+ "rawSpec": "^1.3.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.3.0"
+ },
+ "_requiredBy": [
+ "/libnpx"
+ ],
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
+ "_spec": "which@^1.3.0",
+ "_where": "/Users/claudiahdz/npm/cli/node_modules/libnpx",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-which/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
+ "devDependencies": {
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.6.2",
+ "tap": "^12.0.1"
+ },
+ "files": [
+ "which.js",
+ "bin/which"
+ ],
+ "homepage": "https://github.com/isaacs/node-which#readme",
+ "license": "ISC",
+ "main": "which.js",
+ "name": "which",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-which.git"
+ },
+ "scripts": {
+ "changelog": "bash gen-changelog.sh",
+ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.3.1"
+}
diff --git a/node_modules/libnpx/node_modules/which/which.js b/node_modules/libnpx/node_modules/which/which.js
new file mode 100644
index 000000000..4347f91a1
--- /dev/null
+++ b/node_modules/libnpx/node_modules/which/which.js
@@ -0,0 +1,135 @@
+module.exports = which
+which.sync = whichSync
+
+var isWindows = process.platform === 'win32' ||
+ process.env.OSTYPE === 'cygwin' ||
+ process.env.OSTYPE === 'msys'
+
+var path = require('path')
+var COLON = isWindows ? ';' : ':'
+var isexe = require('isexe')
+
+function getNotFoundError (cmd) {
+ var er = new Error('not found: ' + cmd)
+ er.code = 'ENOENT'
+
+ return er
+}
+
+function getPathInfo (cmd, opt) {
+ var colon = opt.colon || COLON
+ var pathEnv = opt.path || process.env.PATH || ''
+ var pathExt = ['']
+
+ pathEnv = pathEnv.split(colon)
+
+ var pathExtExe = ''
+ if (isWindows) {
+ pathEnv.unshift(process.cwd())
+ pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
+ pathExt = pathExtExe.split(colon)
+
+
+ // Always test the cmd itself first. isexe will check to make sure
+ // it's found in the pathExt set.
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
+ pathExt.unshift('')
+ }
+
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
+ pathEnv = ['']
+
+ return {
+ env: pathEnv,
+ ext: pathExt,
+ extExe: pathExtExe
+ }
+}
+
+function which (cmd, opt, cb) {
+ if (typeof opt === 'function') {
+ cb = opt
+ opt = {}
+ }
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ ;(function F (i, l) {
+ if (i === l) {
+ if (opt.all && found.length)
+ return cb(null, found)
+ else
+ return cb(getNotFoundError(cmd))
+ }
+
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ ;(function E (ii, ll) {
+ if (ii === ll) return F(i + 1, l)
+ var ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return cb(null, p + ext)
+ }
+ return E(ii + 1, ll)
+ })
+ })(0, pathExt.length)
+ })(0, pathEnv.length)
+}
+
+function whichSync (cmd, opt) {
+ opt = opt || {}
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ for (var i = 0, l = pathEnv.length; i < l; i ++) {
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ for (var j = 0, ll = pathExt.length; j < ll; j ++) {
+ var cur = p + pathExt[j]
+ var is
+ try {
+ is = isexe.sync(cur, { pathExt: pathExtExe })
+ if (is) {
+ if (opt.all)
+ found.push(cur)
+ else
+ return cur
+ }
+ } catch (ex) {}
+ }
+ }
+
+ if (opt.all && found.length)
+ return found
+
+ if (opt.nothrow)
+ return null
+
+ throw getNotFoundError(cmd)
+}
diff --git a/node_modules/node-gyp/node_modules/.bin/which b/node_modules/node-gyp/node_modules/.bin/which
new file mode 120000
index 000000000..f62471c85
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which \ No newline at end of file
diff --git a/node_modules/node-gyp/node_modules/which/CHANGELOG.md b/node_modules/node-gyp/node_modules/which/CHANGELOG.md
new file mode 100644
index 000000000..3d83d2694
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/which/CHANGELOG.md
@@ -0,0 +1,152 @@
+# Changes
+
+
+## 1.3.1
+
+* update deps
+* update travis
+
+## v1.3.0
+
+* Add nothrow option to which.sync
+* update tap
+
+## v1.2.14
+
+* appveyor: drop node 5 and 0.x
+* travis-ci: add node 6, drop 0.x
+
+## v1.2.13
+
+* test: Pass missing option to pass on windows
+* update tap
+* update isexe to 2.0.0
+* neveragain.tech pledge request
+
+## v1.2.12
+
+* Removed unused require
+
+## v1.2.11
+
+* Prevent changelog script from being included in package
+
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
+## v1.2.8
+
+* bullet items in changelog that contain (but don't start with) #
+
+## v1.2.7
+
+* strip 'update changelog' changelog entries out of changelog
+
+## v1.2.6
+
+* make the changelog bulleted
+
+## v1.2.5
+
+* make a changelog, and keep it up to date
+* don't include tests in package
+* Properly handle relative-path executables
+* appveyor
+* Attach error code to Not Found error
+* Make tests pass on Windows
+
+## v1.2.4
+
+* Fix typo
+
+## v1.2.3
+
+* update isexe, fix regression in pathExt handling
+
+## v1.2.2
+
+* update deps, use isexe module, test windows
+
+## v1.2.1
+
+* Sometimes windows PATH entries are quoted
+* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
+* doc cli
+
+## v1.2.0
+
+* Add support for opt.all and -as cli flags
+* test the bin
+* update travis
+* Allow checking for multiple programs in bin/which
+* tap 2
+
+## v1.1.2
+
+* travis
+* Refactored and fixed undefined error on Windows
+* Support strict mode
+
+## v1.1.1
+
+* test +g exes against secondary groups, if available
+* Use windows exe semantics on cygwin & msys
+* cwd should be first in path on win32, not last
+* Handle lower-case 'env.Path' on Windows
+* Update docs
+* use single-quotes
+
+## v1.1.0
+
+* Add tests, depend on is-absolute
+
+## v1.0.9
+
+* which.js: root is allowed to execute files owned by anyone
+
+## v1.0.8
+
+* don't use graceful-fs
+
+## v1.0.7
+
+* add license to package.json
+
+## v1.0.6
+
+* isc license
+
+## 1.0.5
+
+* Awful typo
+
+## 1.0.4
+
+* Test for path absoluteness properly
+* win: Allow '' as a pathext if cmd has a . in it
+
+## 1.0.3
+
+* Remove references to execPath
+* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
+* Make `isExe()` always return true on Windows.
+* MIT
+
+## 1.0.2
+
+* Only files can be exes
+
+## 1.0.1
+
+* Respect the PATHEXT env for win32 support
+* should 0755 the bin
+* binary
+* guts
+* package
+* 1st
diff --git a/node_modules/node-gyp/node_modules/which/LICENSE b/node_modules/node-gyp/node_modules/which/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/which/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/node-gyp/node_modules/which/README.md b/node_modules/node-gyp/node_modules/which/README.md
new file mode 100644
index 000000000..8c0b0cbf7
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/which/README.md
@@ -0,0 +1,51 @@
+# which
+
+Like the unix `which` utility.
+
+Finds the first instance of a specified executable in the PATH
+environment variable. Does not cache the results, so `hash -r` is not
+needed when the PATH changes.
+
+## USAGE
+
+```javascript
+var which = require('which')
+
+// async usage
+which('node', function (er, resolvedPath) {
+ // er is returned if no "node" is found on the PATH
+ // if it is found, then the absolute path to the exec is returned
+})
+
+// sync usage
+// throws if not found
+var resolved = which.sync('node')
+
+// if nothrow option is used, returns null if not found
+resolved = which.sync('node', {nothrow: true})
+
+// Pass options to override the PATH and PATHEXT environment vars.
+which('node', { path: someOtherPath }, function (er, resolved) {
+ if (er)
+ throw er
+ console.log('found at %j', resolved)
+})
+```
+
+## CLI USAGE
+
+Same as the BSD `which(1)` binary.
+
+```
+usage: which [-as] program ...
+```
+
+## OPTIONS
+
+You may pass an options object as the second argument.
+
+- `path`: Use instead of the `PATH` environment variable.
+- `pathExt`: Use instead of the `PATHEXT` environment variable.
+- `all`: Return all matches, instead of just the first one. Note that
+ this means the function returns an array of strings instead of a
+ single string.
diff --git a/node_modules/node-gyp/node_modules/which/bin/which b/node_modules/node-gyp/node_modules/which/bin/which
new file mode 100755
index 000000000..7cee3729e
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/which/bin/which
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+var which = require("../")
+if (process.argv.length < 3)
+ usage()
+
+function usage () {
+ console.error('usage: which [-as] program ...')
+ process.exit(1)
+}
+
+var all = false
+var silent = false
+var dashdash = false
+var args = process.argv.slice(2).filter(function (arg) {
+ if (dashdash || !/^-/.test(arg))
+ return true
+
+ if (arg === '--') {
+ dashdash = true
+ return false
+ }
+
+ var flags = arg.substr(1).split('')
+ for (var f = 0; f < flags.length; f++) {
+ var flag = flags[f]
+ switch (flag) {
+ case 's':
+ silent = true
+ break
+ case 'a':
+ all = true
+ break
+ default:
+ console.error('which: illegal option -- ' + flag)
+ usage()
+ }
+ }
+ return false
+})
+
+process.exit(args.reduce(function (pv, current) {
+ try {
+ var f = which.sync(current, { all: all })
+ if (all)
+ f = f.join('\n')
+ if (!silent)
+ console.log(f)
+ return pv;
+ } catch (e) {
+ return 1;
+ }
+}, 0))
diff --git a/node_modules/node-gyp/node_modules/which/package.json b/node_modules/node-gyp/node_modules/which/package.json
new file mode 100644
index 000000000..06b35d7b7
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/which/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "which@^1.3.1",
+ "_id": "which@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_location": "/node-gyp/which",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which@^1.3.1",
+ "name": "which",
+ "escapedName": "which",
+ "rawSpec": "^1.3.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.3.1"
+ },
+ "_requiredBy": [
+ "/node-gyp"
+ ],
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
+ "_spec": "which@^1.3.1",
+ "_where": "/Users/claudiahdz/npm/cli/node_modules/node-gyp",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-which/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
+ "devDependencies": {
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.6.2",
+ "tap": "^12.0.1"
+ },
+ "files": [
+ "which.js",
+ "bin/which"
+ ],
+ "homepage": "https://github.com/isaacs/node-which#readme",
+ "license": "ISC",
+ "main": "which.js",
+ "name": "which",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-which.git"
+ },
+ "scripts": {
+ "changelog": "bash gen-changelog.sh",
+ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.3.1"
+}
diff --git a/node_modules/node-gyp/node_modules/which/which.js b/node_modules/node-gyp/node_modules/which/which.js
new file mode 100644
index 000000000..4347f91a1
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/which/which.js
@@ -0,0 +1,135 @@
+module.exports = which
+which.sync = whichSync
+
+var isWindows = process.platform === 'win32' ||
+ process.env.OSTYPE === 'cygwin' ||
+ process.env.OSTYPE === 'msys'
+
+var path = require('path')
+var COLON = isWindows ? ';' : ':'
+var isexe = require('isexe')
+
+function getNotFoundError (cmd) {
+ var er = new Error('not found: ' + cmd)
+ er.code = 'ENOENT'
+
+ return er
+}
+
+function getPathInfo (cmd, opt) {
+ var colon = opt.colon || COLON
+ var pathEnv = opt.path || process.env.PATH || ''
+ var pathExt = ['']
+
+ pathEnv = pathEnv.split(colon)
+
+ var pathExtExe = ''
+ if (isWindows) {
+ pathEnv.unshift(process.cwd())
+ pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
+ pathExt = pathExtExe.split(colon)
+
+
+ // Always test the cmd itself first. isexe will check to make sure
+ // it's found in the pathExt set.
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
+ pathExt.unshift('')
+ }
+
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
+ pathEnv = ['']
+
+ return {
+ env: pathEnv,
+ ext: pathExt,
+ extExe: pathExtExe
+ }
+}
+
+function which (cmd, opt, cb) {
+ if (typeof opt === 'function') {
+ cb = opt
+ opt = {}
+ }
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ ;(function F (i, l) {
+ if (i === l) {
+ if (opt.all && found.length)
+ return cb(null, found)
+ else
+ return cb(getNotFoundError(cmd))
+ }
+
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ ;(function E (ii, ll) {
+ if (ii === ll) return F(i + 1, l)
+ var ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return cb(null, p + ext)
+ }
+ return E(ii + 1, ll)
+ })
+ })(0, pathExt.length)
+ })(0, pathEnv.length)
+}
+
+function whichSync (cmd, opt) {
+ opt = opt || {}
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ for (var i = 0, l = pathEnv.length; i < l; i ++) {
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ for (var j = 0, ll = pathExt.length; j < ll; j ++) {
+ var cur = p + pathExt[j]
+ var is
+ try {
+ is = isexe.sync(cur, { pathExt: pathExtExe })
+ if (is) {
+ if (opt.all)
+ found.push(cur)
+ else
+ return cur
+ }
+ } catch (ex) {}
+ }
+ }
+
+ if (opt.all && found.length)
+ return found
+
+ if (opt.nothrow)
+ return null
+
+ throw getNotFoundError(cmd)
+}
diff --git a/node_modules/npm-lifecycle/node_modules/.bin/which b/node_modules/npm-lifecycle/node_modules/.bin/which
new file mode 120000
index 000000000..f62471c85
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which \ No newline at end of file
diff --git a/node_modules/npm-lifecycle/node_modules/which/CHANGELOG.md b/node_modules/npm-lifecycle/node_modules/which/CHANGELOG.md
new file mode 100644
index 000000000..3d83d2694
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/which/CHANGELOG.md
@@ -0,0 +1,152 @@
+# Changes
+
+
+## 1.3.1
+
+* update deps
+* update travis
+
+## v1.3.0
+
+* Add nothrow option to which.sync
+* update tap
+
+## v1.2.14
+
+* appveyor: drop node 5 and 0.x
+* travis-ci: add node 6, drop 0.x
+
+## v1.2.13
+
+* test: Pass missing option to pass on windows
+* update tap
+* update isexe to 2.0.0
+* neveragain.tech pledge request
+
+## v1.2.12
+
+* Removed unused require
+
+## v1.2.11
+
+* Prevent changelog script from being included in package
+
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
+## v1.2.8
+
+* bullet items in changelog that contain (but don't start with) #
+
+## v1.2.7
+
+* strip 'update changelog' changelog entries out of changelog
+
+## v1.2.6
+
+* make the changelog bulleted
+
+## v1.2.5
+
+* make a changelog, and keep it up to date
+* don't include tests in package
+* Properly handle relative-path executables
+* appveyor
+* Attach error code to Not Found error
+* Make tests pass on Windows
+
+## v1.2.4
+
+* Fix typo
+
+## v1.2.3
+
+* update isexe, fix regression in pathExt handling
+
+## v1.2.2
+
+* update deps, use isexe module, test windows
+
+## v1.2.1
+
+* Sometimes windows PATH entries are quoted
+* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
+* doc cli
+
+## v1.2.0
+
+* Add support for opt.all and -as cli flags
+* test the bin
+* update travis
+* Allow checking for multiple programs in bin/which
+* tap 2
+
+## v1.1.2
+
+* travis
+* Refactored and fixed undefined error on Windows
+* Support strict mode
+
+## v1.1.1
+
+* test +g exes against secondary groups, if available
+* Use windows exe semantics on cygwin & msys
+* cwd should be first in path on win32, not last
+* Handle lower-case 'env.Path' on Windows
+* Update docs
+* use single-quotes
+
+## v1.1.0
+
+* Add tests, depend on is-absolute
+
+## v1.0.9
+
+* which.js: root is allowed to execute files owned by anyone
+
+## v1.0.8
+
+* don't use graceful-fs
+
+## v1.0.7
+
+* add license to package.json
+
+## v1.0.6
+
+* isc license
+
+## 1.0.5
+
+* Awful typo
+
+## 1.0.4
+
+* Test for path absoluteness properly
+* win: Allow '' as a pathext if cmd has a . in it
+
+## 1.0.3
+
+* Remove references to execPath
+* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
+* Make `isExe()` always return true on Windows.
+* MIT
+
+## 1.0.2
+
+* Only files can be exes
+
+## 1.0.1
+
+* Respect the PATHEXT env for win32 support
+* should 0755 the bin
+* binary
+* guts
+* package
+* 1st
diff --git a/node_modules/npm-lifecycle/node_modules/which/LICENSE b/node_modules/npm-lifecycle/node_modules/which/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/which/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/npm-lifecycle/node_modules/which/README.md b/node_modules/npm-lifecycle/node_modules/which/README.md
new file mode 100644
index 000000000..8c0b0cbf7
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/which/README.md
@@ -0,0 +1,51 @@
+# which
+
+Like the unix `which` utility.
+
+Finds the first instance of a specified executable in the PATH
+environment variable. Does not cache the results, so `hash -r` is not
+needed when the PATH changes.
+
+## USAGE
+
+```javascript
+var which = require('which')
+
+// async usage
+which('node', function (er, resolvedPath) {
+ // er is returned if no "node" is found on the PATH
+ // if it is found, then the absolute path to the exec is returned
+})
+
+// sync usage
+// throws if not found
+var resolved = which.sync('node')
+
+// if nothrow option is used, returns null if not found
+resolved = which.sync('node', {nothrow: true})
+
+// Pass options to override the PATH and PATHEXT environment vars.
+which('node', { path: someOtherPath }, function (er, resolved) {
+ if (er)
+ throw er
+ console.log('found at %j', resolved)
+})
+```
+
+## CLI USAGE
+
+Same as the BSD `which(1)` binary.
+
+```
+usage: which [-as] program ...
+```
+
+## OPTIONS
+
+You may pass an options object as the second argument.
+
+- `path`: Use instead of the `PATH` environment variable.
+- `pathExt`: Use instead of the `PATHEXT` environment variable.
+- `all`: Return all matches, instead of just the first one. Note that
+ this means the function returns an array of strings instead of a
+ single string.
diff --git a/node_modules/npm-lifecycle/node_modules/which/bin/which b/node_modules/npm-lifecycle/node_modules/which/bin/which
new file mode 100755
index 000000000..7cee3729e
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/which/bin/which
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+var which = require("../")
+if (process.argv.length < 3)
+ usage()
+
+function usage () {
+ console.error('usage: which [-as] program ...')
+ process.exit(1)
+}
+
+var all = false
+var silent = false
+var dashdash = false
+var args = process.argv.slice(2).filter(function (arg) {
+ if (dashdash || !/^-/.test(arg))
+ return true
+
+ if (arg === '--') {
+ dashdash = true
+ return false
+ }
+
+ var flags = arg.substr(1).split('')
+ for (var f = 0; f < flags.length; f++) {
+ var flag = flags[f]
+ switch (flag) {
+ case 's':
+ silent = true
+ break
+ case 'a':
+ all = true
+ break
+ default:
+ console.error('which: illegal option -- ' + flag)
+ usage()
+ }
+ }
+ return false
+})
+
+process.exit(args.reduce(function (pv, current) {
+ try {
+ var f = which.sync(current, { all: all })
+ if (all)
+ f = f.join('\n')
+ if (!silent)
+ console.log(f)
+ return pv;
+ } catch (e) {
+ return 1;
+ }
+}, 0))
diff --git a/node_modules/npm-lifecycle/node_modules/which/package.json b/node_modules/npm-lifecycle/node_modules/which/package.json
new file mode 100644
index 000000000..a08065b2d
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/which/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "which@^1.3.1",
+ "_id": "which@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_location": "/npm-lifecycle/which",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which@^1.3.1",
+ "name": "which",
+ "escapedName": "which",
+ "rawSpec": "^1.3.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.3.1"
+ },
+ "_requiredBy": [
+ "/npm-lifecycle"
+ ],
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
+ "_spec": "which@^1.3.1",
+ "_where": "/Users/claudiahdz/npm/cli/node_modules/npm-lifecycle",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-which/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
+ "devDependencies": {
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.6.2",
+ "tap": "^12.0.1"
+ },
+ "files": [
+ "which.js",
+ "bin/which"
+ ],
+ "homepage": "https://github.com/isaacs/node-which#readme",
+ "license": "ISC",
+ "main": "which.js",
+ "name": "which",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-which.git"
+ },
+ "scripts": {
+ "changelog": "bash gen-changelog.sh",
+ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.3.1"
+}
diff --git a/node_modules/npm-lifecycle/node_modules/which/which.js b/node_modules/npm-lifecycle/node_modules/which/which.js
new file mode 100644
index 000000000..4347f91a1
--- /dev/null
+++ b/node_modules/npm-lifecycle/node_modules/which/which.js
@@ -0,0 +1,135 @@
+module.exports = which
+which.sync = whichSync
+
+var isWindows = process.platform === 'win32' ||
+ process.env.OSTYPE === 'cygwin' ||
+ process.env.OSTYPE === 'msys'
+
+var path = require('path')
+var COLON = isWindows ? ';' : ':'
+var isexe = require('isexe')
+
+function getNotFoundError (cmd) {
+ var er = new Error('not found: ' + cmd)
+ er.code = 'ENOENT'
+
+ return er
+}
+
+function getPathInfo (cmd, opt) {
+ var colon = opt.colon || COLON
+ var pathEnv = opt.path || process.env.PATH || ''
+ var pathExt = ['']
+
+ pathEnv = pathEnv.split(colon)
+
+ var pathExtExe = ''
+ if (isWindows) {
+ pathEnv.unshift(process.cwd())
+ pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
+ pathExt = pathExtExe.split(colon)
+
+
+ // Always test the cmd itself first. isexe will check to make sure
+ // it's found in the pathExt set.
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
+ pathExt.unshift('')
+ }
+
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
+ pathEnv = ['']
+
+ return {
+ env: pathEnv,
+ ext: pathExt,
+ extExe: pathExtExe
+ }
+}
+
+function which (cmd, opt, cb) {
+ if (typeof opt === 'function') {
+ cb = opt
+ opt = {}
+ }
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ ;(function F (i, l) {
+ if (i === l) {
+ if (opt.all && found.length)
+ return cb(null, found)
+ else
+ return cb(getNotFoundError(cmd))
+ }
+
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ ;(function E (ii, ll) {
+ if (ii === ll) return F(i + 1, l)
+ var ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return cb(null, p + ext)
+ }
+ return E(ii + 1, ll)
+ })
+ })(0, pathExt.length)
+ })(0, pathEnv.length)
+}
+
+function whichSync (cmd, opt) {
+ opt = opt || {}
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ for (var i = 0, l = pathEnv.length; i < l; i ++) {
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ for (var j = 0, ll = pathExt.length; j < ll; j ++) {
+ var cur = p + pathExt[j]
+ var is
+ try {
+ is = isexe.sync(cur, { pathExt: pathExtExe })
+ if (is) {
+ if (opt.all)
+ found.push(cur)
+ else
+ return cur
+ }
+ } catch (ex) {}
+ }
+ }
+
+ if (opt.all && found.length)
+ return found
+
+ if (opt.nothrow)
+ return null
+
+ throw getNotFoundError(cmd)
+}
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/.bin/which b/node_modules/os-locale/node_modules/cross-spawn/node_modules/.bin/which
new file mode 120000
index 000000000..f62471c85
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which \ No newline at end of file
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/CHANGELOG.md b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/CHANGELOG.md
new file mode 100644
index 000000000..3d83d2694
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/CHANGELOG.md
@@ -0,0 +1,152 @@
+# Changes
+
+
+## 1.3.1
+
+* update deps
+* update travis
+
+## v1.3.0
+
+* Add nothrow option to which.sync
+* update tap
+
+## v1.2.14
+
+* appveyor: drop node 5 and 0.x
+* travis-ci: add node 6, drop 0.x
+
+## v1.2.13
+
+* test: Pass missing option to pass on windows
+* update tap
+* update isexe to 2.0.0
+* neveragain.tech pledge request
+
+## v1.2.12
+
+* Removed unused require
+
+## v1.2.11
+
+* Prevent changelog script from being included in package
+
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
+## v1.2.8
+
+* bullet items in changelog that contain (but don't start with) #
+
+## v1.2.7
+
+* strip 'update changelog' changelog entries out of changelog
+
+## v1.2.6
+
+* make the changelog bulleted
+
+## v1.2.5
+
+* make a changelog, and keep it up to date
+* don't include tests in package
+* Properly handle relative-path executables
+* appveyor
+* Attach error code to Not Found error
+* Make tests pass on Windows
+
+## v1.2.4
+
+* Fix typo
+
+## v1.2.3
+
+* update isexe, fix regression in pathExt handling
+
+## v1.2.2
+
+* update deps, use isexe module, test windows
+
+## v1.2.1
+
+* Sometimes windows PATH entries are quoted
+* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
+* doc cli
+
+## v1.2.0
+
+* Add support for opt.all and -as cli flags
+* test the bin
+* update travis
+* Allow checking for multiple programs in bin/which
+* tap 2
+
+## v1.1.2
+
+* travis
+* Refactored and fixed undefined error on Windows
+* Support strict mode
+
+## v1.1.1
+
+* test +g exes against secondary groups, if available
+* Use windows exe semantics on cygwin & msys
+* cwd should be first in path on win32, not last
+* Handle lower-case 'env.Path' on Windows
+* Update docs
+* use single-quotes
+
+## v1.1.0
+
+* Add tests, depend on is-absolute
+
+## v1.0.9
+
+* which.js: root is allowed to execute files owned by anyone
+
+## v1.0.8
+
+* don't use graceful-fs
+
+## v1.0.7
+
+* add license to package.json
+
+## v1.0.6
+
+* isc license
+
+## 1.0.5
+
+* Awful typo
+
+## 1.0.4
+
+* Test for path absoluteness properly
+* win: Allow '' as a pathext if cmd has a . in it
+
+## 1.0.3
+
+* Remove references to execPath
+* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
+* Make `isExe()` always return true on Windows.
+* MIT
+
+## 1.0.2
+
+* Only files can be exes
+
+## 1.0.1
+
+* Respect the PATHEXT env for win32 support
+* should 0755 the bin
+* binary
+* guts
+* package
+* 1st
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/LICENSE b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/README.md b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/README.md
new file mode 100644
index 000000000..8c0b0cbf7
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/README.md
@@ -0,0 +1,51 @@
+# which
+
+Like the unix `which` utility.
+
+Finds the first instance of a specified executable in the PATH
+environment variable. Does not cache the results, so `hash -r` is not
+needed when the PATH changes.
+
+## USAGE
+
+```javascript
+var which = require('which')
+
+// async usage
+which('node', function (er, resolvedPath) {
+ // er is returned if no "node" is found on the PATH
+ // if it is found, then the absolute path to the exec is returned
+})
+
+// sync usage
+// throws if not found
+var resolved = which.sync('node')
+
+// if nothrow option is used, returns null if not found
+resolved = which.sync('node', {nothrow: true})
+
+// Pass options to override the PATH and PATHEXT environment vars.
+which('node', { path: someOtherPath }, function (er, resolved) {
+ if (er)
+ throw er
+ console.log('found at %j', resolved)
+})
+```
+
+## CLI USAGE
+
+Same as the BSD `which(1)` binary.
+
+```
+usage: which [-as] program ...
+```
+
+## OPTIONS
+
+You may pass an options object as the second argument.
+
+- `path`: Use instead of the `PATH` environment variable.
+- `pathExt`: Use instead of the `PATHEXT` environment variable.
+- `all`: Return all matches, instead of just the first one. Note that
+ this means the function returns an array of strings instead of a
+ single string.
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/bin/which b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/bin/which
new file mode 100755
index 000000000..7cee3729e
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/bin/which
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+var which = require("../")
+if (process.argv.length < 3)
+ usage()
+
+function usage () {
+ console.error('usage: which [-as] program ...')
+ process.exit(1)
+}
+
+var all = false
+var silent = false
+var dashdash = false
+var args = process.argv.slice(2).filter(function (arg) {
+ if (dashdash || !/^-/.test(arg))
+ return true
+
+ if (arg === '--') {
+ dashdash = true
+ return false
+ }
+
+ var flags = arg.substr(1).split('')
+ for (var f = 0; f < flags.length; f++) {
+ var flag = flags[f]
+ switch (flag) {
+ case 's':
+ silent = true
+ break
+ case 'a':
+ all = true
+ break
+ default:
+ console.error('which: illegal option -- ' + flag)
+ usage()
+ }
+ }
+ return false
+})
+
+process.exit(args.reduce(function (pv, current) {
+ try {
+ var f = which.sync(current, { all: all })
+ if (all)
+ f = f.join('\n')
+ if (!silent)
+ console.log(f)
+ return pv;
+ } catch (e) {
+ return 1;
+ }
+}, 0))
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/package.json b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/package.json
new file mode 100644
index 000000000..8d301e587
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "which@^1.2.9",
+ "_id": "which@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_location": "/os-locale/cross-spawn/which",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which@^1.2.9",
+ "name": "which",
+ "escapedName": "which",
+ "rawSpec": "^1.2.9",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.9"
+ },
+ "_requiredBy": [
+ "/os-locale/cross-spawn"
+ ],
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
+ "_spec": "which@^1.2.9",
+ "_where": "/Users/claudiahdz/npm/cli/node_modules/os-locale/node_modules/cross-spawn",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-which/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
+ "devDependencies": {
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.6.2",
+ "tap": "^12.0.1"
+ },
+ "files": [
+ "which.js",
+ "bin/which"
+ ],
+ "homepage": "https://github.com/isaacs/node-which#readme",
+ "license": "ISC",
+ "main": "which.js",
+ "name": "which",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-which.git"
+ },
+ "scripts": {
+ "changelog": "bash gen-changelog.sh",
+ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.3.1"
+}
diff --git a/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/which.js b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/which.js
new file mode 100644
index 000000000..4347f91a1
--- /dev/null
+++ b/node_modules/os-locale/node_modules/cross-spawn/node_modules/which/which.js
@@ -0,0 +1,135 @@
+module.exports = which
+which.sync = whichSync
+
+var isWindows = process.platform === 'win32' ||
+ process.env.OSTYPE === 'cygwin' ||
+ process.env.OSTYPE === 'msys'
+
+var path = require('path')
+var COLON = isWindows ? ';' : ':'
+var isexe = require('isexe')
+
+function getNotFoundError (cmd) {
+ var er = new Error('not found: ' + cmd)
+ er.code = 'ENOENT'
+
+ return er
+}
+
+function getPathInfo (cmd, opt) {
+ var colon = opt.colon || COLON
+ var pathEnv = opt.path || process.env.PATH || ''
+ var pathExt = ['']
+
+ pathEnv = pathEnv.split(colon)
+
+ var pathExtExe = ''
+ if (isWindows) {
+ pathEnv.unshift(process.cwd())
+ pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
+ pathExt = pathExtExe.split(colon)
+
+
+ // Always test the cmd itself first. isexe will check to make sure
+ // it's found in the pathExt set.
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
+ pathExt.unshift('')
+ }
+
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
+ pathEnv = ['']
+
+ return {
+ env: pathEnv,
+ ext: pathExt,
+ extExe: pathExtExe
+ }
+}
+
+function which (cmd, opt, cb) {
+ if (typeof opt === 'function') {
+ cb = opt
+ opt = {}
+ }
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ ;(function F (i, l) {
+ if (i === l) {
+ if (opt.all && found.length)
+ return cb(null, found)
+ else
+ return cb(getNotFoundError(cmd))
+ }
+
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ ;(function E (ii, ll) {
+ if (ii === ll) return F(i + 1, l)
+ var ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return cb(null, p + ext)
+ }
+ return E(ii + 1, ll)
+ })
+ })(0, pathExt.length)
+ })(0, pathEnv.length)
+}
+
+function whichSync (cmd, opt) {
+ opt = opt || {}
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ for (var i = 0, l = pathEnv.length; i < l; i ++) {
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ for (var j = 0, ll = pathExt.length; j < ll; j ++) {
+ var cur = p + pathExt[j]
+ var is
+ try {
+ is = isexe.sync(cur, { pathExt: pathExtExe })
+ if (is) {
+ if (opt.all)
+ found.push(cur)
+ else
+ return cur
+ }
+ } catch (ex) {}
+ }
+ }
+
+ if (opt.all && found.length)
+ return found
+
+ if (opt.nothrow)
+ return null
+
+ throw getNotFoundError(cmd)
+}
diff --git a/node_modules/pacote/node_modules/.bin/which b/node_modules/pacote/node_modules/.bin/which
new file mode 120000
index 000000000..f62471c85
--- /dev/null
+++ b/node_modules/pacote/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which \ No newline at end of file
diff --git a/node_modules/pacote/node_modules/which/CHANGELOG.md b/node_modules/pacote/node_modules/which/CHANGELOG.md
new file mode 100644
index 000000000..3d83d2694
--- /dev/null
+++ b/node_modules/pacote/node_modules/which/CHANGELOG.md
@@ -0,0 +1,152 @@
+# Changes
+
+
+## 1.3.1
+
+* update deps
+* update travis
+
+## v1.3.0
+
+* Add nothrow option to which.sync
+* update tap
+
+## v1.2.14
+
+* appveyor: drop node 5 and 0.x
+* travis-ci: add node 6, drop 0.x
+
+## v1.2.13
+
+* test: Pass missing option to pass on windows
+* update tap
+* update isexe to 2.0.0
+* neveragain.tech pledge request
+
+## v1.2.12
+
+* Removed unused require
+
+## v1.2.11
+
+* Prevent changelog script from being included in package
+
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
+## v1.2.8
+
+* bullet items in changelog that contain (but don't start with) #
+
+## v1.2.7
+
+* strip 'update changelog' changelog entries out of changelog
+
+## v1.2.6
+
+* make the changelog bulleted
+
+## v1.2.5
+
+* make a changelog, and keep it up to date
+* don't include tests in package
+* Properly handle relative-path executables
+* appveyor
+* Attach error code to Not Found error
+* Make tests pass on Windows
+
+## v1.2.4
+
+* Fix typo
+
+## v1.2.3
+
+* update isexe, fix regression in pathExt handling
+
+## v1.2.2
+
+* update deps, use isexe module, test windows
+
+## v1.2.1
+
+* Sometimes windows PATH entries are quoted
+* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
+* doc cli
+
+## v1.2.0
+
+* Add support for opt.all and -as cli flags
+* test the bin
+* update travis
+* Allow checking for multiple programs in bin/which
+* tap 2
+
+## v1.1.2
+
+* travis
+* Refactored and fixed undefined error on Windows
+* Support strict mode
+
+## v1.1.1
+
+* test +g exes against secondary groups, if available
+* Use windows exe semantics on cygwin & msys
+* cwd should be first in path on win32, not last
+* Handle lower-case 'env.Path' on Windows
+* Update docs
+* use single-quotes
+
+## v1.1.0
+
+* Add tests, depend on is-absolute
+
+## v1.0.9
+
+* which.js: root is allowed to execute files owned by anyone
+
+## v1.0.8
+
+* don't use graceful-fs
+
+## v1.0.7
+
+* add license to package.json
+
+## v1.0.6
+
+* isc license
+
+## 1.0.5
+
+* Awful typo
+
+## 1.0.4
+
+* Test for path absoluteness properly
+* win: Allow '' as a pathext if cmd has a . in it
+
+## 1.0.3
+
+* Remove references to execPath
+* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
+* Make `isExe()` always return true on Windows.
+* MIT
+
+## 1.0.2
+
+* Only files can be exes
+
+## 1.0.1
+
+* Respect the PATHEXT env for win32 support
+* should 0755 the bin
+* binary
+* guts
+* package
+* 1st
diff --git a/node_modules/pacote/node_modules/which/LICENSE b/node_modules/pacote/node_modules/which/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/pacote/node_modules/which/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/pacote/node_modules/which/README.md b/node_modules/pacote/node_modules/which/README.md
new file mode 100644
index 000000000..8c0b0cbf7
--- /dev/null
+++ b/node_modules/pacote/node_modules/which/README.md
@@ -0,0 +1,51 @@
+# which
+
+Like the unix `which` utility.
+
+Finds the first instance of a specified executable in the PATH
+environment variable. Does not cache the results, so `hash -r` is not
+needed when the PATH changes.
+
+## USAGE
+
+```javascript
+var which = require('which')
+
+// async usage
+which('node', function (er, resolvedPath) {
+ // er is returned if no "node" is found on the PATH
+ // if it is found, then the absolute path to the exec is returned
+})
+
+// sync usage
+// throws if not found
+var resolved = which.sync('node')
+
+// if nothrow option is used, returns null if not found
+resolved = which.sync('node', {nothrow: true})
+
+// Pass options to override the PATH and PATHEXT environment vars.
+which('node', { path: someOtherPath }, function (er, resolved) {
+ if (er)
+ throw er
+ console.log('found at %j', resolved)
+})
+```
+
+## CLI USAGE
+
+Same as the BSD `which(1)` binary.
+
+```
+usage: which [-as] program ...
+```
+
+## OPTIONS
+
+You may pass an options object as the second argument.
+
+- `path`: Use instead of the `PATH` environment variable.
+- `pathExt`: Use instead of the `PATHEXT` environment variable.
+- `all`: Return all matches, instead of just the first one. Note that
+ this means the function returns an array of strings instead of a
+ single string.
diff --git a/node_modules/pacote/node_modules/which/bin/which b/node_modules/pacote/node_modules/which/bin/which
new file mode 100755
index 000000000..7cee3729e
--- /dev/null
+++ b/node_modules/pacote/node_modules/which/bin/which
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+var which = require("../")
+if (process.argv.length < 3)
+ usage()
+
+function usage () {
+ console.error('usage: which [-as] program ...')
+ process.exit(1)
+}
+
+var all = false
+var silent = false
+var dashdash = false
+var args = process.argv.slice(2).filter(function (arg) {
+ if (dashdash || !/^-/.test(arg))
+ return true
+
+ if (arg === '--') {
+ dashdash = true
+ return false
+ }
+
+ var flags = arg.substr(1).split('')
+ for (var f = 0; f < flags.length; f++) {
+ var flag = flags[f]
+ switch (flag) {
+ case 's':
+ silent = true
+ break
+ case 'a':
+ all = true
+ break
+ default:
+ console.error('which: illegal option -- ' + flag)
+ usage()
+ }
+ }
+ return false
+})
+
+process.exit(args.reduce(function (pv, current) {
+ try {
+ var f = which.sync(current, { all: all })
+ if (all)
+ f = f.join('\n')
+ if (!silent)
+ console.log(f)
+ return pv;
+ } catch (e) {
+ return 1;
+ }
+}, 0))
diff --git a/node_modules/pacote/node_modules/which/package.json b/node_modules/pacote/node_modules/which/package.json
new file mode 100644
index 000000000..b2d5b490a
--- /dev/null
+++ b/node_modules/pacote/node_modules/which/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "which@^1.3.1",
+ "_id": "which@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_location": "/pacote/which",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which@^1.3.1",
+ "name": "which",
+ "escapedName": "which",
+ "rawSpec": "^1.3.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.3.1"
+ },
+ "_requiredBy": [
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
+ "_spec": "which@^1.3.1",
+ "_where": "/Users/claudiahdz/npm/cli/node_modules/pacote",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-which/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
+ "devDependencies": {
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.6.2",
+ "tap": "^12.0.1"
+ },
+ "files": [
+ "which.js",
+ "bin/which"
+ ],
+ "homepage": "https://github.com/isaacs/node-which#readme",
+ "license": "ISC",
+ "main": "which.js",
+ "name": "which",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-which.git"
+ },
+ "scripts": {
+ "changelog": "bash gen-changelog.sh",
+ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.3.1"
+}
diff --git a/node_modules/pacote/node_modules/which/which.js b/node_modules/pacote/node_modules/which/which.js
new file mode 100644
index 000000000..4347f91a1
--- /dev/null
+++ b/node_modules/pacote/node_modules/which/which.js
@@ -0,0 +1,135 @@
+module.exports = which
+which.sync = whichSync
+
+var isWindows = process.platform === 'win32' ||
+ process.env.OSTYPE === 'cygwin' ||
+ process.env.OSTYPE === 'msys'
+
+var path = require('path')
+var COLON = isWindows ? ';' : ':'
+var isexe = require('isexe')
+
+function getNotFoundError (cmd) {
+ var er = new Error('not found: ' + cmd)
+ er.code = 'ENOENT'
+
+ return er
+}
+
+function getPathInfo (cmd, opt) {
+ var colon = opt.colon || COLON
+ var pathEnv = opt.path || process.env.PATH || ''
+ var pathExt = ['']
+
+ pathEnv = pathEnv.split(colon)
+
+ var pathExtExe = ''
+ if (isWindows) {
+ pathEnv.unshift(process.cwd())
+ pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
+ pathExt = pathExtExe.split(colon)
+
+
+ // Always test the cmd itself first. isexe will check to make sure
+ // it's found in the pathExt set.
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
+ pathExt.unshift('')
+ }
+
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
+ pathEnv = ['']
+
+ return {
+ env: pathEnv,
+ ext: pathExt,
+ extExe: pathExtExe
+ }
+}
+
+function which (cmd, opt, cb) {
+ if (typeof opt === 'function') {
+ cb = opt
+ opt = {}
+ }
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ ;(function F (i, l) {
+ if (i === l) {
+ if (opt.all && found.length)
+ return cb(null, found)
+ else
+ return cb(getNotFoundError(cmd))
+ }
+
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ ;(function E (ii, ll) {
+ if (ii === ll) return F(i + 1, l)
+ var ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return cb(null, p + ext)
+ }
+ return E(ii + 1, ll)
+ })
+ })(0, pathExt.length)
+ })(0, pathEnv.length)
+}
+
+function whichSync (cmd, opt) {
+ opt = opt || {}
+
+ var info = getPathInfo(cmd, opt)
+ var pathEnv = info.env
+ var pathExt = info.ext
+ var pathExtExe = info.extExe
+ var found = []
+
+ for (var i = 0, l = pathEnv.length; i < l; i ++) {
+ var pathPart = pathEnv[i]
+ if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
+ pathPart = pathPart.slice(1, -1)
+
+ var p = path.join(pathPart, cmd)
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
+ p = cmd.slice(0, 2) + p
+ }
+ for (var j = 0, ll = pathExt.length; j < ll; j ++) {
+ var cur = p + pathExt[j]
+ var is
+ try {
+ is = isexe.sync(cur, { pathExt: pathExtExe })
+ if (is) {
+ if (opt.all)
+ found.push(cur)
+ else
+ return cur
+ }
+ } catch (ex) {}
+ }
+ }
+
+ if (opt.all && found.length)
+ return found
+
+ if (opt.nothrow)
+ return null
+
+ throw getNotFoundError(cmd)
+}
diff --git a/node_modules/which/CHANGELOG.md b/node_modules/which/CHANGELOG.md
index 3d83d2694..7fb1f2033 100644
--- a/node_modules/which/CHANGELOG.md
+++ b/node_modules/which/CHANGELOG.md
@@ -1,6 +1,20 @@
# Changes
+## 2.0.2
+
+* Rename bin to `node-which`
+
+## 2.0.1
+
+* generate changelog and publish on version bump
+* enforce 100% test coverage
+* Promise interface
+
+## 2.0.0
+
+* Parallel tests, modern JavaScript, and drop support for node < 8
+
## 1.3.1
* update deps
diff --git a/node_modules/which/README.md b/node_modules/which/README.md
index 8c0b0cbf7..cd833509f 100644
--- a/node_modules/which/README.md
+++ b/node_modules/which/README.md
@@ -17,6 +17,9 @@ which('node', function (er, resolvedPath) {
// if it is found, then the absolute path to the exec is returned
})
+// or promise
+which('node').then(resolvedPath => { ... }).catch(er => { ... not found ... })
+
// sync usage
// throws if not found
var resolved = which.sync('node')
diff --git a/node_modules/which/bin/node-which b/node_modules/which/bin/node-which
new file mode 100755
index 000000000..7cee3729e
--- /dev/null
+++ b/node_modules/which/bin/node-which
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+var which = require("../")
+if (process.argv.length < 3)
+ usage()
+
+function usage () {
+ console.error('usage: which [-as] program ...')
+ process.exit(1)
+}
+
+var all = false
+var silent = false
+var dashdash = false
+var args = process.argv.slice(2).filter(function (arg) {
+ if (dashdash || !/^-/.test(arg))
+ return true
+
+ if (arg === '--') {
+ dashdash = true
+ return false
+ }
+
+ var flags = arg.substr(1).split('')
+ for (var f = 0; f < flags.length; f++) {
+ var flag = flags[f]
+ switch (flag) {
+ case 's':
+ silent = true
+ break
+ case 'a':
+ all = true
+ break
+ default:
+ console.error('which: illegal option -- ' + flag)
+ usage()
+ }
+ }
+ return false
+})
+
+process.exit(args.reduce(function (pv, current) {
+ try {
+ var f = which.sync(current, { all: all })
+ if (all)
+ f = f.join('\n')
+ if (!silent)
+ console.log(f)
+ return pv;
+ } catch (e) {
+ return 1;
+ }
+}, 0))
diff --git a/node_modules/which/package.json b/node_modules/which/package.json
index 9a8a8b765..74e41c0da 100644
--- a/node_modules/which/package.json
+++ b/node_modules/which/package.json
@@ -1,41 +1,35 @@
{
- "_from": "which@1.3.1",
- "_id": "which@1.3.1",
+ "_from": "which@2.0.2",
+ "_id": "which@2.0.2",
"_inBundle": false,
- "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "_integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"_location": "/which",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "which@1.3.1",
+ "raw": "which@2.0.2",
"name": "which",
"escapedName": "which",
- "rawSpec": "1.3.1",
+ "rawSpec": "2.0.2",
"saveSpec": null,
- "fetchSpec": "1.3.1"
+ "fetchSpec": "2.0.2"
},
"_requiredBy": [
"#USER",
- "/",
- "/cross-spawn",
- "/foreground-child/cross-spawn",
- "/libnpx",
- "/node-gyp",
- "/npm-lifecycle",
- "/pacote"
+ "/"
],
- "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
- "_spec": "which@1.3.1",
- "_where": "/Users/rebecca/code/npm",
+ "_resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "_shasum": "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1",
+ "_spec": "which@2.0.2",
+ "_where": "/Users/claudiahdz/npm/cli",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me"
},
"bin": {
- "which": "./bin/which"
+ "node-which": "bin/node-which"
},
"bugs": {
"url": "https://github.com/isaacs/node-which/issues"
@@ -49,11 +43,14 @@
"devDependencies": {
"mkdirp": "^0.5.0",
"rimraf": "^2.6.2",
- "tap": "^12.0.1"
+ "tap": "^14.6.9"
+ },
+ "engines": {
+ "node": ">= 8"
},
"files": [
"which.js",
- "bin/which"
+ "bin/node-which"
],
"homepage": "https://github.com/isaacs/node-which#readme",
"license": "ISC",
@@ -64,9 +61,17 @@
"url": "git://github.com/isaacs/node-which.git"
},
"scripts": {
- "changelog": "bash gen-changelog.sh",
- "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
- "test": "tap test/*.js --cov"
+ "changelog": "git add CHANGELOG.md",
+ "postchangelog": "git commit -m 'update changelog - '${npm_package_version}",
+ "postpublish": "git push origin --follow-tags",
+ "postversion": "npm publish",
+ "prechangelog": "bash gen-changelog.sh",
+ "prepublish": "npm run changelog",
+ "preversion": "npm test",
+ "test": "tap"
+ },
+ "tap": {
+ "check-coverage": true
},
- "version": "1.3.1"
+ "version": "2.0.2"
}
diff --git a/node_modules/which/which.js b/node_modules/which/which.js
index 4347f91a1..82afffd21 100644
--- a/node_modules/which/which.js
+++ b/node_modules/which/which.js
@@ -1,120 +1,107 @@
-module.exports = which
-which.sync = whichSync
-
-var isWindows = process.platform === 'win32' ||
+const isWindows = process.platform === 'win32' ||
process.env.OSTYPE === 'cygwin' ||
process.env.OSTYPE === 'msys'
-var path = require('path')
-var COLON = isWindows ? ';' : ':'
-var isexe = require('isexe')
+const path = require('path')
+const COLON = isWindows ? ';' : ':'
+const isexe = require('isexe')
-function getNotFoundError (cmd) {
- var er = new Error('not found: ' + cmd)
- er.code = 'ENOENT'
+const getNotFoundError = (cmd) =>
+ Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
- return er
-}
+const getPathInfo = (cmd, opt) => {
+ const colon = opt.colon || COLON
-function getPathInfo (cmd, opt) {
- var colon = opt.colon || COLON
- var pathEnv = opt.path || process.env.PATH || ''
- var pathExt = ['']
-
- pathEnv = pathEnv.split(colon)
+ // If it has a slash, then we don't bother searching the pathenv.
+ // just check the file itself, and that's it.
+ const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
+ : (
+ [
+ // windows always checks the cwd first
+ ...(isWindows ? [process.cwd()] : []),
+ ...(opt.path || process.env.PATH ||
+ /* istanbul ignore next: very unusual */ '').split(colon),
+ ]
+ )
+ const pathExtExe = isWindows
+ ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
+ : ''
+ const pathExt = isWindows ? pathExtExe.split(colon) : ['']
- var pathExtExe = ''
if (isWindows) {
- pathEnv.unshift(process.cwd())
- pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
- pathExt = pathExtExe.split(colon)
-
-
- // Always test the cmd itself first. isexe will check to make sure
- // it's found in the pathExt set.
if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
pathExt.unshift('')
}
- // If it has a slash, then we don't bother searching the pathenv.
- // just check the file itself, and that's it.
- if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
- pathEnv = ['']
-
return {
- env: pathEnv,
- ext: pathExt,
- extExe: pathExtExe
+ pathEnv,
+ pathExt,
+ pathExtExe,
}
}
-function which (cmd, opt, cb) {
+const which = (cmd, opt, cb) => {
if (typeof opt === 'function') {
cb = opt
opt = {}
}
+ if (!opt)
+ opt = {}
- var info = getPathInfo(cmd, opt)
- var pathEnv = info.env
- var pathExt = info.ext
- var pathExtExe = info.extExe
- var found = []
-
- ;(function F (i, l) {
- if (i === l) {
- if (opt.all && found.length)
- return cb(null, found)
- else
- return cb(getNotFoundError(cmd))
- }
-
- var pathPart = pathEnv[i]
- if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
- pathPart = pathPart.slice(1, -1)
-
- var p = path.join(pathPart, cmd)
- if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
- p = cmd.slice(0, 2) + p
- }
- ;(function E (ii, ll) {
- if (ii === ll) return F(i + 1, l)
- var ext = pathExt[ii]
- isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
- if (!er && is) {
- if (opt.all)
- found.push(p + ext)
- else
- return cb(null, p + ext)
- }
- return E(ii + 1, ll)
- })
- })(0, pathExt.length)
- })(0, pathEnv.length)
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
+ const found = []
+
+ const step = i => new Promise((resolve, reject) => {
+ if (i === pathEnv.length)
+ return opt.all && found.length ? resolve(found)
+ : reject(getNotFoundError(cmd))
+
+ const ppRaw = pathEnv[i]
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
+
+ const pCmd = path.join(pathPart, cmd)
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
+ : pCmd
+
+ resolve(subStep(p, i, 0))
+ })
+
+ const subStep = (p, i, ii) => new Promise((resolve, reject) => {
+ if (ii === pathExt.length)
+ return resolve(step(i + 1))
+ const ext = pathExt[ii]
+ isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
+ if (!er && is) {
+ if (opt.all)
+ found.push(p + ext)
+ else
+ return resolve(p + ext)
+ }
+ return resolve(subStep(p, i, ii + 1))
+ })
+ })
+
+ return cb ? step(0).then(res => cb(null, res), cb) : step(0)
}
-function whichSync (cmd, opt) {
+const whichSync = (cmd, opt) => {
opt = opt || {}
- var info = getPathInfo(cmd, opt)
- var pathEnv = info.env
- var pathExt = info.ext
- var pathExtExe = info.extExe
- var found = []
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
+ const found = []
- for (var i = 0, l = pathEnv.length; i < l; i ++) {
- var pathPart = pathEnv[i]
- if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
- pathPart = pathPart.slice(1, -1)
+ for (let i = 0; i < pathEnv.length; i ++) {
+ const ppRaw = pathEnv[i]
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
- var p = path.join(pathPart, cmd)
- if (!pathPart && /^\.[\\\/]/.test(cmd)) {
- p = cmd.slice(0, 2) + p
- }
- for (var j = 0, ll = pathExt.length; j < ll; j ++) {
- var cur = p + pathExt[j]
- var is
+ const pCmd = path.join(pathPart, cmd)
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
+ : pCmd
+
+ for (let j = 0; j < pathExt.length; j ++) {
+ const cur = p + pathExt[j]
try {
- is = isexe.sync(cur, { pathExt: pathExtExe })
+ const is = isexe.sync(cur, { pathExt: pathExtExe })
if (is) {
if (opt.all)
found.push(cur)
@@ -133,3 +120,6 @@ function whichSync (cmd, opt) {
throw getNotFoundError(cmd)
}
+
+module.exports = which
+which.sync = whichSync