diff --git a/deps/npm/.mailmap b/deps/npm/.mailmap
index 8cf192015c3541..06eb16cff3ee50 100644
--- a/deps/npm/.mailmap
+++ b/deps/npm/.mailmap
@@ -23,6 +23,7 @@ Forbes Lindesay Add a registry user account Create or verify a user named SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-access.html b/deps/npm/html/doc/cli/npm-access.html
index 2df767e0385acc..1ae9eb53a0cc8d 100644
--- a/deps/npm/html/doc/cli/npm-access.html
+++ b/deps/npm/html/doc/cli/npm-access.html
@@ -84,5 +84,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html
index 8267923eb4f837..9e34cb364081d6 100644
--- a/deps/npm/html/doc/cli/npm-adduser.html
+++ b/deps/npm/html/doc/cli/npm-adduser.html
@@ -12,6 +12,8 @@
npm-adduser
SYNOPSIS
npm adduser [--registry=url] [--scope=@orgname] [--always-auth]
+
+aliases: login, add-user
DESCRIPTION
<username>
in the specified registry, and
save the credentials to the .npmrc
file. If no registry is specified,
@@ -44,9 +46,11 @@ always-auth
registries. Can be used with --registry
and / or --scope
, e.g.
npm adduser --registry=http://private-registry.example.com --always-auth
This will ensure that all requests to that registry (including for tarballs)
-include an authorization header. See always-auth
in npm-config(7)
for more
-details on always-auth. Registry-specific configuration of always-auth
takes
-precedence over any global configuration.
always-auth
in npm-config(7)
for more details on
+always-auth. Registry-specific configuration of always-auth
takes precedence
+over any global configuration.
Bugs for a package in a web browser maybe
npm bugs [<pkgname>]
+
+aliases: issues
This command tries to guess at the likely location of a package's
bug tracker URL, and then tries to open it using the --browser
@@ -53,5 +55,5 @@
npm gets its config settings from the command line, environment
variables, npmrc
files, and in some cases, the package.json
file.
Reduce duplication
npm dedupe
npm ddp
+
+aliases: find-dupes, ddp
Searches the local package tree and attempts to simplify the overall structure by moving dependencies further up the tree, where they can @@ -59,5 +61,5 @@
npm dist-tag add <pkg>@<version> [<tag>]
npm dist-tag rm <pkg> <tag>
npm dist-tag ls [<pkg>]
+
+aliases: dist-tags
Add, remove, and enumerate distribution tags on a package:
If true, the "long" flag will cause help-search to output context around where the terms were found in the documentation.
@@ -46,5 +46,5 @@This command installs a package, and any packages that it depends on. If the package has a shrinkwrap file, the installation of dependencies will be driven @@ -84,11 +84,13 @@
-O, --save-optional
: Package will appear in your optionalDependencies
.
When using any of the above options to save dependencies to your -package.json, there is an additional, optional flag:
+package.json, there are two additional, optional flags:-E, --save-exact
: Saved dependencies will be configured with an
exact version rather than using npm's default semver range
operator.
-B, --save-bundle
: Saved dependencies will also be added to your bundleDependencies
list.
Further, if you have an npm-shrinkwrap.json
then it will be updated as
well.
<scope>
is optional. The package will be downloaded from the registry
@@ -104,6 +106,7 @@
node_modules
folder with the same layout it uses with the
global node_modules
folder. Only your direct dependencies will show in
node_modules
and everything they depend on will be flattened in their
-node_modules
folders. This obviously will elminate some deduping.
+node_modules
folders. This obviously will eliminate some deduping.
The --legacy-bundling
argument will cause npm to install the package such
that versions of npm prior to 1.4, such as the one included with node 0.8,
can install the package. This eliminates all automatic deduping.
Package linking is a two-step process.
-First, npm link
in a package folder will create a globally-installed
-symbolic link from prefix/package-name
to the current folder (see
-npm-config(7)
for the value of prefix
).
First, npm link
in a package folder will create a symlink in the global folder
+{prefix}/lib/node_modules/<package>
that links to the package where the npm
+link
command was executed. (see npm-config(7)
for the value of prefix
).
Next, in some other location, npm link package-name
will create a
-symlink from the local node_modules
folder to the global symlink.
package-name
to node_modules/
+of the current folder.
Note that package-name
is taken from package.json
,
not from directory name.
The package name can be optionally prefixed with a scope. See npm-scope(7)
.
@@ -37,7 +38,7 @@
Now, any changes to ~/projects/node-redis will be reflected in ~/projects/node-bloggy/node_modules/node-redis/. Note that the link should -be to the package name, not the directory name for that package.
+be to the package name, not the directory name for that package.You may also shortcut the two steps in one. For example, to do the above use-case in a shorter way:
cd ~/projects/node-bloggy # go into the dir of your main project
@@ -73,5 +74,5 @@ SYNOPSIS
-
+
diff --git a/deps/npm/html/doc/cli/npm-logout.html b/deps/npm/html/doc/cli/npm-logout.html
index c5997aefcbfd67..c51bc9dc63ac2f 100644
--- a/deps/npm/html/doc/cli/npm-logout.html
+++ b/deps/npm/html/doc/cli/npm-logout.html
@@ -28,13 +28,9 @@ registry
it takes precedence.
scope
Default: none
-If specified, the user and login credentials given will be associated
-with the specified scope. See npm-scope(7)
. You can use both at the same time,
-e.g.
-npm adduser --registry=http://myregistry.example.com --scope=@myco
-
This will set a registry for the given scope and login or create a user for
-that registry at the same time.
-SEE ALSO
+If specified, you will be logged out of the specified scope. See npm-scope(7)
.
+npm logout --scope=@myco
+
SEE ALSO
- npm-adduser(1)
- npm-registry(7)
@@ -55,5 +51,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html
index 02e3d2683c4384..2dc599fb55c8a5 100644
--- a/deps/npm/html/doc/cli/npm-ls.html
+++ b/deps/npm/html/doc/cli/npm-ls.html
@@ -21,7 +21,7 @@ SYNOPSIS
limit the results to only the paths to the packages named. Note that
nested packages will also show the paths to the specified packages.
For example, running npm ls promzard
in npm's source tree will show:
-
npm@3.7.3 /path/to/npm
+npm@3.8.3 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
It will print out extraneous, missing, and invalid packages.
@@ -104,5 +104,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html
index cf0460f697510b..6f2d8d10bdcc8c 100644
--- a/deps/npm/html/doc/cli/npm-outdated.html
+++ b/deps/npm/html/doc/cli/npm-outdated.html
@@ -116,5 +116,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html
index 944d1cbc64a43f..d7e009837436f2 100644
--- a/deps/npm/html/doc/cli/npm-owner.html
+++ b/deps/npm/html/doc/cli/npm-owner.html
@@ -14,6 +14,8 @@ SYNOPSIS
npm owner add <user> [<@scope>/]<pkg>
npm owner rm <user> [<@scope>/]<pkg>
npm owner ls [<@scope>/]<pkg>
+
+aliases: author
DESCRIPTION
Manage ownership of published packages.
@@ -49,5 +51,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html
index 7c33af5dd4ca3c..33af7f5630cade 100644
--- a/deps/npm/html/doc/cli/npm-pack.html
+++ b/deps/npm/html/doc/cli/npm-pack.html
@@ -41,5 +41,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-ping.html b/deps/npm/html/doc/cli/npm-ping.html
index e7068d8813a73b..5d9b5d13fd9e34 100644
--- a/deps/npm/html/doc/cli/npm-ping.html
+++ b/deps/npm/html/doc/cli/npm-ping.html
@@ -32,4 +32,4 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html
index 1def6469e7b278..538842f10f117d 100644
--- a/deps/npm/html/doc/cli/npm-prefix.html
+++ b/deps/npm/html/doc/cli/npm-prefix.html
@@ -38,5 +38,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html
index 2529006dc102bf..16ae2b4fa5f516 100644
--- a/deps/npm/html/doc/cli/npm-prune.html
+++ b/deps/npm/html/doc/cli/npm-prune.html
@@ -40,5 +40,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html
index ffb2016d635ada..717636afba192f 100644
--- a/deps/npm/html/doc/cli/npm-publish.html
+++ b/deps/npm/html/doc/cli/npm-publish.html
@@ -72,5 +72,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html
index 8f0a63182cdef5..88f7e2d89ec139 100644
--- a/deps/npm/html/doc/cli/npm-rebuild.html
+++ b/deps/npm/html/doc/cli/npm-rebuild.html
@@ -35,5 +35,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html
index aeb9b3217fc270..159b49fa3b9884 100644
--- a/deps/npm/html/doc/cli/npm-repo.html
+++ b/deps/npm/html/doc/cli/npm-repo.html
@@ -41,5 +41,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html
index 043aa30a43b8c7..dae20aae2d8c78 100644
--- a/deps/npm/html/doc/cli/npm-restart.html
+++ b/deps/npm/html/doc/cli/npm-restart.html
@@ -53,5 +53,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html
index f299ce3e7f6fd6..c575315ce99a99 100644
--- a/deps/npm/html/doc/cli/npm-root.html
+++ b/deps/npm/html/doc/cli/npm-root.html
@@ -35,5 +35,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html
index 8dc57faaa7a361..6c58e7c4ec7eba 100644
--- a/deps/npm/html/doc/cli/npm-run-script.html
+++ b/deps/npm/html/doc/cli/npm-run-script.html
@@ -60,5 +60,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html
index 49aae8f7bfc7d1..ffb8ad88177f0b 100644
--- a/deps/npm/html/doc/cli/npm-search.html
+++ b/deps/npm/html/doc/cli/npm-search.html
@@ -13,7 +13,7 @@ npm-search
Search for packages<
SYNOPSIS
npm search [-l|--long] [search terms ...]
-aliases: s, se
+aliases: s, se, find
DESCRIPTION
Search the registry for packages matching the search terms.
If a term starts with /
, then it's interpreted as a regular expression.
@@ -29,6 +29,14 @@
long
lines. When disabled (default) search results are truncated to fit
neatly on a single line. Modules with extremely long names will
fall on multiple lines.
+registry
+
+- Default: https://registry.npmjs.org/
+- Type : url
+
+Search the specified registry for modules. If you have configured npm to point to a different default registry,
+such as your internal private module repository, npm search
will default to that registry when searching.
+Pass a different registry url such as the default above in order to override this setting.
SEE ALSO
- npm-registry(7)
@@ -49,5 +57,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html
index 941fa58724ea71..5262766d19f85a 100644
--- a/deps/npm/html/doc/cli/npm-shrinkwrap.html
+++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html
@@ -169,5 +169,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html
index 353ddd2d1358df..b81c9be673e47e 100644
--- a/deps/npm/html/doc/cli/npm-star.html
+++ b/deps/npm/html/doc/cli/npm-star.html
@@ -36,5 +36,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html
index e6aa2ce1012080..bbf916d660b5ae 100644
--- a/deps/npm/html/doc/cli/npm-stars.html
+++ b/deps/npm/html/doc/cli/npm-stars.html
@@ -36,5 +36,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html
index c8d04e881afccc..a93e8362cd3e77 100644
--- a/deps/npm/html/doc/cli/npm-start.html
+++ b/deps/npm/html/doc/cli/npm-start.html
@@ -39,5 +39,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html
index ca950843cb4beb..36a954c98aa746 100644
--- a/deps/npm/html/doc/cli/npm-stop.html
+++ b/deps/npm/html/doc/cli/npm-stop.html
@@ -34,5 +34,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-tag.html b/deps/npm/html/doc/cli/npm-tag.html
index 5ddf8ef15adf80..c7203668e9cd46 100644
--- a/deps/npm/html/doc/cli/npm-tag.html
+++ b/deps/npm/html/doc/cli/npm-tag.html
@@ -63,5 +63,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-team.html b/deps/npm/html/doc/cli/npm-team.html
index 19c760366d1325..c2e5c2a31ea941 100644
--- a/deps/npm/html/doc/cli/npm-team.html
+++ b/deps/npm/html/doc/cli/npm-team.html
@@ -67,4 +67,4 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html
index c4559b98c66276..d77033da728108 100644
--- a/deps/npm/html/doc/cli/npm-test.html
+++ b/deps/npm/html/doc/cli/npm-test.html
@@ -12,7 +12,8 @@
npm-test
Test a package
SYNOPSIS
npm test [-- <args>]
- npm tst [-- <args>]
+
+ aliases: t, tst
DESCRIPTION
This runs a package's "test" script, if one was provided.
To run tests as a condition of installation, set the npat
config to
@@ -37,5 +38,5 @@
SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html
index 81de844cbbd503..9df80989e42f5d 100644
--- a/deps/npm/html/doc/cli/npm-uninstall.html
+++ b/deps/npm/html/doc/cli/npm-uninstall.html
@@ -60,5 +60,5 @@ SYNOPSIS
-
+
diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html
index 51e4f7966c5b36..1b9ff69b319e6c 100644
--- a/deps/npm/html/doc/cli/npm-unpublish.html
+++ b/deps/npm/html/doc/cli/npm-unpublish.html
@@ -47,5 +47,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html
index 2e6e115858db9f..d3bca7bb3c0969 100644
--- a/deps/npm/html/doc/cli/npm-update.html
+++ b/deps/npm/html/doc/cli/npm-update.html
@@ -12,6 +12,8 @@
npm-update
Update a package
SYNOPSIS
npm update [-g] [<pkg>...]
+
+aliases: up, upgrade
DESCRIPTION
This command will update all the packages listed to the latest version
(specified by the tag
config), respecting semver.
@@ -24,7 +26,7 @@ SYNOPSIS
or local) will be updated.
As of npm@2.6.1
, the npm update
will only inspect top-level packages.
Prior versions of npm
would also recursively inspect all dependencies.
-To get the old behavior, use npm --depth Infinity update
.
+To get the old behavior, use npm --depth 9999 update
.
EXAMPLES
IMPORTANT VERSION NOTE: these examples assume npm@2.6.1
or later. For
older versions of npm
, you must specify --depth 0
to get the behavior
@@ -33,7 +35,7 @@
EXAMPLES
on dependencies, dep1
(dep2
, .. etc.). The published versions of dep1
are:
{
"dist-tags": { "latest": "1.2.2" },
- "versions": {
+ "versions": [
"1.2.2",
"1.2.1",
"1.2.0",
@@ -43,7 +45,7 @@ EXAMPLES
"0.4.1",
"0.4.0",
"0.2.0"
- }
+ ]
}
Caret Dependencies
If app
's package.json
contains:
@@ -116,5 +118,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html
index aa2b317f5a4a02..f4f932f0509ab0 100644
--- a/deps/npm/html/doc/cli/npm-version.html
+++ b/deps/npm/html/doc/cli/npm-version.html
@@ -100,5 +100,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html
index d4485a25e8e27e..3bbbcbe3808622 100644
--- a/deps/npm/html/doc/cli/npm-view.html
+++ b/deps/npm/html/doc/cli/npm-view.html
@@ -86,5 +86,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html
index db2dd1fb32e1d0..18d85939d29afa 100644
--- a/deps/npm/html/doc/cli/npm-whoami.html
+++ b/deps/npm/html/doc/cli/npm-whoami.html
@@ -33,5 +33,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html
index ea2f77abaf74e1..517d82f53d972b 100644
--- a/deps/npm/html/doc/cli/npm.html
+++ b/deps/npm/html/doc/cli/npm.html
@@ -13,7 +13,7 @@ npm
javascript package manager
SYNOPSIS
npm <command> [args]
VERSION
-3.7.3
+3.8.3
DESCRIPTION
npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
@@ -106,19 +106,17 @@
CONTRIBUTIONS
Contributors are listed in npm's package.json
file. You can view them
easily by doing npm view npm contributors
.
-If you would like to contribute, but don't know what to work on, check
-the issues list or ask on the mailing list.
+If you would like to contribute, but don't know what to work on, read
+the contributing guidelines and check the issues list.
+- https://github.com/npm/npm/wiki/Contributing-Guidelines
- https://github.com/npm/npm/issues
-- npm-@googlegroups.com
BUGS
When you find issues, please report them:
Be sure to include all of the output from the npm command that didn't work
as expected. The npm-debug.log
file is also helpful to provide.
@@ -128,7 +126,7 @@ AUTHOR
Isaac Z. Schlueter ::
isaacs ::
@izs ::
-i@izs.me
+i@izs.me
SEE ALSO
- npm-help(1)
@@ -153,5 +151,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html
index f26aaf66d23cbd..6f65dfb33b547d 100644
--- a/deps/npm/html/doc/files/npm-folders.html
+++ b/deps/npm/html/doc/files/npm-folders.html
@@ -183,5 +183,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html
index f26aaf66d23cbd..6f65dfb33b547d 100644
--- a/deps/npm/html/doc/files/npm-global.html
+++ b/deps/npm/html/doc/files/npm-global.html
@@ -183,5 +183,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html
index dfb15305fb7080..70d9c616bd87bc 100644
--- a/deps/npm/html/doc/files/npm-json.html
+++ b/deps/npm/html/doc/files/npm-json.html
@@ -245,6 +245,9 @@ directories.doc
maybe, someday.
directories.example
Put example scripts in here. Someday, it might be exposed in some clever way.
+directories.test
+Put your tests in here. It is currently not exposed, but it might be in the
+future.
repository
Specify the place where your code lives. This is helpful for people who
want to contribute. If the git repo is on GitHub, then the npm docs
@@ -435,7 +438,25 @@
peerDependencies
with every 1.x version of the host package, use "^1.0"
or "1.x"
to express
this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2"
.
bundledDependencies
-Array of package names that will be bundled when publishing the package.
+This defines an array of package names that will be bundled when publishing
+the package.
+In cases where you need to preserve npm packages locally or have them
+available through a single file download, you can bundle the packages in a
+tarball file by specifying the package names in the bundledDependencies
+array and executing npm pack
.
+For example:
+If we define a package.json like this:
+
{
+ "name": "awesome-web-framework",
+ "version": "1.0.0",
+ "bundledDependencies": [
+ 'renderized', 'super-streams'
+ ]
+}
+
we can obtain awesome-web-framework-1.0.0.tgz
file by running npm pack
.
+This file contains the dependencies renderized
and super-streams
which
+can be installed in a new project by executing npm install
+awesome-web-framework-1.0.0.tgz
.
If this is spelled "bundleDependencies"
, then that is also honored.
optionalDependencies
If a dependency can be used, but you would like npm to proceed if it cannot be
@@ -562,5 +583,5 @@
SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html
index 4a7c2ed5a47039..e0fcb5b479fed2 100644
--- a/deps/npm/html/doc/files/npmrc.html
+++ b/deps/npm/html/doc/files/npmrc.html
@@ -83,5 +83,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html
index dfb15305fb7080..70d9c616bd87bc 100644
--- a/deps/npm/html/doc/files/package.json.html
+++ b/deps/npm/html/doc/files/package.json.html
@@ -245,6 +245,9 @@ directories.doc
maybe, someday.
directories.example
Put example scripts in here. Someday, it might be exposed in some clever way.
+directories.test
+Put your tests in here. It is currently not exposed, but it might be in the
+future.
repository
Specify the place where your code lives. This is helpful for people who
want to contribute. If the git repo is on GitHub, then the npm docs
@@ -435,7 +438,25 @@
peerDependencies
with every 1.x version of the host package, use "^1.0"
or "1.x"
to express
this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2"
.
bundledDependencies
-Array of package names that will be bundled when publishing the package.
+This defines an array of package names that will be bundled when publishing
+the package.
+In cases where you need to preserve npm packages locally or have them
+available through a single file download, you can bundle the packages in a
+tarball file by specifying the package names in the bundledDependencies
+array and executing npm pack
.
+For example:
+If we define a package.json like this:
+{
+ "name": "awesome-web-framework",
+ "version": "1.0.0",
+ "bundledDependencies": [
+ 'renderized', 'super-streams'
+ ]
+}
+
we can obtain awesome-web-framework-1.0.0.tgz
file by running npm pack
.
+This file contains the dependencies renderized
and super-streams
which
+can be installed in a new project by executing npm install
+awesome-web-framework-1.0.0.tgz
.
If this is spelled "bundleDependencies"
, then that is also honored.
optionalDependencies
If a dependency can be used, but you would like npm to proceed if it cannot be
@@ -562,5 +583,5 @@
SEE ALSO
-
+
diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html
index a2ed00dd7c3b88..2616991f8f6938 100644
--- a/deps/npm/html/doc/index.html
+++ b/deps/npm/html/doc/index.html
@@ -162,5 +162,5 @@ semver(7)
-
+
diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html
index 2995862d56851b..5db93707ea1d47 100644
--- a/deps/npm/html/doc/misc/npm-coding-style.html
+++ b/deps/npm/html/doc/misc/npm-coding-style.html
@@ -154,5 +154,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html
index 7750284cb35aaf..0df4531c10d805 100644
--- a/deps/npm/html/doc/misc/npm-config.html
+++ b/deps/npm/html/doc/misc/npm-config.html
@@ -494,6 +494,13 @@ long
Type: Boolean
Show extended information in npm ls
and npm search
.
+maxsockets
+
+- Default: 50
+- Type: Number
+
+The maximum number of connections to use per origin (protocol/host/port
+combination). Passed to the http
Agent
used to make the request.
message
- Default: "%s"
@@ -849,5 +856,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html
index 40683fe66c68e4..1d1bf4b387422f 100644
--- a/deps/npm/html/doc/misc/npm-developers.html
+++ b/deps/npm/html/doc/misc/npm-developers.html
@@ -195,5 +195,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html
index e0068464132334..83e2f39b88e42a 100644
--- a/deps/npm/html/doc/misc/npm-disputes.html
+++ b/deps/npm/html/doc/misc/npm-disputes.html
@@ -13,7 +13,7 @@ npm-disputes
Handling Module
SYNOPSIS
- Get the author email with
npm owner ls <pkgname>
-- Email the author, CC support@npmjs.com
+- Email the author, CC support@npmjs.com
- After a few weeks, if there's no resolution, we'll sort it out.
Don't squat on package names. Publish code or move out of the way.
@@ -51,12 +51,12 @@ DESCRIPTION
owner (Bob).
- Joe emails Bob, explaining the situation as respectfully as
possible, and what he would like to do with the module name. He
-adds the npm support staff support@npmjs.com to the CC list of
+adds the npm support staff support@npmjs.com to the CC list of
the email. Mention in the email that Bob can run
npm owner add
joe foo
to add Joe as an owner of the foo
package.
- After a reasonable amount of time, if Bob has not responded, or if
Bob and Joe can't come to any sort of resolution, email support
-support@npmjs.com and we'll sort it out. ("Reasonable" is
+support@npmjs.com and we'll sort it out. ("Reasonable" is
usually at least 4 weeks, but extra time is allowed around common
holidays.)
@@ -112,5 +112,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html
index e9151ac07769fa..fe0e65afb9d4a1 100644
--- a/deps/npm/html/doc/misc/npm-index.html
+++ b/deps/npm/html/doc/misc/npm-index.html
@@ -162,4 +162,4 @@ semver(7)
-
+
diff --git a/deps/npm/html/doc/misc/npm-orgs.html b/deps/npm/html/doc/misc/npm-orgs.html
index eae21f7cadf61a..8967cf184197c9 100644
--- a/deps/npm/html/doc/misc/npm-orgs.html
+++ b/deps/npm/html/doc/misc/npm-orgs.html
@@ -86,4 +86,4 @@ Team Admins create teams
-
+
diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html
index 8a7439f25d8eb2..90056aa576f2db 100644
--- a/deps/npm/html/doc/misc/npm-registry.html
+++ b/deps/npm/html/doc/misc/npm-registry.html
@@ -70,5 +70,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-scope.html b/deps/npm/html/doc/misc/npm-scope.html
index 7364c7c7a6a514..63c18a2a5f93c1 100644
--- a/deps/npm/html/doc/misc/npm-scope.html
+++ b/deps/npm/html/doc/misc/npm-scope.html
@@ -45,7 +45,7 @@ Requiring scoped packages
Publishing scoped packages
Scoped packages can be published to any registry that supports them, including
the public npm registry.
-(As of 2015-04-19, the public npm registry does support scoped packages)
+(As of 2015-04-19, and with npm 2.0 or better, the public npm registry does support scoped packages)
If you wish, you may associate a scope with a registry; see below.
Publishing public scoped packages to the public npm registry
To publish a public scoped package, you must specify --access public
with
@@ -91,5 +91,5 @@
SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html
index 8d7dfeb9cfc375..dcbc34ca783098 100644
--- a/deps/npm/html/doc/misc/npm-scripts.html
+++ b/deps/npm/html/doc/misc/npm-scripts.html
@@ -207,5 +207,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html
index 6e953aa8e711a3..736d47d5a98522 100644
--- a/deps/npm/html/doc/misc/removing-npm.html
+++ b/deps/npm/html/doc/misc/removing-npm.html
@@ -57,5 +57,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html
index 530a586acc17b7..92cfb4f0e036a7 100644
--- a/deps/npm/html/doc/misc/semver.html
+++ b/deps/npm/html/doc/misc/semver.html
@@ -302,5 +302,5 @@ Ranges
-
+
diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js
index 057972c03d3474..757ba6e79df709 100644
--- a/deps/npm/lib/cache.js
+++ b/deps/npm/lib/cache.js
@@ -285,7 +285,7 @@ function add (args, where, cb) {
break
case 'remote':
// get auth, if possible
- mapToRegistry(spec, npm.config, function (err, uri, auth) {
+ mapToRegistry(p.raw, npm.config, function (err, uri, auth) {
if (err) return cb(err)
addRemoteTarball(p.spec, { name: p.name }, null, auth, cb)
diff --git a/deps/npm/lib/cache/caching-client.js b/deps/npm/lib/cache/caching-client.js
index f70271127cae2a..f06dde0021a0a8 100644
--- a/deps/npm/lib/cache/caching-client.js
+++ b/deps/npm/lib/cache/caching-client.js
@@ -207,6 +207,7 @@ function adaptConfig (config) {
userAgent: config.get('user-agent'),
log: log,
defaultTag: config.get('tag'),
- couchToken: config.get('_token')
+ couchToken: config.get('_token'),
+ maxSockets: config.get('maxsockets')
}
}
diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js
index 8570537d0da95b..65bd9feced7423 100644
--- a/deps/npm/lib/config.js
+++ b/deps/npm/lib/config.js
@@ -195,6 +195,25 @@ function list (cb) {
msg += '\n'
}
+ // project config file
+ var project = npm.config.sources.project
+ var pconf = project.data
+ var ppath = project.path
+ var pconfKeys = getKeys(pconf)
+ if (pconfKeys.length) {
+ msg += '; project config ' + ppath + '\n'
+ pconfKeys.forEach(function (k) {
+ var val = (k.charAt(0) === '_')
+ ? '---sekretz---'
+ : JSON.stringify(pconf[k])
+ if (pconf[k] !== npm.config.get(k)) {
+ if (!long) return
+ msg += '; ' + k + ' = ' + val + ' (overridden)\n'
+ } else msg += k + ' = ' + val + '\n'
+ })
+ msg += '\n'
+ }
+
// user config file
var uconf = npm.config.sources.user.data
var uconfKeys = getKeys(uconf)
diff --git a/deps/npm/lib/config/cmd-list.js b/deps/npm/lib/config/cmd-list.js
new file mode 100644
index 00000000000000..82725221baf622
--- /dev/null
+++ b/deps/npm/lib/config/cmd-list.js
@@ -0,0 +1,115 @@
+var extend = Object.assign || require('util')._extend
+
+// short names for common things
+var shorthands = {
+ 'un': 'uninstall',
+ 'rb': 'rebuild',
+ 'list': 'ls',
+ 'ln': 'link',
+ 'i': 'install',
+ 'it': 'install-test',
+ 'up': 'update',
+ 'c': 'config',
+ 's': 'search',
+ 'se': 'search',
+ 'unstar': 'star', // same function
+ 'tst': 'test',
+ 't': 'test',
+ 'ddp': 'dedupe',
+ 'v': 'view'
+}
+
+var affordances = {
+ 'la': 'ls',
+ 'll': 'ls',
+ 'verison': 'version',
+ 'isntall': 'install',
+ 'dist-tags': 'dist-tag',
+ 'apihelp': 'help',
+ 'find-dupes': 'dedupe',
+ 'upgrade': 'update',
+ 'login': 'adduser',
+ 'add-user': 'adduser',
+ 'author': 'owner',
+ 'home': 'docs',
+ 'issues': 'bugs',
+ 'info': 'view',
+ 'show': 'view',
+ 'find': 'search',
+ 'unlink': 'uninstall',
+ 'remove': 'uninstall',
+ 'rm': 'uninstall',
+ 'r': 'uninstall'
+}
+
+// these are filenames in .
+var cmdList = [
+ 'install',
+ 'install-test',
+ 'uninstall',
+ 'cache',
+ 'config',
+ 'set',
+ 'get',
+ 'update',
+ 'outdated',
+ 'prune',
+ 'pack',
+ 'dedupe',
+
+ 'rebuild',
+ 'link',
+
+ 'publish',
+ 'star',
+ 'stars',
+ 'tag',
+ 'adduser',
+ 'logout',
+ 'unpublish',
+ 'owner',
+ 'access',
+ 'team',
+ 'deprecate',
+ 'shrinkwrap',
+
+ 'help',
+ 'help-search',
+ 'ls',
+ 'search',
+ 'view',
+ 'init',
+ 'version',
+ 'edit',
+ 'explore',
+ 'docs',
+ 'repo',
+ 'bugs',
+ 'faq',
+ 'root',
+ 'prefix',
+ 'bin',
+ 'whoami',
+ 'dist-tag',
+ 'ping',
+
+ 'test',
+ 'stop',
+ 'start',
+ 'restart',
+ 'run-script',
+ 'completion'
+]
+
+var plumbing = [
+ 'build',
+ 'unbuild',
+ 'xmas',
+ 'substack',
+ 'visnup'
+]
+module.exports.aliases = extend(extend({}, shorthands), affordances)
+module.exports.shorthands = shorthands
+module.exports.affordances = affordances
+module.exports.cmdList = cmdList
+module.exports.plumbing = plumbing
diff --git a/deps/npm/lib/config/defaults.js b/deps/npm/lib/config/defaults.js
index ee1e73851eb398..e93c1e57eced42 100644
--- a/deps/npm/lib/config/defaults.js
+++ b/deps/npm/lib/config/defaults.js
@@ -165,6 +165,7 @@ Object.defineProperty(exports, 'defaults', {get: function () {
loglevel: 'warn',
logstream: process.stderr,
long: false,
+ maxsockets: 50,
message: '%s',
'node-version': process.version,
npat: false,
@@ -276,6 +277,7 @@ exports.types = {
loglevel: ['silent', 'error', 'warn', 'http', 'info', 'verbose', 'silly'],
logstream: Stream,
long: Boolean,
+ maxsockets: Number,
message: String,
'node-version': [null, semver],
npat: Boolean,
diff --git a/deps/npm/lib/config/get-credentials-by-uri.js b/deps/npm/lib/config/get-credentials-by-uri.js
index a073a594a5b681..19779c41372cf4 100644
--- a/deps/npm/lib/config/get-credentials-by-uri.js
+++ b/deps/npm/lib/config/get-credentials-by-uri.js
@@ -20,6 +20,14 @@ function getCredentialsByURI (uri) {
alwaysAuth: undefined
}
+ // used to override scope matching for tokens as well as legacy auth
+ if (this.get(nerfed + ':always-auth') !== undefined) {
+ var val = this.get(nerfed + ':always-auth')
+ c.alwaysAuth = val === 'false' ? false : !!val
+ } else if (this.get('always-auth') !== undefined) {
+ c.alwaysAuth = this.get('always-auth')
+ }
+
if (this.get(nerfed + ':_authToken')) {
c.token = this.get(nerfed + ':_authToken')
// the bearer token is enough, don't confuse things
@@ -58,13 +66,6 @@ function getCredentialsByURI (uri) {
c.email = this.get('email')
}
- if (this.get(nerfed + ':always-auth') !== undefined) {
- var val = this.get(nerfed + ':always-auth')
- c.alwaysAuth = val === 'false' ? false : !!val
- } else if (this.get('always-auth') !== undefined) {
- c.alwaysAuth = this.get('always-auth')
- }
-
if (c.username && c.password) {
c.auth = new Buffer(c.username + ':' + c.password).toString('base64')
}
diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js
index a954ae814b7550..388a4e7d5d703c 100644
--- a/deps/npm/lib/help.js
+++ b/deps/npm/lib/help.js
@@ -12,6 +12,9 @@ var npm = require('./npm.js')
var log = require('npmlog')
var opener = require('opener')
var glob = require('glob')
+var cmdList = require('./config/cmd-list').cmdList
+var shorthands = require('./config/cmd-list').shorthands
+var commands = cmdList.concat(Object.keys(shorthands))
function help (args, cb) {
var argv = npm.config.get('argv').cooked
@@ -163,7 +166,7 @@ function npmUsage (valid, cb) {
'',
'where is one of:',
npm.config.get('long') ? usages()
- : ' ' + wrap(Object.keys(npm.commands)),
+ : ' ' + wrap(commands),
'',
'npm -h quick help on ',
'npm -l display full usage info',
diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js
index 759535e1024ec7..2f8bff1ce3a672 100644
--- a/deps/npm/lib/install.js
+++ b/deps/npm/lib/install.js
@@ -667,12 +667,23 @@ Installer.prototype.printInstalled = function (cb) {
return !child.failed && (mutation === 'add' || mutation === 'update')
}).map(function (action) {
var child = action[1]
- return packageId(child)
+ return child.path
})
log.showProgress()
if (!addedOrMoved.length) return cb()
recalculateMetadata(this.idealTree, log, iferr(cb, function (tree) {
log.clearProgress()
+ // These options control both how installs happen AND how `ls` shows output.
+ // Something like `npm install --production` only installs production deps.
+ // By contrast `npm install --production foo` installs `foo` and the
+ // `production` option is ignored. But when it comes time for `ls` to show
+ // its output, it excludes the thing we just installed because that flag.
+ // The summary output we get should be unfiltered, showing everything
+ // installed, so we clear these options before calling `ls`.
+ npm.config.set('production', false)
+ npm.config.set('dev', false)
+ npm.config.set('only', '')
+ npm.config.set('also', '')
ls.fromTree(self.where, tree, addedOrMoved, false, function () {
log.showProgress()
cb()
diff --git a/deps/npm/lib/install/filter-invalid-actions.js b/deps/npm/lib/install/filter-invalid-actions.js
index f90bf0b4ea6f73..2c5d430c5d52d4 100644
--- a/deps/npm/lib/install/filter-invalid-actions.js
+++ b/deps/npm/lib/install/filter-invalid-actions.js
@@ -21,7 +21,7 @@ module.exports = function (top, differences, next) {
while (action = differences.shift()) {
var cmd = action[0]
var pkg = action[1]
- if (pkg.isInLink || pkg.parent.target || pkg.parent.isLink) {
+ if (pkg.isInLink || (pkg.parent && (pkg.parent.target || pkg.parent.isLink))) {
// we want to skip warning if this is a child of another module that we're removing
if (!pkg.parent.removing) {
log.warn('skippingAction', 'Module is inside a symlinked module: not running ' +
diff --git a/deps/npm/lib/logout.js b/deps/npm/lib/logout.js
index c1ac2818ef1837..a3287d42d16592 100644
--- a/deps/npm/lib/logout.js
+++ b/deps/npm/lib/logout.js
@@ -8,6 +8,15 @@ var mapToRegistry = require('./utils/map-to-registry.js')
logout.usage = 'npm logout [--registry=] [--scope=<@scope>]'
+function afterLogout (normalized, cb) {
+ var scope = npm.config.get('scope')
+
+ if (scope) npm.config.del(scope + ':registry')
+
+ npm.config.clearCredentialsByURI(normalized)
+ npm.config.save('user', cb)
+}
+
function logout (args, cb) {
cb = dezalgo(cb)
@@ -19,13 +28,12 @@ function logout (args, cb) {
npm.registry.logout(normalized, { auth: auth }, function (err) {
if (err) return cb(err)
- npm.config.clearCredentialsByURI(normalized)
- npm.config.save('user', cb)
+ afterLogout(normalized, cb)
})
} else if (auth.username || auth.password) {
log.verbose('logout', 'clearing user credentials for', normalized)
- npm.config.clearCredentialsByURI(normalized)
- npm.config.save('user', cb)
+
+ afterLogout(normalized, cb)
} else {
cb(new Error(
'Not logged in to', normalized + ',', "so can't log out."
diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js
index dbaae5190e2d99..b5dc44888eeb68 100644
--- a/deps/npm/lib/ls.js
+++ b/deps/npm/lib/ls.js
@@ -42,6 +42,10 @@ function andRecalculateMetadata (next) {
}
}
+function inList (list, value) {
+ return list.indexOf(value) !== -1
+}
+
var lsFromTree = ls.fromTree = function (dir, physicalTree, args, silent, cb) {
if (typeof cb !== 'function') {
cb = silent
@@ -56,8 +60,7 @@ var lsFromTree = ls.fromTree = function (dir, physicalTree, args, silent, cb) {
var p = npa(a)
var name = p.name
var ver = semver.validRange(p.rawSpec) || ''
-
- return [ name, ver ]
+ return [ name, ver, a ]
})
}
@@ -79,7 +82,7 @@ var lsFromTree = ls.fromTree = function (dir, physicalTree, args, silent, cb) {
// the raw data can be circular
out = JSON.stringify(d, function (k, o) {
if (typeof o === 'object') {
- if (seen.indexOf(o) !== -1) return '[Circular]'
+ if (inList(seen, o)) return '[Circular]'
seen.push(o)
}
return o
@@ -117,12 +120,18 @@ function filterByEnv (data) {
var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('only'))
var production = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only'))
var dependencies = {}
- var devDependencies = data.devDependencies || []
+ var devKeys = Object.keys(data.devDependencies || [])
+ var prodKeys = Object.keys(data._dependencies || [])
Object.keys(data.dependencies).forEach(function (name) {
- var keys = Object.keys(devDependencies)
- if (dev && !production && keys.indexOf(name) === -1) return
- if (!dev && keys.indexOf(name) !== -1 && data.dependencies[name].missing) return
- dependencies[name] = data.dependencies[name]
+ if (!dev && inList(devKeys, name) && data.dependencies[name].missing) {
+ return
+ }
+
+ if ((dev && inList(devKeys, name)) || // only --dev
+ (production && inList(prodKeys, name)) || // only --production
+ (!dev && !production)) { // no --production|--dev|--only=xxx
+ dependencies[name] = data.dependencies[name]
+ }
})
data.dependencies = dependencies
}
@@ -249,7 +258,7 @@ function bfsify (root) {
Object.keys(deps).forEach(function (d) {
var dep = deps[d]
if (dep.missing) return
- if (seen.indexOf(dep) !== -1) {
+ if (inList(seen, dep)) {
if (npm.config.get('parseable') || !npm.config.get('long')) {
delete deps[d]
return
@@ -270,15 +279,20 @@ function filterFound (root, args) {
if (!args.length) return root
var deps = root.dependencies
if (deps) {
- Object.keys(deps).forEach(function (d) {
- var dep = filterFound(deps[d], args)
+ Object.keys(deps).forEach(function (depName) {
+ var dep = filterFound(deps[depName], args)
if (dep.peerMissing) return
// see if this one itself matches
var found = false
- for (var i = 0; !found && i < args.length; i++) {
- if (d === args[i][0]) {
- found = semver.satisfies(dep.version, args[i][1], true)
+ for (var ii = 0; !found && ii < args.length; ii++) {
+ var argName = args[ii][0]
+ var argVersion = args[ii][1]
+ var argRaw = args[ii][2]
+ if (depName === argName) {
+ found = semver.satisfies(dep.version, argVersion, true)
+ } else if (dep.path === argRaw) {
+ found = true
}
}
// included explicitly
@@ -286,7 +300,7 @@ function filterFound (root, args) {
// included because a child was included
if (dep._found && !root._found) root._found = 1
// not included
- if (!dep._found) delete deps[d]
+ if (!dep._found) delete deps[depName]
})
}
if (!root._found) root._found = false
@@ -420,7 +434,7 @@ function getExtras (data) {
function makeParseable (data, long, dir, depth, parent, d) {
depth = depth || 0
-
+ if (depth > npm.config.get('depth')) return [ makeParseable_(data, long, dir, depth, parent, d) ]
return [ makeParseable_(data, long, dir, depth, parent, d) ]
.concat(Object.keys(data.dependencies || {})
.sort(alphasort).map(function (d) {
diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js
index 1912d02be28654..4d451650635413 100644
--- a/deps/npm/lib/npm.js
+++ b/deps/npm/lib/npm.js
@@ -27,6 +27,9 @@
var which = require('which')
var CachingRegClient = require('./cache/caching-client.js')
var parseJSON = require('./utils/parse-json.js')
+ var aliases = require('./config/cmd-list').aliases
+ var cmdList = require('./config/cmd-list').cmdList
+ var plumbing = require('./config/cmd-list').plumbing
npm.config = {
loaded: false,
@@ -55,114 +58,9 @@
}
var commandCache = {}
-
- // short names for common things
- var aliases = {
- 'rm': 'uninstall',
- 'r': 'uninstall',
- 'un': 'uninstall',
- 'unlink': 'uninstall',
- 'remove': 'uninstall',
- 'rb': 'rebuild',
- 'list': 'ls',
- 'la': 'ls',
- 'll': 'ls',
- 'ln': 'link',
- 'i': 'install',
- 'isntall': 'install',
- 'it': 'install-test',
- 'up': 'update',
- 'upgrade': 'update',
- 'c': 'config',
- 'dist-tags': 'dist-tag',
- 'info': 'view',
- 'show': 'view',
- 'find': 'search',
- 's': 'search',
- 'se': 'search',
- 'author': 'owner',
- 'home': 'docs',
- 'issues': 'bugs',
- 'unstar': 'star', // same function
- 'apihelp': 'help',
- 'login': 'adduser',
- 'add-user': 'adduser',
- 'tst': 'test',
- 't': 'test',
- 'find-dupes': 'dedupe',
- 'ddp': 'dedupe',
- 'v': 'view',
- 'verison': 'version'
- }
-
var aliasNames = Object.keys(aliases)
- // these are filenames in .
- var cmdList = [
- 'install',
- 'install-test',
- 'uninstall',
- 'cache',
- 'config',
- 'set',
- 'get',
- 'update',
- 'outdated',
- 'prune',
- 'pack',
- 'dedupe',
-
- 'rebuild',
- 'link',
-
- 'publish',
- 'star',
- 'stars',
- 'tag',
- 'adduser',
- 'logout',
- 'unpublish',
- 'owner',
- 'access',
- 'team',
- 'deprecate',
- 'shrinkwrap',
-
- 'help',
- 'help-search',
- 'ls',
- 'search',
- 'view',
- 'init',
- 'version',
- 'edit',
- 'explore',
- 'docs',
- 'repo',
- 'bugs',
- 'faq',
- 'root',
- 'prefix',
- 'bin',
- 'whoami',
- 'dist-tag',
- 'ping',
-
- 'test',
- 'stop',
- 'start',
- 'restart',
- 'run-script',
- 'completion'
- ]
- var plumbing = [
- 'build',
- 'unbuild',
- 'xmas',
- 'substack',
- 'visnup'
- ]
- var littleGuys = [ 'isntall' ]
+ var littleGuys = [ 'isntall', 'verison' ]
var fullList = cmdList.concat(aliasNames).filter(function (c) {
return plumbing.indexOf(c) === -1
})
@@ -371,6 +269,12 @@
log.disableProgress()
}
+ if (config.get('unicode')) {
+ log.enableUnicode()
+ } else {
+ log.disableUnicode()
+ }
+
// at this point the configs are all set.
// go ahead and spin up the registry client.
npm.registry = new CachingRegClient(npm.config)
diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js
index efd79ecc4a6946..50bdb363d1cdaf 100644
--- a/deps/npm/lib/outdated.js
+++ b/deps/npm/lib/outdated.js
@@ -139,7 +139,7 @@ function makePretty (p) {
if (long) columns[5] = type
if (npm.color) {
- columns[0] = color[has === want ? 'yellow' : 'red'](columns[0]) // dep
+ columns[0] = color[has === want || want === 'linked' ? 'yellow' : 'red'](columns[0]) // dep
columns[2] = color.green(columns[2]) // want
columns[3] = color.magenta(columns[3]) // latest
columns[4] = color.brightBlack(columns[4]) // dir
diff --git a/deps/npm/lib/update.js b/deps/npm/lib/update.js
index 45f2817f5fc893..f09b5accade972 100644
--- a/deps/npm/lib/update.js
+++ b/deps/npm/lib/update.js
@@ -36,7 +36,7 @@ function update (args, cb) {
"because it's currently at the maximum version that matches its specified semver range"
)
}
- return ww.current !== ww.wanted
+ return ww.current !== ww.wanted && ww.latest !== 'linked'
})
if (wanted.length === 0) return cb()
diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js
index 7376787fabf16f..b29248d953a592 100644
--- a/deps/npm/lib/utils/lifecycle.js
+++ b/deps/npm/lib/utils/lifecycle.js
@@ -240,6 +240,7 @@ function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) {
}
procError(er)
})
+ process.once('SIGTERM', procKill)
function procError (er) {
if (progressEnabled) log.enableProgress()
@@ -260,8 +261,12 @@ function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) {
er.script = cmd
er.pkgname = pkg.name
}
+ process.removeListener('SIGTERM', procKill)
return cb(er)
}
+ function procKill () {
+ proc.kill()
+ }
}
function runHookLifecycle (pkg, env, wd, unsafe, cb) {
diff --git a/deps/npm/lib/utils/map-to-registry.js b/deps/npm/lib/utils/map-to-registry.js
index 34046d191769d3..9e7ce6749042c3 100644
--- a/deps/npm/lib/utils/map-to-registry.js
+++ b/deps/npm/lib/utils/map-to-registry.js
@@ -49,8 +49,52 @@ function mapToRegistry (name, config, cb) {
// normalize registry URL so resolution doesn't drop a piece of registry URL
var normalized = registry.slice(-1) !== '/' ? registry + '/' : registry
- var uri = url.resolve(normalized, name)
+ var uri
+ log.silly('mapToRegistry', 'data', data)
+ if (data.type === 'remote') {
+ uri = data.spec
+ } else {
+ uri = url.resolve(normalized, name)
+ }
+
log.silly('mapToRegistry', 'uri', uri)
- cb(null, uri, auth, normalized)
+ cb(null, uri, scopeAuth(uri, registry, auth), normalized)
+}
+
+function scopeAuth (uri, registry, auth) {
+ var cleaned = {
+ scope: auth.scope,
+ email: auth.email,
+ alwaysAuth: auth.alwaysAuth,
+ token: undefined,
+ username: undefined,
+ password: undefined,
+ auth: undefined
+ }
+
+ var requestHost
+ var registryHost
+
+ if (auth.token || auth.auth || (auth.username && auth.password)) {
+ requestHost = url.parse(uri).hostname
+ registryHost = url.parse(registry).hostname
+
+ if (requestHost === registryHost) {
+ cleaned.token = auth.token
+ cleaned.auth = auth.auth
+ cleaned.username = auth.username
+ cleaned.password = auth.password
+ } else if (auth.alwaysAuth) {
+ log.verbose('scopeAuth', 'alwaysAuth set for', registry)
+ cleaned.token = auth.token
+ cleaned.auth = auth.auth
+ cleaned.username = auth.username
+ cleaned.password = auth.password
+ } else {
+ log.silly('scopeAuth', uri, "doesn't share host with registry", registry)
+ }
+ }
+
+ return cleaned
}
diff --git a/deps/npm/lib/view.js b/deps/npm/lib/view.js
index 9ca18d35402e1b..e6fa21655e3492 100644
--- a/deps/npm/lib/view.js
+++ b/deps/npm/lib/view.js
@@ -239,29 +239,48 @@ function search (data, fields, version, title) {
function printData (data, name, cb) {
var versions = Object.keys(data)
var msg = ''
+ var msgJson = []
var includeVersions = versions.length > 1
var includeFields
versions.forEach(function (v) {
var fields = Object.keys(data[v])
includeFields = includeFields || (fields.length > 1)
+ msgJson.push({})
fields.forEach(function (f) {
var d = cleanup(data[v][f])
+ if (fields.length === 1 && npm.config.get('json')) {
+ msgJson[msgJson.length - 1][f] = d
+ }
if (includeVersions || includeFields || typeof d !== 'string') {
- d = cleanup(data[v][f])
- d = npm.config.get('json')
- ? JSON.stringify(d, null, 2)
- : util.inspect(d, false, 5, npm.color)
+ if (npm.config.get('json')) {
+ msgJson[msgJson.length - 1][f] = d
+ } else {
+ d = util.inspect(d, false, 5, npm.color)
+ }
} else if (typeof d === 'string' && npm.config.get('json')) {
d = JSON.stringify(d)
}
- if (f && includeFields) f += ' = '
- if (d.indexOf('\n') !== -1) d = ' \n' + d
- msg += (includeVersions ? name + '@' + v + ' ' : '') +
- (includeFields ? f : '') + d + '\n'
+ if (!npm.config.get('json')) {
+ if (f && includeFields) f += ' = '
+ if (d.indexOf('\n') !== -1) d = ' \n' + d
+ msg += (includeVersions ? name + '@' + v + ' ' : '') +
+ (includeFields ? f : '') + d + '\n'
+ }
})
})
+ if (msgJson.length && Object.keys(msgJson[0]).length === 1) {
+ var k = Object.keys(msgJson[0])[0]
+ msgJson = msgJson.map(function (m) { return m[k] })
+ }
+
+ if (!msg) {
+ msg = JSON.stringify(msgJson[0], null, 2) + '\n'
+ } else if (msgJson.length > 1) {
+ msg = JSON.stringify(msgJson, null, 2) + '\n'
+ }
+
// preserve output symmetry by adding a whitespace-only line at the end if
// there's one at the beginning
if (/^\s*\n/.test(msg)) msg += '\n'
diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1
index e0ec2d345d7b54..b95f97c843cd5c 100644
--- a/deps/npm/man/man1/npm-README.1
+++ b/deps/npm/man/man1/npm-README.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "February 2016" "" ""
+.TH "NPM" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm\fR \- a JavaScript package manager
.P
diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1
index 6af4ec3e1bc210..97e3f4063f30f3 100644
--- a/deps/npm/man/man1/npm-access.1
+++ b/deps/npm/man/man1/npm-access.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ACCESS" "1" "February 2016" "" ""
+.TH "NPM\-ACCESS" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-access\fR \- Set access level on published packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1
index 5d8afd8f6e0565..677f371b3d25b0 100644
--- a/deps/npm/man/man1/npm-adduser.1
+++ b/deps/npm/man/man1/npm-adduser.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ADDUSER" "1" "February 2016" "" ""
+.TH "NPM\-ADDUSER" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-adduser\fR \- Add a registry user account
.SH SYNOPSIS
@@ -6,6 +6,8 @@
.RS 2
.nf
npm adduser [\-\-registry=url] [\-\-scope=@orgname] [\-\-always\-auth]
+
+aliases: login, add\-user
.fi
.RE
.SH DESCRIPTION
@@ -64,9 +66,11 @@ npm adduser \-\-registry=http://private\-registry\.example\.com \-\-always\-auth
.RE
.P
This will ensure that all requests to that registry (including for tarballs)
-include an authorization header\. See \fBalways\-auth\fP in npm help 7 \fBnpm\-config\fP for more
-details on always\-auth\. Registry\-specific configuration of \fBalways\-auth\fP takes
-precedence over any global configuration\.
+include an authorization header\. This setting may be necessary for use with
+private registries where metadata and package tarballs are stored on hosts with
+different hostnames\. See \fBalways\-auth\fP in npm help 7 \fBnpm\-config\fP for more details on
+always\-auth\. Registry\-specific configuration of \fBalways\-auth\fP takes precedence
+over any global configuration\.
.SH SEE ALSO
.RS 0
.IP \(bu 2
diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1
index b124a8076043ca..4a52b6309bb1c6 100644
--- a/deps/npm/man/man1/npm-bin.1
+++ b/deps/npm/man/man1/npm-bin.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BIN" "1" "February 2016" "" ""
+.TH "NPM\-BIN" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1
index 8fb86cea0baf43..83c10e46e2a05e 100644
--- a/deps/npm/man/man1/npm-bugs.1
+++ b/deps/npm/man/man1/npm-bugs.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUGS" "1" "February 2016" "" ""
+.TH "NPM\-BUGS" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
.SH SYNOPSIS
@@ -6,6 +6,8 @@
.RS 2
.nf
npm bugs []
+
+aliases: issues
.fi
.RE
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1
index bbceb800867bd9..c2d2a883ac3747 100644
--- a/deps/npm/man/man1/npm-build.1
+++ b/deps/npm/man/man1/npm-build.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUILD" "1" "February 2016" "" ""
+.TH "NPM\-BUILD" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-build\fR \- Build a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1
index 2771791b07ccb0..4931522248af43 100644
--- a/deps/npm/man/man1/npm-bundle.1
+++ b/deps/npm/man/man1/npm-bundle.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUNDLE" "1" "February 2016" "" ""
+.TH "NPM\-BUNDLE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-bundle\fR \- REMOVED
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1
index 339a9aa2260d03..ad1dcd6ede9d29 100644
--- a/deps/npm/man/man1/npm-cache.1
+++ b/deps/npm/man/man1/npm-cache.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CACHE" "1" "February 2016" "" ""
+.TH "NPM\-CACHE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-cache\fR \- Manipulates packages cache
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1
index 0355997a2f42cc..8487fdff9cad38 100644
--- a/deps/npm/man/man1/npm-completion.1
+++ b/deps/npm/man/man1/npm-completion.1
@@ -1,4 +1,4 @@
-.TH "NPM\-COMPLETION" "1" "February 2016" "" ""
+.TH "NPM\-COMPLETION" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-completion\fR \- Tab Completion for npm
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1
index 1f4a03a23f2a98..265164f0a0a23f 100644
--- a/deps/npm/man/man1/npm-config.1
+++ b/deps/npm/man/man1/npm-config.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "1" "February 2016" "" ""
+.TH "NPM\-CONFIG" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SH SYNOPSIS
@@ -12,6 +12,8 @@ npm config list
npm config edit
npm get
npm set [\-g|\-\-global]
+
+aliases: c
.fi
.RE
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1
index e7dffc291b3746..05877e9a7d0ec3 100644
--- a/deps/npm/man/man1/npm-dedupe.1
+++ b/deps/npm/man/man1/npm-dedupe.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DEDUPE" "1" "February 2016" "" ""
+.TH "NPM\-DEDUPE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-dedupe\fR \- Reduce duplication
.SH SYNOPSIS
@@ -7,6 +7,8 @@
.nf
npm dedupe
npm ddp
+
+aliases: find\-dupes, ddp
.fi
.RE
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1
index 74fe9e28ef5a15..1cd1337343870f 100644
--- a/deps/npm/man/man1/npm-deprecate.1
+++ b/deps/npm/man/man1/npm-deprecate.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DEPRECATE" "1" "February 2016" "" ""
+.TH "NPM\-DEPRECATE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1
index 9962d8d27aba74..931278fec90d32 100644
--- a/deps/npm/man/man1/npm-dist-tag.1
+++ b/deps/npm/man/man1/npm-dist-tag.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DIST\-TAG" "1" "February 2016" "" ""
+.TH "NPM\-DIST\-TAG" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-dist-tag\fR \- Modify package distribution tags
.SH SYNOPSIS
@@ -8,6 +8,8 @@
npm dist\-tag add @ []
npm dist\-tag rm
npm dist\-tag ls []
+
+aliases: dist\-tags
.fi
.RE
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1
index a0a3bae9ff51ca..5dae817eb83440 100644
--- a/deps/npm/man/man1/npm-docs.1
+++ b/deps/npm/man/man1/npm-docs.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCS" "1" "February 2016" "" ""
+.TH "NPM\-DOCS" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Docs for a package in a web browser maybe
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1
index ea807b904b2589..cffd387fa1077b 100644
--- a/deps/npm/man/man1/npm-edit.1
+++ b/deps/npm/man/man1/npm-edit.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EDIT" "1" "February 2016" "" ""
+.TH "NPM\-EDIT" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1
index 11ed37655252a2..e4359837233b5d 100644
--- a/deps/npm/man/man1/npm-explore.1
+++ b/deps/npm/man/man1/npm-explore.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLORE" "1" "February 2016" "" ""
+.TH "NPM\-EXPLORE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1
index 748a8527da445f..ab398c447f6308 100644
--- a/deps/npm/man/man1/npm-help-search.1
+++ b/deps/npm/man/man1/npm-help-search.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP\-SEARCH" "1" "February 2016" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search npm help documentation
.SH SYNOPSIS
@@ -24,7 +24,7 @@ command directly\.
.IP \(bu 2
Type: Boolean
.IP \(bu 2
-Default false
+Default: false
.RE
.P
diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1
index aeba2744a98949..d281a759d4f6a3 100644
--- a/deps/npm/man/man1/npm-help.1
+++ b/deps/npm/man/man1/npm-help.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP" "1" "February 2016" "" ""
+.TH "NPM\-HELP" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-help\fR \- Get help on npm
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1
index 5399b750601945..3b7eb856eae73e 100644
--- a/deps/npm/man/man1/npm-init.1
+++ b/deps/npm/man/man1/npm-init.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INIT" "1" "February 2016" "" ""
+.TH "NPM\-INIT" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-init\fR \- Interactively create a package\.json file
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1
index 8b99c9af98ac92..5b1fe9f82ba23b 100644
--- a/deps/npm/man/man1/npm-install-test.1
+++ b/deps/npm/man/man1/npm-install-test.1
@@ -1,4 +1,4 @@
-.TH "NPM" "" "February 2016" "" ""
+.TH "NPM" "" "March 2016" "" ""
.SH "NAME"
\fBnpm\fR
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1
index 527f7e94896b1d..32c87bf7cee6d3 100644
--- a/deps/npm/man/man1/npm-install.1
+++ b/deps/npm/man/man1/npm-install.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL" "1" "February 2016" "" ""
+.TH "NPM\-INSTALL" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-install\fR \- Install a package
.SH SYNOPSIS
@@ -15,7 +15,7 @@ npm install
npm install
alias: npm i
-common options: [\-S|\-\-save|\-D|\-\-save\-dev|\-O|\-\-save\-optional] [\-E|\-\-save\-exact] [\-\-dry\-run]
+common options: [\-S|\-\-save|\-D|\-\-save\-dev|\-O|\-\-save\-optional] [\-E|\-\-save\-exact] [\-B|\-\-save\-bundle] [\-\-dry\-run]
.fi
.RE
.SH DESCRIPTION
@@ -108,11 +108,13 @@ after packing it up into a tarball (b)\.
.IP \(bu 2
\fB\-O, \-\-save\-optional\fP: Package will appear in your \fBoptionalDependencies\fP\|\.
When using any of the above options to save dependencies to your
-package\.json, there is an additional, optional flag:
+package\.json, there are two additional, optional flags:
.IP \(bu 2
\fB\-E, \-\-save\-exact\fP: Saved dependencies will be configured with an
exact version rather than using npm's default semver range
operator\.
+.IP \(bu 2
+\fB\-B, \-\-save\-bundle\fP: Saved dependencies will also be added to your \fBbundleDependencies\fP list\.
Further, if you have an \fBnpm\-shrinkwrap\.json\fP then it will be updated as
well\.
\fB\fP is optional\. The package will be downloaded from the registry
@@ -131,6 +133,7 @@ npm install @myorg/privatepackage
npm install node\-tap \-\-save\-dev
npm install dtrace\-provider \-\-save\-optional
npm install readable\-stream \-\-save \-\-save\-exact
+npm install ansi\-regex \-\-save \-\-save\-bundle
.fi
.RE
@@ -315,7 +318,7 @@ The \fB\-\-global\-style\fP argument will cause npm to install the package into
your local \fBnode_modules\fP folder with the same layout it uses with the
global \fBnode_modules\fP folder\. Only your direct dependencies will show in
\fBnode_modules\fP and everything they depend on will be flattened in their
-\fBnode_modules\fP folders\. This obviously will elminate some deduping\.
+\fBnode_modules\fP folders\. This obviously will eliminate some deduping\.
.P
The \fB\-\-legacy\-bundling\fP argument will cause npm to install the package such
that versions of npm prior to 1\.4, such as the one included with node 0\.8,
diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1
index 921b79e498da55..db43123a6875af 100644
--- a/deps/npm/man/man1/npm-link.1
+++ b/deps/npm/man/man1/npm-link.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LINK" "1" "February 2016" "" ""
+.TH "NPM\-LINK" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SH SYNOPSIS
@@ -15,12 +15,13 @@ alias: npm ln
.P
Package linking is a two\-step process\.
.P
-First, \fBnpm link\fP in a package folder will create a globally\-installed
-symbolic link from \fBprefix/package\-name\fP to the current folder (see
-npm help 7 \fBnpm\-config\fP for the value of \fBprefix\fP)\.
+First, \fBnpm link\fP in a package folder will create a symlink in the global folder
+\fB{prefix}/lib/node_modules/\fP that links to the package where the \fBnpm
+link\fP command was executed\. (see npm help 7 \fBnpm\-config\fP for the value of \fBprefix\fP)\.
.P
Next, in some other location, \fBnpm link package\-name\fP will create a
-symlink from the local \fBnode_modules\fP folder to the global symlink\.
+symbolic link from globally\-installed \fBpackage\-name\fP to \fBnode_modules/\fP
+of the current folder\.
.P
Note that \fBpackage\-name\fP is taken from \fBpackage\.json\fP,
not from directory name\.
@@ -47,7 +48,7 @@ npm link redis # link\-install the package
.P
Now, any changes to ~/projects/node\-redis will be reflected in
~/projects/node\-bloggy/node_modules/node\-redis/\. Note that the link should
-be to the package name, not the directory name for that package\.
+be to the package name, not the directory name for that package\.
.P
You may also shortcut the two steps in one\. For example, to do the
above use\-case in a shorter way:
diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1
index 57a2382f0b7da0..b8c0b81511bbf7 100644
--- a/deps/npm/man/man1/npm-logout.1
+++ b/deps/npm/man/man1/npm-logout.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LOGOUT" "1" "February 2016" "" ""
+.TH "NPM\-LOGOUT" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-logout\fR \- Log out of the registry
.SH SYNOPSIS
@@ -31,18 +31,13 @@ it takes precedence\.
.P
Default: none
.P
-If specified, the user and login credentials given will be associated
-with the specified scope\. See npm help 7 \fBnpm\-scope\fP\|\. You can use both at the same time,
-e\.g\.
+If specified, you will be logged out of the specified scope\. See npm help 7 \fBnpm\-scope\fP\|\.
.P
.RS 2
.nf
-npm adduser \-\-registry=http://myregistry\.example\.com \-\-scope=@myco
+npm logout \-\-scope=@myco
.fi
.RE
-.P
-This will set a registry for the given scope and login or create a user for
-that registry at the same time\.
.SH SEE ALSO
.RS 0
.IP \(bu 2
diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1
index cd3e57f1855b53..1aaf9e73b7b9d7 100644
--- a/deps/npm/man/man1/npm-ls.1
+++ b/deps/npm/man/man1/npm-ls.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LS" "1" "February 2016" "" ""
+.TH "NPM\-LS" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SH SYNOPSIS
@@ -22,7 +22,7 @@ For example, running \fBnpm ls promzard\fP in npm's source tree will show:
.P
.RS 2
.nf
-npm@3.7.3 /path/to/npm
+npm@3.8.3 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.fi
diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1
index e34f64b7416c1c..9ac425effc3473 100644
--- a/deps/npm/man/man1/npm-outdated.1
+++ b/deps/npm/man/man1/npm-outdated.1
@@ -1,4 +1,4 @@
-.TH "NPM\-OUTDATED" "1" "February 2016" "" ""
+.TH "NPM\-OUTDATED" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1
index 59bcfdae58628e..1c680a71e97fd0 100644
--- a/deps/npm/man/man1/npm-owner.1
+++ b/deps/npm/man/man1/npm-owner.1
@@ -1,4 +1,4 @@
-.TH "NPM\-OWNER" "1" "February 2016" "" ""
+.TH "NPM\-OWNER" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SH SYNOPSIS
@@ -8,6 +8,8 @@
npm owner add [<@scope>/]
npm owner rm [<@scope>/]
npm owner ls [<@scope>/]
+
+aliases: author
.fi
.RE
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1
index 76d2970cbb0a6e..523334225e9dbb 100644
--- a/deps/npm/man/man1/npm-pack.1
+++ b/deps/npm/man/man1/npm-pack.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PACK" "1" "February 2016" "" ""
+.TH "NPM\-PACK" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1
index b270a02cc8429d..8b776bedcad8bd 100644
--- a/deps/npm/man/man1/npm-ping.1
+++ b/deps/npm/man/man1/npm-ping.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PING" "1" "February 2016" "" ""
+.TH "NPM\-PING" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-ping\fR \- Ping npm registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1
index 63da3d5204f00e..88991c72e62ee0 100644
--- a/deps/npm/man/man1/npm-prefix.1
+++ b/deps/npm/man/man1/npm-prefix.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PREFIX" "1" "February 2016" "" ""
+.TH "NPM\-PREFIX" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1
index 0bc5001a173c31..b02d5d41a38d73 100644
--- a/deps/npm/man/man1/npm-prune.1
+++ b/deps/npm/man/man1/npm-prune.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PRUNE" "1" "February 2016" "" ""
+.TH "NPM\-PRUNE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1
index 62948c0198c287..553c3bbd15a825 100644
--- a/deps/npm/man/man1/npm-publish.1
+++ b/deps/npm/man/man1/npm-publish.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PUBLISH" "1" "February 2016" "" ""
+.TH "NPM\-PUBLISH" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1
index 19ef8c9d45b59d..15ab16c2c82328 100644
--- a/deps/npm/man/man1/npm-rebuild.1
+++ b/deps/npm/man/man1/npm-rebuild.1
@@ -1,4 +1,4 @@
-.TH "NPM\-REBUILD" "1" "February 2016" "" ""
+.TH "NPM\-REBUILD" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1
index c995b82fbf0b11..266d31713cfe68 100644
--- a/deps/npm/man/man1/npm-repo.1
+++ b/deps/npm/man/man1/npm-repo.1
@@ -1,4 +1,4 @@
-.TH "NPM\-REPO" "1" "February 2016" "" ""
+.TH "NPM\-REPO" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1
index 073f41c31eceae..54ab5c92bcba6a 100644
--- a/deps/npm/man/man1/npm-restart.1
+++ b/deps/npm/man/man1/npm-restart.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RESTART" "1" "February 2016" "" ""
+.TH "NPM\-RESTART" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1
index 424e103ad9350b..c85e1dc54f919e 100644
--- a/deps/npm/man/man1/npm-root.1
+++ b/deps/npm/man/man1/npm-root.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ROOT" "1" "February 2016" "" ""
+.TH "NPM\-ROOT" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1
index e106808aa31378..70f2a7a99cca87 100644
--- a/deps/npm/man/man1/npm-run-script.1
+++ b/deps/npm/man/man1/npm-run-script.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RUN\-SCRIPT" "1" "February 2016" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1
index 613123ae9c3160..7afbbc28f9c31b 100644
--- a/deps/npm/man/man1/npm-search.1
+++ b/deps/npm/man/man1/npm-search.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SEARCH" "1" "February 2016" "" ""
+.TH "NPM\-SEARCH" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SH SYNOPSIS
@@ -7,7 +7,7 @@
.nf
npm search [\-l|\-\-long] [search terms \.\.\.]
-aliases: s, se
+aliases: s, se, find
.fi
.RE
.SH DESCRIPTION
@@ -31,6 +31,18 @@ Display full package descriptions and other long text across multiple
lines\. When disabled (default) search results are truncated to fit
neatly on a single line\. Modules with extremely long names will
fall on multiple lines\.
+.SS registry
+.RS 0
+.IP \(bu 2
+Default: https://registry\.npmjs\.org/
+.IP \(bu 2
+Type : url
+
+.RE
+.P
+Search the specified registry for modules\. If you have configured npm to point to a different default registry,
+such as your internal private module repository, \fBnpm search\fP will default to that registry when searching\.
+Pass a different registry url such as the default above in order to override this setting\.
.SH SEE ALSO
.RS 0
.IP \(bu 2
diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1
index 1ec885b1ca75f6..0ae94a23ac4267 100644
--- a/deps/npm/man/man1/npm-shrinkwrap.1
+++ b/deps/npm/man/man1/npm-shrinkwrap.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP" "1" "February 2016" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- Lock down dependency versions
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1
index ccfcaf6ca4e5bf..91aa06877ceafd 100644
--- a/deps/npm/man/man1/npm-star.1
+++ b/deps/npm/man/man1/npm-star.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STAR" "1" "February 2016" "" ""
+.TH "NPM\-STAR" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-star\fR \- Mark your favorite packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1
index 151dd00ef3be5a..fc579d23975c8d 100644
--- a/deps/npm/man/man1/npm-stars.1
+++ b/deps/npm/man/man1/npm-stars.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STARS" "1" "February 2016" "" ""
+.TH "NPM\-STARS" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-stars\fR \- View packages marked as favorites
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1
index a1a6ae0e486218..36f26f96224cfc 100644
--- a/deps/npm/man/man1/npm-start.1
+++ b/deps/npm/man/man1/npm-start.1
@@ -1,4 +1,4 @@
-.TH "NPM\-START" "1" "February 2016" "" ""
+.TH "NPM\-START" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1
index 7fbb6e458a8cc8..d4e5dcb993d411 100644
--- a/deps/npm/man/man1/npm-stop.1
+++ b/deps/npm/man/man1/npm-stop.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STOP" "1" "February 2016" "" ""
+.TH "NPM\-STOP" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-tag.1 b/deps/npm/man/man1/npm-tag.1
index fe83a24fadfcb4..7dab63a89d4a45 100644
--- a/deps/npm/man/man1/npm-tag.1
+++ b/deps/npm/man/man1/npm-tag.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TAG" "1" "February 2016" "" ""
+.TH "NPM\-TAG" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-tag\fR \- Tag a published version
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1
index e3e818cc30cb4b..50e1c7e635044e 100644
--- a/deps/npm/man/man1/npm-team.1
+++ b/deps/npm/man/man1/npm-team.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TEAM" "1" "February 2016" "" ""
+.TH "NPM\-TEAM" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-team\fR \- Manage organization teams and team memberships
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1
index 1b73587db06010..6e35b5f540d2c7 100644
--- a/deps/npm/man/man1/npm-test.1
+++ b/deps/npm/man/man1/npm-test.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TEST" "1" "February 2016" "" ""
+.TH "NPM\-TEST" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SH SYNOPSIS
@@ -6,7 +6,8 @@
.RS 2
.nf
npm test [\-\- ]
- npm tst [\-\- ]
+
+ aliases: t, tst
.fi
.RE
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1
index a60e59d446ca01..c7b24aeedd154e 100644
--- a/deps/npm/man/man1/npm-uninstall.1
+++ b/deps/npm/man/man1/npm-uninstall.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNINSTALL" "1" "February 2016" "" ""
+.TH "NPM\-UNINSTALL" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-uninstall\fR \- Remove a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1
index 00e54abbd45b25..45227244daeb07 100644
--- a/deps/npm/man/man1/npm-unpublish.1
+++ b/deps/npm/man/man1/npm-unpublish.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNPUBLISH" "1" "February 2016" "" ""
+.TH "NPM\-UNPUBLISH" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1
index cd8263a2e4731d..28fa7f4be4b2dd 100644
--- a/deps/npm/man/man1/npm-update.1
+++ b/deps/npm/man/man1/npm-update.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UPDATE" "1" "February 2016" "" ""
+.TH "NPM\-UPDATE" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update a package
.SH SYNOPSIS
@@ -6,6 +6,8 @@
.RS 2
.nf
npm update [\-g] [\.\.\.]
+
+aliases: up, upgrade
.fi
.RE
.SH DESCRIPTION
@@ -25,7 +27,7 @@ or local) will be updated\.
.P
As of \fBnpm@2\.6\.1\fP, the \fBnpm update\fP will only inspect top\-level packages\.
Prior versions of \fBnpm\fP would also recursively inspect all dependencies\.
-To get the old behavior, use \fBnpm \-\-depth Infinity update\fP\|\.
+To get the old behavior, use \fBnpm \-\-depth 9999 update\fP\|\.
.SH EXAMPLES
.P
IMPORTANT VERSION NOTE: these examples assume \fBnpm@2\.6\.1\fP or later\. For
@@ -39,7 +41,7 @@ on dependencies, \fBdep1\fP (\fBdep2\fP, \.\. etc\.)\. The published versions o
.nf
{
"dist\-tags": { "latest": "1\.2\.2" },
- "versions": {
+ "versions": [
"1\.2\.2",
"1\.2\.1",
"1\.2\.0",
@@ -49,7 +51,7 @@ on dependencies, \fBdep1\fP (\fBdep2\fP, \.\. etc\.)\. The published versions o
"0\.4\.1",
"0\.4\.0",
"0\.2\.0"
- }
+ ]
}
.fi
.RE
diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1
index 7a4de4f2bc6343..90b6c0867c107e 100644
--- a/deps/npm/man/man1/npm-version.1
+++ b/deps/npm/man/man1/npm-version.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "1" "February 2016" "" ""
+.TH "NPM\-VERSION" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1
index e3fc9a937fb76c..0fdeeff6dc8f68 100644
--- a/deps/npm/man/man1/npm-view.1
+++ b/deps/npm/man/man1/npm-view.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VIEW" "1" "February 2016" "" ""
+.TH "NPM\-VIEW" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1
index e19a75106d83fe..7f6b515c3848ea 100644
--- a/deps/npm/man/man1/npm-whoami.1
+++ b/deps/npm/man/man1/npm-whoami.1
@@ -1,4 +1,4 @@
-.TH "NPM\-WHOAMI" "1" "February 2016" "" ""
+.TH "NPM\-WHOAMI" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index b5a078d21cd306..457ee5e9884761 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "February 2016" "" ""
+.TH "NPM" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SH SYNOPSIS
@@ -10,7 +10,7 @@ npm [args]
.RE
.SH VERSION
.P
-3.7.3
+3.8.3
.SH DESCRIPTION
.P
npm is the package manager for the Node JavaScript platform\. It puts
@@ -152,13 +152,13 @@ file in the "doc" folder\. (Don't worry about generating the man page\.)
Contributors are listed in npm's \fBpackage\.json\fP file\. You can view them
easily by doing \fBnpm view npm contributors\fP\|\.
.P
-If you would like to contribute, but don't know what to work on, check
-the issues list or ask on the mailing list\.
+If you would like to contribute, but don't know what to work on, read
+the contributing guidelines and check the issues list\.
.RS 0
.IP \(bu 2
-https://github\.com/npm/npm/issues
+https://github\.com/npm/npm/wiki/Contributing\-Guidelines
.IP \(bu 2
-npm\-@googlegroups\.com
+https://github\.com/npm/npm/issues
.RE
.SH BUGS
@@ -168,9 +168,6 @@ When you find issues, please report them:
.IP \(bu 2
web:
https://github\.com/npm/npm/issues
-.IP \(bu 2
-email:
-npm\-@googlegroups\.com
.RE
.P
diff --git a/deps/npm/man/man5/npm-folders.5 b/deps/npm/man/man5/npm-folders.5
index dc217dd4c603cc..33ad7d4c63d83f 100644
--- a/deps/npm/man/man5/npm-folders.5
+++ b/deps/npm/man/man5/npm-folders.5
@@ -1,4 +1,4 @@
-.TH "NPM\-FOLDERS" "5" "February 2016" "" ""
+.TH "NPM\-FOLDERS" "5" "March 2016" "" ""
.SH "NAME"
\fBnpm-folders\fR \- Folder Structures Used by npm
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5
index dc217dd4c603cc..33ad7d4c63d83f 100644
--- a/deps/npm/man/man5/npm-global.5
+++ b/deps/npm/man/man5/npm-global.5
@@ -1,4 +1,4 @@
-.TH "NPM\-FOLDERS" "5" "February 2016" "" ""
+.TH "NPM\-FOLDERS" "5" "March 2016" "" ""
.SH "NAME"
\fBnpm-folders\fR \- Folder Structures Used by npm
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5
index 51ebb9be651623..b492849675cafa 100644
--- a/deps/npm/man/man5/npm-json.5
+++ b/deps/npm/man/man5/npm-json.5
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "February 2016" "" ""
+.TH "PACKAGE\.JSON" "5" "March 2016" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
@@ -401,6 +401,10 @@ maybe, someday\.
.SS directories\.example
.P
Put example scripts in here\. Someday, it might be exposed in some clever way\.
+.SS directories\.test
+.P
+Put your tests in here\. It is currently not exposed, but it might be in the
+future\.
.SH repository
.P
Specify the place where your code lives\. This is helpful for people who
@@ -698,7 +702,34 @@ with every 1\.x version of the host package, use \fB"^1\.0"\fP or \fB"1\.x"\fP t
this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fP\|\.
.SH bundledDependencies
.P
-Array of package names that will be bundled when publishing the package\.
+This defines an array of package names that will be bundled when publishing
+the package\.
+.P
+In cases where you need to preserve npm packages locally or have them
+available through a single file download, you can bundle the packages in a
+tarball file by specifying the package names in the \fBbundledDependencies\fP
+array and executing \fBnpm pack\fP\|\.
+.P
+For example:
+.P
+If we define a package\.json like this:
+.P
+.RS 2
+.nf
+{
+ "name": "awesome\-web\-framework",
+ "version": "1\.0\.0",
+ "bundledDependencies": [
+ 'renderized', 'super\-streams'
+ ]
+}
+.fi
+.RE
+.P
+we can obtain \fBawesome\-web\-framework\-1\.0\.0\.tgz\fP file by running \fBnpm pack\fP\|\.
+This file contains the dependencies \fBrenderized\fP and \fBsuper\-streams\fP which
+can be installed in a new project by executing \fBnpm install
+awesome\-web\-framework\-1\.0\.0\.tgz\fP\|\.
.P
If this is spelled \fB"bundleDependencies"\fP, then that is also honored\.
.SH optionalDependencies
diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5
index 4dbd70e38e8cc3..e99cb155dadc57 100644
--- a/deps/npm/man/man5/npmrc.5
+++ b/deps/npm/man/man5/npmrc.5
@@ -1,4 +1,4 @@
-.TH "NPMRC" "5" "February 2016" "" ""
+.TH "NPMRC" "5" "March 2016" "" ""
.SH "NAME"
\fBnpmrc\fR \- The npm config files
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5
index 51ebb9be651623..b492849675cafa 100644
--- a/deps/npm/man/man5/package.json.5
+++ b/deps/npm/man/man5/package.json.5
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "February 2016" "" ""
+.TH "PACKAGE\.JSON" "5" "March 2016" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
@@ -401,6 +401,10 @@ maybe, someday\.
.SS directories\.example
.P
Put example scripts in here\. Someday, it might be exposed in some clever way\.
+.SS directories\.test
+.P
+Put your tests in here\. It is currently not exposed, but it might be in the
+future\.
.SH repository
.P
Specify the place where your code lives\. This is helpful for people who
@@ -698,7 +702,34 @@ with every 1\.x version of the host package, use \fB"^1\.0"\fP or \fB"1\.x"\fP t
this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fP\|\.
.SH bundledDependencies
.P
-Array of package names that will be bundled when publishing the package\.
+This defines an array of package names that will be bundled when publishing
+the package\.
+.P
+In cases where you need to preserve npm packages locally or have them
+available through a single file download, you can bundle the packages in a
+tarball file by specifying the package names in the \fBbundledDependencies\fP
+array and executing \fBnpm pack\fP\|\.
+.P
+For example:
+.P
+If we define a package\.json like this:
+.P
+.RS 2
+.nf
+{
+ "name": "awesome\-web\-framework",
+ "version": "1\.0\.0",
+ "bundledDependencies": [
+ 'renderized', 'super\-streams'
+ ]
+}
+.fi
+.RE
+.P
+we can obtain \fBawesome\-web\-framework\-1\.0\.0\.tgz\fP file by running \fBnpm pack\fP\|\.
+This file contains the dependencies \fBrenderized\fP and \fBsuper\-streams\fP which
+can be installed in a new project by executing \fBnpm install
+awesome\-web\-framework\-1\.0\.0\.tgz\fP\|\.
.P
If this is spelled \fB"bundleDependencies"\fP, then that is also honored\.
.SH optionalDependencies
diff --git a/deps/npm/man/man7/npm-coding-style.7 b/deps/npm/man/man7/npm-coding-style.7
index 70f8a129016123..1866cdf8b664d5 100644
--- a/deps/npm/man/man7/npm-coding-style.7
+++ b/deps/npm/man/man7/npm-coding-style.7
@@ -1,4 +1,4 @@
-.TH "NPM\-CODING\-STYLE" "7" "February 2016" "" ""
+.TH "NPM\-CODING\-STYLE" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-coding-style\fR \- npm's "funny" coding style
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7
index d91bd3ec994786..b3c376ab88ccff 100644
--- a/deps/npm/man/man7/npm-config.7
+++ b/deps/npm/man/man7/npm-config.7
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "7" "February 2016" "" ""
+.TH "NPM\-CONFIG" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-config\fR \- More than you probably want to know about npm configuration
.SH DESCRIPTION
@@ -788,6 +788,17 @@ Type: Boolean
.RE
.P
Show extended information in \fBnpm ls\fP and \fBnpm search\fP\|\.
+.SS maxsockets
+.RS 0
+.IP \(bu 2
+Default: 50
+.IP \(bu 2
+Type: Number
+
+.RE
+.P
+The maximum number of connections to use per origin (protocol/host/port
+combination)\. Passed to the \fBhttp\fP \fBAgent\fP used to make the request\.
.SS message
.RS 0
.IP \(bu 2
diff --git a/deps/npm/man/man7/npm-developers.7 b/deps/npm/man/man7/npm-developers.7
index d85b86684adf0c..a9162d0ff65cc9 100644
--- a/deps/npm/man/man7/npm-developers.7
+++ b/deps/npm/man/man7/npm-developers.7
@@ -1,4 +1,4 @@
-.TH "NPM\-DEVELOPERS" "7" "February 2016" "" ""
+.TH "NPM\-DEVELOPERS" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-developers\fR \- Developer Guide
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-disputes.7 b/deps/npm/man/man7/npm-disputes.7
index 15dd5ddbd85dca..3e56cc4a3dca47 100644
--- a/deps/npm/man/man7/npm-disputes.7
+++ b/deps/npm/man/man7/npm-disputes.7
@@ -1,4 +1,4 @@
-.TH "NPM\-DISPUTES" "7" "February 2016" "" ""
+.TH "NPM\-DISPUTES" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-disputes\fR \- Handling Module Name Disputes
.SH SYNOPSIS
diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7
index c40b926c9b59a2..8b53025679102d 100644
--- a/deps/npm/man/man7/npm-index.7
+++ b/deps/npm/man/man7/npm-index.7
@@ -1,4 +1,4 @@
-.TH "NPM\-INDEX" "7" "February 2016" "" ""
+.TH "NPM\-INDEX" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-index\fR \- Index of all npm documentation
.SS npm help README
diff --git a/deps/npm/man/man7/npm-orgs.7 b/deps/npm/man/man7/npm-orgs.7
index 929c2c7d603f6a..031c93376d8a32 100644
--- a/deps/npm/man/man7/npm-orgs.7
+++ b/deps/npm/man/man7/npm-orgs.7
@@ -1,4 +1,4 @@
-.TH "NPM\-ORGS" "7" "February 2016" "" ""
+.TH "NPM\-ORGS" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-orgs\fR \- Working with Teams & Orgs
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-registry.7 b/deps/npm/man/man7/npm-registry.7
index 1d4e1041031213..5ef2ab8df190e0 100644
--- a/deps/npm/man/man7/npm-registry.7
+++ b/deps/npm/man/man7/npm-registry.7
@@ -1,4 +1,4 @@
-.TH "NPM\-REGISTRY" "7" "February 2016" "" ""
+.TH "NPM\-REGISTRY" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-registry\fR \- The JavaScript Package Registry
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-scope.7 b/deps/npm/man/man7/npm-scope.7
index f8c39625927a56..88c3fcf30a7ee3 100644
--- a/deps/npm/man/man7/npm-scope.7
+++ b/deps/npm/man/man7/npm-scope.7
@@ -1,4 +1,4 @@
-.TH "NPM\-SCOPE" "7" "February 2016" "" ""
+.TH "NPM\-SCOPE" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-scope\fR \- Scoped packages
.SH DESCRIPTION
@@ -67,7 +67,7 @@ just specifying to require the module \fBmypackage\fP in the folder called \fB@m
Scoped packages can be published to any registry that supports them, including
the public npm registry\.
.P
-(As of 2015\-04\-19, the public npm registry \fBdoes\fR support scoped packages)
+(As of 2015\-04\-19, and with npm 2\.0 or better, the public npm registry \fBdoes\fR support scoped packages)
.P
If you wish, you may associate a scope with a registry; see below\.
.SS Publishing public scoped packages to the public npm registry
diff --git a/deps/npm/man/man7/npm-scripts.7 b/deps/npm/man/man7/npm-scripts.7
index 1581cf804256cd..28fbe3ac32026e 100644
--- a/deps/npm/man/man7/npm-scripts.7
+++ b/deps/npm/man/man7/npm-scripts.7
@@ -1,4 +1,4 @@
-.TH "NPM\-SCRIPTS" "7" "February 2016" "" ""
+.TH "NPM\-SCRIPTS" "7" "March 2016" "" ""
.SH "NAME"
\fBnpm-scripts\fR \- How npm handles the "scripts" field
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/removing-npm.7 b/deps/npm/man/man7/removing-npm.7
index 0df2bf141ac8b8..338724b26a06dc 100644
--- a/deps/npm/man/man7/removing-npm.7
+++ b/deps/npm/man/man7/removing-npm.7
@@ -1,4 +1,4 @@
-.TH "NPM\-REMOVAL" "1" "February 2016" "" ""
+.TH "NPM\-REMOVAL" "1" "March 2016" "" ""
.SH "NAME"
\fBnpm-removal\fR \- Cleaning the Slate
.SH SYNOPSIS
diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7
index 1f877f0b7b7fb9..2cb733f85fe3c6 100644
--- a/deps/npm/man/man7/semver.7
+++ b/deps/npm/man/man7/semver.7
@@ -1,4 +1,4 @@
-.TH "SEMVER" "7" "February 2016" "" ""
+.TH "SEMVER" "7" "March 2016" "" ""
.SH "NAME"
\fBsemver\fR \- The semantic versioner for npm
.SH Usage
diff --git a/deps/npm/node_modules/glob/README.md b/deps/npm/node_modules/glob/README.md
index 6960483bac63c6..9dd9384fa143c3 100644
--- a/deps/npm/node_modules/glob/README.md
+++ b/deps/npm/node_modules/glob/README.md
@@ -11,6 +11,12 @@ library to do its matching.
## Usage
+Install with npm
+
+```
+npm i glob
+```
+
```javascript
var glob = require("glob")
diff --git a/deps/npm/node_modules/glob/changelog.md b/deps/npm/node_modules/glob/changelog.md
new file mode 100644
index 00000000000000..41636771e3a7cd
--- /dev/null
+++ b/deps/npm/node_modules/glob/changelog.md
@@ -0,0 +1,67 @@
+## 7.0
+
+- Raise error if `options.cwd` is specified, and not a directory
+
+## 6.0
+
+- Remove comment and negation pattern support
+- Ignore patterns are always in `dot:true` mode
+
+## 5.0
+
+- Deprecate comment and negation patterns
+- Fix regression in `mark` and `nodir` options from making all cache
+ keys absolute path.
+- Abort if `fs.readdir` returns an error that's unexpected
+- Don't emit `match` events for ignored items
+- Treat ENOTSUP like ENOTDIR in readdir
+
+## 4.5
+
+- Add `options.follow` to always follow directory symlinks in globstar
+- Add `options.realpath` to call `fs.realpath` on all results
+- Always cache based on absolute path
+
+## 4.4
+
+- Add `options.ignore`
+- Fix handling of broken symlinks
+
+## 4.3
+
+- Bump minimatch to 2.x
+- Pass all tests on Windows
+
+## 4.2
+
+- Add `glob.hasMagic` function
+- Add `options.nodir` flag
+
+## 4.1
+
+- Refactor sync and async implementations for performance
+- Throw if callback provided to sync glob function
+- Treat symbolic links in globstar results the same as Bash 4.3
+
+## 4.0
+
+- Use `^` for dependency versions (bumped major because this breaks
+ older npm versions)
+- Ensure callbacks are only ever called once
+- switch to ISC license
+
+## 3.x
+
+- Rewrite in JavaScript
+- Add support for setting root, cwd, and windows support
+- Cache many fs calls
+- Add globstar support
+- emit match events
+
+## 2.x
+
+- Use `glob.h` and `fnmatch.h` from NetBSD
+
+## 1.x
+
+- `glob.h` static binding.
diff --git a/deps/npm/node_modules/glob/common.js b/deps/npm/node_modules/glob/common.js
index c9127eb334f18b..58dc41e6632160 100644
--- a/deps/npm/node_modules/glob/common.js
+++ b/deps/npm/node_modules/glob/common.js
@@ -93,8 +93,8 @@ function setopts (self, pattern, options) {
if (!ownProp(options, "cwd"))
self.cwd = cwd
else {
- self.cwd = options.cwd
- self.changedCwd = path.resolve(options.cwd) !== cwd
+ self.cwd = path.resolve(options.cwd)
+ self.changedCwd = self.cwd !== cwd
}
self.root = options.root || path.resolve(self.cwd, "/")
@@ -102,6 +102,7 @@ function setopts (self, pattern, options) {
if (process.platform === "win32")
self.root = self.root.replace(/\\/g, "/")
+ self.cwdAbs = makeAbs(self, self.cwd)
self.nomount = !!options.nomount
// disable comments and negation in Minimatch.
@@ -153,7 +154,11 @@ function finish (self) {
}
if (self.nodir) {
all = all.filter(function (e) {
- return !(/\/$/.test(e))
+ var notDir = !(/\/$/.test(e))
+ var c = self.cache[e] || self.cache[makeAbs(self, e)]
+ if (notDir && c)
+ notDir = c !== 'DIR' && !Array.isArray(c)
+ return notDir
})
}
}
@@ -201,6 +206,10 @@ function makeAbs (self, f) {
} else {
abs = path.resolve(f)
}
+
+ if (process.platform === 'win32')
+ abs = abs.replace(/\\/g, '/')
+
return abs
}
diff --git a/deps/npm/node_modules/glob/glob.js b/deps/npm/node_modules/glob/glob.js
index a62da27ebd507a..4dba04adec43c4 100644
--- a/deps/npm/node_modules/glob/glob.js
+++ b/deps/npm/node_modules/glob/glob.js
@@ -162,14 +162,23 @@ function Glob (pattern, options, cb) {
if (n === 0)
return done()
+ var sync = true
for (var i = 0; i < n; i ++) {
this._process(this.minimatch.set[i], i, false, done)
}
+ sync = false
function done () {
--self._processing
- if (self._processing <= 0)
- self._finish()
+ if (self._processing <= 0) {
+ if (sync) {
+ process.nextTick(function () {
+ self._finish()
+ })
+ } else {
+ self._finish()
+ }
+ }
}
}
@@ -571,7 +580,15 @@ Glob.prototype._readdirError = function (f, er, cb) {
switch (er.code) {
case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
case 'ENOTDIR': // totally normal. means it *does* exist.
- this.cache[this._makeAbs(f)] = 'FILE'
+ var abs = this._makeAbs(f)
+ this.cache[abs] = 'FILE'
+ if (abs === this.cwdAbs) {
+ var error = new Error(er.code + ' invalid cwd ' + this.cwd)
+ error.path = this.cwd
+ error.code = er.code
+ this.emit('error', error)
+ this.abort()
+ }
break
case 'ENOENT': // not terribly unusual
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
index f8d40f79acde0a..abe535df327354 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
+++ b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
@@ -99,7 +99,7 @@ function expand(str, isTop) {
var isOptions = /^(.*,)+(.+)?$/.test(m.body);
if (!isSequence && !isOptions) {
// {a},b}
- if (m.post.match(/,.*}/)) {
+ if (m.post.match(/,.*\}/)) {
str = m.pre + '{' + m.body + escClose + m.post;
return expand(str);
}
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
index 78214dbeeaff3f..2917f0eac0e7bf 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
@@ -6,16 +6,20 @@
]
],
"_from": "brace-expansion@>=1.0.0 <2.0.0",
- "_id": "brace-expansion@1.1.2",
+ "_id": "brace-expansion@1.1.3",
"_inCache": true,
"_installable": true,
"_location": "/glob/minimatch/brace-expansion",
- "_nodeVersion": "4.2.1",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168"
+ },
"_npmUser": {
"email": "julian@juliangruber.com",
"name": "juliangruber"
},
- "_npmVersion": "2.14.7",
+ "_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
"name": "brace-expansion",
@@ -28,8 +32,8 @@
"_requiredBy": [
"/glob/minimatch"
],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz",
- "_shasum": "f21445d0488b658e2771efd870eff51df29f04ef",
+ "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz",
+ "_shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
"_shrinkwrap": null,
"_spec": "brace-expansion@^1.0.0",
"_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch",
@@ -47,26 +51,26 @@
},
"description": "Brace expansion as known from sh/bash",
"devDependencies": {
- "tape": "4.2.2"
+ "tape": "4.4.0"
},
"directories": {},
"dist": {
- "shasum": "f21445d0488b658e2771efd870eff51df29f04ef",
- "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz"
+ "shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
+ "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz"
},
- "gitHead": "b03773a30fa516b1374945b68e9acb6253d595fa",
+ "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231",
"homepage": "https://github.com/juliangruber/brace-expansion",
"keywords": [],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
- "name": "juliangruber",
- "email": "julian@juliangruber.com"
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
},
{
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
}
],
"name": "brace-expansion",
@@ -82,19 +86,19 @@
},
"testling": {
"browsers": [
- "android-browser/4.2..latest",
- "chrome/25..latest",
- "chrome/canary",
+ "ie/8..latest",
"firefox/20..latest",
"firefox/nightly",
- "ie/8..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
+ "chrome/25..latest",
+ "chrome/canary",
"opera/12..latest",
"opera/next",
- "safari/5.1..latest"
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
],
"files": "test/*.js"
},
- "version": "1.1.2"
+ "version": "1.1.3"
}
diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json
index c7094df7f65315..cf191d217966b1 100644
--- a/deps/npm/node_modules/glob/package.json
+++ b/deps/npm/node_modules/glob/package.json
@@ -1,43 +1,44 @@
{
"_args": [
[
- "glob@latest",
- "/Users/zkat/Documents/code/npm"
+ "glob@7.0.3",
+ "/Users/rebecca/code/npm"
]
],
- "_from": "glob@latest",
- "_id": "glob@6.0.4",
+ "_from": "glob@7.0.3",
+ "_id": "glob@7.0.3",
"_inCache": true,
"_installable": true,
"_location": "/glob",
- "_nodeVersion": "4.0.0",
+ "_nodeVersion": "5.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/glob-7.0.3.tgz_1457166529288_0.7840580905321985"
+ },
"_npmUser": {
"email": "i@izs.me",
"name": "isaacs"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "3.7.3",
"_phantomChildren": {},
"_requested": {
"name": "glob",
- "raw": "glob@latest",
- "rawSpec": "latest",
+ "raw": "glob@7.0.3",
+ "rawSpec": "7.0.3",
"scope": null,
- "spec": "latest",
- "type": "tag"
+ "spec": "7.0.3",
+ "type": "version"
},
"_requiredBy": [
"/",
- "/init-package-json",
- "/read-package-json",
- "/tap",
- "/tap/nyc",
- "/tap/tap-mocha-reporter"
+ "/rimraf",
+ "/tap"
],
- "_resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz",
+ "_shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58",
"_shrinkwrap": null,
- "_spec": "glob@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "glob@7.0.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"email": "i@izs.me",
"name": "Isaac Z. Schlueter",
@@ -57,30 +58,30 @@
"devDependencies": {
"mkdirp": "0",
"rimraf": "^2.2.8",
- "tap": "^5.0.0",
+ "tap": "^5.7.0",
"tick": "0.0.6"
},
"directories": {},
"dist": {
- "shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
- "tarball": "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz"
+ "shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58",
+ "tarball": "http://registry.npmjs.org/glob/-/glob-7.0.3.tgz"
},
"engines": {
"node": "*"
},
"files": [
- "common.js",
"glob.js",
- "sync.js"
+ "sync.js",
+ "common.js"
],
- "gitHead": "3bd419c538737e56fda7e21c21ff52ca0c198df6",
+ "gitHead": "2fc2278ab857c7df117213a2fb431de090be6353",
"homepage": "https://github.com/isaacs/node-glob#readme",
"license": "ISC",
"main": "glob.js",
"maintainers": [
{
- "name": "isaacs",
- "email": "i@izs.me"
+ "email": "i@izs.me",
+ "name": "isaacs"
}
],
"name": "glob",
@@ -99,5 +100,5 @@
"test": "tap test/*.js --cov",
"test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
},
- "version": "6.0.4"
+ "version": "7.0.3"
}
diff --git a/deps/npm/node_modules/glob/sync.js b/deps/npm/node_modules/glob/sync.js
index 09883d2ce0c9de..301577ab5f228f 100644
--- a/deps/npm/node_modules/glob/sync.js
+++ b/deps/npm/node_modules/glob/sync.js
@@ -305,7 +305,14 @@ GlobSync.prototype._readdirError = function (f, er) {
switch (er.code) {
case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
case 'ENOTDIR': // totally normal. means it *does* exist.
- this.cache[this._makeAbs(f)] = 'FILE'
+ var abs = this._makeAbs(f)
+ this.cache[abs] = 'FILE'
+ if (abs === this.cwdAbs) {
+ var error = new Error(er.code + ' invalid cwd ' + this.cwd)
+ error.path = this.cwd
+ error.code = er.code
+ throw error
+ }
break
case 'ENOENT': // not terribly unusual
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/LICENSE b/deps/npm/node_modules/init-package-json/node_modules/glob/LICENSE
similarity index 100%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/LICENSE
rename to deps/npm/node_modules/init-package-json/node_modules/glob/LICENSE
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/README.md b/deps/npm/node_modules/init-package-json/node_modules/glob/README.md
new file mode 100644
index 00000000000000..6960483bac63c6
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/README.md
@@ -0,0 +1,359 @@
+# Glob
+
+Match files using the patterns the shell uses, like stars and stuff.
+
+[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
+
+This is a glob implementation in JavaScript. It uses the `minimatch`
+library to do its matching.
+
+![](oh-my-glob.gif)
+
+## Usage
+
+```javascript
+var glob = require("glob")
+
+// options is optional
+glob("**/*.js", options, function (er, files) {
+ // files is an array of filenames.
+ // If the `nonull` option is set, and nothing
+ // was found, then files is ["**/*.js"]
+ // er is an error object or null.
+})
+```
+
+## Glob Primer
+
+"Globs" are the patterns you type when you do stuff like `ls *.js` on
+the command line, or put `build/*` in a `.gitignore` file.
+
+Before parsing the path part patterns, braced sections are expanded
+into a set. Braced sections start with `{` and end with `}`, with any
+number of comma-delimited sections within. Braced sections may contain
+slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
+
+The following characters have special magic meaning when used in a
+path portion:
+
+* `*` Matches 0 or more characters in a single path portion
+* `?` Matches 1 character
+* `[...]` Matches a range of characters, similar to a RegExp range.
+ If the first character of the range is `!` or `^` then it matches
+ any character not in the range.
+* `!(pattern|pattern|pattern)` Matches anything that does not match
+ any of the patterns provided.
+* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
+ patterns provided.
+* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
+ patterns provided.
+* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
+* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
+ provided
+* `**` If a "globstar" is alone in a path portion, then it matches
+ zero or more directories and subdirectories searching for matches.
+ It does not crawl symlinked directories.
+
+### Dots
+
+If a file or directory path portion has a `.` as the first character,
+then it will not match any glob pattern unless that pattern's
+corresponding path part also has a `.` as its first character.
+
+For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
+However the pattern `a/*/c` would not, because `*` does not start with
+a dot character.
+
+You can make glob treat dots as normal characters by setting
+`dot:true` in the options.
+
+### Basename Matching
+
+If you set `matchBase:true` in the options, and the pattern has no
+slashes in it, then it will seek for any file anywhere in the tree
+with a matching basename. For example, `*.js` would match
+`test/simple/basic.js`.
+
+### Empty Sets
+
+If no matching files are found, then an empty array is returned. This
+differs from the shell, where the pattern itself is returned. For
+example:
+
+ $ echo a*s*d*f
+ a*s*d*f
+
+To get the bash-style behavior, set the `nonull:true` in the options.
+
+### See Also:
+
+* `man sh`
+* `man bash` (Search for "Pattern Matching")
+* `man 3 fnmatch`
+* `man 5 gitignore`
+* [minimatch documentation](https://github.com/isaacs/minimatch)
+
+## glob.hasMagic(pattern, [options])
+
+Returns `true` if there are any special characters in the pattern, and
+`false` otherwise.
+
+Note that the options affect the results. If `noext:true` is set in
+the options object, then `+(a|b)` will not be considered a magic
+pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
+then that is considered magical, unless `nobrace:true` is set in the
+options.
+
+## glob(pattern, [options], cb)
+
+* `pattern` `{String}` Pattern to be matched
+* `options` `{Object}`
+* `cb` `{Function}`
+ * `err` `{Error | null}`
+ * `matches` `{Array}` filenames found matching the pattern
+
+Perform an asynchronous glob search.
+
+## glob.sync(pattern, [options])
+
+* `pattern` `{String}` Pattern to be matched
+* `options` `{Object}`
+* return: `{Array}` filenames found matching the pattern
+
+Perform a synchronous glob search.
+
+## Class: glob.Glob
+
+Create a Glob object by instantiating the `glob.Glob` class.
+
+```javascript
+var Glob = require("glob").Glob
+var mg = new Glob(pattern, options, cb)
+```
+
+It's an EventEmitter, and starts walking the filesystem to find matches
+immediately.
+
+### new glob.Glob(pattern, [options], [cb])
+
+* `pattern` `{String}` pattern to search for
+* `options` `{Object}`
+* `cb` `{Function}` Called when an error occurs, or matches are found
+ * `err` `{Error | null}`
+ * `matches` `{Array}` filenames found matching the pattern
+
+Note that if the `sync` flag is set in the options, then matches will
+be immediately available on the `g.found` member.
+
+### Properties
+
+* `minimatch` The minimatch object that the glob uses.
+* `options` The options object passed in.
+* `aborted` Boolean which is set to true when calling `abort()`. There
+ is no way at this time to continue a glob search after aborting, but
+ you can re-use the statCache to avoid having to duplicate syscalls.
+* `cache` Convenience object. Each field has the following possible
+ values:
+ * `false` - Path does not exist
+ * `true` - Path exists
+ * `'FILE'` - Path exists, and is not a directory
+ * `'DIR'` - Path exists, and is a directory
+ * `[file, entries, ...]` - Path exists, is a directory, and the
+ array value is the results of `fs.readdir`
+* `statCache` Cache of `fs.stat` results, to prevent statting the same
+ path multiple times.
+* `symlinks` A record of which paths are symbolic links, which is
+ relevant in resolving `**` patterns.
+* `realpathCache` An optional object which is passed to `fs.realpath`
+ to minimize unnecessary syscalls. It is stored on the instantiated
+ Glob object, and may be re-used.
+
+### Events
+
+* `end` When the matching is finished, this is emitted with all the
+ matches found. If the `nonull` option is set, and no match was found,
+ then the `matches` list contains the original pattern. The matches
+ are sorted, unless the `nosort` flag is set.
+* `match` Every time a match is found, this is emitted with the specific
+ thing that matched. It is not deduplicated or resolved to a realpath.
+* `error` Emitted when an unexpected error is encountered, or whenever
+ any fs error occurs if `options.strict` is set.
+* `abort` When `abort()` is called, this event is raised.
+
+### Methods
+
+* `pause` Temporarily stop the search
+* `resume` Resume the search
+* `abort` Stop the search forever
+
+### Options
+
+All the options that can be passed to Minimatch can also be passed to
+Glob to change pattern matching behavior. Also, some have been added,
+or have glob-specific ramifications.
+
+All options are false by default, unless otherwise noted.
+
+All options are added to the Glob object, as well.
+
+If you are running many `glob` operations, you can pass a Glob object
+as the `options` argument to a subsequent operation to shortcut some
+`stat` and `readdir` calls. At the very least, you may pass in shared
+`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
+parallel glob operations will be sped up by sharing information about
+the filesystem.
+
+* `cwd` The current working directory in which to search. Defaults
+ to `process.cwd()`.
+* `root` The place where patterns starting with `/` will be mounted
+ onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
+ systems, and `C:\` or some such on Windows.)
+* `dot` Include `.dot` files in normal matches and `globstar` matches.
+ Note that an explicit dot in a portion of the pattern will always
+ match dot files.
+* `nomount` By default, a pattern starting with a forward-slash will be
+ "mounted" onto the root setting, so that a valid filesystem path is
+ returned. Set this flag to disable that behavior.
+* `mark` Add a `/` character to directory matches. Note that this
+ requires additional stat calls.
+* `nosort` Don't sort the results.
+* `stat` Set to true to stat *all* results. This reduces performance
+ somewhat, and is completely unnecessary, unless `readdir` is presumed
+ to be an untrustworthy indicator of file existence.
+* `silent` When an unusual error is encountered when attempting to
+ read a directory, a warning will be printed to stderr. Set the
+ `silent` option to true to suppress these warnings.
+* `strict` When an unusual error is encountered when attempting to
+ read a directory, the process will just continue on in search of
+ other matches. Set the `strict` option to raise an error in these
+ cases.
+* `cache` See `cache` property above. Pass in a previously generated
+ cache object to save some fs calls.
+* `statCache` A cache of results of filesystem information, to prevent
+ unnecessary stat calls. While it should not normally be necessary
+ to set this, you may pass the statCache from one glob() call to the
+ options object of another, if you know that the filesystem will not
+ change between calls. (See "Race Conditions" below.)
+* `symlinks` A cache of known symbolic links. You may pass in a
+ previously generated `symlinks` object to save `lstat` calls when
+ resolving `**` matches.
+* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
+* `nounique` In some cases, brace-expanded patterns can result in the
+ same file showing up multiple times in the result set. By default,
+ this implementation prevents duplicates in the result set. Set this
+ flag to disable that behavior.
+* `nonull` Set to never return an empty set, instead returning a set
+ containing the pattern itself. This is the default in glob(3).
+* `debug` Set to enable debug logging in minimatch and glob.
+* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
+* `noglobstar` Do not match `**` against multiple filenames. (Ie,
+ treat it as a normal `*` instead.)
+* `noext` Do not match `+(a|b)` "extglob" patterns.
+* `nocase` Perform a case-insensitive match. Note: on
+ case-insensitive filesystems, non-magic patterns will match by
+ default, since `stat` and `readdir` will not raise errors.
+* `matchBase` Perform a basename-only match if the pattern does not
+ contain any slash characters. That is, `*.js` would be treated as
+ equivalent to `**/*.js`, matching all js files in all directories.
+* `nodir` Do not match directories, only files. (Note: to match
+ *only* directories, simply put a `/` at the end of the pattern.)
+* `ignore` Add a pattern or an array of glob patterns to exclude matches.
+ Note: `ignore` patterns are *always* in `dot:true` mode, regardless
+ of any other settings.
+* `follow` Follow symlinked directories when expanding `**` patterns.
+ Note that this can result in a lot of duplicate references in the
+ presence of cyclic links.
+* `realpath` Set to true to call `fs.realpath` on all of the results.
+ In the case of a symlink that cannot be resolved, the full absolute
+ path to the matched entry is returned (though it will usually be a
+ broken symlink)
+
+## Comparisons to other fnmatch/glob implementations
+
+While strict compliance with the existing standards is a worthwhile
+goal, some discrepancies exist between node-glob and other
+implementations, and are intentional.
+
+The double-star character `**` is supported by default, unless the
+`noglobstar` flag is set. This is supported in the manner of bsdglob
+and bash 4.3, where `**` only has special significance if it is the only
+thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
+`a/**b` will not.
+
+Note that symlinked directories are not crawled as part of a `**`,
+though their contents may match against subsequent portions of the
+pattern. This prevents infinite loops and duplicates and the like.
+
+If an escaped pattern has no matches, and the `nonull` flag is set,
+then glob returns the pattern as-provided, rather than
+interpreting the character escapes. For example,
+`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
+`"*a?"`. This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
+
+If brace expansion is not disabled, then it is performed before any
+other interpretation of the glob pattern. Thus, a pattern like
+`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
+**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
+checked for validity. Since those two are valid, matching proceeds.
+
+### Comments and Negation
+
+Previously, this module let you mark a pattern as a "comment" if it
+started with a `#` character, or a "negated" pattern if it started
+with a `!` character.
+
+These options were deprecated in version 5, and removed in version 6.
+
+To specify things that should not match, use the `ignore` option.
+
+## Windows
+
+**Please only use forward-slashes in glob expressions.**
+
+Though windows uses either `/` or `\` as its path separator, only `/`
+characters are used by this glob implementation. You must use
+forward-slashes **only** in glob expressions. Back-slashes will always
+be interpreted as escape characters, not path separators.
+
+Results from absolute patterns such as `/foo/*` are mounted onto the
+root setting using `path.join`. On windows, this will by default result
+in `/foo/*` matching `C:\foo\bar.txt`.
+
+## Race Conditions
+
+Glob searching, by its very nature, is susceptible to race conditions,
+since it relies on directory walking and such.
+
+As a result, it is possible that a file that exists when glob looks for
+it may have been deleted or modified by the time it returns the result.
+
+As part of its internal implementation, this program caches all stat
+and readdir calls that it makes, in order to cut down on system
+overhead. However, this also makes it even more susceptible to races,
+especially if the cache or statCache objects are reused between glob
+calls.
+
+Users are thus advised not to use a glob result as a guarantee of
+filesystem state in the face of rapid changes. For the vast majority
+of operations, this is never a problem.
+
+## Contributing
+
+Any change to behavior (including bugfixes) must come with a test.
+
+Patches that fail tests or reduce performance will be rejected.
+
+```
+# to run tests
+npm test
+
+# to re-generate test fixtures
+npm run test-regen
+
+# to benchmark against bash/zsh
+npm run bench
+
+# to profile javascript
+npm run prof
+```
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/common.js b/deps/npm/node_modules/init-package-json/node_modules/glob/common.js
new file mode 100644
index 00000000000000..c9127eb334f18b
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/common.js
@@ -0,0 +1,226 @@
+exports.alphasort = alphasort
+exports.alphasorti = alphasorti
+exports.setopts = setopts
+exports.ownProp = ownProp
+exports.makeAbs = makeAbs
+exports.finish = finish
+exports.mark = mark
+exports.isIgnored = isIgnored
+exports.childrenIgnored = childrenIgnored
+
+function ownProp (obj, field) {
+ return Object.prototype.hasOwnProperty.call(obj, field)
+}
+
+var path = require("path")
+var minimatch = require("minimatch")
+var isAbsolute = require("path-is-absolute")
+var Minimatch = minimatch.Minimatch
+
+function alphasorti (a, b) {
+ return a.toLowerCase().localeCompare(b.toLowerCase())
+}
+
+function alphasort (a, b) {
+ return a.localeCompare(b)
+}
+
+function setupIgnores (self, options) {
+ self.ignore = options.ignore || []
+
+ if (!Array.isArray(self.ignore))
+ self.ignore = [self.ignore]
+
+ if (self.ignore.length) {
+ self.ignore = self.ignore.map(ignoreMap)
+ }
+}
+
+// ignore patterns are always in dot:true mode.
+function ignoreMap (pattern) {
+ var gmatcher = null
+ if (pattern.slice(-3) === '/**') {
+ var gpattern = pattern.replace(/(\/\*\*)+$/, '')
+ gmatcher = new Minimatch(gpattern, { dot: true })
+ }
+
+ return {
+ matcher: new Minimatch(pattern, { dot: true }),
+ gmatcher: gmatcher
+ }
+}
+
+function setopts (self, pattern, options) {
+ if (!options)
+ options = {}
+
+ // base-matching: just use globstar for that.
+ if (options.matchBase && -1 === pattern.indexOf("/")) {
+ if (options.noglobstar) {
+ throw new Error("base matching requires globstar")
+ }
+ pattern = "**/" + pattern
+ }
+
+ self.silent = !!options.silent
+ self.pattern = pattern
+ self.strict = options.strict !== false
+ self.realpath = !!options.realpath
+ self.realpathCache = options.realpathCache || Object.create(null)
+ self.follow = !!options.follow
+ self.dot = !!options.dot
+ self.mark = !!options.mark
+ self.nodir = !!options.nodir
+ if (self.nodir)
+ self.mark = true
+ self.sync = !!options.sync
+ self.nounique = !!options.nounique
+ self.nonull = !!options.nonull
+ self.nosort = !!options.nosort
+ self.nocase = !!options.nocase
+ self.stat = !!options.stat
+ self.noprocess = !!options.noprocess
+
+ self.maxLength = options.maxLength || Infinity
+ self.cache = options.cache || Object.create(null)
+ self.statCache = options.statCache || Object.create(null)
+ self.symlinks = options.symlinks || Object.create(null)
+
+ setupIgnores(self, options)
+
+ self.changedCwd = false
+ var cwd = process.cwd()
+ if (!ownProp(options, "cwd"))
+ self.cwd = cwd
+ else {
+ self.cwd = options.cwd
+ self.changedCwd = path.resolve(options.cwd) !== cwd
+ }
+
+ self.root = options.root || path.resolve(self.cwd, "/")
+ self.root = path.resolve(self.root)
+ if (process.platform === "win32")
+ self.root = self.root.replace(/\\/g, "/")
+
+ self.nomount = !!options.nomount
+
+ // disable comments and negation in Minimatch.
+ // Note that they are not supported in Glob itself anyway.
+ options.nonegate = true
+ options.nocomment = true
+
+ self.minimatch = new Minimatch(pattern, options)
+ self.options = self.minimatch.options
+}
+
+function finish (self) {
+ var nou = self.nounique
+ var all = nou ? [] : Object.create(null)
+
+ for (var i = 0, l = self.matches.length; i < l; i ++) {
+ var matches = self.matches[i]
+ if (!matches || Object.keys(matches).length === 0) {
+ if (self.nonull) {
+ // do like the shell, and spit out the literal glob
+ var literal = self.minimatch.globSet[i]
+ if (nou)
+ all.push(literal)
+ else
+ all[literal] = true
+ }
+ } else {
+ // had matches
+ var m = Object.keys(matches)
+ if (nou)
+ all.push.apply(all, m)
+ else
+ m.forEach(function (m) {
+ all[m] = true
+ })
+ }
+ }
+
+ if (!nou)
+ all = Object.keys(all)
+
+ if (!self.nosort)
+ all = all.sort(self.nocase ? alphasorti : alphasort)
+
+ // at *some* point we statted all of these
+ if (self.mark) {
+ for (var i = 0; i < all.length; i++) {
+ all[i] = self._mark(all[i])
+ }
+ if (self.nodir) {
+ all = all.filter(function (e) {
+ return !(/\/$/.test(e))
+ })
+ }
+ }
+
+ if (self.ignore.length)
+ all = all.filter(function(m) {
+ return !isIgnored(self, m)
+ })
+
+ self.found = all
+}
+
+function mark (self, p) {
+ var abs = makeAbs(self, p)
+ var c = self.cache[abs]
+ var m = p
+ if (c) {
+ var isDir = c === 'DIR' || Array.isArray(c)
+ var slash = p.slice(-1) === '/'
+
+ if (isDir && !slash)
+ m += '/'
+ else if (!isDir && slash)
+ m = m.slice(0, -1)
+
+ if (m !== p) {
+ var mabs = makeAbs(self, m)
+ self.statCache[mabs] = self.statCache[abs]
+ self.cache[mabs] = self.cache[abs]
+ }
+ }
+
+ return m
+}
+
+// lotta situps...
+function makeAbs (self, f) {
+ var abs = f
+ if (f.charAt(0) === '/') {
+ abs = path.join(self.root, f)
+ } else if (isAbsolute(f) || f === '') {
+ abs = f
+ } else if (self.changedCwd) {
+ abs = path.resolve(self.cwd, f)
+ } else {
+ abs = path.resolve(f)
+ }
+ return abs
+}
+
+
+// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
+// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
+function isIgnored (self, path) {
+ if (!self.ignore.length)
+ return false
+
+ return self.ignore.some(function(item) {
+ return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
+ })
+}
+
+function childrenIgnored (self, path) {
+ if (!self.ignore.length)
+ return false
+
+ return self.ignore.some(function(item) {
+ return !!(item.gmatcher && item.gmatcher.match(path))
+ })
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/glob.js b/deps/npm/node_modules/init-package-json/node_modules/glob/glob.js
new file mode 100644
index 00000000000000..a62da27ebd507a
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/glob.js
@@ -0,0 +1,765 @@
+// Approach:
+//
+// 1. Get the minimatch set
+// 2. For each pattern in the set, PROCESS(pattern, false)
+// 3. Store matches per-set, then uniq them
+//
+// PROCESS(pattern, inGlobStar)
+// Get the first [n] items from pattern that are all strings
+// Join these together. This is PREFIX.
+// If there is no more remaining, then stat(PREFIX) and
+// add to matches if it succeeds. END.
+//
+// If inGlobStar and PREFIX is symlink and points to dir
+// set ENTRIES = []
+// else readdir(PREFIX) as ENTRIES
+// If fail, END
+//
+// with ENTRIES
+// If pattern[n] is GLOBSTAR
+// // handle the case where the globstar match is empty
+// // by pruning it out, and testing the resulting pattern
+// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
+// // handle other cases.
+// for ENTRY in ENTRIES (not dotfiles)
+// // attach globstar + tail onto the entry
+// // Mark that this entry is a globstar match
+// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
+//
+// else // not globstar
+// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
+// Test ENTRY against pattern[n]
+// If fails, continue
+// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
+//
+// Caveat:
+// Cache all stats and readdirs results to minimize syscall. Since all
+// we ever care about is existence and directory-ness, we can just keep
+// `true` for files, and [children,...] for directories, or `false` for
+// things that don't exist.
+
+module.exports = glob
+
+var fs = require('fs')
+var minimatch = require('minimatch')
+var Minimatch = minimatch.Minimatch
+var inherits = require('inherits')
+var EE = require('events').EventEmitter
+var path = require('path')
+var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
+var globSync = require('./sync.js')
+var common = require('./common.js')
+var alphasort = common.alphasort
+var alphasorti = common.alphasorti
+var setopts = common.setopts
+var ownProp = common.ownProp
+var inflight = require('inflight')
+var util = require('util')
+var childrenIgnored = common.childrenIgnored
+var isIgnored = common.isIgnored
+
+var once = require('once')
+
+function glob (pattern, options, cb) {
+ if (typeof options === 'function') cb = options, options = {}
+ if (!options) options = {}
+
+ if (options.sync) {
+ if (cb)
+ throw new TypeError('callback provided to sync glob')
+ return globSync(pattern, options)
+ }
+
+ return new Glob(pattern, options, cb)
+}
+
+glob.sync = globSync
+var GlobSync = glob.GlobSync = globSync.GlobSync
+
+// old api surface
+glob.glob = glob
+
+function extend (origin, add) {
+ if (add === null || typeof add !== 'object') {
+ return origin
+ }
+
+ var keys = Object.keys(add)
+ var i = keys.length
+ while (i--) {
+ origin[keys[i]] = add[keys[i]]
+ }
+ return origin
+}
+
+glob.hasMagic = function (pattern, options_) {
+ var options = extend({}, options_)
+ options.noprocess = true
+
+ var g = new Glob(pattern, options)
+ var set = g.minimatch.set
+ if (set.length > 1)
+ return true
+
+ for (var j = 0; j < set[0].length; j++) {
+ if (typeof set[0][j] !== 'string')
+ return true
+ }
+
+ return false
+}
+
+glob.Glob = Glob
+inherits(Glob, EE)
+function Glob (pattern, options, cb) {
+ if (typeof options === 'function') {
+ cb = options
+ options = null
+ }
+
+ if (options && options.sync) {
+ if (cb)
+ throw new TypeError('callback provided to sync glob')
+ return new GlobSync(pattern, options)
+ }
+
+ if (!(this instanceof Glob))
+ return new Glob(pattern, options, cb)
+
+ setopts(this, pattern, options)
+ this._didRealPath = false
+
+ // process each pattern in the minimatch set
+ var n = this.minimatch.set.length
+
+ // The matches are stored as {: true,...} so that
+ // duplicates are automagically pruned.
+ // Later, we do an Object.keys() on these.
+ // Keep them as a list so we can fill in when nonull is set.
+ this.matches = new Array(n)
+
+ if (typeof cb === 'function') {
+ cb = once(cb)
+ this.on('error', cb)
+ this.on('end', function (matches) {
+ cb(null, matches)
+ })
+ }
+
+ var self = this
+ var n = this.minimatch.set.length
+ this._processing = 0
+ this.matches = new Array(n)
+
+ this._emitQueue = []
+ this._processQueue = []
+ this.paused = false
+
+ if (this.noprocess)
+ return this
+
+ if (n === 0)
+ return done()
+
+ for (var i = 0; i < n; i ++) {
+ this._process(this.minimatch.set[i], i, false, done)
+ }
+
+ function done () {
+ --self._processing
+ if (self._processing <= 0)
+ self._finish()
+ }
+}
+
+Glob.prototype._finish = function () {
+ assert(this instanceof Glob)
+ if (this.aborted)
+ return
+
+ if (this.realpath && !this._didRealpath)
+ return this._realpath()
+
+ common.finish(this)
+ this.emit('end', this.found)
+}
+
+Glob.prototype._realpath = function () {
+ if (this._didRealpath)
+ return
+
+ this._didRealpath = true
+
+ var n = this.matches.length
+ if (n === 0)
+ return this._finish()
+
+ var self = this
+ for (var i = 0; i < this.matches.length; i++)
+ this._realpathSet(i, next)
+
+ function next () {
+ if (--n === 0)
+ self._finish()
+ }
+}
+
+Glob.prototype._realpathSet = function (index, cb) {
+ var matchset = this.matches[index]
+ if (!matchset)
+ return cb()
+
+ var found = Object.keys(matchset)
+ var self = this
+ var n = found.length
+
+ if (n === 0)
+ return cb()
+
+ var set = this.matches[index] = Object.create(null)
+ found.forEach(function (p, i) {
+ // If there's a problem with the stat, then it means that
+ // one or more of the links in the realpath couldn't be
+ // resolved. just return the abs value in that case.
+ p = self._makeAbs(p)
+ fs.realpath(p, self.realpathCache, function (er, real) {
+ if (!er)
+ set[real] = true
+ else if (er.syscall === 'stat')
+ set[p] = true
+ else
+ self.emit('error', er) // srsly wtf right here
+
+ if (--n === 0) {
+ self.matches[index] = set
+ cb()
+ }
+ })
+ })
+}
+
+Glob.prototype._mark = function (p) {
+ return common.mark(this, p)
+}
+
+Glob.prototype._makeAbs = function (f) {
+ return common.makeAbs(this, f)
+}
+
+Glob.prototype.abort = function () {
+ this.aborted = true
+ this.emit('abort')
+}
+
+Glob.prototype.pause = function () {
+ if (!this.paused) {
+ this.paused = true
+ this.emit('pause')
+ }
+}
+
+Glob.prototype.resume = function () {
+ if (this.paused) {
+ this.emit('resume')
+ this.paused = false
+ if (this._emitQueue.length) {
+ var eq = this._emitQueue.slice(0)
+ this._emitQueue.length = 0
+ for (var i = 0; i < eq.length; i ++) {
+ var e = eq[i]
+ this._emitMatch(e[0], e[1])
+ }
+ }
+ if (this._processQueue.length) {
+ var pq = this._processQueue.slice(0)
+ this._processQueue.length = 0
+ for (var i = 0; i < pq.length; i ++) {
+ var p = pq[i]
+ this._processing--
+ this._process(p[0], p[1], p[2], p[3])
+ }
+ }
+ }
+}
+
+Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
+ assert(this instanceof Glob)
+ assert(typeof cb === 'function')
+
+ if (this.aborted)
+ return
+
+ this._processing++
+ if (this.paused) {
+ this._processQueue.push([pattern, index, inGlobStar, cb])
+ return
+ }
+
+ //console.error('PROCESS %d', this._processing, pattern)
+
+ // Get the first [n] parts of pattern that are all strings.
+ var n = 0
+ while (typeof pattern[n] === 'string') {
+ n ++
+ }
+ // now n is the index of the first one that is *not* a string.
+
+ // see if there's anything else
+ var prefix
+ switch (n) {
+ // if not, then this is rather simple
+ case pattern.length:
+ this._processSimple(pattern.join('/'), index, cb)
+ return
+
+ case 0:
+ // pattern *starts* with some non-trivial item.
+ // going to readdir(cwd), but not include the prefix in matches.
+ prefix = null
+ break
+
+ default:
+ // pattern has some string bits in the front.
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
+ // or 'relative' like '../baz'
+ prefix = pattern.slice(0, n).join('/')
+ break
+ }
+
+ var remain = pattern.slice(n)
+
+ // get the list of entries.
+ var read
+ if (prefix === null)
+ read = '.'
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
+ if (!prefix || !isAbsolute(prefix))
+ prefix = '/' + prefix
+ read = prefix
+ } else
+ read = prefix
+
+ var abs = this._makeAbs(read)
+
+ //if ignored, skip _processing
+ if (childrenIgnored(this, read))
+ return cb()
+
+ var isGlobStar = remain[0] === minimatch.GLOBSTAR
+ if (isGlobStar)
+ this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
+ else
+ this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
+}
+
+Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+ var self = this
+ this._readdir(abs, inGlobStar, function (er, entries) {
+ return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
+ })
+}
+
+Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+
+ // if the abs isn't a dir, then nothing can match!
+ if (!entries)
+ return cb()
+
+ // It will only match dot entries if it starts with a dot, or if
+ // dot is set. Stuff like @(.foo|.bar) isn't allowed.
+ var pn = remain[0]
+ var negate = !!this.minimatch.negate
+ var rawGlob = pn._glob
+ var dotOk = this.dot || rawGlob.charAt(0) === '.'
+
+ var matchedEntries = []
+ for (var i = 0; i < entries.length; i++) {
+ var e = entries[i]
+ if (e.charAt(0) !== '.' || dotOk) {
+ var m
+ if (negate && !prefix) {
+ m = !e.match(pn)
+ } else {
+ m = e.match(pn)
+ }
+ if (m)
+ matchedEntries.push(e)
+ }
+ }
+
+ //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
+
+ var len = matchedEntries.length
+ // If there are no matched entries, then nothing matches.
+ if (len === 0)
+ return cb()
+
+ // if this is the last remaining pattern bit, then no need for
+ // an additional stat *unless* the user has specified mark or
+ // stat explicitly. We know they exist, since readdir returned
+ // them.
+
+ if (remain.length === 1 && !this.mark && !this.stat) {
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ if (prefix) {
+ if (prefix !== '/')
+ e = prefix + '/' + e
+ else
+ e = prefix + e
+ }
+
+ if (e.charAt(0) === '/' && !this.nomount) {
+ e = path.join(this.root, e)
+ }
+ this._emitMatch(index, e)
+ }
+ // This was the last one, and no stats were needed
+ return cb()
+ }
+
+ // now test all matched entries as stand-ins for that part
+ // of the pattern.
+ remain.shift()
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ var newPattern
+ if (prefix) {
+ if (prefix !== '/')
+ e = prefix + '/' + e
+ else
+ e = prefix + e
+ }
+ this._process([e].concat(remain), index, inGlobStar, cb)
+ }
+ cb()
+}
+
+Glob.prototype._emitMatch = function (index, e) {
+ if (this.aborted)
+ return
+
+ if (this.matches[index][e])
+ return
+
+ if (isIgnored(this, e))
+ return
+
+ if (this.paused) {
+ this._emitQueue.push([index, e])
+ return
+ }
+
+ var abs = this._makeAbs(e)
+
+ if (this.nodir) {
+ var c = this.cache[abs]
+ if (c === 'DIR' || Array.isArray(c))
+ return
+ }
+
+ if (this.mark)
+ e = this._mark(e)
+
+ this.matches[index][e] = true
+
+ var st = this.statCache[abs]
+ if (st)
+ this.emit('stat', e, st)
+
+ this.emit('match', e)
+}
+
+Glob.prototype._readdirInGlobStar = function (abs, cb) {
+ if (this.aborted)
+ return
+
+ // follow all symlinked directories forever
+ // just proceed as if this is a non-globstar situation
+ if (this.follow)
+ return this._readdir(abs, false, cb)
+
+ var lstatkey = 'lstat\0' + abs
+ var self = this
+ var lstatcb = inflight(lstatkey, lstatcb_)
+
+ if (lstatcb)
+ fs.lstat(abs, lstatcb)
+
+ function lstatcb_ (er, lstat) {
+ if (er)
+ return cb()
+
+ var isSym = lstat.isSymbolicLink()
+ self.symlinks[abs] = isSym
+
+ // If it's not a symlink or a dir, then it's definitely a regular file.
+ // don't bother doing a readdir in that case.
+ if (!isSym && !lstat.isDirectory()) {
+ self.cache[abs] = 'FILE'
+ cb()
+ } else
+ self._readdir(abs, false, cb)
+ }
+}
+
+Glob.prototype._readdir = function (abs, inGlobStar, cb) {
+ if (this.aborted)
+ return
+
+ cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
+ if (!cb)
+ return
+
+ //console.error('RD %j %j', +inGlobStar, abs)
+ if (inGlobStar && !ownProp(this.symlinks, abs))
+ return this._readdirInGlobStar(abs, cb)
+
+ if (ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+ if (!c || c === 'FILE')
+ return cb()
+
+ if (Array.isArray(c))
+ return cb(null, c)
+ }
+
+ var self = this
+ fs.readdir(abs, readdirCb(this, abs, cb))
+}
+
+function readdirCb (self, abs, cb) {
+ return function (er, entries) {
+ if (er)
+ self._readdirError(abs, er, cb)
+ else
+ self._readdirEntries(abs, entries, cb)
+ }
+}
+
+Glob.prototype._readdirEntries = function (abs, entries, cb) {
+ if (this.aborted)
+ return
+
+ // if we haven't asked to stat everything, then just
+ // assume that everything in there exists, so we can avoid
+ // having to stat it a second time.
+ if (!this.mark && !this.stat) {
+ for (var i = 0; i < entries.length; i ++) {
+ var e = entries[i]
+ if (abs === '/')
+ e = abs + e
+ else
+ e = abs + '/' + e
+ this.cache[e] = true
+ }
+ }
+
+ this.cache[abs] = entries
+ return cb(null, entries)
+}
+
+Glob.prototype._readdirError = function (f, er, cb) {
+ if (this.aborted)
+ return
+
+ // handle errors, and cache the information
+ switch (er.code) {
+ case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+ case 'ENOTDIR': // totally normal. means it *does* exist.
+ this.cache[this._makeAbs(f)] = 'FILE'
+ break
+
+ case 'ENOENT': // not terribly unusual
+ case 'ELOOP':
+ case 'ENAMETOOLONG':
+ case 'UNKNOWN':
+ this.cache[this._makeAbs(f)] = false
+ break
+
+ default: // some unusual error. Treat as failure.
+ this.cache[this._makeAbs(f)] = false
+ if (this.strict) {
+ this.emit('error', er)
+ // If the error is handled, then we abort
+ // if not, we threw out of here
+ this.abort()
+ }
+ if (!this.silent)
+ console.error('glob error', er)
+ break
+ }
+
+ return cb()
+}
+
+Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+ var self = this
+ this._readdir(abs, inGlobStar, function (er, entries) {
+ self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
+ })
+}
+
+
+Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+ //console.error('pgs2', prefix, remain[0], entries)
+
+ // no entries means not a dir, so it can never have matches
+ // foo.txt/** doesn't match foo.txt
+ if (!entries)
+ return cb()
+
+ // test without the globstar, and with every child both below
+ // and replacing the globstar.
+ var remainWithoutGlobStar = remain.slice(1)
+ var gspref = prefix ? [ prefix ] : []
+ var noGlobStar = gspref.concat(remainWithoutGlobStar)
+
+ // the noGlobStar pattern exits the inGlobStar state
+ this._process(noGlobStar, index, false, cb)
+
+ var isSym = this.symlinks[abs]
+ var len = entries.length
+
+ // If it's a symlink, and we're in a globstar, then stop
+ if (isSym && inGlobStar)
+ return cb()
+
+ for (var i = 0; i < len; i++) {
+ var e = entries[i]
+ if (e.charAt(0) === '.' && !this.dot)
+ continue
+
+ // these two cases enter the inGlobStar state
+ var instead = gspref.concat(entries[i], remainWithoutGlobStar)
+ this._process(instead, index, true, cb)
+
+ var below = gspref.concat(entries[i], remain)
+ this._process(below, index, true, cb)
+ }
+
+ cb()
+}
+
+Glob.prototype._processSimple = function (prefix, index, cb) {
+ // XXX review this. Shouldn't it be doing the mounting etc
+ // before doing stat? kinda weird?
+ var self = this
+ this._stat(prefix, function (er, exists) {
+ self._processSimple2(prefix, index, er, exists, cb)
+ })
+}
+Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
+
+ //console.error('ps2', prefix, exists)
+
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ // If it doesn't exist, then just mark the lack of results
+ if (!exists)
+ return cb()
+
+ if (prefix && isAbsolute(prefix) && !this.nomount) {
+ var trail = /[\/\\]$/.test(prefix)
+ if (prefix.charAt(0) === '/') {
+ prefix = path.join(this.root, prefix)
+ } else {
+ prefix = path.resolve(this.root, prefix)
+ if (trail)
+ prefix += '/'
+ }
+ }
+
+ if (process.platform === 'win32')
+ prefix = prefix.replace(/\\/g, '/')
+
+ // Mark this as a match
+ this._emitMatch(index, prefix)
+ cb()
+}
+
+// Returns either 'DIR', 'FILE', or false
+Glob.prototype._stat = function (f, cb) {
+ var abs = this._makeAbs(f)
+ var needDir = f.slice(-1) === '/'
+
+ if (f.length > this.maxLength)
+ return cb()
+
+ if (!this.stat && ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+
+ if (Array.isArray(c))
+ c = 'DIR'
+
+ // It exists, but maybe not how we need it
+ if (!needDir || c === 'DIR')
+ return cb(null, c)
+
+ if (needDir && c === 'FILE')
+ return cb()
+
+ // otherwise we have to stat, because maybe c=true
+ // if we know it exists, but not what it is.
+ }
+
+ var exists
+ var stat = this.statCache[abs]
+ if (stat !== undefined) {
+ if (stat === false)
+ return cb(null, stat)
+ else {
+ var type = stat.isDirectory() ? 'DIR' : 'FILE'
+ if (needDir && type === 'FILE')
+ return cb()
+ else
+ return cb(null, type, stat)
+ }
+ }
+
+ var self = this
+ var statcb = inflight('stat\0' + abs, lstatcb_)
+ if (statcb)
+ fs.lstat(abs, statcb)
+
+ function lstatcb_ (er, lstat) {
+ if (lstat && lstat.isSymbolicLink()) {
+ // If it's a symlink, then treat it as the target, unless
+ // the target does not exist, then treat it as a file.
+ return fs.stat(abs, function (er, stat) {
+ if (er)
+ self._stat2(f, abs, null, lstat, cb)
+ else
+ self._stat2(f, abs, er, stat, cb)
+ })
+ } else {
+ self._stat2(f, abs, er, lstat, cb)
+ }
+ }
+}
+
+Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
+ if (er) {
+ this.statCache[abs] = false
+ return cb()
+ }
+
+ var needDir = f.slice(-1) === '/'
+ this.statCache[abs] = stat
+
+ if (abs.slice(-1) === '/' && !stat.isDirectory())
+ return cb(null, false, stat)
+
+ var c = stat.isDirectory() ? 'DIR' : 'FILE'
+ this.cache[abs] = this.cache[abs] || c
+
+ if (needDir && c !== 'DIR')
+ return cb()
+
+ return cb(null, c, stat)
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/LICENSE
similarity index 81%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE
rename to deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/LICENSE
index e756052969b780..19129e315fe593 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/LICENSE
@@ -1,4 +1,6 @@
-Copyright (c) 2014, Rebecca Turner
+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
@@ -9,5 +11,5 @@ 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.
+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/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/README.md b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/README.md
new file mode 100644
index 00000000000000..d458bc2e0a6b03
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/README.md
@@ -0,0 +1,216 @@
+# minimatch
+
+A minimal matching utility.
+
+[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
+
+
+This is the matching library used internally by npm.
+
+It works by converting glob expressions into JavaScript `RegExp`
+objects.
+
+## Usage
+
+```javascript
+var minimatch = require("minimatch")
+
+minimatch("bar.foo", "*.foo") // true!
+minimatch("bar.foo", "*.bar") // false!
+minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
+```
+
+## Features
+
+Supports these glob features:
+
+* Brace Expansion
+* Extended glob matching
+* "Globstar" `**` matching
+
+See:
+
+* `man sh`
+* `man bash`
+* `man 3 fnmatch`
+* `man 5 gitignore`
+
+## Minimatch Class
+
+Create a minimatch object by instanting the `minimatch.Minimatch` class.
+
+```javascript
+var Minimatch = require("minimatch").Minimatch
+var mm = new Minimatch(pattern, options)
+```
+
+### Properties
+
+* `pattern` The original pattern the minimatch object represents.
+* `options` The options supplied to the constructor.
+* `set` A 2-dimensional array of regexp or string expressions.
+ Each row in the
+ array corresponds to a brace-expanded pattern. Each item in the row
+ corresponds to a single path-part. For example, the pattern
+ `{a,b/c}/d` would expand to a set of patterns like:
+
+ [ [ a, d ]
+ , [ b, c, d ] ]
+
+ If a portion of the pattern doesn't have any "magic" in it
+ (that is, it's something like `"foo"` rather than `fo*o?`), then it
+ will be left as a string rather than converted to a regular
+ expression.
+
+* `regexp` Created by the `makeRe` method. A single regular expression
+ expressing the entire pattern. This is useful in cases where you wish
+ to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
+* `negate` True if the pattern is negated.
+* `comment` True if the pattern is a comment.
+* `empty` True if the pattern is `""`.
+
+### Methods
+
+* `makeRe` Generate the `regexp` member if necessary, and return it.
+ Will return `false` if the pattern is invalid.
+* `match(fname)` Return true if the filename matches the pattern, or
+ false otherwise.
+* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
+ filename, and match it against a single row in the `regExpSet`. This
+ method is mainly for internal use, but is exposed so that it can be
+ used by a glob-walker that needs to avoid excessive filesystem calls.
+
+All other methods are internal, and will be called as necessary.
+
+## Functions
+
+The top-level exported function has a `cache` property, which is an LRU
+cache set to store 100 items. So, calling these methods repeatedly
+with the same pattern and options will use the same Minimatch object,
+saving the cost of parsing it multiple times.
+
+### minimatch(path, pattern, options)
+
+Main export. Tests a path against the pattern using the options.
+
+```javascript
+var isJS = minimatch(file, "*.js", { matchBase: true })
+```
+
+### minimatch.filter(pattern, options)
+
+Returns a function that tests its
+supplied argument, suitable for use with `Array.filter`. Example:
+
+```javascript
+var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
+```
+
+### minimatch.match(list, pattern, options)
+
+Match against the list of
+files, in the style of fnmatch or glob. If nothing is matched, and
+options.nonull is set, then return a list containing the pattern itself.
+
+```javascript
+var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
+```
+
+### minimatch.makeRe(pattern, options)
+
+Make a regular expression object from the pattern.
+
+## Options
+
+All options are `false` by default.
+
+### debug
+
+Dump a ton of stuff to stderr.
+
+### nobrace
+
+Do not expand `{a,b}` and `{1..3}` brace sets.
+
+### noglobstar
+
+Disable `**` matching against multiple folder names.
+
+### dot
+
+Allow patterns to match filenames starting with a period, even if
+the pattern does not explicitly have a period in that spot.
+
+Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
+is set.
+
+### noext
+
+Disable "extglob" style patterns like `+(a|b)`.
+
+### nocase
+
+Perform a case-insensitive match.
+
+### nonull
+
+When a match is not found by `minimatch.match`, return a list containing
+the pattern itself if this option is set. When not set, an empty list
+is returned if there are no matches.
+
+### matchBase
+
+If set, then patterns without slashes will be matched
+against the basename of the path if it contains slashes. For example,
+`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
+
+### nocomment
+
+Suppress the behavior of treating `#` at the start of a pattern as a
+comment.
+
+### nonegate
+
+Suppress the behavior of treating a leading `!` character as negation.
+
+### flipNegate
+
+Returns from negate expressions the same as if they were not negated.
+(Ie, true on a hit, false on a miss.)
+
+
+## Comparisons to other fnmatch/glob implementations
+
+While strict compliance with the existing standards is a worthwhile
+goal, some discrepancies exist between minimatch and other
+implementations, and are intentional.
+
+If the pattern starts with a `!` character, then it is negated. Set the
+`nonegate` flag to suppress this behavior, and treat leading `!`
+characters normally. This is perhaps relevant if you wish to start the
+pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
+characters at the start of a pattern will negate the pattern multiple
+times.
+
+If a pattern starts with `#`, then it is treated as a comment, and
+will not match anything. Use `\#` to match a literal `#` at the
+start of a line, or set the `nocomment` flag to suppress this behavior.
+
+The double-star character `**` is supported by default, unless the
+`noglobstar` flag is set. This is supported in the manner of bsdglob
+and bash 4.1, where `**` only has special significance if it is the only
+thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
+`a/**b` will not.
+
+If an escaped pattern has no matches, and the `nonull` flag is set,
+then minimatch.match returns the pattern as-provided, rather than
+interpreting the character escapes. For example,
+`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
+`"*a?"`. This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
+
+If brace expansion is not disabled, then it is performed before any
+other interpretation of the glob pattern. Thus, a pattern like
+`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
+**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
+checked for validity. Since those two are valid, matching proceeds.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/minimatch.js
new file mode 100644
index 00000000000000..ec4c05c570c52e
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/minimatch.js
@@ -0,0 +1,912 @@
+module.exports = minimatch
+minimatch.Minimatch = Minimatch
+
+var path = { sep: '/' }
+try {
+ path = require('path')
+} catch (er) {}
+
+var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
+var expand = require('brace-expansion')
+
+// any single thing other than /
+// don't need to escape / when using new RegExp()
+var qmark = '[^/]'
+
+// * => any number of characters
+var star = qmark + '*?'
+
+// ** when dots are allowed. Anything goes, except .. and .
+// not (^ or / followed by one or two dots followed by $ or /),
+// followed by anything, any number of times.
+var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
+
+// not a ^ or / followed by a dot,
+// followed by anything, any number of times.
+var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
+
+// characters that need to be escaped in RegExp.
+var reSpecials = charSet('().*{}+?[]^$\\!')
+
+// "abc" -> { a:true, b:true, c:true }
+function charSet (s) {
+ return s.split('').reduce(function (set, c) {
+ set[c] = true
+ return set
+ }, {})
+}
+
+// normalizes slashes.
+var slashSplit = /\/+/
+
+minimatch.filter = filter
+function filter (pattern, options) {
+ options = options || {}
+ return function (p, i, list) {
+ return minimatch(p, pattern, options)
+ }
+}
+
+function ext (a, b) {
+ a = a || {}
+ b = b || {}
+ var t = {}
+ Object.keys(b).forEach(function (k) {
+ t[k] = b[k]
+ })
+ Object.keys(a).forEach(function (k) {
+ t[k] = a[k]
+ })
+ return t
+}
+
+minimatch.defaults = function (def) {
+ if (!def || !Object.keys(def).length) return minimatch
+
+ var orig = minimatch
+
+ var m = function minimatch (p, pattern, options) {
+ return orig.minimatch(p, pattern, ext(def, options))
+ }
+
+ m.Minimatch = function Minimatch (pattern, options) {
+ return new orig.Minimatch(pattern, ext(def, options))
+ }
+
+ return m
+}
+
+Minimatch.defaults = function (def) {
+ if (!def || !Object.keys(def).length) return Minimatch
+ return minimatch.defaults(def).Minimatch
+}
+
+function minimatch (p, pattern, options) {
+ if (typeof pattern !== 'string') {
+ throw new TypeError('glob pattern string required')
+ }
+
+ if (!options) options = {}
+
+ // shortcut: comments match nothing.
+ if (!options.nocomment && pattern.charAt(0) === '#') {
+ return false
+ }
+
+ // "" only matches ""
+ if (pattern.trim() === '') return p === ''
+
+ return new Minimatch(pattern, options).match(p)
+}
+
+function Minimatch (pattern, options) {
+ if (!(this instanceof Minimatch)) {
+ return new Minimatch(pattern, options)
+ }
+
+ if (typeof pattern !== 'string') {
+ throw new TypeError('glob pattern string required')
+ }
+
+ if (!options) options = {}
+ pattern = pattern.trim()
+
+ // windows support: need to use /, not \
+ if (path.sep !== '/') {
+ pattern = pattern.split(path.sep).join('/')
+ }
+
+ this.options = options
+ this.set = []
+ this.pattern = pattern
+ this.regexp = null
+ this.negate = false
+ this.comment = false
+ this.empty = false
+
+ // make the set of regexps etc.
+ this.make()
+}
+
+Minimatch.prototype.debug = function () {}
+
+Minimatch.prototype.make = make
+function make () {
+ // don't do it more than once.
+ if (this._made) return
+
+ var pattern = this.pattern
+ var options = this.options
+
+ // empty patterns and comments match nothing.
+ if (!options.nocomment && pattern.charAt(0) === '#') {
+ this.comment = true
+ return
+ }
+ if (!pattern) {
+ this.empty = true
+ return
+ }
+
+ // step 1: figure out negation, etc.
+ this.parseNegate()
+
+ // step 2: expand braces
+ var set = this.globSet = this.braceExpand()
+
+ if (options.debug) this.debug = console.error
+
+ this.debug(this.pattern, set)
+
+ // step 3: now we have a set, so turn each one into a series of path-portion
+ // matching patterns.
+ // These will be regexps, except in the case of "**", which is
+ // set to the GLOBSTAR object for globstar behavior,
+ // and will not contain any / characters
+ set = this.globParts = set.map(function (s) {
+ return s.split(slashSplit)
+ })
+
+ this.debug(this.pattern, set)
+
+ // glob --> regexps
+ set = set.map(function (s, si, set) {
+ return s.map(this.parse, this)
+ }, this)
+
+ this.debug(this.pattern, set)
+
+ // filter out everything that didn't compile properly.
+ set = set.filter(function (s) {
+ return s.indexOf(false) === -1
+ })
+
+ this.debug(this.pattern, set)
+
+ this.set = set
+}
+
+Minimatch.prototype.parseNegate = parseNegate
+function parseNegate () {
+ var pattern = this.pattern
+ var negate = false
+ var options = this.options
+ var negateOffset = 0
+
+ if (options.nonegate) return
+
+ for (var i = 0, l = pattern.length
+ ; i < l && pattern.charAt(i) === '!'
+ ; i++) {
+ negate = !negate
+ negateOffset++
+ }
+
+ if (negateOffset) this.pattern = pattern.substr(negateOffset)
+ this.negate = negate
+}
+
+// Brace expansion:
+// a{b,c}d -> abd acd
+// a{b,}c -> abc ac
+// a{0..3}d -> a0d a1d a2d a3d
+// a{b,c{d,e}f}g -> abg acdfg acefg
+// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
+//
+// Invalid sets are not expanded.
+// a{2..}b -> a{2..}b
+// a{b}c -> a{b}c
+minimatch.braceExpand = function (pattern, options) {
+ return braceExpand(pattern, options)
+}
+
+Minimatch.prototype.braceExpand = braceExpand
+
+function braceExpand (pattern, options) {
+ if (!options) {
+ if (this instanceof Minimatch) {
+ options = this.options
+ } else {
+ options = {}
+ }
+ }
+
+ pattern = typeof pattern === 'undefined'
+ ? this.pattern : pattern
+
+ if (typeof pattern === 'undefined') {
+ throw new Error('undefined pattern')
+ }
+
+ if (options.nobrace ||
+ !pattern.match(/\{.*\}/)) {
+ // shortcut. no need to expand.
+ return [pattern]
+ }
+
+ return expand(pattern)
+}
+
+// parse a component of the expanded set.
+// At this point, no pattern may contain "/" in it
+// so we're going to return a 2d array, where each entry is the full
+// pattern, split on '/', and then turned into a regular expression.
+// A regexp is made at the end which joins each array with an
+// escaped /, and another full one which joins each regexp with |.
+//
+// Following the lead of Bash 4.1, note that "**" only has special meaning
+// when it is the *only* thing in a path portion. Otherwise, any series
+// of * is equivalent to a single *. Globstar behavior is enabled by
+// default, and can be disabled by setting options.noglobstar.
+Minimatch.prototype.parse = parse
+var SUBPARSE = {}
+function parse (pattern, isSub) {
+ var options = this.options
+
+ // shortcuts
+ if (!options.noglobstar && pattern === '**') return GLOBSTAR
+ if (pattern === '') return ''
+
+ var re = ''
+ var hasMagic = !!options.nocase
+ var escaping = false
+ // ? => one single character
+ var patternListStack = []
+ var negativeLists = []
+ var plType
+ var stateChar
+ var inClass = false
+ var reClassStart = -1
+ var classStart = -1
+ // . and .. never match anything that doesn't start with .,
+ // even when options.dot is set.
+ var patternStart = pattern.charAt(0) === '.' ? '' // anything
+ // not (start or / followed by . or .. followed by / or end)
+ : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
+ : '(?!\\.)'
+ var self = this
+
+ function clearStateChar () {
+ if (stateChar) {
+ // we had some state-tracking character
+ // that wasn't consumed by this pass.
+ switch (stateChar) {
+ case '*':
+ re += star
+ hasMagic = true
+ break
+ case '?':
+ re += qmark
+ hasMagic = true
+ break
+ default:
+ re += '\\' + stateChar
+ break
+ }
+ self.debug('clearStateChar %j %j', stateChar, re)
+ stateChar = false
+ }
+ }
+
+ for (var i = 0, len = pattern.length, c
+ ; (i < len) && (c = pattern.charAt(i))
+ ; i++) {
+ this.debug('%s\t%s %s %j', pattern, i, re, c)
+
+ // skip over any that are escaped.
+ if (escaping && reSpecials[c]) {
+ re += '\\' + c
+ escaping = false
+ continue
+ }
+
+ switch (c) {
+ case '/':
+ // completely not allowed, even escaped.
+ // Should already be path-split by now.
+ return false
+
+ case '\\':
+ clearStateChar()
+ escaping = true
+ continue
+
+ // the various stateChar values
+ // for the "extglob" stuff.
+ case '?':
+ case '*':
+ case '+':
+ case '@':
+ case '!':
+ this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
+
+ // all of those are literals inside a class, except that
+ // the glob [!a] means [^a] in regexp
+ if (inClass) {
+ this.debug(' in class')
+ if (c === '!' && i === classStart + 1) c = '^'
+ re += c
+ continue
+ }
+
+ // if we already have a stateChar, then it means
+ // that there was something like ** or +? in there.
+ // Handle the stateChar, then proceed with this one.
+ self.debug('call clearStateChar %j', stateChar)
+ clearStateChar()
+ stateChar = c
+ // if extglob is disabled, then +(asdf|foo) isn't a thing.
+ // just clear the statechar *now*, rather than even diving into
+ // the patternList stuff.
+ if (options.noext) clearStateChar()
+ continue
+
+ case '(':
+ if (inClass) {
+ re += '('
+ continue
+ }
+
+ if (!stateChar) {
+ re += '\\('
+ continue
+ }
+
+ plType = stateChar
+ patternListStack.push({
+ type: plType,
+ start: i - 1,
+ reStart: re.length
+ })
+ // negation is (?:(?!js)[^/]*)
+ re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
+ this.debug('plType %j %j', stateChar, re)
+ stateChar = false
+ continue
+
+ case ')':
+ if (inClass || !patternListStack.length) {
+ re += '\\)'
+ continue
+ }
+
+ clearStateChar()
+ hasMagic = true
+ re += ')'
+ var pl = patternListStack.pop()
+ plType = pl.type
+ // negation is (?:(?!js)[^/]*)
+ // The others are (?:)
+ switch (plType) {
+ case '!':
+ negativeLists.push(pl)
+ re += ')[^/]*?)'
+ pl.reEnd = re.length
+ break
+ case '?':
+ case '+':
+ case '*':
+ re += plType
+ break
+ case '@': break // the default anyway
+ }
+ continue
+
+ case '|':
+ if (inClass || !patternListStack.length || escaping) {
+ re += '\\|'
+ escaping = false
+ continue
+ }
+
+ clearStateChar()
+ re += '|'
+ continue
+
+ // these are mostly the same in regexp and glob
+ case '[':
+ // swallow any state-tracking char before the [
+ clearStateChar()
+
+ if (inClass) {
+ re += '\\' + c
+ continue
+ }
+
+ inClass = true
+ classStart = i
+ reClassStart = re.length
+ re += c
+ continue
+
+ case ']':
+ // a right bracket shall lose its special
+ // meaning and represent itself in
+ // a bracket expression if it occurs
+ // first in the list. -- POSIX.2 2.8.3.2
+ if (i === classStart + 1 || !inClass) {
+ re += '\\' + c
+ escaping = false
+ continue
+ }
+
+ // handle the case where we left a class open.
+ // "[z-a]" is valid, equivalent to "\[z-a\]"
+ if (inClass) {
+ // split where the last [ was, make sure we don't have
+ // an invalid re. if so, re-walk the contents of the
+ // would-be class to re-translate any characters that
+ // were passed through as-is
+ // TODO: It would probably be faster to determine this
+ // without a try/catch and a new RegExp, but it's tricky
+ // to do safely. For now, this is safe and works.
+ var cs = pattern.substring(classStart + 1, i)
+ try {
+ RegExp('[' + cs + ']')
+ } catch (er) {
+ // not a valid class!
+ var sp = this.parse(cs, SUBPARSE)
+ re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
+ hasMagic = hasMagic || sp[1]
+ inClass = false
+ continue
+ }
+ }
+
+ // finish up the class.
+ hasMagic = true
+ inClass = false
+ re += c
+ continue
+
+ default:
+ // swallow any state char that wasn't consumed
+ clearStateChar()
+
+ if (escaping) {
+ // no need
+ escaping = false
+ } else if (reSpecials[c]
+ && !(c === '^' && inClass)) {
+ re += '\\'
+ }
+
+ re += c
+
+ } // switch
+ } // for
+
+ // handle the case where we left a class open.
+ // "[abc" is valid, equivalent to "\[abc"
+ if (inClass) {
+ // split where the last [ was, and escape it
+ // this is a huge pita. We now have to re-walk
+ // the contents of the would-be class to re-translate
+ // any characters that were passed through as-is
+ cs = pattern.substr(classStart + 1)
+ sp = this.parse(cs, SUBPARSE)
+ re = re.substr(0, reClassStart) + '\\[' + sp[0]
+ hasMagic = hasMagic || sp[1]
+ }
+
+ // handle the case where we had a +( thing at the *end*
+ // of the pattern.
+ // each pattern list stack adds 3 chars, and we need to go through
+ // and escape any | chars that were passed through as-is for the regexp.
+ // Go through and escape them, taking care not to double-escape any
+ // | chars that were already escaped.
+ for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
+ var tail = re.slice(pl.reStart + 3)
+ // maybe some even number of \, then maybe 1 \, followed by a |
+ tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
+ if (!$2) {
+ // the | isn't already escaped, so escape it.
+ $2 = '\\'
+ }
+
+ // need to escape all those slashes *again*, without escaping the
+ // one that we need for escaping the | character. As it works out,
+ // escaping an even number of slashes can be done by simply repeating
+ // it exactly after itself. That's why this trick works.
+ //
+ // I am sorry that you have to see this.
+ return $1 + $1 + $2 + '|'
+ })
+
+ this.debug('tail=%j\n %s', tail, tail)
+ var t = pl.type === '*' ? star
+ : pl.type === '?' ? qmark
+ : '\\' + pl.type
+
+ hasMagic = true
+ re = re.slice(0, pl.reStart) + t + '\\(' + tail
+ }
+
+ // handle trailing things that only matter at the very end.
+ clearStateChar()
+ if (escaping) {
+ // trailing \\
+ re += '\\\\'
+ }
+
+ // only need to apply the nodot start if the re starts with
+ // something that could conceivably capture a dot
+ var addPatternStart = false
+ switch (re.charAt(0)) {
+ case '.':
+ case '[':
+ case '(': addPatternStart = true
+ }
+
+ // Hack to work around lack of negative lookbehind in JS
+ // A pattern like: *.!(x).!(y|z) needs to ensure that a name
+ // like 'a.xyz.yz' doesn't match. So, the first negative
+ // lookahead, has to look ALL the way ahead, to the end of
+ // the pattern.
+ for (var n = negativeLists.length - 1; n > -1; n--) {
+ var nl = negativeLists[n]
+
+ var nlBefore = re.slice(0, nl.reStart)
+ var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
+ var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
+ var nlAfter = re.slice(nl.reEnd)
+
+ nlLast += nlAfter
+
+ // Handle nested stuff like *(*.js|!(*.json)), where open parens
+ // mean that we should *not* include the ) in the bit that is considered
+ // "after" the negated section.
+ var openParensBefore = nlBefore.split('(').length - 1
+ var cleanAfter = nlAfter
+ for (i = 0; i < openParensBefore; i++) {
+ cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
+ }
+ nlAfter = cleanAfter
+
+ var dollar = ''
+ if (nlAfter === '' && isSub !== SUBPARSE) {
+ dollar = '$'
+ }
+ var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
+ re = newRe
+ }
+
+ // if the re is not "" at this point, then we need to make sure
+ // it doesn't match against an empty path part.
+ // Otherwise a/* will match a/, which it should not.
+ if (re !== '' && hasMagic) {
+ re = '(?=.)' + re
+ }
+
+ if (addPatternStart) {
+ re = patternStart + re
+ }
+
+ // parsing just a piece of a larger pattern.
+ if (isSub === SUBPARSE) {
+ return [re, hasMagic]
+ }
+
+ // skip the regexp for non-magical patterns
+ // unescape anything in it, though, so that it'll be
+ // an exact match against a file etc.
+ if (!hasMagic) {
+ return globUnescape(pattern)
+ }
+
+ var flags = options.nocase ? 'i' : ''
+ var regExp = new RegExp('^' + re + '$', flags)
+
+ regExp._glob = pattern
+ regExp._src = re
+
+ return regExp
+}
+
+minimatch.makeRe = function (pattern, options) {
+ return new Minimatch(pattern, options || {}).makeRe()
+}
+
+Minimatch.prototype.makeRe = makeRe
+function makeRe () {
+ if (this.regexp || this.regexp === false) return this.regexp
+
+ // at this point, this.set is a 2d array of partial
+ // pattern strings, or "**".
+ //
+ // It's better to use .match(). This function shouldn't
+ // be used, really, but it's pretty convenient sometimes,
+ // when you just want to work with a regex.
+ var set = this.set
+
+ if (!set.length) {
+ this.regexp = false
+ return this.regexp
+ }
+ var options = this.options
+
+ var twoStar = options.noglobstar ? star
+ : options.dot ? twoStarDot
+ : twoStarNoDot
+ var flags = options.nocase ? 'i' : ''
+
+ var re = set.map(function (pattern) {
+ return pattern.map(function (p) {
+ return (p === GLOBSTAR) ? twoStar
+ : (typeof p === 'string') ? regExpEscape(p)
+ : p._src
+ }).join('\\\/')
+ }).join('|')
+
+ // must match entire pattern
+ // ending in a * or ** will make it less strict.
+ re = '^(?:' + re + ')$'
+
+ // can match anything, as long as it's not this.
+ if (this.negate) re = '^(?!' + re + ').*$'
+
+ try {
+ this.regexp = new RegExp(re, flags)
+ } catch (ex) {
+ this.regexp = false
+ }
+ return this.regexp
+}
+
+minimatch.match = function (list, pattern, options) {
+ options = options || {}
+ var mm = new Minimatch(pattern, options)
+ list = list.filter(function (f) {
+ return mm.match(f)
+ })
+ if (mm.options.nonull && !list.length) {
+ list.push(pattern)
+ }
+ return list
+}
+
+Minimatch.prototype.match = match
+function match (f, partial) {
+ this.debug('match', f, this.pattern)
+ // short-circuit in the case of busted things.
+ // comments, etc.
+ if (this.comment) return false
+ if (this.empty) return f === ''
+
+ if (f === '/' && partial) return true
+
+ var options = this.options
+
+ // windows: need to use /, not \
+ if (path.sep !== '/') {
+ f = f.split(path.sep).join('/')
+ }
+
+ // treat the test path as a set of pathparts.
+ f = f.split(slashSplit)
+ this.debug(this.pattern, 'split', f)
+
+ // just ONE of the pattern sets in this.set needs to match
+ // in order for it to be valid. If negating, then just one
+ // match means that we have failed.
+ // Either way, return on the first hit.
+
+ var set = this.set
+ this.debug(this.pattern, 'set', set)
+
+ // Find the basename of the path by looking for the last non-empty segment
+ var filename
+ var i
+ for (i = f.length - 1; i >= 0; i--) {
+ filename = f[i]
+ if (filename) break
+ }
+
+ for (i = 0; i < set.length; i++) {
+ var pattern = set[i]
+ var file = f
+ if (options.matchBase && pattern.length === 1) {
+ file = [filename]
+ }
+ var hit = this.matchOne(file, pattern, partial)
+ if (hit) {
+ if (options.flipNegate) return true
+ return !this.negate
+ }
+ }
+
+ // didn't get any hits. this is success if it's a negative
+ // pattern, failure otherwise.
+ if (options.flipNegate) return false
+ return this.negate
+}
+
+// set partial to true to test if, for example,
+// "/a/b" matches the start of "/*/b/*/d"
+// Partial means, if you run out of file before you run
+// out of pattern, then that's fine, as long as all
+// the parts match.
+Minimatch.prototype.matchOne = function (file, pattern, partial) {
+ var options = this.options
+
+ this.debug('matchOne',
+ { 'this': this, file: file, pattern: pattern })
+
+ this.debug('matchOne', file.length, pattern.length)
+
+ for (var fi = 0,
+ pi = 0,
+ fl = file.length,
+ pl = pattern.length
+ ; (fi < fl) && (pi < pl)
+ ; fi++, pi++) {
+ this.debug('matchOne loop')
+ var p = pattern[pi]
+ var f = file[fi]
+
+ this.debug(pattern, p, f)
+
+ // should be impossible.
+ // some invalid regexp stuff in the set.
+ if (p === false) return false
+
+ if (p === GLOBSTAR) {
+ this.debug('GLOBSTAR', [pattern, p, f])
+
+ // "**"
+ // a/**/b/**/c would match the following:
+ // a/b/x/y/z/c
+ // a/x/y/z/b/c
+ // a/b/x/b/x/c
+ // a/b/c
+ // To do this, take the rest of the pattern after
+ // the **, and see if it would match the file remainder.
+ // If so, return success.
+ // If not, the ** "swallows" a segment, and try again.
+ // This is recursively awful.
+ //
+ // a/**/b/**/c matching a/b/x/y/z/c
+ // - a matches a
+ // - doublestar
+ // - matchOne(b/x/y/z/c, b/**/c)
+ // - b matches b
+ // - doublestar
+ // - matchOne(x/y/z/c, c) -> no
+ // - matchOne(y/z/c, c) -> no
+ // - matchOne(z/c, c) -> no
+ // - matchOne(c, c) yes, hit
+ var fr = fi
+ var pr = pi + 1
+ if (pr === pl) {
+ this.debug('** at the end')
+ // a ** at the end will just swallow the rest.
+ // We have found a match.
+ // however, it will not swallow /.x, unless
+ // options.dot is set.
+ // . and .. are *never* matched by **, for explosively
+ // exponential reasons.
+ for (; fi < fl; fi++) {
+ if (file[fi] === '.' || file[fi] === '..' ||
+ (!options.dot && file[fi].charAt(0) === '.')) return false
+ }
+ return true
+ }
+
+ // ok, let's see if we can swallow whatever we can.
+ while (fr < fl) {
+ var swallowee = file[fr]
+
+ this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
+
+ // XXX remove this slice. Just pass the start index.
+ if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
+ this.debug('globstar found match!', fr, fl, swallowee)
+ // found a match.
+ return true
+ } else {
+ // can't swallow "." or ".." ever.
+ // can only swallow ".foo" when explicitly asked.
+ if (swallowee === '.' || swallowee === '..' ||
+ (!options.dot && swallowee.charAt(0) === '.')) {
+ this.debug('dot detected!', file, fr, pattern, pr)
+ break
+ }
+
+ // ** swallows a segment, and continue.
+ this.debug('globstar swallow a segment, and continue')
+ fr++
+ }
+ }
+
+ // no match was found.
+ // However, in partial mode, we can't say this is necessarily over.
+ // If there's more *pattern* left, then
+ if (partial) {
+ // ran out of file
+ this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
+ if (fr === fl) return true
+ }
+ return false
+ }
+
+ // something other than **
+ // non-magic patterns just have to match exactly
+ // patterns with magic have been turned into regexps.
+ var hit
+ if (typeof p === 'string') {
+ if (options.nocase) {
+ hit = f.toLowerCase() === p.toLowerCase()
+ } else {
+ hit = f === p
+ }
+ this.debug('string match', p, f, hit)
+ } else {
+ hit = f.match(p)
+ this.debug('pattern match', p, f, hit)
+ }
+
+ if (!hit) return false
+ }
+
+ // Note: ending in / means that we'll get a final ""
+ // at the end of the pattern. This can only match a
+ // corresponding "" at the end of the file.
+ // If the file ends in /, then it can only match a
+ // a pattern that ends in /, unless the pattern just
+ // doesn't have any more for it. But, a/b/ should *not*
+ // match "a/b/*", even though "" matches against the
+ // [^/]*? pattern, except in partial mode, where it might
+ // simply not be reached yet.
+ // However, a/b/ should still satisfy a/*
+
+ // now either we fell off the end of the pattern, or we're done.
+ if (fi === fl && pi === pl) {
+ // ran out of pattern and filename at the same time.
+ // an exact hit!
+ return true
+ } else if (fi === fl) {
+ // ran out of file, but still had pattern left.
+ // this is ok if we're doing the match as part of
+ // a glob fs traversal.
+ return partial
+ } else if (pi === pl) {
+ // ran out of pattern, still have file left.
+ // this is only acceptable if we're on the very last
+ // empty segment of a file with a trailing slash.
+ // a/* should match a/b/
+ var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
+ return emptyFileEnd
+ }
+
+ // should be unreachable.
+ throw new Error('wtf?')
+}
+
+// replace stuff like \* with *
+function globUnescape (s) {
+ return s.replace(/\\(.)/g, '$1')
+}
+
+function regExpEscape (s) {
+ return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore
new file mode 100644
index 00000000000000..353546af2368e1
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore
@@ -0,0 +1,3 @@
+test
+.gitignore
+.travis.yml
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
new file mode 100644
index 00000000000000..b0d793ed5d9016
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
@@ -0,0 +1,122 @@
+# brace-expansion
+
+[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
+as known from sh/bash, in JavaScript.
+
+[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
+[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
+
+[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
+
+## Example
+
+```js
+var expand = require('brace-expansion');
+
+expand('file-{a,b,c}.jpg')
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
+
+expand('-v{,,}')
+// => ['-v', '-v', '-v']
+
+expand('file{0..2}.jpg')
+// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
+
+expand('file-{a..c}.jpg')
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
+
+expand('file{2..0}.jpg')
+// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
+
+expand('file{0..4..2}.jpg')
+// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
+
+expand('file-{a..e..2}.jpg')
+// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
+
+expand('file{00..10..5}.jpg')
+// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
+
+expand('{{A..C},{a..c}}')
+// => ['A', 'B', 'C', 'a', 'b', 'c']
+
+expand('ppp{,config,oe{,conf}}')
+// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
+```
+
+## API
+
+```js
+var expand = require('brace-expansion');
+```
+
+### var expanded = expand(str)
+
+Return an array of all possible and valid expansions of `str`. If none are
+found, `[str]` is returned.
+
+Valid expansions are:
+
+```js
+/^(.*,)+(.+)?$/
+// {a,b,...}
+```
+
+A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
+
+```js
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
+// {x..y[..incr]}
+```
+
+A numeric sequence from `x` to `y` inclusive, with optional increment.
+If `x` or `y` start with a leading `0`, all the numbers will be padded
+to have equal length. Negative numbers and backwards iteration work too.
+
+```js
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
+// {x..y[..incr]}
+```
+
+An alphabetic sequence from `x` to `y` inclusive, with optional increment.
+`x` and `y` must be exactly one character, and if given, `incr` must be a
+number.
+
+For compatibility reasons, the string `${` is not eligible for brace expansion.
+
+## Installation
+
+With [npm](https://npmjs.org) do:
+
+```bash
+npm install brace-expansion
+```
+
+## Contributors
+
+- [Julian Gruber](https://github.com/juliangruber)
+- [Isaac Z. Schlueter](https://github.com/isaacs)
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
new file mode 100644
index 00000000000000..36cde4de5c114b
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
@@ -0,0 +1,7 @@
+var expand = require('./');
+
+console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html'));
+console.log(expand('http://www.numericals.com/file{1..100..10}.txt'));
+console.log(expand('http://www.letters.com/file{a..z..2}.txt'));
+console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}'));
+console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}'));
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
new file mode 100644
index 00000000000000..abe535df327354
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
@@ -0,0 +1,190 @@
+var concatMap = require('concat-map');
+var balanced = require('balanced-match');
+
+module.exports = expandTop;
+
+var escSlash = '\0SLASH'+Math.random()+'\0';
+var escOpen = '\0OPEN'+Math.random()+'\0';
+var escClose = '\0CLOSE'+Math.random()+'\0';
+var escComma = '\0COMMA'+Math.random()+'\0';
+var escPeriod = '\0PERIOD'+Math.random()+'\0';
+
+function numeric(str) {
+ return parseInt(str, 10) == str
+ ? parseInt(str, 10)
+ : str.charCodeAt(0);
+}
+
+function escapeBraces(str) {
+ return str.split('\\\\').join(escSlash)
+ .split('\\{').join(escOpen)
+ .split('\\}').join(escClose)
+ .split('\\,').join(escComma)
+ .split('\\.').join(escPeriod);
+}
+
+function unescapeBraces(str) {
+ return str.split(escSlash).join('\\')
+ .split(escOpen).join('{')
+ .split(escClose).join('}')
+ .split(escComma).join(',')
+ .split(escPeriod).join('.');
+}
+
+
+// Basically just str.split(","), but handling cases
+// where we have nested braced sections, which should be
+// treated as individual members, like {a,{b,c},d}
+function parseCommaParts(str) {
+ if (!str)
+ return [''];
+
+ var parts = [];
+ var m = balanced('{', '}', str);
+
+ if (!m)
+ return str.split(',');
+
+ var pre = m.pre;
+ var body = m.body;
+ var post = m.post;
+ var p = pre.split(',');
+
+ p[p.length-1] += '{' + body + '}';
+ var postParts = parseCommaParts(post);
+ if (post.length) {
+ p[p.length-1] += postParts.shift();
+ p.push.apply(p, postParts);
+ }
+
+ parts.push.apply(parts, p);
+
+ return parts;
+}
+
+function expandTop(str) {
+ if (!str)
+ return [];
+
+ return expand(escapeBraces(str), true).map(unescapeBraces);
+}
+
+function identity(e) {
+ return e;
+}
+
+function embrace(str) {
+ return '{' + str + '}';
+}
+function isPadded(el) {
+ return /^-?0\d/.test(el);
+}
+
+function lte(i, y) {
+ return i <= y;
+}
+function gte(i, y) {
+ return i >= y;
+}
+
+function expand(str, isTop) {
+ var expansions = [];
+
+ var m = balanced('{', '}', str);
+ if (!m || /\$$/.test(m.pre)) return [str];
+
+ var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
+ var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
+ var isSequence = isNumericSequence || isAlphaSequence;
+ var isOptions = /^(.*,)+(.+)?$/.test(m.body);
+ if (!isSequence && !isOptions) {
+ // {a},b}
+ if (m.post.match(/,.*\}/)) {
+ str = m.pre + '{' + m.body + escClose + m.post;
+ return expand(str);
+ }
+ return [str];
+ }
+
+ var n;
+ if (isSequence) {
+ n = m.body.split(/\.\./);
+ } else {
+ n = parseCommaParts(m.body);
+ if (n.length === 1) {
+ // x{{a,b}}y ==> x{a}y x{b}y
+ n = expand(n[0], false).map(embrace);
+ if (n.length === 1) {
+ var post = m.post.length
+ ? expand(m.post, false)
+ : [''];
+ return post.map(function(p) {
+ return m.pre + n[0] + p;
+ });
+ }
+ }
+ }
+
+ // at this point, n is the parts, and we know it's not a comma set
+ // with a single entry.
+
+ // no need to expand pre, since it is guaranteed to be free of brace-sets
+ var pre = m.pre;
+ var post = m.post.length
+ ? expand(m.post, false)
+ : [''];
+
+ var N;
+
+ if (isSequence) {
+ var x = numeric(n[0]);
+ var y = numeric(n[1]);
+ var width = Math.max(n[0].length, n[1].length)
+ var incr = n.length == 3
+ ? Math.abs(numeric(n[2]))
+ : 1;
+ var test = lte;
+ var reverse = y < x;
+ if (reverse) {
+ incr *= -1;
+ test = gte;
+ }
+ var pad = n.some(isPadded);
+
+ N = [];
+
+ for (var i = x; test(i, y); i += incr) {
+ var c;
+ if (isAlphaSequence) {
+ c = String.fromCharCode(i);
+ if (c === '\\')
+ c = '';
+ } else {
+ c = String(i);
+ if (pad) {
+ var need = width - c.length;
+ if (need > 0) {
+ var z = new Array(need + 1).join('0');
+ if (i < 0)
+ c = '-' + z + c.slice(1);
+ else
+ c = z + c;
+ }
+ }
+ }
+ N.push(c);
+ }
+ } else {
+ N = concatMap(n, function(el) { return expand(el, false) });
+ }
+
+ for (var j = 0; j < N.length; j++) {
+ for (var k = 0; k < post.length; k++) {
+ var expansion = pre + N[j] + post[k];
+ if (!isTop || isSequence || expansion)
+ expansions.push(expansion);
+ }
+ }
+
+ return expansions;
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
similarity index 56%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore
rename to deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
index 926ddf616c7c12..fd4f2b066b339e 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
@@ -1,3 +1,2 @@
-*~
-.#*
node_modules
+.DS_Store
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
new file mode 100644
index 00000000000000..6e5919de39a312
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+ - "0.10"
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
new file mode 100644
index 00000000000000..2cdc8e4148cc0a
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
@@ -0,0 +1,21 @@
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
new file mode 100644
index 00000000000000..dd2730cfde0cab
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
@@ -0,0 +1,5 @@
+
+test:
+ @node_modules/.bin/tape test/*.js
+
+.PHONY: test
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
new file mode 100644
index 00000000000000..421f3aa5f951a2
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
@@ -0,0 +1,89 @@
+# balanced-match
+
+Match balanced string pairs, like `{` and `}` or `` and ``.
+
+[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
+[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
+
+[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
+
+## Example
+
+Get the first matching pair of braces:
+
+```js
+var balanced = require('balanced-match');
+
+console.log(balanced('{', '}', 'pre{in{nested}}post'));
+console.log(balanced('{', '}', 'pre{first}between{second}post'));
+```
+
+The matches are:
+
+```bash
+$ node example.js
+{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
+{ start: 3,
+ end: 9,
+ pre: 'pre',
+ body: 'first',
+ post: 'between{second}post' }
+```
+
+## API
+
+### var m = balanced(a, b, str)
+
+For the first non-nested matching pair of `a` and `b` in `str`, return an
+object with those keys:
+
+* **start** the index of the first match of `a`
+* **end** the index of the matching `b`
+* **pre** the preamble, `a` and `b` not included
+* **body** the match, `a` and `b` not included
+* **post** the postscript, `a` and `b` not included
+
+If there's no match, `undefined` will be returned.
+
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`.
+
+### var r = balanced.range(a, b, str)
+
+For the first non-nested matching pair of `a` and `b` in `str`, return an
+array with indexes: `[ , ]`.
+
+If there's no match, `undefined` will be returned.
+
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`.
+
+## Installation
+
+With [npm](https://npmjs.org) do:
+
+```bash
+npm install balanced-match
+```
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
new file mode 100644
index 00000000000000..9ce76f480a4321
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
@@ -0,0 +1,4 @@
+var balanced = require('./');
+
+console.log(balanced('{', '}', 'pre{in{nested}}post'));
+console.log(balanced('{', '}', 'pre{first}between{second}post'));
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
new file mode 100644
index 00000000000000..75f3d71cba90bc
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
@@ -0,0 +1,50 @@
+module.exports = balanced;
+function balanced(a, b, str) {
+ var r = range(a, b, str);
+
+ return r && {
+ start: r[0],
+ end: r[1],
+ pre: str.slice(0, r[0]),
+ body: str.slice(r[0] + a.length, r[1]),
+ post: str.slice(r[1] + b.length)
+ };
+}
+
+balanced.range = range;
+function range(a, b, str) {
+ var begs, beg, left, right, result;
+ var ai = str.indexOf(a);
+ var bi = str.indexOf(b, ai + 1);
+ var i = ai;
+
+ if (ai >= 0 && bi > 0) {
+ begs = [];
+ left = str.length;
+
+ while (i < str.length && i >= 0 && ! result) {
+ if (i == ai) {
+ begs.push(i);
+ ai = str.indexOf(a, i + 1);
+ } else if (begs.length == 1) {
+ result = [ begs.pop(), bi ];
+ } else {
+ beg = begs.pop();
+ if (beg < left) {
+ left = beg;
+ right = bi;
+ }
+
+ bi = str.indexOf(b, i + 1);
+ }
+
+ i = ai < bi && ai >= 0 ? ai : bi;
+ }
+
+ if (begs.length) {
+ result = [ left, right ];
+ }
+ }
+
+ return result;
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
new file mode 100644
index 00000000000000..652900ae4cc29b
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
@@ -0,0 +1,100 @@
+{
+ "_args": [
+ [
+ "balanced-match@^0.3.0",
+ "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ],
+ [
+ "balanced-match@^0.3.0",
+ "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ]
+ ],
+ "_from": "balanced-match@>=0.3.0 <0.4.0",
+ "_id": "balanced-match@0.3.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/init-package-json/glob/minimatch/brace-expansion/balanced-match",
+ "_nodeVersion": "4.2.1",
+ "_npmUser": {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ },
+ "_npmVersion": "2.14.7",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "balanced-match",
+ "raw": "balanced-match@^0.3.0",
+ "rawSpec": "^0.3.0",
+ "scope": null,
+ "spec": ">=0.3.0 <0.4.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/init-package-json/glob/minimatch/brace-expansion"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "balanced-match@^0.3.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
+ "author": {
+ "email": "mail@juliangruber.com",
+ "name": "Julian Gruber",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/balanced-match/issues"
+ },
+ "dependencies": {},
+ "description": "Match balanced character pairs, like \"{\" and \"}\"",
+ "devDependencies": {
+ "tape": "~4.2.2"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756",
+ "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz"
+ },
+ "gitHead": "a7114b0986554787e90b7ac595a043ca75ea77e5",
+ "homepage": "https://github.com/juliangruber/balanced-match",
+ "keywords": [
+ "match",
+ "regexp",
+ "test",
+ "balanced",
+ "parse"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ }
+ ],
+ "name": "balanced-match",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/balanced-match.git"
+ },
+ "scripts": {
+ "test": "make test"
+ },
+ "testling": {
+ "browsers": [
+ "ie/8..latest",
+ "firefox/20..latest",
+ "firefox/nightly",
+ "chrome/25..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ],
+ "files": "test/*.js"
+ },
+ "version": "0.3.0"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
new file mode 100644
index 00000000000000..f5e98e3f2a3240
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
@@ -0,0 +1,84 @@
+var test = require('tape');
+var balanced = require('..');
+
+test('balanced', function(t) {
+ t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), {
+ start: 3,
+ end: 12,
+ pre: 'pre',
+ body: 'in{nest}',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), {
+ start: 8,
+ end: 11,
+ pre: '{{{{{{{{',
+ body: 'in',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre{body{in}post'), {
+ start: 8,
+ end: 11,
+ pre: 'pre{body',
+ body: 'in',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), {
+ start: 4,
+ end: 13,
+ pre: 'pre}',
+ body: 'in{nest}',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), {
+ start: 3,
+ end: 8,
+ pre: 'pre',
+ body: 'body',
+ post: 'between{body2}post'
+ });
+ t.notOk(balanced('{', '}', 'nope'), 'should be notOk');
+ t.deepEqual(balanced('', '', 'preinnestpost'), {
+ start: 3,
+ end: 19,
+ pre: 'pre',
+ body: 'innest',
+ post: 'post'
+ });
+ t.deepEqual(balanced('', '', 'preinnestpost'), {
+ start: 7,
+ end: 23,
+ pre: 'pre',
+ body: 'innest',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), {
+ start: 3,
+ end: 9,
+ pre: 'pre',
+ body: '{in}',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), {
+ start: 3,
+ end: 8,
+ pre: 'pre',
+ body: 'in',
+ post: '}post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), {
+ start: 4,
+ end: 10,
+ pre: 'pre{',
+ body: 'first',
+ post: 'in{second}post'
+ });
+ t.deepEqual(balanced('', '?>', 'pre>post'), {
+ start: 3,
+ end: 4,
+ pre: 'pre',
+ body: '',
+ post: 'post'
+ });
+ t.end();
+});
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
new file mode 100644
index 00000000000000..f1d0f13c8a54d0
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - 0.4
+ - 0.6
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
new file mode 100644
index 00000000000000..ee27ba4b4412b0
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
@@ -0,0 +1,18 @@
+This software is released under the MIT license:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
new file mode 100644
index 00000000000000..408f70a1be473c
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
@@ -0,0 +1,62 @@
+concat-map
+==========
+
+Concatenative mapdashery.
+
+[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
+
+[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
+
+example
+=======
+
+``` js
+var concatMap = require('concat-map');
+var xs = [ 1, 2, 3, 4, 5, 6 ];
+var ys = concatMap(xs, function (x) {
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+});
+console.dir(ys);
+```
+
+***
+
+```
+[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
+```
+
+methods
+=======
+
+``` js
+var concatMap = require('concat-map')
+```
+
+concatMap(xs, fn)
+-----------------
+
+Return an array of concatenated elements by calling `fn(x, i)` for each element
+`x` and each index `i` in the array `xs`.
+
+When `fn(x, i)` returns an array, its result will be concatenated with the
+result array. If `fn(x, i)` returns anything else, that value will be pushed
+onto the end of the result array.
+
+install
+=======
+
+With [npm](http://npmjs.org) do:
+
+```
+npm install concat-map
+```
+
+license
+=======
+
+MIT
+
+notes
+=====
+
+This module was written while sitting high above the ground in a tree.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
new file mode 100644
index 00000000000000..33656217b61d8f
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
@@ -0,0 +1,6 @@
+var concatMap = require('../');
+var xs = [ 1, 2, 3, 4, 5, 6 ];
+var ys = concatMap(xs, function (x) {
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+});
+console.dir(ys);
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
new file mode 100644
index 00000000000000..b29a7812e5055a
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
@@ -0,0 +1,13 @@
+module.exports = function (xs, fn) {
+ var res = [];
+ for (var i = 0; i < xs.length; i++) {
+ var x = fn(xs[i], i);
+ if (isArray(x)) res.push.apply(res, x);
+ else res.push(x);
+ }
+ return res;
+};
+
+var isArray = Array.isArray || function (xs) {
+ return Object.prototype.toString.call(xs) === '[object Array]';
+};
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
new file mode 100644
index 00000000000000..9b6c500890ddd5
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
@@ -0,0 +1,111 @@
+{
+ "_args": [
+ [
+ "concat-map@0.0.1",
+ "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ],
+ [
+ "concat-map@0.0.1",
+ "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ]
+ ],
+ "_from": "concat-map@0.0.1",
+ "_id": "concat-map@0.0.1",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/init-package-json/glob/minimatch/brace-expansion/concat-map",
+ "_npmUser": {
+ "email": "mail@substack.net",
+ "name": "substack"
+ },
+ "_npmVersion": "1.3.21",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "concat-map",
+ "raw": "concat-map@0.0.1",
+ "rawSpec": "0.0.1",
+ "scope": null,
+ "spec": "0.0.1",
+ "type": "version"
+ },
+ "_requiredBy": [
+ "/init-package-json/glob/minimatch/brace-expansion"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "concat-map@0.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
+ "author": {
+ "email": "mail@substack.net",
+ "name": "James Halliday",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/substack/node-concat-map/issues"
+ },
+ "dependencies": {},
+ "description": "concatenative mapdashery",
+ "devDependencies": {
+ "tape": "~2.4.0"
+ },
+ "directories": {
+ "example": "example",
+ "test": "test"
+ },
+ "dist": {
+ "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
+ "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ },
+ "homepage": "https://github.com/substack/node-concat-map",
+ "keywords": [
+ "concat",
+ "concatMap",
+ "map",
+ "functional",
+ "higher-order"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "mail@substack.net",
+ "name": "substack"
+ }
+ ],
+ "name": "concat-map",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/substack/node-concat-map.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "testling": {
+ "browsers": {
+ "chrome": [
+ 10,
+ 22
+ ],
+ "ff": [
+ 3.5,
+ 10,
+ 15
+ ],
+ "ie": [
+ 6,
+ 7,
+ 8,
+ 9
+ ],
+ "opera": [
+ 12
+ ],
+ "safari": [
+ 5.1
+ ]
+ },
+ "files": "test/*.js"
+ },
+ "version": "0.0.1"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
new file mode 100644
index 00000000000000..fdbd7022f6da17
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
@@ -0,0 +1,39 @@
+var concatMap = require('../');
+var test = require('tape');
+
+test('empty or not', function (t) {
+ var xs = [ 1, 2, 3, 4, 5, 6 ];
+ var ixes = [];
+ var ys = concatMap(xs, function (x, ix) {
+ ixes.push(ix);
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+ });
+ t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
+ t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
+ t.end();
+});
+
+test('always something', function (t) {
+ var xs = [ 'a', 'b', 'c', 'd' ];
+ var ys = concatMap(xs, function (x) {
+ return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
+ });
+ t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
+ t.end();
+});
+
+test('scalars', function (t) {
+ var xs = [ 'a', 'b', 'c', 'd' ];
+ var ys = concatMap(xs, function (x) {
+ return x === 'b' ? [ 'B', 'B', 'B' ] : x;
+ });
+ t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
+ t.end();
+});
+
+test('undefs', function (t) {
+ var xs = [ 'a', 'b', 'c', 'd' ];
+ var ys = concatMap(xs, function () {});
+ t.same(ys, [ undefined, undefined, undefined, undefined ]);
+ t.end();
+});
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
new file mode 100644
index 00000000000000..1c2bcddd5af779
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
@@ -0,0 +1,106 @@
+{
+ "_args": [
+ [
+ "brace-expansion@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch"
+ ],
+ [
+ "brace-expansion@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch"
+ ]
+ ],
+ "_from": "brace-expansion@>=1.0.0 <2.0.0",
+ "_id": "brace-expansion@1.1.3",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/init-package-json/glob/minimatch/brace-expansion",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168"
+ },
+ "_npmUser": {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ },
+ "_npmVersion": "3.3.12",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "brace-expansion",
+ "raw": "brace-expansion@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/init-package-json/glob/minimatch"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "brace-expansion@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch",
+ "author": {
+ "email": "mail@juliangruber.com",
+ "name": "Julian Gruber",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/brace-expansion/issues"
+ },
+ "dependencies": {
+ "balanced-match": "^0.3.0",
+ "concat-map": "0.0.1"
+ },
+ "description": "Brace expansion as known from sh/bash",
+ "devDependencies": {
+ "tape": "4.4.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
+ "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz"
+ },
+ "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231",
+ "homepage": "https://github.com/juliangruber/brace-expansion",
+ "keywords": [],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ },
+ {
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
+ }
+ ],
+ "name": "brace-expansion",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/brace-expansion.git"
+ },
+ "scripts": {
+ "gentest": "bash test/generate.sh",
+ "test": "tape test/*.js"
+ },
+ "testling": {
+ "browsers": [
+ "ie/8..latest",
+ "firefox/20..latest",
+ "firefox/nightly",
+ "chrome/25..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ],
+ "files": "test/*.js"
+ },
+ "version": "1.1.3"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/package.json
new file mode 100644
index 00000000000000..ded42917e5f997
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/package.json
@@ -0,0 +1,87 @@
+{
+ "_args": [
+ [
+ "minimatch@2 || 3",
+ "/Users/rebecca/code/npm/node_modules/glob"
+ ],
+ [
+ "minimatch@2 || 3",
+ "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob"
+ ]
+ ],
+ "_from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "_id": "minimatch@3.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/init-package-json/glob/minimatch",
+ "_nodeVersion": "4.0.0",
+ "_npmUser": {
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
+ },
+ "_npmVersion": "3.3.2",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "minimatch",
+ "raw": "minimatch@2 || 3",
+ "rawSpec": "2 || 3",
+ "scope": null,
+ "spec": ">=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/init-package-json/glob"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "minimatch@2 || 3",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob",
+ "author": {
+ "email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
+ "url": "http://blog.izs.me"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/minimatch/issues"
+ },
+ "dependencies": {
+ "brace-expansion": "^1.0.0"
+ },
+ "description": "a glob matcher in javascript",
+ "devDependencies": {
+ "standard": "^3.7.2",
+ "tap": "^1.2.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83",
+ "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "minimatch.js"
+ ],
+ "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20",
+ "homepage": "https://github.com/isaacs/minimatch#readme",
+ "license": "ISC",
+ "main": "minimatch.js",
+ "maintainers": [
+ {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ }
+ ],
+ "name": "minimatch",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/minimatch.git"
+ },
+ "scripts": {
+ "posttest": "standard minimatch.js test/*.js",
+ "test": "tap test/*.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/index.js b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/index.js
new file mode 100644
index 00000000000000..19f103f908ac72
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/index.js
@@ -0,0 +1,20 @@
+'use strict';
+
+function posix(path) {
+ return path.charAt(0) === '/';
+};
+
+function win32(path) {
+ // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
+ var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
+ var result = splitDeviceRe.exec(path);
+ var device = result[1] || '';
+ var isUnc = !!device && device.charAt(1) !== ':';
+
+ // UNC paths are always absolute
+ return !!result[2] || isUnc;
+};
+
+module.exports = process.platform === 'win32' ? win32 : posix;
+module.exports.posix = posix;
+module.exports.win32 = win32;
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/license b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/license
new file mode 100644
index 00000000000000..654d0bfe943437
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
new file mode 100644
index 00000000000000..3fc29597c545c7
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
@@ -0,0 +1,99 @@
+{
+ "_args": [
+ [
+ "path-is-absolute@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/glob"
+ ],
+ [
+ "path-is-absolute@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob"
+ ]
+ ],
+ "_from": "path-is-absolute@>=1.0.0 <2.0.0",
+ "_id": "path-is-absolute@1.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/init-package-json/glob/path-is-absolute",
+ "_nodeVersion": "0.12.0",
+ "_npmUser": {
+ "email": "sindresorhus@gmail.com",
+ "name": "sindresorhus"
+ },
+ "_npmVersion": "2.5.1",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "path-is-absolute",
+ "raw": "path-is-absolute@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/init-package-json/glob"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "path-is-absolute@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json/node_modules/glob",
+ "author": {
+ "email": "sindresorhus@gmail.com",
+ "name": "Sindre Sorhus",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-is-absolute/issues"
+ },
+ "dependencies": {},
+ "description": "Node.js 0.12 path.isAbsolute() ponyfill",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912",
+ "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1",
+ "homepage": "https://github.com/sindresorhus/path-is-absolute",
+ "keywords": [
+ "path",
+ "paths",
+ "file",
+ "dir",
+ "absolute",
+ "isabsolute",
+ "is-absolute",
+ "built-in",
+ "util",
+ "utils",
+ "core",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "sindresorhus@gmail.com",
+ "name": "sindresorhus"
+ }
+ ],
+ "name": "path-is-absolute",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-is-absolute.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md
new file mode 100644
index 00000000000000..cdf94f4309a27e
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md
@@ -0,0 +1,51 @@
+# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute)
+
+> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill
+
+> Ponyfill: A polyfill that doesn't overwrite the native method
+
+
+## Install
+
+```
+$ npm install --save path-is-absolute
+```
+
+
+## Usage
+
+```js
+var pathIsAbsolute = require('path-is-absolute');
+
+// Linux
+pathIsAbsolute('/home/foo');
+//=> true
+
+// Windows
+pathIsAbsolute('C:/Users/');
+//=> true
+
+// Any OS
+pathIsAbsolute.posix('/home/foo');
+//=> true
+```
+
+
+## API
+
+See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path).
+
+### pathIsAbsolute(path)
+
+### pathIsAbsolute.posix(path)
+
+The Posix specific version.
+
+### pathIsAbsolute.win32(path)
+
+The Windows specific version.
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/package.json
new file mode 100644
index 00000000000000..1ce30a9b38b138
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/package.json
@@ -0,0 +1,98 @@
+{
+ "_args": [
+ [
+ "glob@^6.0.0",
+ "/Users/rebecca/code/npm/node_modules/init-package-json"
+ ]
+ ],
+ "_from": "glob@>=6.0.0 <7.0.0",
+ "_id": "glob@6.0.4",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/init-package-json/glob",
+ "_nodeVersion": "4.0.0",
+ "_npmUser": {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ },
+ "_npmVersion": "2.14.15",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "glob",
+ "raw": "glob@^6.0.0",
+ "rawSpec": "^6.0.0",
+ "scope": null,
+ "spec": ">=6.0.0 <7.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/init-package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
+ "_shrinkwrap": null,
+ "_spec": "glob@^6.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json",
+ "author": {
+ "email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-glob/issues"
+ },
+ "dependencies": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "description": "a little globber",
+ "devDependencies": {
+ "mkdirp": "0",
+ "rimraf": "^2.2.8",
+ "tap": "^5.0.0",
+ "tick": "0.0.6"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
+ "tarball": "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "glob.js",
+ "sync.js",
+ "common.js"
+ ],
+ "gitHead": "3bd419c538737e56fda7e21c21ff52ca0c198df6",
+ "homepage": "https://github.com/isaacs/node-glob#readme",
+ "license": "ISC",
+ "main": "glob.js",
+ "maintainers": [
+ {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ }
+ ],
+ "name": "glob",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-glob.git"
+ },
+ "scripts": {
+ "bench": "bash benchmark.sh",
+ "benchclean": "node benchclean.js",
+ "prepublish": "npm run benchclean",
+ "prof": "bash prof.sh && cat profile.txt",
+ "profclean": "rm -f v8.log profile.txt",
+ "test": "tap test/*.js --cov",
+ "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
+ },
+ "version": "6.0.4"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/sync.js b/deps/npm/node_modules/init-package-json/node_modules/glob/sync.js
new file mode 100644
index 00000000000000..09883d2ce0c9de
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/sync.js
@@ -0,0 +1,460 @@
+module.exports = globSync
+globSync.GlobSync = GlobSync
+
+var fs = require('fs')
+var minimatch = require('minimatch')
+var Minimatch = minimatch.Minimatch
+var Glob = require('./glob.js').Glob
+var util = require('util')
+var path = require('path')
+var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
+var common = require('./common.js')
+var alphasort = common.alphasort
+var alphasorti = common.alphasorti
+var setopts = common.setopts
+var ownProp = common.ownProp
+var childrenIgnored = common.childrenIgnored
+
+function globSync (pattern, options) {
+ if (typeof options === 'function' || arguments.length === 3)
+ throw new TypeError('callback provided to sync glob\n'+
+ 'See: https://github.com/isaacs/node-glob/issues/167')
+
+ return new GlobSync(pattern, options).found
+}
+
+function GlobSync (pattern, options) {
+ if (!pattern)
+ throw new Error('must provide pattern')
+
+ if (typeof options === 'function' || arguments.length === 3)
+ throw new TypeError('callback provided to sync glob\n'+
+ 'See: https://github.com/isaacs/node-glob/issues/167')
+
+ if (!(this instanceof GlobSync))
+ return new GlobSync(pattern, options)
+
+ setopts(this, pattern, options)
+
+ if (this.noprocess)
+ return this
+
+ var n = this.minimatch.set.length
+ this.matches = new Array(n)
+ for (var i = 0; i < n; i ++) {
+ this._process(this.minimatch.set[i], i, false)
+ }
+ this._finish()
+}
+
+GlobSync.prototype._finish = function () {
+ assert(this instanceof GlobSync)
+ if (this.realpath) {
+ var self = this
+ this.matches.forEach(function (matchset, index) {
+ var set = self.matches[index] = Object.create(null)
+ for (var p in matchset) {
+ try {
+ p = self._makeAbs(p)
+ var real = fs.realpathSync(p, self.realpathCache)
+ set[real] = true
+ } catch (er) {
+ if (er.syscall === 'stat')
+ set[self._makeAbs(p)] = true
+ else
+ throw er
+ }
+ }
+ })
+ }
+ common.finish(this)
+}
+
+
+GlobSync.prototype._process = function (pattern, index, inGlobStar) {
+ assert(this instanceof GlobSync)
+
+ // Get the first [n] parts of pattern that are all strings.
+ var n = 0
+ while (typeof pattern[n] === 'string') {
+ n ++
+ }
+ // now n is the index of the first one that is *not* a string.
+
+ // See if there's anything else
+ var prefix
+ switch (n) {
+ // if not, then this is rather simple
+ case pattern.length:
+ this._processSimple(pattern.join('/'), index)
+ return
+
+ case 0:
+ // pattern *starts* with some non-trivial item.
+ // going to readdir(cwd), but not include the prefix in matches.
+ prefix = null
+ break
+
+ default:
+ // pattern has some string bits in the front.
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
+ // or 'relative' like '../baz'
+ prefix = pattern.slice(0, n).join('/')
+ break
+ }
+
+ var remain = pattern.slice(n)
+
+ // get the list of entries.
+ var read
+ if (prefix === null)
+ read = '.'
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
+ if (!prefix || !isAbsolute(prefix))
+ prefix = '/' + prefix
+ read = prefix
+ } else
+ read = prefix
+
+ var abs = this._makeAbs(read)
+
+ //if ignored, skip processing
+ if (childrenIgnored(this, read))
+ return
+
+ var isGlobStar = remain[0] === minimatch.GLOBSTAR
+ if (isGlobStar)
+ this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
+ else
+ this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
+}
+
+
+GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
+ var entries = this._readdir(abs, inGlobStar)
+
+ // if the abs isn't a dir, then nothing can match!
+ if (!entries)
+ return
+
+ // It will only match dot entries if it starts with a dot, or if
+ // dot is set. Stuff like @(.foo|.bar) isn't allowed.
+ var pn = remain[0]
+ var negate = !!this.minimatch.negate
+ var rawGlob = pn._glob
+ var dotOk = this.dot || rawGlob.charAt(0) === '.'
+
+ var matchedEntries = []
+ for (var i = 0; i < entries.length; i++) {
+ var e = entries[i]
+ if (e.charAt(0) !== '.' || dotOk) {
+ var m
+ if (negate && !prefix) {
+ m = !e.match(pn)
+ } else {
+ m = e.match(pn)
+ }
+ if (m)
+ matchedEntries.push(e)
+ }
+ }
+
+ var len = matchedEntries.length
+ // If there are no matched entries, then nothing matches.
+ if (len === 0)
+ return
+
+ // if this is the last remaining pattern bit, then no need for
+ // an additional stat *unless* the user has specified mark or
+ // stat explicitly. We know they exist, since readdir returned
+ // them.
+
+ if (remain.length === 1 && !this.mark && !this.stat) {
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ if (prefix) {
+ if (prefix.slice(-1) !== '/')
+ e = prefix + '/' + e
+ else
+ e = prefix + e
+ }
+
+ if (e.charAt(0) === '/' && !this.nomount) {
+ e = path.join(this.root, e)
+ }
+ this.matches[index][e] = true
+ }
+ // This was the last one, and no stats were needed
+ return
+ }
+
+ // now test all matched entries as stand-ins for that part
+ // of the pattern.
+ remain.shift()
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ var newPattern
+ if (prefix)
+ newPattern = [prefix, e]
+ else
+ newPattern = [e]
+ this._process(newPattern.concat(remain), index, inGlobStar)
+ }
+}
+
+
+GlobSync.prototype._emitMatch = function (index, e) {
+ var abs = this._makeAbs(e)
+ if (this.mark)
+ e = this._mark(e)
+
+ if (this.matches[index][e])
+ return
+
+ if (this.nodir) {
+ var c = this.cache[this._makeAbs(e)]
+ if (c === 'DIR' || Array.isArray(c))
+ return
+ }
+
+ this.matches[index][e] = true
+ if (this.stat)
+ this._stat(e)
+}
+
+
+GlobSync.prototype._readdirInGlobStar = function (abs) {
+ // follow all symlinked directories forever
+ // just proceed as if this is a non-globstar situation
+ if (this.follow)
+ return this._readdir(abs, false)
+
+ var entries
+ var lstat
+ var stat
+ try {
+ lstat = fs.lstatSync(abs)
+ } catch (er) {
+ // lstat failed, doesn't exist
+ return null
+ }
+
+ var isSym = lstat.isSymbolicLink()
+ this.symlinks[abs] = isSym
+
+ // If it's not a symlink or a dir, then it's definitely a regular file.
+ // don't bother doing a readdir in that case.
+ if (!isSym && !lstat.isDirectory())
+ this.cache[abs] = 'FILE'
+ else
+ entries = this._readdir(abs, false)
+
+ return entries
+}
+
+GlobSync.prototype._readdir = function (abs, inGlobStar) {
+ var entries
+
+ if (inGlobStar && !ownProp(this.symlinks, abs))
+ return this._readdirInGlobStar(abs)
+
+ if (ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+ if (!c || c === 'FILE')
+ return null
+
+ if (Array.isArray(c))
+ return c
+ }
+
+ try {
+ return this._readdirEntries(abs, fs.readdirSync(abs))
+ } catch (er) {
+ this._readdirError(abs, er)
+ return null
+ }
+}
+
+GlobSync.prototype._readdirEntries = function (abs, entries) {
+ // if we haven't asked to stat everything, then just
+ // assume that everything in there exists, so we can avoid
+ // having to stat it a second time.
+ if (!this.mark && !this.stat) {
+ for (var i = 0; i < entries.length; i ++) {
+ var e = entries[i]
+ if (abs === '/')
+ e = abs + e
+ else
+ e = abs + '/' + e
+ this.cache[e] = true
+ }
+ }
+
+ this.cache[abs] = entries
+
+ // mark and cache dir-ness
+ return entries
+}
+
+GlobSync.prototype._readdirError = function (f, er) {
+ // handle errors, and cache the information
+ switch (er.code) {
+ case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+ case 'ENOTDIR': // totally normal. means it *does* exist.
+ this.cache[this._makeAbs(f)] = 'FILE'
+ break
+
+ case 'ENOENT': // not terribly unusual
+ case 'ELOOP':
+ case 'ENAMETOOLONG':
+ case 'UNKNOWN':
+ this.cache[this._makeAbs(f)] = false
+ break
+
+ default: // some unusual error. Treat as failure.
+ this.cache[this._makeAbs(f)] = false
+ if (this.strict)
+ throw er
+ if (!this.silent)
+ console.error('glob error', er)
+ break
+ }
+}
+
+GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
+
+ var entries = this._readdir(abs, inGlobStar)
+
+ // no entries means not a dir, so it can never have matches
+ // foo.txt/** doesn't match foo.txt
+ if (!entries)
+ return
+
+ // test without the globstar, and with every child both below
+ // and replacing the globstar.
+ var remainWithoutGlobStar = remain.slice(1)
+ var gspref = prefix ? [ prefix ] : []
+ var noGlobStar = gspref.concat(remainWithoutGlobStar)
+
+ // the noGlobStar pattern exits the inGlobStar state
+ this._process(noGlobStar, index, false)
+
+ var len = entries.length
+ var isSym = this.symlinks[abs]
+
+ // If it's a symlink, and we're in a globstar, then stop
+ if (isSym && inGlobStar)
+ return
+
+ for (var i = 0; i < len; i++) {
+ var e = entries[i]
+ if (e.charAt(0) === '.' && !this.dot)
+ continue
+
+ // these two cases enter the inGlobStar state
+ var instead = gspref.concat(entries[i], remainWithoutGlobStar)
+ this._process(instead, index, true)
+
+ var below = gspref.concat(entries[i], remain)
+ this._process(below, index, true)
+ }
+}
+
+GlobSync.prototype._processSimple = function (prefix, index) {
+ // XXX review this. Shouldn't it be doing the mounting etc
+ // before doing stat? kinda weird?
+ var exists = this._stat(prefix)
+
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ // If it doesn't exist, then just mark the lack of results
+ if (!exists)
+ return
+
+ if (prefix && isAbsolute(prefix) && !this.nomount) {
+ var trail = /[\/\\]$/.test(prefix)
+ if (prefix.charAt(0) === '/') {
+ prefix = path.join(this.root, prefix)
+ } else {
+ prefix = path.resolve(this.root, prefix)
+ if (trail)
+ prefix += '/'
+ }
+ }
+
+ if (process.platform === 'win32')
+ prefix = prefix.replace(/\\/g, '/')
+
+ // Mark this as a match
+ this.matches[index][prefix] = true
+}
+
+// Returns either 'DIR', 'FILE', or false
+GlobSync.prototype._stat = function (f) {
+ var abs = this._makeAbs(f)
+ var needDir = f.slice(-1) === '/'
+
+ if (f.length > this.maxLength)
+ return false
+
+ if (!this.stat && ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+
+ if (Array.isArray(c))
+ c = 'DIR'
+
+ // It exists, but maybe not how we need it
+ if (!needDir || c === 'DIR')
+ return c
+
+ if (needDir && c === 'FILE')
+ return false
+
+ // otherwise we have to stat, because maybe c=true
+ // if we know it exists, but not what it is.
+ }
+
+ var exists
+ var stat = this.statCache[abs]
+ if (!stat) {
+ var lstat
+ try {
+ lstat = fs.lstatSync(abs)
+ } catch (er) {
+ return false
+ }
+
+ if (lstat.isSymbolicLink()) {
+ try {
+ stat = fs.statSync(abs)
+ } catch (er) {
+ stat = lstat
+ }
+ } else {
+ stat = lstat
+ }
+ }
+
+ this.statCache[abs] = stat
+
+ var c = stat.isDirectory() ? 'DIR' : 'FILE'
+ this.cache[abs] = this.cache[abs] || c
+
+ if (needDir && c !== 'DIR')
+ return false
+
+ return c
+}
+
+GlobSync.prototype._mark = function (p) {
+ return common.mark(this, p)
+}
+
+GlobSync.prototype._makeAbs = function (f) {
+ return common.makeAbs(this, f)
+}
diff --git a/deps/npm/node_modules/lodash._baseuniq/LICENSE b/deps/npm/node_modules/lodash._baseuniq/LICENSE
index 9cd87e5dcefe58..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash._baseuniq/LICENSE
+++ b/deps/npm/node_modules/lodash._baseuniq/LICENSE
@@ -1,22 +1,23 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash._baseuniq/README.md b/deps/npm/node_modules/lodash._baseuniq/README.md
index ad71873dc90346..5e73270f91cf33 100644
--- a/deps/npm/node_modules/lodash._baseuniq/README.md
+++ b/deps/npm/node_modules/lodash._baseuniq/README.md
@@ -1,20 +1,18 @@
-# lodash._baseuniq v3.0.3
+# lodash._baseuniq v4.5.0
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseUniq` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
+The internal [lodash](https://lodash.com/) function `baseUniq` exported as a [Node.js](https://nodejs.org/) module.
## Installation
Using npm:
-
```bash
$ {sudo -H} npm i -g npm
$ npm i --save lodash._baseuniq
```
-In Node.js/io.js:
-
+In Node.js:
```js
var baseUniq = require('lodash._baseuniq');
```
-See the [package source](https://github.com/lodash/lodash/blob/3.0.3-npm-packages/lodash._baseuniq) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._baseuniq) for more details.
diff --git a/deps/npm/node_modules/lodash._baseuniq/index.js b/deps/npm/node_modules/lodash._baseuniq/index.js
index bb7d433f8d6d34..894eb34c758383 100644
--- a/deps/npm/node_modules/lodash._baseuniq/index.js
+++ b/deps/npm/node_modules/lodash._baseuniq/index.js
@@ -1,49 +1,176 @@
/**
- * lodash 3.0.3 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
+ * lodash 4.5.0 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var baseIndexOf = require('lodash._baseindexof'),
- cacheIndexOf = require('lodash._cacheindexof'),
- createCache = require('lodash._createcache');
+var SetCache = require('lodash._setcache'),
+ createSet = require('lodash._createset');
/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
+/** Used to stand-in for `undefined` hash values. */
+var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
/**
- * The base implementation of `_.uniq` without support for callback shorthands
- * and `this` binding.
+ * A specialized version of `_.includes` for arrays without support for
+ * specifying an index to search from.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} target The value to search for.
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
+ */
+function arrayIncludes(array, value) {
+ return !!array.length && baseIndexOf(array, value, 0) > -1;
+}
+
+/**
+ * A specialized version of `_.includesWith` for arrays without support for
+ * specifying an index to search from.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} target The value to search for.
+ * @param {Function} comparator The comparator invoked per element.
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
+ */
+function arrayIncludesWith(array, value, comparator) {
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ if (comparator(value, array[index])) {
+ return true;
+ }
+ }
+ return false;
+}
+
+/**
+ * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function baseIndexOf(array, value, fromIndex) {
+ if (value !== value) {
+ return indexOfNaN(array, fromIndex);
+ }
+ var index = fromIndex - 1,
+ length = array.length;
+
+ while (++index < length) {
+ if (array[index] === value) {
+ return index;
+ }
+ }
+ return -1;
+}
+
+/**
+ * Gets the index at which the first occurrence of `NaN` is found in `array`.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {number} fromIndex The index to search from.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {number} Returns the index of the matched `NaN`, else `-1`.
+ */
+function indexOfNaN(array, fromIndex, fromRight) {
+ var length = array.length,
+ index = fromIndex + (fromRight ? 0 : -1);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ var other = array[index];
+ if (other !== other) {
+ return index;
+ }
+ }
+ return -1;
+}
+
+/**
+ * Converts `set` to an array.
+ *
+ * @private
+ * @param {Object} set The set to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function setToArray(set) {
+ var index = -1,
+ result = Array(set.size);
+
+ set.forEach(function(value) {
+ result[++index] = value;
+ });
+ return result;
+}
+
+/**
+ * Checks if `value` is in `cache`.
+ *
+ * @private
+ * @param {Object} cache The set cache to search.
+ * @param {*} value The value to search for.
+ * @returns {number} Returns `true` if `value` is found, else `false`.
+ */
+function cacheHas(cache, value) {
+ var map = cache.__data__;
+ if (isKeyable(value)) {
+ var data = map.__data__,
+ hash = typeof value == 'string' ? data.string : data.hash;
+
+ return hash[value] === HASH_UNDEFINED;
+ }
+ return map.has(value);
+}
+
+/**
+ * The base implementation of `_.uniqBy` without support for iteratee shorthands.
*
* @private
* @param {Array} array The array to inspect.
- * @param {Function} [iteratee] The function invoked per iteration.
- * @returns {Array} Returns the new duplicate-value-free array.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new duplicate free array.
*/
-function baseUniq(array, iteratee) {
+function baseUniq(array, iteratee, comparator) {
var index = -1,
- indexOf = baseIndexOf,
+ includes = arrayIncludes,
length = array.length,
isCommon = true,
- isLarge = isCommon && length >= LARGE_ARRAY_SIZE,
- seen = isLarge ? createCache() : null,
- result = [];
+ result = [],
+ seen = result;
- if (seen) {
- indexOf = cacheIndexOf;
+ if (comparator) {
+ isCommon = false;
+ includes = arrayIncludesWith;
+ }
+ else if (length >= LARGE_ARRAY_SIZE) {
+ var set = iteratee ? null : createSet(array);
+ if (set) {
+ return setToArray(set);
+ }
isCommon = false;
- } else {
- isLarge = false;
+ includes = cacheHas;
+ seen = new SetCache;
+ }
+ else {
seen = iteratee ? [] : result;
}
outer:
while (++index < length) {
var value = array[index],
- computed = iteratee ? iteratee(value, index, array) : value;
+ computed = iteratee ? iteratee(value) : value;
- if (isCommon && value === value) {
+ if (isCommon && computed === computed) {
var seenIndex = seen.length;
while (seenIndex--) {
if (seen[seenIndex] === computed) {
@@ -55,8 +182,8 @@ function baseUniq(array, iteratee) {
}
result.push(value);
}
- else if (indexOf(seen, computed, 0) < 0) {
- if (iteratee || isLarge) {
+ else if (!includes(seen, computed, comparator)) {
+ if (seen !== result) {
seen.push(computed);
}
result.push(value);
@@ -65,4 +192,17 @@ function baseUniq(array, iteratee) {
return result;
}
+/**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+function isKeyable(value) {
+ var type = typeof value;
+ return type == 'number' || type == 'boolean' ||
+ (type == 'string' && value != '__proto__') || value == null;
+}
+
module.exports = baseUniq;
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md
new file mode 100644
index 00000000000000..117109172bf8a6
--- /dev/null
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md
@@ -0,0 +1,18 @@
+# lodash._createset v4.0.0
+
+The internal [lodash](https://lodash.com/) function `createSet` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._createset
+```
+
+In Node.js:
+```js
+var createSet = require('lodash._createset');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._createset) for more details.
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js
new file mode 100644
index 00000000000000..3fd2f360d6a011
--- /dev/null
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js
@@ -0,0 +1,260 @@
+/**
+ * lodash 4.0.0 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license
+ */
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]';
+
+/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
+var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/**
+ * Checks if `value` is a host object in IE < 9.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
+ */
+function isHostObject(value) {
+ // Many host objects are `Object` objects that can coerce to strings
+ // despite having improperly defined `toString` methods.
+ var result = false;
+ if (value != null && typeof value.toString != 'function') {
+ try {
+ result = !!(value + '');
+ } catch (e) {}
+ }
+ return result;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var funcToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/* Built-in method references that are verified to be native. */
+var Set = getNative(root, 'Set');
+
+/**
+ * Creates a set of `values`.
+ *
+ * @private
+ * @param {Array} values The values to add to the set.
+ * @returns {Object} Returns the new set.
+ */
+var createSet = !(Set && new Set([1, 2]).size === 2) ? noop : function(values) {
+ return new Set(values);
+};
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = object == null ? undefined : object[key];
+ return isNative(value) ? value : undefined;
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8 which returns 'object' for typed array constructors, and
+ // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(funcToString.call(value));
+ }
+ return isObjectLike(value) &&
+ (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
+}
+
+/**
+ * A no-operation function that returns `undefined` regardless of the
+ * arguments it receives.
+ *
+ * @static
+ * @memberOf _
+ * @category Util
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * _.noop(object) === undefined;
+ * // => true
+ */
+function noop() {
+ // No operation performed.
+}
+
+module.exports = createSet;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/package.json b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json
similarity index 58%
rename from deps/npm/node_modules/lodash.union/node_modules/lodash._root/package.json
rename to deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json
index 1854ba6a899fd9..62cb810c669479 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/package.json
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json
@@ -1,43 +1,42 @@
{
"_args": [
[
- "lodash._root@^3.0.0",
- "/Users/zkat/Documents/code/npm/node_modules/lodash.union"
+ "lodash._createset@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/lodash._baseuniq"
]
],
- "_from": "lodash._root@>=3.0.0 <4.0.0",
- "_id": "lodash._root@3.0.0",
+ "_from": "lodash._createset@>=4.0.0 <5.0.0",
+ "_id": "lodash._createset@4.0.0",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.union/lodash._root",
+ "_location": "/lodash._baseuniq/lodash._createset",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._root-3.0.0.tgz_1454898276727_0.4872864377684891"
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/lodash._createset-4.0.0.tgz_1456330780129_0.0739455302245915"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.18",
+ "_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
- "name": "lodash._root",
- "raw": "lodash._root@^3.0.0",
- "rawSpec": "^3.0.0",
+ "name": "lodash._createset",
+ "raw": "lodash._createset@^4.0.0",
+ "rawSpec": "^4.0.0",
"scope": null,
- "spec": ">=3.0.0 <4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/lodash.union",
- "/lodash.union/lodash._setcache/lodash._mapcache"
+ "/lodash._baseuniq"
],
- "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz",
- "_shasum": "fe2fba5117f3e12c3cf7e13b3993b20f745727b7",
+ "_resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.0.tgz",
+ "_shasum": "92b46092919dd7270e9fab70294feadb3a835822",
"_shrinkwrap": null,
- "_spec": "lodash._root@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash.union",
+ "_spec": "lodash._createset@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -64,12 +63,12 @@
}
],
"dependencies": {},
- "description": "The internal lodash function `root` exported as a module.",
+ "description": "The internal lodash function `createSet` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "fe2fba5117f3e12c3cf7e13b3993b20f745727b7",
- "tarball": "http://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz"
+ "shasum": "92b46092919dd7270e9fab70294feadb3a835822",
+ "tarball": "http://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -80,7 +79,7 @@
"name": "jdalton"
}
],
- "name": "lodash._root",
+ "name": "lodash._createset",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -90,5 +89,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "3.0.0"
+ "version": "4.0.0"
}
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/LICENSE b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/README.md b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/README.md
similarity index 81%
rename from deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/README.md
rename to deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/README.md
index 56265a8fe436ea..37f7ddfcad86d5 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/README.md
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/README.md
@@ -1,4 +1,4 @@
-# lodash._setcache v4.0.1
+# lodash._setcache v4.1.0
The internal [lodash](https://lodash.com/) function `SetCache` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var SetCache = require('lodash._setcache');
```
-See the [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash._setcache) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash._setcache) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/index.js
similarity index 91%
rename from deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js
rename to deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/index.js
index 415eb1fb72e989..4260d6390e1800 100644
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.0.1 (Custom Build)
+ * lodash 4.1.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -27,10 +27,14 @@ var objectTypes = {
};
/** Detect free variable `exports`. */
-var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null;
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
/** Detect free variable `module`. */
-var freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null;
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
/** Detect free variable `global` from Node.js. */
var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
@@ -50,7 +54,9 @@ var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
* The `this` value is used if it's the global object to avoid Greasemonkey's
* restricted `window` object, otherwise the `window` object is used.
*/
-var root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')();
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
/**
* Checks if `value` is a global object.
@@ -115,6 +121,7 @@ var Map = getNative(root, 'Map'),
* Creates an hash object.
*
* @private
+ * @constructor
* @returns {Object} Returns the new hash object.
*/
function Hash() {}
@@ -175,6 +182,7 @@ function hashSet(hash, key, value) {
* Creates a map cache object to store key-value pairs.
*
* @private
+ * @constructor
* @param {Array} [values] The values to cache.
*/
function MapCache(values) {
@@ -196,7 +204,11 @@ function MapCache(values) {
* @memberOf MapCache
*/
function mapClear() {
- this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': Map ? new Map : [],
+ 'string': new Hash
+ };
}
/**
@@ -272,6 +284,45 @@ function mapSet(key, value) {
return this;
}
+/**
+ *
+ * Creates a set cache object to store unique values.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [values] The values to cache.
+ */
+function SetCache(values) {
+ var index = -1,
+ length = values ? values.length : 0;
+
+ this.__data__ = new MapCache;
+ while (++index < length) {
+ this.push(values[index]);
+ }
+}
+
+/**
+ * Adds `value` to the set cache.
+ *
+ * @private
+ * @name push
+ * @memberOf SetCache
+ * @param {*} value The value to cache.
+ */
+function cachePush(value) {
+ var map = this.__data__;
+ if (isKeyable(value)) {
+ var data = map.__data__,
+ hash = typeof value == 'string' ? data.string : data.hash;
+
+ hash[value] = HASH_UNDEFINED;
+ }
+ else {
+ map.set(value, HASH_UNDEFINED);
+ }
+}
+
/**
* Removes `key` and its value from the associative array.
*
@@ -378,7 +429,7 @@ function getNative(object, key) {
function isKeyable(value) {
var type = typeof value;
return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
+ (type == 'string' && value != '__proto__') || value == null;
}
/**
@@ -531,4 +582,7 @@ MapCache.prototype.get = mapGet;
MapCache.prototype.has = mapHas;
MapCache.prototype.set = mapSet;
-module.exports = MapCache;
+// Add functions to the `SetCache`.
+SetCache.prototype.push = cachePush;
+
+module.exports = SetCache;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/package.json b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/package.json
similarity index 68%
rename from deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/package.json
rename to deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/package.json
index 0c5d0e01cf3df7..e8d85999d6d989 100644
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/package.json
+++ b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._setcache/package.json
@@ -2,20 +2,24 @@
"_args": [
[
"lodash._setcache@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.uniq"
+ "/Users/rebecca/code/npm/node_modules/lodash._baseuniq"
]
],
"_from": "lodash._setcache@>=4.0.0 <5.0.0",
- "_id": "lodash._setcache@4.0.1",
+ "_id": "lodash._setcache@4.1.0",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.uniq/lodash._setcache",
- "_nodeVersion": "5.4.0",
+ "_location": "/lodash._baseuniq/lodash._setcache",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-5-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._setcache-4.1.0.tgz_1455699934524_0.5983484762255102"
+ },
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
"name": "lodash._setcache",
@@ -26,13 +30,13 @@
"type": "range"
},
"_requiredBy": [
- "/lodash.uniq"
+ "/lodash._baseuniq"
],
- "_resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.0.1.tgz",
- "_shasum": "d8c6196cee20791ed3545b08c6cea0278df0401e",
+ "_resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.1.0.tgz",
+ "_shasum": "ecc48719346faf667343b390b4572a3063f3827c",
"_shrinkwrap": null,
"_spec": "lodash._setcache@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.uniq",
+ "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -43,46 +47,44 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {
- "lodash._mapcache": "^4.0.0"
- },
+ "dependencies": {},
"description": "The internal lodash function `SetCache` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "d8c6196cee20791ed3545b08c6cea0278df0401e",
- "tarball": "http://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.0.1.tgz"
+ "shasum": "ecc48719346faf667343b390b4572a3063f3827c",
+ "tarball": "http://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.1.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine.bublitz@gmail.com"
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
}
],
"name": "lodash._setcache",
@@ -95,5 +97,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.0.1"
+ "version": "4.1.0"
}
diff --git a/deps/npm/node_modules/lodash._baseuniq/package.json b/deps/npm/node_modules/lodash._baseuniq/package.json
index b08778532a3e25..c39fc30276ac87 100644
--- a/deps/npm/node_modules/lodash._baseuniq/package.json
+++ b/deps/npm/node_modules/lodash._baseuniq/package.json
@@ -1,93 +1,106 @@
{
- "name": "lodash._baseuniq",
- "version": "3.0.3",
- "description": "The modern build of lodash’s internal `baseUniq` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
+ "_args": [
+ [
+ "lodash._baseuniq@latest",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._baseuniq@latest",
+ "_id": "lodash._baseuniq@4.5.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/lodash._baseuniq",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-5-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._baseuniq-4.5.0.tgz_1456330775872_0.6085790924262255"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.17",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._baseuniq",
+ "raw": "lodash._baseuniq@latest",
+ "rawSpec": "latest",
+ "scope": null,
+ "spec": "latest",
+ "type": "tag"
+ },
+ "_requiredBy": [
+ "/",
+ "/lodash.union",
+ "/lodash.uniq"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.5.0.tgz",
+ "_shasum": "50e82673ae56f5fd07160584864648b7e3c528e8",
+ "_shrinkwrap": null,
+ "_spec": "lodash._baseuniq@latest",
+ "_where": "/Users/rebecca/code/npm",
"author": {
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
"dependencies": {
- "lodash._baseindexof": "^3.0.0",
- "lodash._cacheindexof": "^3.0.0",
- "lodash._createcache": "^3.0.0"
+ "lodash._createset": "^4.0.0",
+ "lodash._setcache": "^4.0.0"
},
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._baseuniq@3.0.3",
- "_shasum": "2123fa0db2d69c28d5beb1c1f36d61522a740234",
- "_from": "lodash._baseuniq@3.0.3",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "description": "The internal lodash function `baseUniq` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "50e82673ae56f5fd07160584864648b7e3c528e8",
+ "tarball": "http://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.5.0.tgz"
},
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "d10",
- "email": "demoneaux@gmail.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
- "dist": {
- "shasum": "2123fa0db2d69c28d5beb1c1f36d61522a740234",
- "tarball": "http://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz"
+ "name": "lodash._baseuniq",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
},
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz",
- "readme": "ERROR: No README data found!"
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.5.0"
}
diff --git a/deps/npm/node_modules/lodash.clonedeep/LICENSE b/deps/npm/node_modules/lodash.clonedeep/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash.clonedeep/LICENSE
+++ b/deps/npm/node_modules/lodash.clonedeep/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/README.md b/deps/npm/node_modules/lodash.clonedeep/README.md
index 7b277f4af37d86..4112f245f08689 100644
--- a/deps/npm/node_modules/lodash.clonedeep/README.md
+++ b/deps/npm/node_modules/lodash.clonedeep/README.md
@@ -1,4 +1,4 @@
-# lodash.clonedeep v4.1.0
+# lodash.clonedeep v4.3.1
The [lodash](https://lodash.com/) method `_.cloneDeep` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var cloneDeep = require('lodash.clonedeep');
```
-See the [documentation](https://lodash.com/docs#cloneDeep) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.clonedeep) for more details.
+See the [documentation](https://lodash.com/docs#cloneDeep) or [package source](https://github.com/lodash/lodash/blob/4.3.1-npm-packages/lodash.clonedeep) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/index.js b/deps/npm/node_modules/lodash.clonedeep/index.js
index 296643a54306c9..cc9d2b08094f98 100644
--- a/deps/npm/node_modules/lodash.clonedeep/index.js
+++ b/deps/npm/node_modules/lodash.clonedeep/index.js
@@ -1,635 +1,12 @@
/**
- * lodash 4.1.0 (Custom Build)
+ * lodash 4.3.1 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var Stack = require('lodash._stack'),
- arrayEach = require('lodash._arrayeach'),
- baseFor = require('lodash._basefor'),
- keys = require('lodash.keys'),
- root = require('lodash._root');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]',
- weakMapTag = '[object WeakMap]';
-
-var arrayBufferTag = '[object ArrayBuffer]',
- float32Tag = '[object Float32Array]',
- float64Tag = '[object Float64Array]',
- int8Tag = '[object Int8Array]',
- int16Tag = '[object Int16Array]',
- int32Tag = '[object Int32Array]',
- uint8Tag = '[object Uint8Array]',
- uint8ClampedTag = '[object Uint8ClampedArray]',
- uint16Tag = '[object Uint16Array]',
- uint32Tag = '[object Uint32Array]';
-
-/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to match `RegExp` flags from their coerced string values. */
-var reFlags = /\w*$/;
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/** Used to identify `toStringTag` values supported by `_.clone`. */
-var cloneableTags = {};
-cloneableTags[argsTag] = cloneableTags[arrayTag] =
-cloneableTags[arrayBufferTag] = cloneableTags[boolTag] =
-cloneableTags[dateTag] = cloneableTags[float32Tag] =
-cloneableTags[float64Tag] = cloneableTags[int8Tag] =
-cloneableTags[int16Tag] = cloneableTags[int32Tag] =
-cloneableTags[mapTag] = cloneableTags[numberTag] =
-cloneableTags[objectTag] = cloneableTags[regexpTag] =
-cloneableTags[setTag] = cloneableTags[stringTag] =
-cloneableTags[symbolTag] = cloneableTags[uint8Tag] =
-cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] =
-cloneableTags[uint32Tag] = true;
-cloneableTags[errorTag] = cloneableTags[funcTag] =
-cloneableTags[weakMapTag] = false;
-
-/**
- * Adds the key-value `pair` to `map`.
- *
- * @private
- * @param {Object} map The map to modify.
- * @param {Array} pair The key-value pair to add.
- * @returns {Object} Returns `map`.
- */
-function addMapEntry(map, pair) {
- map.set(pair[0], pair[1]);
- return map;
-}
-
-/**
- * Adds `value` to `set`.
- *
- * @private
- * @param {Object} set The set to modify.
- * @param {*} value The value to add.
- * @returns {Object} Returns `set`.
- */
-function addSetEntry(set, value) {
- set.add(value);
- return set;
-}
-
-/**
- * A specialized version of `_.reduce` for arrays without support for
- * iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {*} [accumulator] The initial value.
- * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value.
- * @returns {*} Returns the accumulated value.
- */
-function arrayReduce(array, iteratee, accumulator, initAccum) {
- var index = -1,
- length = array.length;
-
- if (initAccum && length) {
- accumulator = array[++index];
- }
- while (++index < length) {
- accumulator = iteratee(accumulator, array[index], index, array);
- }
- return accumulator;
-}
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/**
- * Converts `map` to an array.
- *
- * @private
- * @param {Object} map The map to convert.
- * @returns {Array} Returns the converted array.
- */
-function mapToArray(map) {
- var index = -1,
- result = Array(map.size);
-
- map.forEach(function(value, key) {
- result[++index] = [key, value];
- });
- return result;
-}
-
-/**
- * Converts `set` to an array.
- *
- * @private
- * @param {Object} set The set to convert.
- * @returns {Array} Returns the converted array.
- */
-function setToArray(set) {
- var index = -1,
- result = Array(set.size);
-
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
-}
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var Symbol = root.Symbol,
- Uint8Array = root.Uint8Array,
- getOwnPropertySymbols = Object.getOwnPropertySymbols;
-
-/* Built-in method references that are verified to be native. */
-var Map = getNative(root, 'Map'),
- Set = getNative(root, 'Set');
-
-/** Used to detect maps and sets. */
-var mapCtorString = Map ? funcToString.call(Map) : '',
- setCtorString = Set ? funcToString.call(Set) : '';
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolValueOf = Symbol ? symbolProto.valueOf : undefined;
-
-/**
- * Assigns `value` to `key` of `object` if the existing value is not equivalent
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @private
- * @param {Object} object The object to modify.
- * @param {string} key The key of the property to assign.
- * @param {*} value The value to assign.
- */
-function assignValue(object, key, value) {
- var objValue = object[key];
- if ((!eq(objValue, value) ||
- (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) ||
- (value === undefined && !(key in object))) {
- object[key] = value;
- }
-}
-
-/**
- * The base implementation of `_.assign` without support for multiple sources
- * or `customizer` functions.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @returns {Object} Returns `object`.
- */
-function baseAssign(object, source) {
- return object && copyObject(source, keys(source), object);
-}
-
-/**
- * The base implementation of `_.clone` and `_.cloneDeep` which tracks
- * traversed objects.
- *
- * @private
- * @param {*} value The value to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @param {Function} [customizer] The function to customize cloning.
- * @param {string} [key] The key of `value`.
- * @param {Object} [object] The parent object of `value`.
- * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
- * @returns {*} Returns the cloned value.
- */
-function baseClone(value, isDeep, customizer, key, object, stack) {
- var result;
- if (customizer) {
- result = object ? customizer(value, key, object, stack) : customizer(value);
- }
- if (result !== undefined) {
- return result;
- }
- if (!isObject(value)) {
- return value;
- }
- var isArr = isArray(value);
- if (isArr) {
- result = initCloneArray(value);
- if (!isDeep) {
- return copyArray(value, result);
- }
- } else {
- var tag = getTag(value),
- isFunc = tag == funcTag || tag == genTag;
-
- if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
- if (isHostObject(value)) {
- return object ? value : {};
- }
- result = initCloneObject(isFunc ? {} : value);
- if (!isDeep) {
- return copySymbols(value, baseAssign(result, value));
- }
- } else {
- return cloneableTags[tag]
- ? initCloneByTag(value, tag, isDeep)
- : (object ? value : {});
- }
- }
- // Check for circular references and return its corresponding clone.
- stack || (stack = new Stack);
- var stacked = stack.get(value);
- if (stacked) {
- return stacked;
- }
- stack.set(value, result);
-
- // Recursively populate clone (susceptible to call stack limits).
- (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {
- assignValue(result, key, baseClone(subValue, isDeep, customizer, key, value, stack));
- });
- return isArr ? result : copySymbols(value, result);
-}
-
-/**
- * The base implementation of `_.create` without support for assigning
- * properties to the created object.
- *
- * @private
- * @param {Object} prototype The object to inherit from.
- * @returns {Object} Returns the new object.
- */
-var baseCreate = (function() {
- function object() {}
- return function(prototype) {
- if (isObject(prototype)) {
- object.prototype = prototype;
- var result = new object;
- object.prototype = undefined;
- }
- return result || {};
- };
-}());
-
-/**
- * The base implementation of `_.forOwn` without support for iteratee shorthands.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Object} Returns `object`.
- */
-function baseForOwn(object, iteratee) {
- return object && baseFor(object, iteratee, keys);
-}
-
-/**
- * Creates a clone of `buffer`.
- *
- * @private
- * @param {ArrayBuffer} buffer The array buffer to clone.
- * @returns {ArrayBuffer} Returns the cloned array buffer.
- */
-function cloneBuffer(buffer) {
- var Ctor = buffer.constructor,
- result = new Ctor(buffer.byteLength),
- view = new Uint8Array(result);
-
- view.set(new Uint8Array(buffer));
- return result;
-}
-
-/**
- * Creates a clone of `map`.
- *
- * @private
- * @param {Object} map The map to clone.
- * @returns {Object} Returns the cloned map.
- */
-function cloneMap(map) {
- var Ctor = map.constructor;
- return arrayReduce(mapToArray(map), addMapEntry, new Ctor);
-}
-
-/**
- * Creates a clone of `regexp`.
- *
- * @private
- * @param {Object} regexp The regexp to clone.
- * @returns {Object} Returns the cloned regexp.
- */
-function cloneRegExp(regexp) {
- var Ctor = regexp.constructor,
- result = new Ctor(regexp.source, reFlags.exec(regexp));
-
- result.lastIndex = regexp.lastIndex;
- return result;
-}
-
-/**
- * Creates a clone of `set`.
- *
- * @private
- * @param {Object} set The set to clone.
- * @returns {Object} Returns the cloned set.
- */
-function cloneSet(set) {
- var Ctor = set.constructor;
- return arrayReduce(setToArray(set), addSetEntry, new Ctor);
-}
-
-/**
- * Creates a clone of the `symbol` object.
- *
- * @private
- * @param {Object} symbol The symbol object to clone.
- * @returns {Object} Returns the cloned symbol object.
- */
-function cloneSymbol(symbol) {
- return Symbol ? Object(symbolValueOf.call(symbol)) : {};
-}
-
-/**
- * Creates a clone of `typedArray`.
- *
- * @private
- * @param {Object} typedArray The typed array to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned typed array.
- */
-function cloneTypedArray(typedArray, isDeep) {
- var buffer = typedArray.buffer,
- Ctor = typedArray.constructor;
-
- return new Ctor(isDeep ? cloneBuffer(buffer) : buffer, typedArray.byteOffset, typedArray.length);
-}
-
-/**
- * Copies the values of `source` to `array`.
- *
- * @private
- * @param {Array} source The array to copy values from.
- * @param {Array} [array=[]] The array to copy values to.
- * @returns {Array} Returns `array`.
- */
-function copyArray(source, array) {
- var index = -1,
- length = source.length;
-
- array || (array = Array(length));
- while (++index < length) {
- array[index] = source[index];
- }
- return array;
-}
-
-/**
- * Copies properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy properties from.
- * @param {Array} props The property names to copy.
- * @param {Object} [object={}] The object to copy properties to.
- * @returns {Object} Returns `object`.
- */
-function copyObject(source, props, object) {
- return copyObjectWith(source, props, object);
-}
-
-/**
- * This function is like `copyObject` except that it accepts a function to
- * customize copied values.
- *
- * @private
- * @param {Object} source The object to copy properties from.
- * @param {Array} props The property names to copy.
- * @param {Object} [object={}] The object to copy properties to.
- * @param {Function} [customizer] The function to customize copied values.
- * @returns {Object} Returns `object`.
- */
-function copyObjectWith(source, props, object, customizer) {
- object || (object = {});
-
- var index = -1,
- length = props.length;
-
- while (++index < length) {
- var key = props[index],
- newValue = customizer ? customizer(object[key], source[key], key, object, source) : source[key];
-
- assignValue(object, key, newValue);
- }
- return object;
-}
-
-/**
- * Copies own symbol properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy symbols from.
- * @param {Object} [object={}] The object to copy symbols to.
- * @returns {Object} Returns `object`.
- */
-function copySymbols(source, object) {
- return copyObject(source, getSymbols(source), object);
-}
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Creates an array of the own symbol properties of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of symbols.
- */
-var getSymbols = getOwnPropertySymbols || function() {
- return [];
-};
-
-/**
- * Gets the `toStringTag` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
-function getTag(value) {
- return objectToString.call(value);
-}
-
-// Fallback for IE 11 providing `toStringTag` values for maps and sets.
-if ((Map && getTag(new Map) != mapTag) || (Set && getTag(new Set) != setTag)) {
- getTag = function(value) {
- var result = objectToString.call(value),
- Ctor = result == objectTag ? value.constructor : null,
- ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : '';
-
- if (ctorString) {
- if (ctorString == mapCtorString) {
- return mapTag;
- }
- if (ctorString == setCtorString) {
- return setTag;
- }
- }
- return result;
- };
-}
-
-/**
- * Initializes an array clone.
- *
- * @private
- * @param {Array} array The array to clone.
- * @returns {Array} Returns the initialized clone.
- */
-function initCloneArray(array) {
- var length = array.length,
- result = array.constructor(length);
-
- // Add properties assigned by `RegExp#exec`.
- if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
- result.index = array.index;
- result.input = array.input;
- }
- return result;
-}
-
-/**
- * Initializes an object clone.
- *
- * @private
- * @param {Object} object The object to clone.
- * @returns {Object} Returns the initialized clone.
- */
-function initCloneObject(object) {
- if (isPrototype(object)) {
- return {};
- }
- var Ctor = object.constructor;
- return baseCreate(isFunction(Ctor) ? Ctor.prototype : undefined);
-}
-
-/**
- * Initializes an object clone based on its `toStringTag`.
- *
- * **Note:** This function only supports cloning values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to clone.
- * @param {string} tag The `toStringTag` of the object to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the initialized clone.
- */
-function initCloneByTag(object, tag, isDeep) {
- var Ctor = object.constructor;
- switch (tag) {
- case arrayBufferTag:
- return cloneBuffer(object);
-
- case boolTag:
- case dateTag:
- return new Ctor(+object);
-
- case float32Tag: case float64Tag:
- case int8Tag: case int16Tag: case int32Tag:
- case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
- return cloneTypedArray(object, isDeep);
-
- case mapTag:
- return cloneMap(object);
-
- case numberTag:
- case stringTag:
- return new Ctor(object);
-
- case regexpTag:
- return cloneRegExp(object);
-
- case setTag:
- return cloneSet(object);
-
- case symbolTag:
- return cloneSymbol(object);
- }
-}
-
-/**
- * Checks if `value` is likely a prototype object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
- */
-function isPrototype(value) {
- var Ctor = value && value.constructor,
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
-
- return value === proto;
-}
+var baseClone = require('lodash._baseclone');
/**
* This method is like `_.clone` except that it recursively clones `value`.
@@ -648,172 +25,7 @@ function isPrototype(value) {
* // => false
*/
function cloneDeep(value) {
- return baseClone(value, true);
-}
-
-/**
- * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @type Function
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(document.body.children);
- * // => false
- *
- * _.isArray('abc');
- * // => false
- *
- * _.isArray(_.noop);
- * // => false
- */
-var isArray = Array.isArray;
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(funcToString.call(value));
- }
- return isObjectLike(value) &&
- (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
+ return baseClone(value, true, true);
}
module.exports = cloneDeep;
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/LICENSE.txt b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/LICENSE.txt
deleted file mode 100644
index 17764328c826b5..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/README.md b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/README.md
deleted file mode 100644
index 1f3236ba0338f9..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._arrayeach v3.0.0
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `arrayEach` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayeach
-```
-
-In Node.js/io.js:
-
-```js
-var arrayEach = require('lodash._arrayeach');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._arrayeach) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/index.js b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/index.js
deleted file mode 100644
index 7b31bcdb2534ef..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * lodash 3.0.0 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.7.0
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.forEach` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns `array`.
- */
-function arrayEach(array, iteratee) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (iteratee(array[index], index, array) === false) {
- break;
- }
- }
- return array;
-}
-
-module.exports = arrayEach;
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/package.json b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/package.json
deleted file mode 100644
index 5735c5c9bc89f6..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._arrayeach/package.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayeach@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.clonedeep"
- ]
- ],
- "_from": "lodash._arrayeach@>=3.0.0 <4.0.0",
- "_id": "lodash._arrayeach@3.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.clonedeep/lodash._arrayeach",
- "_nodeVersion": "0.10.35",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.3.0",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayeach",
- "raw": "lodash._arrayeach@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.clonedeep"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
- "_shasum": "bab156b2a90d3f1bbd5c653403349e5e5933ef9e",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayeach@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.clonedeep",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The modern build of lodash’s internal `arrayEach` as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "bab156b2a90d3f1bbd5c653403349e5e5933ef9e",
- "tarball": "http://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayeach",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/LICENSE b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/README.md b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/README.md
new file mode 100644
index 00000000000000..7c997274efee06
--- /dev/null
+++ b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/README.md
@@ -0,0 +1,18 @@
+# lodash._baseclone v4.5.3
+
+The internal [lodash](https://lodash.com/) function `baseClone` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._baseclone
+```
+
+In Node.js:
+```js
+var baseClone = require('lodash._baseclone');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.5.3-npm-packages/lodash._baseclone) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/index.js b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/index.js
new file mode 100644
index 00000000000000..4781750782800a
--- /dev/null
+++ b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/index.js
@@ -0,0 +1,1644 @@
+/**
+ * lodash 4.5.3 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license
+ */
+
+/** Used as the size to enable large array optimizations. */
+var LARGE_ARRAY_SIZE = 200;
+
+/** Used to stand-in for `undefined` hash values. */
+var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+/** Used as references for various `Number` constants. */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+ arrayTag = '[object Array]',
+ boolTag = '[object Boolean]',
+ dateTag = '[object Date]',
+ errorTag = '[object Error]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ mapTag = '[object Map]',
+ numberTag = '[object Number]',
+ objectTag = '[object Object]',
+ regexpTag = '[object RegExp]',
+ setTag = '[object Set]',
+ stringTag = '[object String]',
+ symbolTag = '[object Symbol]',
+ weakMapTag = '[object WeakMap]';
+
+var arrayBufferTag = '[object ArrayBuffer]',
+ float32Tag = '[object Float32Array]',
+ float64Tag = '[object Float64Array]',
+ int8Tag = '[object Int8Array]',
+ int16Tag = '[object Int16Array]',
+ int32Tag = '[object Int32Array]',
+ uint8Tag = '[object Uint8Array]',
+ uint8ClampedTag = '[object Uint8ClampedArray]',
+ uint16Tag = '[object Uint16Array]',
+ uint32Tag = '[object Uint32Array]';
+
+/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
+var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+
+/** Used to match `RegExp` flags from their coerced string values. */
+var reFlags = /\w*$/;
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/** Used to detect unsigned integer values. */
+var reIsUint = /^(?:0|[1-9]\d*)$/;
+
+/** Used to identify `toStringTag` values supported by `_.clone`. */
+var cloneableTags = {};
+cloneableTags[argsTag] = cloneableTags[arrayTag] =
+cloneableTags[arrayBufferTag] = cloneableTags[boolTag] =
+cloneableTags[dateTag] = cloneableTags[float32Tag] =
+cloneableTags[float64Tag] = cloneableTags[int8Tag] =
+cloneableTags[int16Tag] = cloneableTags[int32Tag] =
+cloneableTags[mapTag] = cloneableTags[numberTag] =
+cloneableTags[objectTag] = cloneableTags[regexpTag] =
+cloneableTags[setTag] = cloneableTags[stringTag] =
+cloneableTags[symbolTag] = cloneableTags[uint8Tag] =
+cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] =
+cloneableTags[uint32Tag] = true;
+cloneableTags[errorTag] = cloneableTags[funcTag] =
+cloneableTags[weakMapTag] = false;
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect the popular CommonJS extension `module.exports`. */
+var moduleExports = (freeModule && freeModule.exports === freeExports)
+ ? freeExports
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Adds the key-value `pair` to `map`.
+ *
+ * @private
+ * @param {Object} map The map to modify.
+ * @param {Array} pair The key-value pair to add.
+ * @returns {Object} Returns `map`.
+ */
+function addMapEntry(map, pair) {
+ // Don't return `Map#set` because it doesn't return the map instance in IE 11.
+ map.set(pair[0], pair[1]);
+ return map;
+}
+
+/**
+ * Adds `value` to `set`.
+ *
+ * @private
+ * @param {Object} set The set to modify.
+ * @param {*} value The value to add.
+ * @returns {Object} Returns `set`.
+ */
+function addSetEntry(set, value) {
+ set.add(value);
+ return set;
+}
+
+/**
+ * A specialized version of `_.forEach` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+function arrayEach(array, iteratee) {
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ if (iteratee(array[index], index, array) === false) {
+ break;
+ }
+ }
+ return array;
+}
+
+/**
+ * A specialized version of `_.reduce` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+function arrayReduce(array, iteratee, accumulator, initAccum) {
+ var index = -1,
+ length = array.length;
+
+ if (initAccum && length) {
+ accumulator = array[++index];
+ }
+ while (++index < length) {
+ accumulator = iteratee(accumulator, array[index], index, array);
+ }
+ return accumulator;
+}
+
+/**
+ * The base implementation of `_.times` without support for iteratee shorthands
+ * or max array length checks.
+ *
+ * @private
+ * @param {number} n The number of times to invoke `iteratee`.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the array of results.
+ */
+function baseTimes(n, iteratee) {
+ var index = -1,
+ result = Array(n);
+
+ while (++index < n) {
+ result[index] = iteratee(index);
+ }
+ return result;
+}
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/**
+ * Checks if `value` is a host object in IE < 9.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
+ */
+function isHostObject(value) {
+ // Many host objects are `Object` objects that can coerce to strings
+ // despite having improperly defined `toString` methods.
+ var result = false;
+ if (value != null && typeof value.toString != 'function') {
+ try {
+ result = !!(value + '');
+ } catch (e) {}
+ }
+ return result;
+}
+
+/**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+function isIndex(value, length) {
+ value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return value > -1 && value % 1 == 0 && value < length;
+}
+
+/**
+ * Converts `map` to an array.
+ *
+ * @private
+ * @param {Object} map The map to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function mapToArray(map) {
+ var index = -1,
+ result = Array(map.size);
+
+ map.forEach(function(value, key) {
+ result[++index] = [key, value];
+ });
+ return result;
+}
+
+/**
+ * Converts `set` to an array.
+ *
+ * @private
+ * @param {Object} set The set to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function setToArray(set) {
+ var index = -1,
+ result = Array(set.size);
+
+ set.forEach(function(value) {
+ result[++index] = value;
+ });
+ return result;
+}
+
+/** Used for built-in method references. */
+var arrayProto = Array.prototype,
+ objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var funcToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/** Built-in value references. */
+var Buffer = moduleExports ? root.Buffer : undefined,
+ Symbol = root.Symbol,
+ Uint8Array = root.Uint8Array,
+ getPrototypeOf = Object.getPrototypeOf,
+ getOwnPropertySymbols = Object.getOwnPropertySymbols,
+ objectCreate = Object.create,
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
+ splice = arrayProto.splice;
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeKeys = Object.keys;
+
+/* Built-in method references that are verified to be native. */
+var Map = getNative(root, 'Map'),
+ Set = getNative(root, 'Set'),
+ WeakMap = getNative(root, 'WeakMap'),
+ nativeCreate = getNative(Object, 'create');
+
+/** Used to detect maps, sets, and weakmaps. */
+var mapCtorString = Map ? funcToString.call(Map) : '',
+ setCtorString = Set ? funcToString.call(Set) : '',
+ weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : '';
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
+
+/**
+ * Creates an hash object.
+ *
+ * @private
+ * @constructor
+ * @returns {Object} Returns the new hash object.
+ */
+function Hash() {}
+
+/**
+ * Removes `key` and its value from the hash.
+ *
+ * @private
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function hashDelete(hash, key) {
+ return hashHas(hash, key) && delete hash[key];
+}
+
+/**
+ * Gets the hash value for `key`.
+ *
+ * @private
+ * @param {Object} hash The hash to query.
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function hashGet(hash, key) {
+ if (nativeCreate) {
+ var result = hash[key];
+ return result === HASH_UNDEFINED ? undefined : result;
+ }
+ return hasOwnProperty.call(hash, key) ? hash[key] : undefined;
+}
+
+/**
+ * Checks if a hash value for `key` exists.
+ *
+ * @private
+ * @param {Object} hash The hash to query.
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function hashHas(hash, key) {
+ return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key);
+}
+
+/**
+ * Sets the hash `key` to `value`.
+ *
+ * @private
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ */
+function hashSet(hash, key, value) {
+ hash[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
+}
+
+/**
+ * Creates a map cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [values] The values to cache.
+ */
+function MapCache(values) {
+ var index = -1,
+ length = values ? values.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = values[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the map.
+ *
+ * @private
+ * @name clear
+ * @memberOf MapCache
+ */
+function mapClear() {
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': Map ? new Map : [],
+ 'string': new Hash
+ };
+}
+
+/**
+ * Removes `key` and its value from the map.
+ *
+ * @private
+ * @name delete
+ * @memberOf MapCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function mapDelete(key) {
+ var data = this.__data__;
+ if (isKeyable(key)) {
+ return hashDelete(typeof key == 'string' ? data.string : data.hash, key);
+ }
+ return Map ? data.map['delete'](key) : assocDelete(data.map, key);
+}
+
+/**
+ * Gets the map value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf MapCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function mapGet(key) {
+ var data = this.__data__;
+ if (isKeyable(key)) {
+ return hashGet(typeof key == 'string' ? data.string : data.hash, key);
+ }
+ return Map ? data.map.get(key) : assocGet(data.map, key);
+}
+
+/**
+ * Checks if a map value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf MapCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function mapHas(key) {
+ var data = this.__data__;
+ if (isKeyable(key)) {
+ return hashHas(typeof key == 'string' ? data.string : data.hash, key);
+ }
+ return Map ? data.map.has(key) : assocHas(data.map, key);
+}
+
+/**
+ * Sets the map `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf MapCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the map cache object.
+ */
+function mapSet(key, value) {
+ var data = this.__data__;
+ if (isKeyable(key)) {
+ hashSet(typeof key == 'string' ? data.string : data.hash, key, value);
+ } else if (Map) {
+ data.map.set(key, value);
+ } else {
+ assocSet(data.map, key, value);
+ }
+ return this;
+}
+
+/**
+ * Creates a stack cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [values] The values to cache.
+ */
+function Stack(values) {
+ var index = -1,
+ length = values ? values.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = values[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the stack.
+ *
+ * @private
+ * @name clear
+ * @memberOf Stack
+ */
+function stackClear() {
+ this.__data__ = { 'array': [], 'map': null };
+}
+
+/**
+ * Removes `key` and its value from the stack.
+ *
+ * @private
+ * @name delete
+ * @memberOf Stack
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function stackDelete(key) {
+ var data = this.__data__,
+ array = data.array;
+
+ return array ? assocDelete(array, key) : data.map['delete'](key);
+}
+
+/**
+ * Gets the stack value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Stack
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function stackGet(key) {
+ var data = this.__data__,
+ array = data.array;
+
+ return array ? assocGet(array, key) : data.map.get(key);
+}
+
+/**
+ * Checks if a stack value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Stack
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function stackHas(key) {
+ var data = this.__data__,
+ array = data.array;
+
+ return array ? assocHas(array, key) : data.map.has(key);
+}
+
+/**
+ * Sets the stack `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Stack
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the stack cache object.
+ */
+function stackSet(key, value) {
+ var data = this.__data__,
+ array = data.array;
+
+ if (array) {
+ if (array.length < (LARGE_ARRAY_SIZE - 1)) {
+ assocSet(array, key, value);
+ } else {
+ data.array = null;
+ data.map = new MapCache(array);
+ }
+ }
+ var map = data.map;
+ if (map) {
+ map.set(key, value);
+ }
+ return this;
+}
+
+/**
+ * Removes `key` and its value from the associative array.
+ *
+ * @private
+ * @param {Array} array The array to query.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function assocDelete(array, key) {
+ var index = assocIndexOf(array, key);
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = array.length - 1;
+ if (index == lastIndex) {
+ array.pop();
+ } else {
+ splice.call(array, index, 1);
+ }
+ return true;
+}
+
+/**
+ * Gets the associative array value for `key`.
+ *
+ * @private
+ * @param {Array} array The array to query.
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function assocGet(array, key) {
+ var index = assocIndexOf(array, key);
+ return index < 0 ? undefined : array[index][1];
+}
+
+/**
+ * Checks if an associative array value for `key` exists.
+ *
+ * @private
+ * @param {Array} array The array to query.
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function assocHas(array, key) {
+ return assocIndexOf(array, key) > -1;
+}
+
+/**
+ * Gets the index at which the first occurrence of `key` is found in `array`
+ * of key-value pairs.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} key The key to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+}
+
+/**
+ * Sets the associative array `key` to `value`.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ */
+function assocSet(array, key, value) {
+ var index = assocIndexOf(array, key);
+ if (index < 0) {
+ array.push([key, value]);
+ } else {
+ array[index][1] = value;
+ }
+}
+
+/**
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+function assignValue(object, key, value) {
+ var objValue = object[key];
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
+ (value === undefined && !(key in object))) {
+ object[key] = value;
+ }
+}
+
+/**
+ * The base implementation of `_.assign` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+function baseAssign(object, source) {
+ return object && copyObject(source, keys(source), object);
+}
+
+/**
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
+ * traversed objects.
+ *
+ * @private
+ * @param {*} value The value to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @param {boolean} [isFull] Specify a clone including symbols.
+ * @param {Function} [customizer] The function to customize cloning.
+ * @param {string} [key] The key of `value`.
+ * @param {Object} [object] The parent object of `value`.
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
+ * @returns {*} Returns the cloned value.
+ */
+function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
+ var result;
+ if (customizer) {
+ result = object ? customizer(value, key, object, stack) : customizer(value);
+ }
+ if (result !== undefined) {
+ return result;
+ }
+ if (!isObject(value)) {
+ return value;
+ }
+ var isArr = isArray(value);
+ if (isArr) {
+ result = initCloneArray(value);
+ if (!isDeep) {
+ return copyArray(value, result);
+ }
+ } else {
+ var tag = getTag(value),
+ isFunc = tag == funcTag || tag == genTag;
+
+ if (isBuffer(value)) {
+ return cloneBuffer(value, isDeep);
+ }
+ if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
+ if (isHostObject(value)) {
+ return object ? value : {};
+ }
+ result = initCloneObject(isFunc ? {} : value);
+ if (!isDeep) {
+ result = baseAssign(result, value);
+ return isFull ? copySymbols(value, result) : result;
+ }
+ } else {
+ if (!cloneableTags[tag]) {
+ return object ? value : {};
+ }
+ result = initCloneByTag(value, tag, isDeep);
+ }
+ }
+ // Check for circular references and return its corresponding clone.
+ stack || (stack = new Stack);
+ var stacked = stack.get(value);
+ if (stacked) {
+ return stacked;
+ }
+ stack.set(value, result);
+
+ // Recursively populate clone (susceptible to call stack limits).
+ (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {
+ assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
+ });
+ return (isFull && !isArr) ? copySymbols(value, result) : result;
+}
+
+/**
+ * The base implementation of `_.create` without support for assigning
+ * properties to the created object.
+ *
+ * @private
+ * @param {Object} prototype The object to inherit from.
+ * @returns {Object} Returns the new object.
+ */
+function baseCreate(proto) {
+ return isObject(proto) ? objectCreate(proto) : {};
+}
+
+/**
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
+ * each property. Iteratee functions may exit iteration early by explicitly
+ * returning `false`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+var baseFor = createBaseFor();
+
+/**
+ * The base implementation of `_.forOwn` without support for iteratee shorthands.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+function baseForOwn(object, iteratee) {
+ return object && baseFor(object, iteratee, keys);
+}
+
+/**
+ * The base implementation of `_.has` without support for deep paths.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array|string} key The key to check.
+ * @returns {boolean} Returns `true` if `key` exists, else `false`.
+ */
+function baseHas(object, key) {
+ // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,
+ // that are composed entirely of index properties, return `false` for
+ // `hasOwnProperty` checks of them.
+ return hasOwnProperty.call(object, key) ||
+ (typeof object == 'object' && key in object && getPrototypeOf(object) === null);
+}
+
+/**
+ * The base implementation of `_.keys` which doesn't skip the constructor
+ * property of prototypes or treat sparse arrays as dense.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+function baseKeys(object) {
+ return nativeKeys(Object(object));
+}
+
+/**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Creates a clone of `buffer`.
+ *
+ * @private
+ * @param {Buffer} buffer The buffer to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Buffer} Returns the cloned buffer.
+ */
+function cloneBuffer(buffer, isDeep) {
+ if (isDeep) {
+ return buffer.slice();
+ }
+ var result = new buffer.constructor(buffer.length);
+ buffer.copy(result);
+ return result;
+}
+
+/**
+ * Creates a clone of `arrayBuffer`.
+ *
+ * @private
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
+ */
+function cloneArrayBuffer(arrayBuffer) {
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+ new Uint8Array(result).set(new Uint8Array(arrayBuffer));
+ return result;
+}
+
+/**
+ * Creates a clone of `map`.
+ *
+ * @private
+ * @param {Object} map The map to clone.
+ * @returns {Object} Returns the cloned map.
+ */
+function cloneMap(map) {
+ return arrayReduce(mapToArray(map), addMapEntry, new map.constructor);
+}
+
+/**
+ * Creates a clone of `regexp`.
+ *
+ * @private
+ * @param {Object} regexp The regexp to clone.
+ * @returns {Object} Returns the cloned regexp.
+ */
+function cloneRegExp(regexp) {
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
+ result.lastIndex = regexp.lastIndex;
+ return result;
+}
+
+/**
+ * Creates a clone of `set`.
+ *
+ * @private
+ * @param {Object} set The set to clone.
+ * @returns {Object} Returns the cloned set.
+ */
+function cloneSet(set) {
+ return arrayReduce(setToArray(set), addSetEntry, new set.constructor);
+}
+
+/**
+ * Creates a clone of the `symbol` object.
+ *
+ * @private
+ * @param {Object} symbol The symbol object to clone.
+ * @returns {Object} Returns the cloned symbol object.
+ */
+function cloneSymbol(symbol) {
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
+}
+
+/**
+ * Creates a clone of `typedArray`.
+ *
+ * @private
+ * @param {Object} typedArray The typed array to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned typed array.
+ */
+function cloneTypedArray(typedArray, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
+}
+
+/**
+ * Copies the values of `source` to `array`.
+ *
+ * @private
+ * @param {Array} source The array to copy values from.
+ * @param {Array} [array=[]] The array to copy values to.
+ * @returns {Array} Returns `array`.
+ */
+function copyArray(source, array) {
+ var index = -1,
+ length = source.length;
+
+ array || (array = Array(length));
+ while (++index < length) {
+ array[index] = source[index];
+ }
+ return array;
+}
+
+/**
+ * Copies properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy properties from.
+ * @param {Array} props The property names to copy.
+ * @param {Object} [object={}] The object to copy properties to.
+ * @returns {Object} Returns `object`.
+ */
+function copyObject(source, props, object) {
+ return copyObjectWith(source, props, object);
+}
+
+/**
+ * This function is like `copyObject` except that it accepts a function to
+ * customize copied values.
+ *
+ * @private
+ * @param {Object} source The object to copy properties from.
+ * @param {Array} props The property names to copy.
+ * @param {Object} [object={}] The object to copy properties to.
+ * @param {Function} [customizer] The function to customize copied values.
+ * @returns {Object} Returns `object`.
+ */
+function copyObjectWith(source, props, object, customizer) {
+ object || (object = {});
+
+ var index = -1,
+ length = props.length;
+
+ while (++index < length) {
+ var key = props[index];
+
+ var newValue = customizer
+ ? customizer(object[key], source[key], key, object, source)
+ : source[key];
+
+ assignValue(object, key, newValue);
+ }
+ return object;
+}
+
+/**
+ * Copies own symbol properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+function copySymbols(source, object) {
+ return copyObject(source, getSymbols(source), object);
+}
+
+/**
+ * Creates a base function for methods like `_.forIn`.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+function createBaseFor(fromRight) {
+ return function(object, iteratee, keysFunc) {
+ var index = -1,
+ iterable = Object(object),
+ props = keysFunc(object),
+ length = props.length;
+
+ while (length--) {
+ var key = props[fromRight ? length : ++index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
+ }
+ }
+ return object;
+ };
+}
+
+/**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * that affects Safari on at least iOS 8.1-8.3 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+var getLength = baseProperty('length');
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = object[key];
+ return isNative(value) ? value : undefined;
+}
+
+/**
+ * Creates an array of the own symbol properties of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of symbols.
+ */
+var getSymbols = getOwnPropertySymbols || function() {
+ return [];
+};
+
+/**
+ * Gets the `toStringTag` of `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+function getTag(value) {
+ return objectToString.call(value);
+}
+
+// Fallback for IE 11 providing `toStringTag` values for maps, sets, and weakmaps.
+if ((Map && getTag(new Map) != mapTag) ||
+ (Set && getTag(new Set) != setTag) ||
+ (WeakMap && getTag(new WeakMap) != weakMapTag)) {
+ getTag = function(value) {
+ var result = objectToString.call(value),
+ Ctor = result == objectTag ? value.constructor : null,
+ ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : '';
+
+ if (ctorString) {
+ switch (ctorString) {
+ case mapCtorString: return mapTag;
+ case setCtorString: return setTag;
+ case weakMapCtorString: return weakMapTag;
+ }
+ }
+ return result;
+ };
+}
+
+/**
+ * Initializes an array clone.
+ *
+ * @private
+ * @param {Array} array The array to clone.
+ * @returns {Array} Returns the initialized clone.
+ */
+function initCloneArray(array) {
+ var length = array.length,
+ result = array.constructor(length);
+
+ // Add properties assigned by `RegExp#exec`.
+ if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
+ result.index = array.index;
+ result.input = array.input;
+ }
+ return result;
+}
+
+/**
+ * Initializes an object clone.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+function initCloneObject(object) {
+ return (typeof object.constructor == 'function' && !isPrototype(object))
+ ? baseCreate(getPrototypeOf(object))
+ : {};
+}
+
+/**
+ * Initializes an object clone based on its `toStringTag`.
+ *
+ * **Note:** This function only supports cloning values with tags of
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @param {string} tag The `toStringTag` of the object to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+function initCloneByTag(object, tag, isDeep) {
+ var Ctor = object.constructor;
+ switch (tag) {
+ case arrayBufferTag:
+ return cloneArrayBuffer(object);
+
+ case boolTag:
+ case dateTag:
+ return new Ctor(+object);
+
+ case float32Tag: case float64Tag:
+ case int8Tag: case int16Tag: case int32Tag:
+ case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
+ return cloneTypedArray(object, isDeep);
+
+ case mapTag:
+ return cloneMap(object);
+
+ case numberTag:
+ case stringTag:
+ return new Ctor(object);
+
+ case regexpTag:
+ return cloneRegExp(object);
+
+ case setTag:
+ return cloneSet(object);
+
+ case symbolTag:
+ return cloneSymbol(object);
+ }
+}
+
+/**
+ * Creates an array of index keys for `object` values of arrays,
+ * `arguments` objects, and strings, otherwise `null` is returned.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array|null} Returns index keys, else `null`.
+ */
+function indexKeys(object) {
+ var length = object ? object.length : undefined;
+ if (isLength(length) &&
+ (isArray(object) || isString(object) || isArguments(object))) {
+ return baseTimes(length, String);
+ }
+ return null;
+}
+
+/**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+function isKeyable(value) {
+ var type = typeof value;
+ return type == 'number' || type == 'boolean' ||
+ (type == 'string' && value != '__proto__') || value == null;
+}
+
+/**
+ * Checks if `value` is likely a prototype object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
+ */
+function isPrototype(value) {
+ var Ctor = value && value.constructor,
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
+
+ return value === proto;
+}
+
+/**
+ * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * comparison between two values to determine if they are equivalent.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ * var other = { 'user': 'fred' };
+ *
+ * _.eq(object, object);
+ * // => true
+ *
+ * _.eq(object, other);
+ * // => false
+ *
+ * _.eq('a', 'a');
+ * // => true
+ *
+ * _.eq('a', Object('a'));
+ * // => false
+ *
+ * _.eq(NaN, NaN);
+ * // => true
+ */
+function eq(value, other) {
+ return value === other || (value !== value && other !== other);
+}
+
+/**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+ // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode.
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
+ (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @type {Function}
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+var isArray = Array.isArray;
+
+/**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+function isArrayLike(value) {
+ return value != null && isLength(getLength(value)) && !isFunction(value);
+}
+
+/**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+
+/**
+ * Checks if `value` is a buffer.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
+ * @example
+ *
+ * _.isBuffer(new Buffer(2));
+ * // => true
+ *
+ * _.isBuffer(new Uint8Array(2));
+ * // => false
+ */
+var isBuffer = !Buffer ? constant(false) : function(value) {
+ return value instanceof Buffer;
+};
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(funcToString.call(value));
+ }
+ return isObjectLike(value) &&
+ (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
+}
+
+/**
+ * Checks if `value` is classified as a `String` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isString('abc');
+ * // => true
+ *
+ * _.isString(1);
+ * // => false
+ */
+function isString(value) {
+ return typeof value == 'string' ||
+ (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
+}
+
+/**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+function keys(object) {
+ var isProto = isPrototype(object);
+ if (!(isProto || isArrayLike(object))) {
+ return baseKeys(object);
+ }
+ var indexes = indexKeys(object),
+ skipIndexes = !!indexes,
+ result = indexes || [],
+ length = result.length;
+
+ for (var key in object) {
+ if (baseHas(object, key) &&
+ !(skipIndexes && (key == 'length' || isIndex(key, length))) &&
+ !(isProto && key == 'constructor')) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Creates a function that returns `value`.
+ *
+ * @static
+ * @memberOf _
+ * @category Util
+ * @param {*} value The value to return from the new function.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ * var getter = _.constant(object);
+ *
+ * getter() === object;
+ * // => true
+ */
+function constant(value) {
+ return function() {
+ return value;
+ };
+}
+
+// Avoid inheriting from `Object.prototype` when possible.
+Hash.prototype = nativeCreate ? nativeCreate(null) : objectProto;
+
+// Add functions to the `MapCache`.
+MapCache.prototype.clear = mapClear;
+MapCache.prototype['delete'] = mapDelete;
+MapCache.prototype.get = mapGet;
+MapCache.prototype.has = mapHas;
+MapCache.prototype.set = mapSet;
+
+// Add functions to the `Stack` cache.
+Stack.prototype.clear = stackClear;
+Stack.prototype['delete'] = stackDelete;
+Stack.prototype.get = stackGet;
+Stack.prototype.has = stackHas;
+Stack.prototype.set = stackSet;
+
+module.exports = baseClone;
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/package.json b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/package.json
similarity index 59%
rename from deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/package.json
rename to deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/package.json
index 63a308a4bc8ea4..64c0ac7a1411d5 100644
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/package.json
+++ b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._baseclone/package.json
@@ -1,29 +1,29 @@
{
"_args": [
[
- "lodash._stack@^4.0.0",
+ "lodash._baseclone@^4.0.0",
"/Users/rebecca/code/npm/node_modules/lodash.clonedeep"
]
],
- "_from": "lodash._stack@>=4.0.0 <5.0.0",
- "_id": "lodash._stack@4.0.2",
+ "_from": "lodash._baseclone@>=4.0.0 <5.0.0",
+ "_id": "lodash._baseclone@4.5.3",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.clonedeep/lodash._stack",
- "_nodeVersion": "5.4.0",
+ "_location": "/lodash.clonedeep/lodash._baseclone",
+ "_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-6-west.internal.npmjs.com",
- "tmp": "tmp/lodash._stack-4.0.2.tgz_1454484296819_0.9307619817554951"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash._baseclone-4.5.3.tgz_1456902628287_0.513930449495092"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
- "name": "lodash._stack",
- "raw": "lodash._stack@^4.0.0",
+ "name": "lodash._baseclone",
+ "raw": "lodash._baseclone@^4.0.0",
"rawSpec": "^4.0.0",
"scope": null,
"spec": ">=4.0.0 <5.0.0",
@@ -32,10 +32,10 @@
"_requiredBy": [
"/lodash.clonedeep"
],
- "_resolved": "https://registry.npmjs.org/lodash._stack/-/lodash._stack-4.0.2.tgz",
- "_shasum": "a086ab9b59c8e1bf114aec6f82c7446338e730d9",
+ "_resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.3.tgz",
+ "_shasum": "c3f6df594c44c16012f9ecd59e58d5f70d3d72e2",
"_shrinkwrap": null,
- "_spec": "lodash._stack@^4.0.0",
+ "_spec": "lodash._baseclone@^4.0.0",
"_where": "/Users/rebecca/code/npm/node_modules/lodash.clonedeep",
"author": {
"email": "john.david.dalton@gmail.com",
@@ -47,49 +47,47 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
+ "email": "blaine.bublitz@gmail.com",
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {
- "lodash._mapcache": "^4.0.0"
- },
- "description": "The internal lodash function `Stack` exported as a module.",
+ "dependencies": {},
+ "description": "The internal lodash function `baseClone` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "a086ab9b59c8e1bf114aec6f82c7446338e730d9",
- "tarball": "http://registry.npmjs.org/lodash._stack/-/lodash._stack-4.0.2.tgz"
+ "shasum": "c3f6df594c44c16012f9ecd59e58d5f70d3d72e2",
+ "tarball": "http://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.3.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine.bublitz@gmail.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
- "name": "lodash._stack",
+ "name": "lodash._baseclone",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -99,5 +97,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.0.2"
+ "version": "4.5.3"
}
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/LICENSE b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/README.md b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/README.md
deleted file mode 100644
index b17e221b1613f0..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._basefor v3.0.3
-
-The internal [lodash](https://lodash.com/) function `baseFor` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basefor
-```
-
-In Node.js:
-```js
-var baseFor = require('lodash._basefor');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.3-npm-packages/lodash._basefor) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/index.js b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/index.js
deleted file mode 100644
index 3f1d1896d2bdf2..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * lodash 3.0.3 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * The base implementation of `baseForIn` and `baseForOwn` which iterates
- * over `object` properties returned by `keysFunc` invoking `iteratee` for
- * each property. Iteratee functions may exit iteration early by explicitly
- * returning `false`.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @returns {Object} Returns `object`.
- */
-var baseFor = createBaseFor();
-
-/**
- * Creates a base function for methods like `_.forIn`.
- *
- * @private
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var index = -1,
- iterable = Object(object),
- props = keysFunc(object),
- length = props.length;
-
- while (length--) {
- var key = props[fromRight ? length : ++index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
- }
- }
- return object;
- };
-}
-
-module.exports = baseFor;
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/package.json b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/package.json
deleted file mode 100644
index 003549a67a425f..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._basefor/package.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
- "_args": [
- [
- "lodash._basefor@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.clonedeep"
- ]
- ],
- "_from": "lodash._basefor@>=3.0.0 <4.0.0",
- "_id": "lodash._basefor@3.0.3",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.clonedeep/lodash._basefor",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._basefor",
- "raw": "lodash._basefor@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.clonedeep"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz",
- "_shasum": "7550b4e9218ef09fad24343b612021c79b4c20c2",
- "_shrinkwrap": null,
- "_spec": "lodash._basefor@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.clonedeep",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `baseFor` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "7550b4e9218ef09fad24343b612021c79b4c20c2",
- "tarball": "http://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "name": "lodash._basefor",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.3"
-}
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/LICENSE b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/README.md b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/README.md
deleted file mode 100644
index 9372f4a97c645e..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._root v3.0.0
-
-The internal [lodash](https://lodash.com/) function `root` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._root
-```
-
-In Node.js:
-```js
-var root = require('lodash._root');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._root) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/index.js b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/index.js
deleted file mode 100644
index 469812486397ed..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * lodash 3.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to determine if values are of the language type `Object`. */
-var objectTypes = {
- 'function': true,
- 'object': true
-};
-
-/** Detect free variable `exports`. */
-var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null;
-
-/** Detect free variable `module`. */
-var freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null;
-
-/** Detect free variable `global` from Node.js. */
-var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
-
-/** Detect free variable `self`. */
-var freeSelf = checkGlobal(objectTypes[typeof self] && self);
-
-/** Detect free variable `window`. */
-var freeWindow = checkGlobal(objectTypes[typeof window] && window);
-
-/** Detect `this` as the global object. */
-var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
-
-/**
- * Used as a reference to the global object.
- *
- * The `this` value is used if it's the global object to avoid Greasemonkey's
- * restricted `window` object, otherwise the `window` object is used.
- */
-var root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')();
-
-/**
- * Checks if `value` is a global object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {null|Object} Returns `value` if it's a global object, else `null`.
- */
-function checkGlobal(value) {
- return (value && value.Object === Object) ? value : null;
-}
-
-module.exports = root;
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/package.json b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/package.json
deleted file mode 100644
index e4da974c03b8e5..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._root/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "_args": [
- [
- "lodash._root@^3.0.0",
- "/Users/zkat/Documents/code/npm/node_modules/lodash.clonedeep"
- ]
- ],
- "_from": "lodash._root@>=3.0.0 <4.0.0",
- "_id": "lodash._root@3.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.clonedeep/lodash._root",
- "_nodeVersion": "5.5.0",
- "_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._root-3.0.0.tgz_1454898276727_0.4872864377684891"
- },
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.18",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._root",
- "raw": "lodash._root@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.clonedeep",
- "/lodash.clonedeep/lodash._stack/lodash._mapcache"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz",
- "_shasum": "fe2fba5117f3e12c3cf7e13b3993b20f745727b7",
- "_shrinkwrap": null,
- "_spec": "lodash._root@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash.clonedeep",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- {
- "email": "blaine@iceddev.com",
- "name": "Blaine Bublitz",
- "url": "https://github.com/phated"
- },
- {
- "email": "mathias@qiwi.be",
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `root` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "fe2fba5117f3e12c3cf7e13b3993b20f745727b7",
- "tarball": "http://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- }
- ],
- "name": "lodash._root",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/LICENSE b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/README.md b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/README.md
deleted file mode 100644
index 5b65e8eff4d75a..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._stack v4.0.2
-
-The internal [lodash](https://lodash.com/) function `Stack` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._stack
-```
-
-In Node.js:
-```js
-var Stack = require('lodash._stack');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.2-npm-packages/lodash._stack) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/index.js b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/index.js
deleted file mode 100644
index a6d705d7e23a2b..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/index.js
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- * lodash 4.0.2 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var MapCache = require('lodash._mapcache');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype;
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/**
- * Creates a stack cache object to store key-value pairs.
- *
- * @private
- * @param {Array} [values] The values to cache.
- */
-function Stack(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = values[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the stack.
- *
- * @private
- * @name clear
- * @memberOf Stack
- */
-function stackClear() {
- this.__data__ = { 'array': [], 'map': null };
-}
-
-/**
- * Removes `key` and its value from the stack.
- *
- * @private
- * @name delete
- * @memberOf Stack
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function stackDelete(key) {
- var data = this.__data__,
- array = data.array;
-
- return array ? assocDelete(array, key) : data.map['delete'](key);
-}
-
-/**
- * Gets the stack value for `key`.
- *
- * @private
- * @name get
- * @memberOf Stack
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function stackGet(key) {
- var data = this.__data__,
- array = data.array;
-
- return array ? assocGet(array, key) : data.map.get(key);
-}
-
-/**
- * Checks if a stack value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Stack
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function stackHas(key) {
- var data = this.__data__,
- array = data.array;
-
- return array ? assocHas(array, key) : data.map.has(key);
-}
-
-/**
- * Sets the stack `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Stack
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the stack cache object.
- */
-function stackSet(key, value) {
- var data = this.__data__,
- array = data.array;
-
- if (array) {
- if (array.length < (LARGE_ARRAY_SIZE - 1)) {
- assocSet(array, key, value);
- } else {
- data.array = null;
- data.map = new MapCache(array);
- }
- }
- var map = data.map;
- if (map) {
- map.set(key, value);
- }
- return this;
-}
-
-/**
- * Removes `key` and its value from the associative array.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function assocDelete(array, key) {
- var index = assocIndexOf(array, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = array.length - 1;
- if (index == lastIndex) {
- array.pop();
- } else {
- splice.call(array, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the associative array value for `key`.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function assocGet(array, key) {
- var index = assocIndexOf(array, key);
- return index < 0 ? undefined : array[index][1];
-}
-
-/**
- * Checks if an associative array value for `key` exists.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function assocHas(array, key) {
- return assocIndexOf(array, key) > -1;
-}
-
-/**
- * Gets the index at which the first occurrence of `key` is found in `array`
- * of key-value pairs.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * Sets the associative array `key` to `value`.
- *
- * @private
- * @param {Array} array The array to modify.
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- */
-function assocSet(array, key, value) {
- var index = assocIndexOf(array, key);
- if (index < 0) {
- array.push([key, value]);
- } else {
- array[index][1] = value;
- }
-}
-
-/**
- * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-// Add functions to the `Stack` cache.
-Stack.prototype.clear = stackClear;
-Stack.prototype['delete'] = stackDelete;
-Stack.prototype.get = stackGet;
-Stack.prototype.has = stackHas;
-Stack.prototype.set = stackSet;
-
-module.exports = Stack;
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/LICENSE b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/README.md b/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/README.md
deleted file mode 100644
index c011ef170fe639..00000000000000
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._mapcache v4.1.0
-
-The internal [lodash](https://lodash.com/) function `MapCache` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._mapcache
-```
-
-In Node.js:
-```js
-var MapCache = require('lodash._mapcache');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash._mapcache) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/package.json b/deps/npm/node_modules/lodash.clonedeep/package.json
index b7f0c35c77ef9d..008d0943e10d5c 100644
--- a/deps/npm/node_modules/lodash.clonedeep/package.json
+++ b/deps/npm/node_modules/lodash.clonedeep/package.json
@@ -1,42 +1,42 @@
{
"_args": [
[
- "lodash.clonedeep@4.1.0",
- "/Users/zkat/Documents/code/npm"
+ "lodash.clonedeep@~4.3.0",
+ "/Users/rebecca/code/npm"
]
],
- "_from": "lodash.clonedeep@4.1.0",
- "_id": "lodash.clonedeep@4.1.0",
+ "_from": "lodash.clonedeep@>=4.3.0 <4.4.0",
+ "_id": "lodash.clonedeep@4.3.1",
"_inCache": true,
"_installable": true,
"_location": "/lodash.clonedeep",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash.clonedeep-4.1.0.tgz_1454898307983_0.7563570607453585"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.clonedeep-4.3.1.tgz_1456902680114_0.3442365804221481"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.18",
+ "_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
"name": "lodash.clonedeep",
- "raw": "lodash.clonedeep@4.1.0",
- "rawSpec": "4.1.0",
+ "raw": "lodash.clonedeep@~4.3.0",
+ "rawSpec": "~4.3.0",
"scope": null,
- "spec": "4.1.0",
- "type": "version"
+ "spec": ">=4.3.0 <4.4.0",
+ "type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.1.0.tgz",
- "_shasum": "7f8ee89a7cfe6d76ac900bc4d69fa8fcdca39942",
+ "_resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.1.tgz",
+ "_shasum": "94bd4e5267be2f72f567aa0b7b650c5044e24e71",
"_shrinkwrap": null,
- "_spec": "lodash.clonedeep@4.1.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "lodash.clonedeep@~4.3.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -52,7 +52,7 @@
"url": "http://allyoucanleet.com/"
},
{
- "email": "blaine@iceddev.com",
+ "email": "blaine.bublitz@gmail.com",
"name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
@@ -63,18 +63,14 @@
}
],
"dependencies": {
- "lodash._arrayeach": "^3.0.0",
- "lodash._basefor": "^3.0.0",
- "lodash._root": "^3.0.0",
- "lodash._stack": "^4.0.0",
- "lodash.keys": "^4.0.0"
+ "lodash._baseclone": "^4.0.0"
},
"description": "The lodash method `_.cloneDeep` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "7f8ee89a7cfe6d76ac900bc4d69fa8fcdca39942",
- "tarball": "http://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.1.0.tgz"
+ "shasum": "94bd4e5267be2f72f567aa0b7b650c5044e24e71",
+ "tarball": "http://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.1.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -107,5 +103,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.1.0"
+ "version": "4.3.1"
}
diff --git a/deps/npm/node_modules/lodash.isarguments/LICENSE b/deps/npm/node_modules/lodash.isarguments/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.isarguments/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.isarguments/README.md b/deps/npm/node_modules/lodash.isarguments/README.md
deleted file mode 100644
index e53688dd84571f..00000000000000
--- a/deps/npm/node_modules/lodash.isarguments/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash.isarguments v3.0.6
-
-The [lodash](https://lodash.com/) method `_.isArguments` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.isarguments
-```
-
-In Node.js:
-```js
-var isArguments = require('lodash.isarguments');
-```
-
-See the [documentation](https://lodash.com/docs#isArguments) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.isarguments) for more details.
diff --git a/deps/npm/node_modules/lodash.isarguments/index.js b/deps/npm/node_modules/lodash.isarguments/index.js
deleted file mode 100644
index 56ec8acde24996..00000000000000
--- a/deps/npm/node_modules/lodash.isarguments/index.js
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * lodash 3.0.6 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Built-in value references. */
-var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is likely an `arguments` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
-function isArguments(value) {
- // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode.
- return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
- (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
-}
-
-/**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @type Function
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
-function isArrayLike(value) {
- return value != null &&
- !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));
-}
-
-/**
- * This method is like `_.isArrayLike` except that it also checks if `value`
- * is an object.
- *
- * @static
- * @memberOf _
- * @type Function
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.
- * @example
- *
- * _.isArrayLikeObject([1, 2, 3]);
- * // => true
- *
- * _.isArrayLikeObject(document.body.children);
- * // => true
- *
- * _.isArrayLikeObject('abc');
- * // => false
- *
- * _.isArrayLikeObject(_.noop);
- * // => false
- */
-function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-module.exports = isArguments;
diff --git a/deps/npm/node_modules/lodash.isarguments/package.json b/deps/npm/node_modules/lodash.isarguments/package.json
deleted file mode 100644
index adf5eeeb464c95..00000000000000
--- a/deps/npm/node_modules/lodash.isarguments/package.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{
- "_args": [
- [
- "lodash.isarguments@~3.0.5",
- "/Users/rebecca/code/npm"
- ]
- ],
- "_from": "lodash.isarguments@>=3.0.5 <3.1.0",
- "_id": "lodash.isarguments@3.0.6",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.isarguments",
- "_nodeVersion": "5.4.0",
- "_npmOperationalInternal": {
- "host": "packages-5-east.internal.npmjs.com",
- "tmp": "tmp/lodash.isarguments-3.0.6.tgz_1454484489481_0.09009004035033286"
- },
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash.isarguments",
- "raw": "lodash.isarguments@~3.0.5",
- "rawSpec": "~3.0.5",
- "scope": null,
- "spec": ">=3.0.5 <3.1.0",
- "type": "range"
- },
- "_requiredBy": [
- "/",
- "/standard/standard-engine/eslint/lodash.clonedeep/lodash._baseclone/lodash.keys",
- "/standard/standard-engine/eslint/lodash.merge",
- "/standard/standard-engine/eslint/lodash.merge/lodash.isplainobject",
- "/standard/standard-engine/eslint/lodash.merge/lodash.keys",
- "/standard/standard-engine/eslint/lodash.merge/lodash.keysin",
- "/standard/standard-engine/eslint/lodash.omit/lodash._baseflatten",
- "/standard/standard-engine/eslint/lodash.omit/lodash.keysin"
- ],
- "_resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.6.tgz",
- "_shasum": "5dcaf8555b3ccd0afb15812b9819ec68ca098206",
- "_shrinkwrap": null,
- "_spec": "lodash.isarguments@~3.0.5",
- "_where": "/Users/rebecca/code/npm",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The lodash method `_.isArguments` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "5dcaf8555b3ccd0afb15812b9819ec68ca098206",
- "tarball": "http://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.6.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "keywords": [
- "isarguments",
- "lodash-modularized"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "name": "lodash.isarguments",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.6"
-}
diff --git a/deps/npm/node_modules/lodash.keys/LICENSE b/deps/npm/node_modules/lodash.keys/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash.keys/LICENSE
+++ b/deps/npm/node_modules/lodash.keys/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.keys/README.md b/deps/npm/node_modules/lodash.keys/README.md
index 2b36548a6ec1cf..0ea25ba6b217ad 100644
--- a/deps/npm/node_modules/lodash.keys/README.md
+++ b/deps/npm/node_modules/lodash.keys/README.md
@@ -1,4 +1,4 @@
-# lodash.keys v4.0.2
+# lodash.keys v4.0.5
The [lodash](https://lodash.com/) method `_.keys` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var keys = require('lodash.keys');
```
-See the [documentation](https://lodash.com/docs#keys) or [package source](https://github.com/lodash/lodash/blob/4.0.2-npm-packages/lodash.keys) for more details.
+See the [documentation](https://lodash.com/docs#keys) or [package source](https://github.com/lodash/lodash/blob/4.0.5-npm-packages/lodash.keys) for more details.
diff --git a/deps/npm/node_modules/lodash.keys/index.js b/deps/npm/node_modules/lodash.keys/index.js
index 00ef3c302e7c73..81b3627ed50a3f 100644
--- a/deps/npm/node_modules/lodash.keys/index.js
+++ b/deps/npm/node_modules/lodash.keys/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.0.2 (Custom Build)
+ * lodash 4.0.5 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -92,7 +92,6 @@ function baseHas(object, key) {
* property of prototypes or treat sparse arrays as dense.
*
* @private
- * @type Function
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
@@ -183,7 +182,7 @@ function isArguments(value) {
*
* @static
* @memberOf _
- * @type Function
+ * @type {Function}
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
@@ -210,7 +209,6 @@ var isArray = Array.isArray;
*
* @static
* @memberOf _
- * @type Function
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
@@ -229,8 +227,7 @@ var isArray = Array.isArray;
* // => false
*/
function isArrayLike(value) {
- return value != null &&
- !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));
+ return value != null && isLength(getLength(value)) && !isFunction(value);
}
/**
@@ -239,7 +236,6 @@ function isArrayLike(value) {
*
* @static
* @memberOf _
- * @type Function
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.
@@ -279,8 +275,8 @@ function isArrayLikeObject(value) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
var tag = isObject(value) ? objectToString.call(value) : '';
return tag == funcTag || tag == genTag;
}
@@ -310,7 +306,8 @@ function isFunction(value) {
* // => false
*/
function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
diff --git a/deps/npm/node_modules/lodash.keys/package.json b/deps/npm/node_modules/lodash.keys/package.json
index d8c86080a3e04a..a11b70f00e7128 100644
--- a/deps/npm/node_modules/lodash.keys/package.json
+++ b/deps/npm/node_modules/lodash.keys/package.json
@@ -1,42 +1,41 @@
{
"_args": [
[
- "lodash.keys@~4.0.1",
+ "lodash.keys@~4.0.4",
"/Users/rebecca/code/npm"
]
],
- "_from": "lodash.keys@>=4.0.1 <4.1.0",
- "_id": "lodash.keys@4.0.2",
+ "_from": "lodash.keys@>=4.0.4 <4.1.0",
+ "_id": "lodash.keys@4.0.5",
"_inCache": true,
"_installable": true,
"_location": "/lodash.keys",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash.keys-4.0.2.tgz_1454484556116_0.6872272489126772"
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.keys-4.0.5.tgz_1456896665060_0.7360312680248171"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
"name": "lodash.keys",
- "raw": "lodash.keys@~4.0.1",
- "rawSpec": "~4.0.1",
+ "raw": "lodash.keys@~4.0.4",
+ "rawSpec": "~4.0.4",
"scope": null,
- "spec": ">=4.0.1 <4.1.0",
+ "spec": ">=4.0.4 <4.1.0",
"type": "range"
},
"_requiredBy": [
- "/",
- "/lodash.clonedeep"
+ "/"
],
- "_resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.2.tgz",
- "_shasum": "e663a6a8d2b33eba1366ea0978240e49b3bde6fd",
+ "_resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.5.tgz",
+ "_shasum": "e8839257ec931ec48d8cfd2f0d7e4b53a1df106c",
"_shrinkwrap": null,
- "_spec": "lodash.keys@~4.0.1",
+ "_spec": "lodash.keys@~4.0.4",
"_where": "/Users/rebecca/code/npm",
"author": {
"email": "john.david.dalton@gmail.com",
@@ -48,18 +47,18 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
+ "email": "blaine.bublitz@gmail.com",
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
@@ -68,28 +67,28 @@
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "e663a6a8d2b33eba1366ea0978240e49b3bde6fd",
- "tarball": "http://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.2.tgz"
+ "shasum": "e8839257ec931ec48d8cfd2f0d7e4b53a1df106c",
+ "tarball": "http://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.5.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
- "keys",
- "lodash-modularized"
+ "lodash-modularized",
+ "keys"
],
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash.keys",
@@ -102,5 +101,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.0.2"
+ "version": "4.0.5"
}
diff --git a/deps/npm/node_modules/lodash.union/LICENSE b/deps/npm/node_modules/lodash.union/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash.union/LICENSE
+++ b/deps/npm/node_modules/lodash.union/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/README.md b/deps/npm/node_modules/lodash.union/README.md
index 373d62f2e3ad3e..e23dd0771f85a3 100644
--- a/deps/npm/node_modules/lodash.union/README.md
+++ b/deps/npm/node_modules/lodash.union/README.md
@@ -1,4 +1,4 @@
-# lodash.union v4.1.0
+# lodash.union v4.2.0
The [lodash](https://lodash.com/) method `_.union` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var union = require('lodash.union');
```
-See the [documentation](https://lodash.com/docs#union) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.union) for more details.
+See the [documentation](https://lodash.com/docs#union) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.union) for more details.
diff --git a/deps/npm/node_modules/lodash.union/index.js b/deps/npm/node_modules/lodash.union/index.js
index db1ec1194e6149..36cc1e6bcde506 100644
--- a/deps/npm/node_modules/lodash.union/index.js
+++ b/deps/npm/node_modules/lodash.union/index.js
@@ -1,179 +1,18 @@
/**
- * lodash 4.1.0 (Custom Build)
+ * lodash 4.2.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var SetCache = require('lodash._setcache'),
- arrayIncludes = require('lodash._arrayincludes'),
- arrayIncludesWith = require('lodash._arrayincludeswith'),
- baseFlatten = require('lodash._baseflatten'),
- cacheHas = require('lodash._cachehas'),
- rest = require('lodash.rest'),
- root = require('lodash._root');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/**
- * Converts `set` to an array.
- *
- * @private
- * @param {Object} set The set to convert.
- * @returns {Array} Returns the converted array.
- */
-function setToArray(set) {
- var index = -1,
- result = Array(set.size);
-
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
-}
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/* Built-in method references that are verified to be native. */
-var Set = getNative(root, 'Set');
+var baseFlatten = require('lodash._baseflatten'),
+ baseUniq = require('lodash._baseuniq'),
+ rest = require('lodash.rest');
/**
- * The base implementation of `_.uniqBy` without support for iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new duplicate free array.
- */
-function baseUniq(array, iteratee, comparator) {
- var index = -1,
- includes = arrayIncludes,
- length = array.length,
- isCommon = true,
- result = [],
- seen = result;
-
- if (comparator) {
- isCommon = false;
- includes = arrayIncludesWith;
- }
- else if (length >= LARGE_ARRAY_SIZE) {
- var set = iteratee ? null : createSet(array);
- if (set) {
- return setToArray(set);
- }
- isCommon = false;
- includes = cacheHas;
- seen = new SetCache;
- }
- else {
- seen = iteratee ? [] : result;
- }
- outer:
- while (++index < length) {
- var value = array[index],
- computed = iteratee ? iteratee(value) : value;
-
- if (isCommon && computed === computed) {
- var seenIndex = seen.length;
- while (seenIndex--) {
- if (seen[seenIndex] === computed) {
- continue outer;
- }
- }
- if (iteratee) {
- seen.push(computed);
- }
- result.push(value);
- }
- else if (!includes(seen, computed, comparator)) {
- if (seen !== result) {
- seen.push(computed);
- }
- result.push(value);
- }
- }
- return result;
-}
-
-/**
- * Creates a set of `values`.
- *
- * @private
- * @param {Array} values The values to add to the set.
- * @returns {Object} Returns the new set.
- */
-var createSet = !(Set && new Set([1, 2]).size === 2) ? noop : function(values) {
- return new Set(values);
-};
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Creates an array of unique values, in order, from all of the provided arrays
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * Creates an array of unique values, in order, from all given arrays using
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
* for equality comparisons.
*
* @static
@@ -187,131 +26,7 @@ function getNative(object, key) {
* // => [2, 1, 4]
*/
var union = rest(function(arrays) {
- return baseUniq(baseFlatten(arrays, false, true));
+ return baseUniq(baseFlatten(arrays, 1, true));
});
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(funcToString.call(value));
- }
- return isObjectLike(value) &&
- (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
-}
-
-/**
- * A no-operation function that returns `undefined` regardless of the
- * arguments it receives.
- *
- * @static
- * @memberOf _
- * @category Util
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.noop(object) === undefined;
- * // => true
- */
-function noop() {
- // No operation performed.
-}
-
module.exports = union;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/README.md b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/README.md
deleted file mode 100644
index af814ce59e6a3d..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._arrayincludes v4.0.0
-
-The internal [lodash](https://lodash.com/) function `arrayIncludes` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayincludes
-```
-
-In Node.js:
-```js
-var arrayIncludes = require('lodash._arrayincludes');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._arrayincludes) for more details.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/index.js
deleted file mode 100644
index b9d5f79787ff7c..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.includes` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludes(array, value) {
- return !!array.length && baseIndexOf(array, value, 0) > -1;
-}
-
-/**
- * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} fromIndex The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function baseIndexOf(array, value, fromIndex) {
- if (value !== value) {
- return indexOfNaN(array, fromIndex);
- }
- var index = fromIndex - 1,
- length = array.length;
-
- while (++index < length) {
- if (array[index] === value) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * Gets the index at which the first occurrence of `NaN` is found in `array`.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {number} fromIndex The index to search from.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {number} Returns the index of the matched `NaN`, else `-1`.
- */
-function indexOfNaN(array, fromIndex, fromRight) {
- var length = array.length,
- index = fromIndex + (fromRight ? 0 : -1);
-
- while ((fromRight ? index-- : ++index < length)) {
- var other = array[index];
- if (other !== other) {
- return index;
- }
- }
- return -1;
-}
-
-module.exports = arrayIncludes;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/package.json b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/package.json
deleted file mode 100644
index 81e1b4b0c3fbbb..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludes/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayincludes@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.union"
- ]
- ],
- "_from": "lodash._arrayincludes@>=4.0.0 <5.0.0",
- "_id": "lodash._arrayincludes@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.union/lodash._arrayincludes",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayincludes",
- "raw": "lodash._arrayincludes@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.union"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayincludes/-/lodash._arrayincludes-4.0.0.tgz",
- "_shasum": "670d14047d4fef8147c5560e02edad59f0051251",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayincludes@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.union",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `arrayIncludes` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "670d14047d4fef8147c5560e02edad59f0051251",
- "tarball": "http://registry.npmjs.org/lodash._arrayincludes/-/lodash._arrayincludes-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayincludes",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/README.md b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/README.md
deleted file mode 100644
index 26d2593ad3b3cc..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._arrayincludeswith v4.0.0
-
-The internal [lodash](https://lodash.com/) function `arrayIncludesWith` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayincludeswith
-```
-
-In Node.js:
-```js
-var arrayIncludesWith = require('lodash._arrayincludeswith');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._arrayincludeswith) for more details.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/index.js
deleted file mode 100644
index b4416d7f0e5269..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.includesWith` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @param {Function} comparator The comparator invoked per element.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludesWith(array, value, comparator) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (comparator(value, array[index])) {
- return true;
- }
- }
- return false;
-}
-
-module.exports = arrayIncludesWith;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/package.json b/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/package.json
deleted file mode 100644
index 9a69f51c0b94c3..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._arrayincludeswith/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayincludeswith@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.union"
- ]
- ],
- "_from": "lodash._arrayincludeswith@>=4.0.0 <5.0.0",
- "_id": "lodash._arrayincludeswith@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.union/lodash._arrayincludeswith",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayincludeswith",
- "raw": "lodash._arrayincludeswith@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.union"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayincludeswith/-/lodash._arrayincludeswith-4.0.0.tgz",
- "_shasum": "cf065785fdbd28753efa4fd2f0b71facc1897a4c",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayincludeswith@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.union",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `arrayIncludesWith` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "cf065785fdbd28753efa4fd2f0b71facc1897a4c",
- "tarball": "http://registry.npmjs.org/lodash._arrayincludeswith/-/lodash._arrayincludeswith-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayincludeswith",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE
+++ b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md
index e425812c0d45fc..c9d54a894abad8 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md
+++ b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/README.md
@@ -1,4 +1,4 @@
-# lodash._baseflatten v4.0.1
+# lodash._baseflatten v4.1.0
The internal [lodash](https://lodash.com/) function `baseFlatten` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var baseFlatten = require('lodash._baseflatten');
```
-See the [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash._baseflatten) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash._baseflatten) for more details.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js
index 72a9707f8a1276..d684b47929272c 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js
+++ b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.0.1 (Custom Build)
+ * lodash 4.1.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -54,12 +54,12 @@ var propertyIsEnumerable = objectProto.propertyIsEnumerable;
*
* @private
* @param {Array} array The array to flatten.
- * @param {boolean} [isDeep] Specify a deep flatten.
+ * @param {number} depth The maximum recursion depth.
* @param {boolean} [isStrict] Restrict flattening to arrays-like objects.
* @param {Array} [result=[]] The initial result value.
* @returns {Array} Returns the new flattened array.
*/
-function baseFlatten(array, isDeep, isStrict, result) {
+function baseFlatten(array, depth, isStrict, result) {
result || (result = []);
var index = -1,
@@ -67,11 +67,11 @@ function baseFlatten(array, isDeep, isStrict, result) {
while (++index < length) {
var value = array[index];
- if (isArrayLikeObject(value) &&
+ if (depth > 0 && isArrayLikeObject(value) &&
(isStrict || isArray(value) || isArguments(value))) {
- if (isDeep) {
+ if (depth > 1) {
// Recursively flatten arrays (susceptible to call stack limits).
- baseFlatten(value, isDeep, isStrict, result);
+ baseFlatten(value, depth - 1, isStrict, result);
} else {
arrayPush(result, value);
}
@@ -134,7 +134,7 @@ function isArguments(value) {
*
* @static
* @memberOf _
- * @type Function
+ * @type {Function}
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
@@ -161,7 +161,6 @@ var isArray = Array.isArray;
*
* @static
* @memberOf _
- * @type Function
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
@@ -190,7 +189,6 @@ function isArrayLike(value) {
*
* @static
* @memberOf _
- * @type Function
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.
@@ -261,7 +259,8 @@ function isFunction(value) {
* // => false
*/
function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json
index 56a36518ada185..c21e5e4ebb163a 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json
+++ b/deps/npm/node_modules/lodash.union/node_modules/lodash._baseflatten/package.json
@@ -6,20 +6,20 @@
]
],
"_from": "lodash._baseflatten@>=4.0.0 <5.0.0",
- "_id": "lodash._baseflatten@4.0.1",
+ "_id": "lodash._baseflatten@4.1.0",
"_inCache": true,
"_installable": true,
"_location": "/lodash.union/lodash._baseflatten",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
"host": "packages-6-west.internal.npmjs.com",
- "tmp": "tmp/lodash._baseflatten-4.0.1.tgz_1454484268644_0.07478086440823972"
+ "tmp": "tmp/lodash._baseflatten-4.1.0.tgz_1455615012034_0.06309569417499006"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
"name": "lodash._baseflatten",
@@ -32,8 +32,8 @@
"_requiredBy": [
"/lodash.union"
],
- "_resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.0.1.tgz",
- "_shasum": "f3f9656b2ddc6885166f5d65bcf46ae9e2e51f7f",
+ "_resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.1.0.tgz",
+ "_shasum": "8548ac47576a8dd5f2702cb1ebeae4a980ac3bae",
"_shrinkwrap": null,
"_spec": "lodash._baseflatten@^4.0.0",
"_where": "/Users/rebecca/code/npm/node_modules/lodash.union",
@@ -47,18 +47,18 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
@@ -67,24 +67,24 @@
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "f3f9656b2ddc6885166f5d65bcf46ae9e2e51f7f",
- "tarball": "http://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.0.1.tgz"
+ "shasum": "8548ac47576a8dd5f2702cb1ebeae4a980ac3bae",
+ "tarball": "http://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.1.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash._baseflatten",
@@ -97,5 +97,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.0.1"
+ "version": "4.1.0"
}
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/README.md b/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/README.md
deleted file mode 100644
index 1bc556dc513245..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._cachehas v4.0.0
-
-The internal [lodash](https://lodash.com/) function `cacheHas` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._cachehas
-```
-
-In Node.js:
-```js
-var cacheHas = require('lodash._cachehas');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._cachehas) for more details.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/index.js
deleted file mode 100644
index 93693f8f69ff8e..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/index.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- * Checks if `value` is in `cache`.
- *
- * @private
- * @param {Object} cache The set cache to search.
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
-function cacheHas(cache, value) {
- var map = cache.__data__;
- if (isKeyable(value)) {
- var data = map.__data__,
- hash = typeof value == 'string' ? data.string : data.hash;
-
- return hash[value] === HASH_UNDEFINED;
- }
- return map.has(value);
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-module.exports = cacheHas;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/package.json b/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/package.json
deleted file mode 100644
index b9d5717a0a915f..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._cachehas/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._cachehas@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.union"
- ]
- ],
- "_from": "lodash._cachehas@>=4.0.0 <5.0.0",
- "_id": "lodash._cachehas@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.union/lodash._cachehas",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._cachehas",
- "raw": "lodash._cachehas@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.union"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._cachehas/-/lodash._cachehas-4.0.0.tgz",
- "_shasum": "18dab9e3694144f24bcb4a8e03f14616e3453a34",
- "_shrinkwrap": null,
- "_spec": "lodash._cachehas@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.union",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `cacheHas` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "18dab9e3694144f24bcb4a8e03f14616e3453a34",
- "tarball": "http://registry.npmjs.org/lodash._cachehas/-/lodash._cachehas-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._cachehas",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._root/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/README.md b/deps/npm/node_modules/lodash.union/node_modules/lodash._root/README.md
deleted file mode 100644
index 9372f4a97c645e..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._root v3.0.0
-
-The internal [lodash](https://lodash.com/) function `root` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._root
-```
-
-In Node.js:
-```js
-var root = require('lodash._root');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._root) for more details.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._root/index.js
deleted file mode 100644
index 469812486397ed..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._root/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * lodash 3.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to determine if values are of the language type `Object`. */
-var objectTypes = {
- 'function': true,
- 'object': true
-};
-
-/** Detect free variable `exports`. */
-var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null;
-
-/** Detect free variable `module`. */
-var freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null;
-
-/** Detect free variable `global` from Node.js. */
-var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
-
-/** Detect free variable `self`. */
-var freeSelf = checkGlobal(objectTypes[typeof self] && self);
-
-/** Detect free variable `window`. */
-var freeWindow = checkGlobal(objectTypes[typeof window] && window);
-
-/** Detect `this` as the global object. */
-var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
-
-/**
- * Used as a reference to the global object.
- *
- * The `this` value is used if it's the global object to avoid Greasemonkey's
- * restricted `window` object, otherwise the `window` object is used.
- */
-var root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')();
-
-/**
- * Checks if `value` is a global object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {null|Object} Returns `value` if it's a global object, else `null`.
- */
-function checkGlobal(value) {
- return (value && value.Object === Object) ? value : null;
-}
-
-module.exports = root;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/index.js
deleted file mode 100644
index 45a19c662d65d1..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var MapCache = require('lodash._mapcache');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- *
- * Creates a set cache object to store unique values.
- *
- * @private
- * @param {Array} [values] The values to cache.
- */
-function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.push(values[index]);
- }
-}
-
-/**
- * Adds `value` to the set cache.
- *
- * @private
- * @name push
- * @memberOf SetCache
- * @param {*} value The value to cache.
- */
-function cachePush(value) {
- var map = this.__data__;
- if (isKeyable(value)) {
- var data = map.__data__,
- hash = typeof value == 'string' ? data.string : data.hash;
-
- hash[value] = HASH_UNDEFINED;
- }
- else {
- map.set(value, HASH_UNDEFINED);
- }
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-// Add functions to the `SetCache`.
-SetCache.prototype.push = cachePush;
-
-module.exports = SetCache;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE b/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md b/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md
deleted file mode 100644
index c011ef170fe639..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._mapcache v4.1.0
-
-The internal [lodash](https://lodash.com/) function `MapCache` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._mapcache
-```
-
-In Node.js:
-```js
-var MapCache = require('lodash._mapcache');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash._mapcache) for more details.
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js b/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js
deleted file mode 100644
index fad3ae61b5b75b..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js
+++ /dev/null
@@ -1,492 +0,0 @@
-/**
- * lodash 4.1.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var root = require('lodash._root');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype,
- objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/* Built-in method references that are verified to be native. */
-var Map = getNative(root, 'Map'),
- nativeCreate = getNative(Object, 'create');
-
-/**
- * Creates an hash object.
- *
- * @private
- * @returns {Object} Returns the new hash object.
- */
-function Hash() {}
-
-/**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function hashDelete(hash, key) {
- return hashHas(hash, key) && delete hash[key];
-}
-
-/**
- * Gets the hash value for `key`.
- *
- * @private
- * @param {Object} hash The hash to query.
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function hashGet(hash, key) {
- if (nativeCreate) {
- var result = hash[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(hash, key) ? hash[key] : undefined;
-}
-
-/**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @param {Object} hash The hash to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function hashHas(hash, key) {
- return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key);
-}
-
-/**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- */
-function hashSet(hash, key, value) {
- hash[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
-}
-
-/**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @param {Array} [values] The values to cache.
- */
-function MapCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = values[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
-function mapClear() {
- this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
-}
-
-/**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function mapDelete(key) {
- var data = this.__data__;
- if (isKeyable(key)) {
- return hashDelete(typeof key == 'string' ? data.string : data.hash, key);
- }
- return Map ? data.map['delete'](key) : assocDelete(data.map, key);
-}
-
-/**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function mapGet(key) {
- var data = this.__data__;
- if (isKeyable(key)) {
- return hashGet(typeof key == 'string' ? data.string : data.hash, key);
- }
- return Map ? data.map.get(key) : assocGet(data.map, key);
-}
-
-/**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function mapHas(key) {
- var data = this.__data__;
- if (isKeyable(key)) {
- return hashHas(typeof key == 'string' ? data.string : data.hash, key);
- }
- return Map ? data.map.has(key) : assocHas(data.map, key);
-}
-
-/**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache object.
- */
-function mapSet(key, value) {
- var data = this.__data__;
- if (isKeyable(key)) {
- hashSet(typeof key == 'string' ? data.string : data.hash, key, value);
- } else if (Map) {
- data.map.set(key, value);
- } else {
- assocSet(data.map, key, value);
- }
- return this;
-}
-
-/**
- * Removes `key` and its value from the associative array.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function assocDelete(array, key) {
- var index = assocIndexOf(array, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = array.length - 1;
- if (index == lastIndex) {
- array.pop();
- } else {
- splice.call(array, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the associative array value for `key`.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function assocGet(array, key) {
- var index = assocIndexOf(array, key);
- return index < 0 ? undefined : array[index][1];
-}
-
-/**
- * Checks if an associative array value for `key` exists.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function assocHas(array, key) {
- return assocIndexOf(array, key) > -1;
-}
-
-/**
- * Gets the index at which the first occurrence of `key` is found in `array`
- * of key-value pairs.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * Sets the associative array `key` to `value`.
- *
- * @private
- * @param {Array} array The array to modify.
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- */
-function assocSet(array, key, value) {
- var index = assocIndexOf(array, key);
- if (index < 0) {
- array.push([key, value]);
- } else {
- array[index][1] = value;
- }
-}
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-/**
- * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(funcToString.call(value));
- }
- return isObjectLike(value) &&
- (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
-}
-
-// Avoid inheriting from `Object.prototype` when possible.
-Hash.prototype = nativeCreate ? nativeCreate(null) : objectProto;
-
-// Add functions to the `MapCache`.
-MapCache.prototype.clear = mapClear;
-MapCache.prototype['delete'] = mapDelete;
-MapCache.prototype.get = mapGet;
-MapCache.prototype.has = mapHas;
-MapCache.prototype.set = mapSet;
-
-module.exports = MapCache;
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/package.json b/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/package.json
deleted file mode 100644
index 64e553f4ee9a76..00000000000000
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/package.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
- "_args": [
- [
- "lodash._setcache@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.union"
- ]
- ],
- "_from": "lodash._setcache@>=4.0.0 <5.0.0",
- "_id": "lodash._setcache@4.0.1",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.union/lodash._setcache",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._setcache",
- "raw": "lodash._setcache@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.union"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.0.1.tgz",
- "_shasum": "d8c6196cee20791ed3545b08c6cea0278df0401e",
- "_shrinkwrap": null,
- "_spec": "lodash._setcache@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.union",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {
- "lodash._mapcache": "^4.0.0"
- },
- "description": "The internal lodash function `SetCache` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "d8c6196cee20791ed3545b08c6cea0278df0401e",
- "tarball": "http://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.0.1.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine.bublitz@gmail.com"
- }
- ],
- "name": "lodash._setcache",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/lodash.union/package.json b/deps/npm/node_modules/lodash.union/package.json
index bc76ec44061167..2a05b98497740c 100644
--- a/deps/npm/node_modules/lodash.union/package.json
+++ b/deps/npm/node_modules/lodash.union/package.json
@@ -1,19 +1,19 @@
{
"_args": [
[
- "lodash.union@4.1.0",
- "/Users/zkat/Documents/code/npm"
+ "lodash.union@latest",
+ "/Users/rebecca/code/npm"
]
],
- "_from": "lodash.union@4.1.0",
- "_id": "lodash.union@4.1.0",
+ "_from": "lodash.union@latest",
+ "_id": "lodash.union@4.2.0",
"_inCache": true,
"_installable": true,
"_location": "/lodash.union",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
"host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash.union-4.1.0.tgz_1454898749957_0.9112280844710767"
+ "tmp": "tmp/lodash.union-4.2.0.tgz_1455615727631_0.14597112801857293"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
@@ -23,20 +23,20 @@
"_phantomChildren": {},
"_requested": {
"name": "lodash.union",
- "raw": "lodash.union@4.1.0",
- "rawSpec": "4.1.0",
+ "raw": "lodash.union@latest",
+ "rawSpec": "latest",
"scope": null,
- "spec": "4.1.0",
- "type": "version"
+ "spec": "latest",
+ "type": "tag"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.1.0.tgz",
- "_shasum": "2d4336729a5032e48e3556512cd69339e4c809fd",
+ "_resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.2.0.tgz",
+ "_shasum": "490c86803d2ed7ca01e26fe53e7d6519e2506505",
"_shrinkwrap": null,
- "_spec": "lodash.union@4.1.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "lodash.union@latest",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -63,20 +63,16 @@
}
],
"dependencies": {
- "lodash._arrayincludes": "^4.0.0",
- "lodash._arrayincludeswith": "^4.0.0",
"lodash._baseflatten": "^4.0.0",
- "lodash._cachehas": "^4.0.0",
- "lodash._root": "^3.0.0",
- "lodash._setcache": "^4.0.0",
+ "lodash._baseuniq": "^4.0.0",
"lodash.rest": "^4.0.0"
},
"description": "The lodash method `_.union` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "2d4336729a5032e48e3556512cd69339e4c809fd",
- "tarball": "http://registry.npmjs.org/lodash.union/-/lodash.union-4.1.0.tgz"
+ "shasum": "490c86803d2ed7ca01e26fe53e7d6519e2506505",
+ "tarball": "http://registry.npmjs.org/lodash.union/-/lodash.union-4.2.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -109,5 +105,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.1.0"
+ "version": "4.2.0"
}
diff --git a/deps/npm/node_modules/lodash.uniq/LICENSE b/deps/npm/node_modules/lodash.uniq/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash.uniq/LICENSE
+++ b/deps/npm/node_modules/lodash.uniq/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/README.md b/deps/npm/node_modules/lodash.uniq/README.md
index 53a3cd4ead7f06..3204e5847cde13 100644
--- a/deps/npm/node_modules/lodash.uniq/README.md
+++ b/deps/npm/node_modules/lodash.uniq/README.md
@@ -1,4 +1,4 @@
-# lodash.uniq v4.1.0
+# lodash.uniq v4.2.0
The [lodash](https://lodash.com/) method `_.uniq` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var uniq = require('lodash.uniq');
```
-See the [documentation](https://lodash.com/docs#uniq) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.uniq) for more details.
+See the [documentation](https://lodash.com/docs#uniq) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.uniq) for more details.
diff --git a/deps/npm/node_modules/lodash.uniq/index.js b/deps/npm/node_modules/lodash.uniq/index.js
index 174aa2a7ac3303..6c7bde11096293 100644
--- a/deps/npm/node_modules/lodash.uniq/index.js
+++ b/deps/npm/node_modules/lodash.uniq/index.js
@@ -1,173 +1,12 @@
/**
- * lodash 4.1.0 (Custom Build)
+ * lodash 4.2.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var SetCache = require('lodash._setcache'),
- arrayIncludes = require('lodash._arrayincludes'),
- arrayIncludesWith = require('lodash._arrayincludeswith'),
- cacheHas = require('lodash._cachehas'),
- root = require('lodash._root');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/**
- * Converts `set` to an array.
- *
- * @private
- * @param {Object} set The set to convert.
- * @returns {Array} Returns the converted array.
- */
-function setToArray(set) {
- var index = -1,
- result = Array(set.size);
-
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
-}
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/* Built-in method references that are verified to be native. */
-var Set = getNative(root, 'Set');
-
-/**
- * The base implementation of `_.uniqBy` without support for iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new duplicate free array.
- */
-function baseUniq(array, iteratee, comparator) {
- var index = -1,
- includes = arrayIncludes,
- length = array.length,
- isCommon = true,
- result = [],
- seen = result;
-
- if (comparator) {
- isCommon = false;
- includes = arrayIncludesWith;
- }
- else if (length >= LARGE_ARRAY_SIZE) {
- var set = iteratee ? null : createSet(array);
- if (set) {
- return setToArray(set);
- }
- isCommon = false;
- includes = cacheHas;
- seen = new SetCache;
- }
- else {
- seen = iteratee ? [] : result;
- }
- outer:
- while (++index < length) {
- var value = array[index],
- computed = iteratee ? iteratee(value) : value;
-
- if (isCommon && computed === computed) {
- var seenIndex = seen.length;
- while (seenIndex--) {
- if (seen[seenIndex] === computed) {
- continue outer;
- }
- }
- if (iteratee) {
- seen.push(computed);
- }
- result.push(value);
- }
- else if (!includes(seen, computed, comparator)) {
- if (seen !== result) {
- seen.push(computed);
- }
- result.push(value);
- }
- }
- return result;
-}
-
-/**
- * Creates a set of `values`.
- *
- * @private
- * @param {Array} values The values to add to the set.
- * @returns {Object} Returns the new set.
- */
-var createSet = !(Set && new Set([1, 2]).size === 2) ? noop : function(values) {
- return new Set(values);
-};
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
+var baseUniq = require('lodash._baseuniq');
/**
* Creates a duplicate-free version of an array, using
@@ -191,128 +30,4 @@ function uniq(array) {
: [];
}
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(funcToString.call(value));
- }
- return isObjectLike(value) &&
- (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
-}
-
-/**
- * A no-operation function that returns `undefined` regardless of the
- * arguments it receives.
- *
- * @static
- * @memberOf _
- * @category Util
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.noop(object) === undefined;
- * // => true
- */
-function noop() {
- // No operation performed.
-}
-
module.exports = uniq;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/LICENSE b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/README.md b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/README.md
deleted file mode 100644
index af814ce59e6a3d..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._arrayincludes v4.0.0
-
-The internal [lodash](https://lodash.com/) function `arrayIncludes` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayincludes
-```
-
-In Node.js:
-```js
-var arrayIncludes = require('lodash._arrayincludes');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._arrayincludes) for more details.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/index.js b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/index.js
deleted file mode 100644
index b9d5f79787ff7c..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.includes` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludes(array, value) {
- return !!array.length && baseIndexOf(array, value, 0) > -1;
-}
-
-/**
- * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} fromIndex The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function baseIndexOf(array, value, fromIndex) {
- if (value !== value) {
- return indexOfNaN(array, fromIndex);
- }
- var index = fromIndex - 1,
- length = array.length;
-
- while (++index < length) {
- if (array[index] === value) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * Gets the index at which the first occurrence of `NaN` is found in `array`.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {number} fromIndex The index to search from.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {number} Returns the index of the matched `NaN`, else `-1`.
- */
-function indexOfNaN(array, fromIndex, fromRight) {
- var length = array.length,
- index = fromIndex + (fromRight ? 0 : -1);
-
- while ((fromRight ? index-- : ++index < length)) {
- var other = array[index];
- if (other !== other) {
- return index;
- }
- }
- return -1;
-}
-
-module.exports = arrayIncludes;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/package.json b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/package.json
deleted file mode 100644
index c4c081c4e32c7f..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludes/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayincludes@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.uniq"
- ]
- ],
- "_from": "lodash._arrayincludes@>=4.0.0 <5.0.0",
- "_id": "lodash._arrayincludes@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.uniq/lodash._arrayincludes",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayincludes",
- "raw": "lodash._arrayincludes@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.uniq"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayincludes/-/lodash._arrayincludes-4.0.0.tgz",
- "_shasum": "670d14047d4fef8147c5560e02edad59f0051251",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayincludes@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.uniq",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `arrayIncludes` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "670d14047d4fef8147c5560e02edad59f0051251",
- "tarball": "http://registry.npmjs.org/lodash._arrayincludes/-/lodash._arrayincludes-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayincludes",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/LICENSE b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/README.md b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/README.md
deleted file mode 100644
index 26d2593ad3b3cc..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._arrayincludeswith v4.0.0
-
-The internal [lodash](https://lodash.com/) function `arrayIncludesWith` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayincludeswith
-```
-
-In Node.js:
-```js
-var arrayIncludesWith = require('lodash._arrayincludeswith');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._arrayincludeswith) for more details.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/index.js b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/index.js
deleted file mode 100644
index b4416d7f0e5269..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.includesWith` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @param {Function} comparator The comparator invoked per element.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludesWith(array, value, comparator) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (comparator(value, array[index])) {
- return true;
- }
- }
- return false;
-}
-
-module.exports = arrayIncludesWith;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/package.json b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/package.json
deleted file mode 100644
index 91ad1a67352024..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._arrayincludeswith/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayincludeswith@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.uniq"
- ]
- ],
- "_from": "lodash._arrayincludeswith@>=4.0.0 <5.0.0",
- "_id": "lodash._arrayincludeswith@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.uniq/lodash._arrayincludeswith",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayincludeswith",
- "raw": "lodash._arrayincludeswith@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.uniq"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayincludeswith/-/lodash._arrayincludeswith-4.0.0.tgz",
- "_shasum": "cf065785fdbd28753efa4fd2f0b71facc1897a4c",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayincludeswith@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.uniq",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `arrayIncludesWith` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "cf065785fdbd28753efa4fd2f0b71facc1897a4c",
- "tarball": "http://registry.npmjs.org/lodash._arrayincludeswith/-/lodash._arrayincludeswith-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayincludeswith",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/LICENSE b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/README.md b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/README.md
deleted file mode 100644
index 1bc556dc513245..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._cachehas v4.0.0
-
-The internal [lodash](https://lodash.com/) function `cacheHas` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._cachehas
-```
-
-In Node.js:
-```js
-var cacheHas = require('lodash._cachehas');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._cachehas) for more details.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/index.js b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/index.js
deleted file mode 100644
index 93693f8f69ff8e..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/index.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- * Checks if `value` is in `cache`.
- *
- * @private
- * @param {Object} cache The set cache to search.
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
-function cacheHas(cache, value) {
- var map = cache.__data__;
- if (isKeyable(value)) {
- var data = map.__data__,
- hash = typeof value == 'string' ? data.string : data.hash;
-
- return hash[value] === HASH_UNDEFINED;
- }
- return map.has(value);
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-module.exports = cacheHas;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/package.json b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/package.json
deleted file mode 100644
index 85c05097b7470f..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._cachehas/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._cachehas@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.uniq"
- ]
- ],
- "_from": "lodash._cachehas@>=4.0.0 <5.0.0",
- "_id": "lodash._cachehas@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.uniq/lodash._cachehas",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._cachehas",
- "raw": "lodash._cachehas@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.uniq"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._cachehas/-/lodash._cachehas-4.0.0.tgz",
- "_shasum": "18dab9e3694144f24bcb4a8e03f14616e3453a34",
- "_shrinkwrap": null,
- "_spec": "lodash._cachehas@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.uniq",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `cacheHas` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "18dab9e3694144f24bcb4a8e03f14616e3453a34",
- "tarball": "http://registry.npmjs.org/lodash._cachehas/-/lodash._cachehas-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._cachehas",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/LICENSE b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/README.md b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/README.md
deleted file mode 100644
index 9372f4a97c645e..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._root v3.0.0
-
-The internal [lodash](https://lodash.com/) function `root` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._root
-```
-
-In Node.js:
-```js
-var root = require('lodash._root');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._root) for more details.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/index.js b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/index.js
deleted file mode 100644
index 469812486397ed..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * lodash 3.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to determine if values are of the language type `Object`. */
-var objectTypes = {
- 'function': true,
- 'object': true
-};
-
-/** Detect free variable `exports`. */
-var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null;
-
-/** Detect free variable `module`. */
-var freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null;
-
-/** Detect free variable `global` from Node.js. */
-var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
-
-/** Detect free variable `self`. */
-var freeSelf = checkGlobal(objectTypes[typeof self] && self);
-
-/** Detect free variable `window`. */
-var freeWindow = checkGlobal(objectTypes[typeof window] && window);
-
-/** Detect `this` as the global object. */
-var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
-
-/**
- * Used as a reference to the global object.
- *
- * The `this` value is used if it's the global object to avoid Greasemonkey's
- * restricted `window` object, otherwise the `window` object is used.
- */
-var root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')();
-
-/**
- * Checks if `value` is a global object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {null|Object} Returns `value` if it's a global object, else `null`.
- */
-function checkGlobal(value) {
- return (value && value.Object === Object) ? value : null;
-}
-
-module.exports = root;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/package.json b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/package.json
deleted file mode 100644
index b05c842821fdc8..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._root/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "_args": [
- [
- "lodash._root@^3.0.0",
- "/Users/zkat/Documents/code/npm/node_modules/lodash.uniq"
- ]
- ],
- "_from": "lodash._root@>=3.0.0 <4.0.0",
- "_id": "lodash._root@3.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.uniq/lodash._root",
- "_nodeVersion": "5.5.0",
- "_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._root-3.0.0.tgz_1454898276727_0.4872864377684891"
- },
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.18",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._root",
- "raw": "lodash._root@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.uniq",
- "/lodash.uniq/lodash._setcache/lodash._mapcache"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz",
- "_shasum": "fe2fba5117f3e12c3cf7e13b3993b20f745727b7",
- "_shrinkwrap": null,
- "_spec": "lodash._root@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash.uniq",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- {
- "email": "blaine@iceddev.com",
- "name": "Blaine Bublitz",
- "url": "https://github.com/phated"
- },
- {
- "email": "mathias@qiwi.be",
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `root` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "fe2fba5117f3e12c3cf7e13b3993b20f745727b7",
- "tarball": "http://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- }
- ],
- "name": "lodash._root",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/LICENSE b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/index.js b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/index.js
deleted file mode 100644
index 45a19c662d65d1..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var MapCache = require('lodash._mapcache');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- *
- * Creates a set cache object to store unique values.
- *
- * @private
- * @param {Array} [values] The values to cache.
- */
-function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.push(values[index]);
- }
-}
-
-/**
- * Adds `value` to the set cache.
- *
- * @private
- * @name push
- * @memberOf SetCache
- * @param {*} value The value to cache.
- */
-function cachePush(value) {
- var map = this.__data__;
- if (isKeyable(value)) {
- var data = map.__data__,
- hash = typeof value == 'string' ? data.string : data.hash;
-
- hash[value] = HASH_UNDEFINED;
- }
- else {
- map.set(value, HASH_UNDEFINED);
- }
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-// Add functions to the `SetCache`.
-SetCache.prototype.push = cachePush;
-
-module.exports = SetCache;
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md
deleted file mode 100644
index c011ef170fe639..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._mapcache v4.1.0
-
-The internal [lodash](https://lodash.com/) function `MapCache` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._mapcache
-```
-
-In Node.js:
-```js
-var MapCache = require('lodash._mapcache');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash._mapcache) for more details.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js b/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js
deleted file mode 100644
index fad3ae61b5b75b..00000000000000
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/index.js
+++ /dev/null
@@ -1,492 +0,0 @@
-/**
- * lodash 4.1.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var root = require('lodash._root');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype,
- objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/* Built-in method references that are verified to be native. */
-var Map = getNative(root, 'Map'),
- nativeCreate = getNative(Object, 'create');
-
-/**
- * Creates an hash object.
- *
- * @private
- * @returns {Object} Returns the new hash object.
- */
-function Hash() {}
-
-/**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function hashDelete(hash, key) {
- return hashHas(hash, key) && delete hash[key];
-}
-
-/**
- * Gets the hash value for `key`.
- *
- * @private
- * @param {Object} hash The hash to query.
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function hashGet(hash, key) {
- if (nativeCreate) {
- var result = hash[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(hash, key) ? hash[key] : undefined;
-}
-
-/**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @param {Object} hash The hash to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function hashHas(hash, key) {
- return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key);
-}
-
-/**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- */
-function hashSet(hash, key, value) {
- hash[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
-}
-
-/**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @param {Array} [values] The values to cache.
- */
-function MapCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = values[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
-function mapClear() {
- this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
-}
-
-/**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function mapDelete(key) {
- var data = this.__data__;
- if (isKeyable(key)) {
- return hashDelete(typeof key == 'string' ? data.string : data.hash, key);
- }
- return Map ? data.map['delete'](key) : assocDelete(data.map, key);
-}
-
-/**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function mapGet(key) {
- var data = this.__data__;
- if (isKeyable(key)) {
- return hashGet(typeof key == 'string' ? data.string : data.hash, key);
- }
- return Map ? data.map.get(key) : assocGet(data.map, key);
-}
-
-/**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function mapHas(key) {
- var data = this.__data__;
- if (isKeyable(key)) {
- return hashHas(typeof key == 'string' ? data.string : data.hash, key);
- }
- return Map ? data.map.has(key) : assocHas(data.map, key);
-}
-
-/**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache object.
- */
-function mapSet(key, value) {
- var data = this.__data__;
- if (isKeyable(key)) {
- hashSet(typeof key == 'string' ? data.string : data.hash, key, value);
- } else if (Map) {
- data.map.set(key, value);
- } else {
- assocSet(data.map, key, value);
- }
- return this;
-}
-
-/**
- * Removes `key` and its value from the associative array.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function assocDelete(array, key) {
- var index = assocIndexOf(array, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = array.length - 1;
- if (index == lastIndex) {
- array.pop();
- } else {
- splice.call(array, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the associative array value for `key`.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function assocGet(array, key) {
- var index = assocIndexOf(array, key);
- return index < 0 ? undefined : array[index][1];
-}
-
-/**
- * Checks if an associative array value for `key` exists.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function assocHas(array, key) {
- return assocIndexOf(array, key) > -1;
-}
-
-/**
- * Gets the index at which the first occurrence of `key` is found in `array`
- * of key-value pairs.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * Sets the associative array `key` to `value`.
- *
- * @private
- * @param {Array} array The array to modify.
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- */
-function assocSet(array, key, value) {
- var index = assocIndexOf(array, key);
- if (index < 0) {
- array.push([key, value]);
- } else {
- array[index][1] = value;
- }
-}
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-/**
- * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(funcToString.call(value));
- }
- return isObjectLike(value) &&
- (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
-}
-
-// Avoid inheriting from `Object.prototype` when possible.
-Hash.prototype = nativeCreate ? nativeCreate(null) : objectProto;
-
-// Add functions to the `MapCache`.
-MapCache.prototype.clear = mapClear;
-MapCache.prototype['delete'] = mapDelete;
-MapCache.prototype.get = mapGet;
-MapCache.prototype.has = mapHas;
-MapCache.prototype.set = mapSet;
-
-module.exports = MapCache;
diff --git a/deps/npm/node_modules/lodash.uniq/package.json b/deps/npm/node_modules/lodash.uniq/package.json
index db49a8359cbeca..d14db6ba90bc3d 100644
--- a/deps/npm/node_modules/lodash.uniq/package.json
+++ b/deps/npm/node_modules/lodash.uniq/package.json
@@ -1,19 +1,19 @@
{
"_args": [
[
- "lodash.uniq@4.1.0",
- "/Users/zkat/Documents/code/npm"
+ "lodash.uniq@~4.2.0",
+ "/Users/rebecca/code/npm"
]
],
- "_from": "lodash.uniq@4.1.0",
- "_id": "lodash.uniq@4.1.0",
+ "_from": "lodash.uniq@>=4.2.0 <4.3.0",
+ "_id": "lodash.uniq@4.2.0",
"_inCache": true,
"_installable": true,
"_location": "/lodash.uniq",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-6-west.internal.npmjs.com",
- "tmp": "tmp/lodash.uniq-4.1.0.tgz_1454898759113_0.1020272511523217"
+ "host": "packages-5-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.uniq-4.2.0.tgz_1455615740326_0.14619768620468676"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
@@ -23,20 +23,20 @@
"_phantomChildren": {},
"_requested": {
"name": "lodash.uniq",
- "raw": "lodash.uniq@4.1.0",
- "rawSpec": "4.1.0",
+ "raw": "lodash.uniq@~4.2.0",
+ "rawSpec": "~4.2.0",
"scope": null,
- "spec": "4.1.0",
- "type": "version"
+ "spec": ">=4.2.0 <4.3.0",
+ "type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.1.0.tgz",
- "_shasum": "f6fd353278bb2d01e0c9cd77ecc688864a4ace65",
+ "_resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.2.0.tgz",
+ "_shasum": "e0cb2ac57e11b6a0d0c87674f6ff4a1986f78739",
"_shrinkwrap": null,
- "_spec": "lodash.uniq@4.1.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "lodash.uniq@~4.2.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -63,18 +63,14 @@
}
],
"dependencies": {
- "lodash._arrayincludes": "^4.0.0",
- "lodash._arrayincludeswith": "^4.0.0",
- "lodash._cachehas": "^4.0.0",
- "lodash._root": "^3.0.0",
- "lodash._setcache": "^4.0.0"
+ "lodash._baseuniq": "^4.0.0"
},
"description": "The lodash method `_.uniq` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "f6fd353278bb2d01e0c9cd77ecc688864a4ace65",
- "tarball": "http://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.1.0.tgz"
+ "shasum": "e0cb2ac57e11b6a0d0c87674f6ff4a1986f78739",
+ "tarball": "http://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.2.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -107,5 +103,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.1.0"
+ "version": "4.2.0"
}
diff --git a/deps/npm/node_modules/lodash.without/LICENSE b/deps/npm/node_modules/lodash.without/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/lodash.without/LICENSE
+++ b/deps/npm/node_modules/lodash.without/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/README.md b/deps/npm/node_modules/lodash.without/README.md
index 06d47a1520f197..3c2e6b98c99a66 100644
--- a/deps/npm/node_modules/lodash.without/README.md
+++ b/deps/npm/node_modules/lodash.without/README.md
@@ -1,4 +1,4 @@
-# lodash.without v4.0.2
+# lodash.without v4.1.1
The [lodash](https://lodash.com/) method `_.without` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var without = require('lodash.without');
```
-See the [documentation](https://lodash.com/docs#without) or [package source](https://github.com/lodash/lodash/blob/4.0.2-npm-packages/lodash.without) for more details.
+See the [documentation](https://lodash.com/docs#without) or [package source](https://github.com/lodash/lodash/blob/4.1.1-npm-packages/lodash.without) for more details.
diff --git a/deps/npm/node_modules/lodash.without/index.js b/deps/npm/node_modules/lodash.without/index.js
index 34e2da80f03e63..049466d2aaea9a 100644
--- a/deps/npm/node_modules/lodash.without/index.js
+++ b/deps/npm/node_modules/lodash.without/index.js
@@ -1,21 +1,14 @@
/**
- * lodash 4.0.2 (Custom Build)
+ * lodash 4.1.1 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var SetCache = require('lodash._setcache'),
- arrayIncludes = require('lodash._arrayincludes'),
- arrayIncludesWith = require('lodash._arrayincludeswith'),
- arrayMap = require('lodash._arraymap'),
- cacheHas = require('lodash._cachehas'),
+var baseDifference = require('lodash._basedifference'),
rest = require('lodash.rest');
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -23,19 +16,6 @@ var MAX_SAFE_INTEGER = 9007199254740991;
var funcTag = '[object Function]',
genTag = '[object GeneratorFunction]';
-/**
- * The base implementation of `_.unary` without support for storing wrapper metadata.
- *
- * @private
- * @param {Function} func The function to cap arguments for.
- * @returns {Function} Returns the new function.
- */
-function baseUnary(func) {
- return function(value) {
- return func(value);
- };
-}
-
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -45,61 +25,6 @@ var objectProto = Object.prototype;
*/
var objectToString = objectProto.toString;
-/**
- * The base implementation of methods like `_.difference` without support for
- * excluding multiple arrays or iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {Array} values The values to exclude.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of filtered values.
- */
-function baseDifference(array, values, iteratee, comparator) {
- var index = -1,
- includes = arrayIncludes,
- isCommon = true,
- length = array.length,
- result = [],
- valuesLength = values.length;
-
- if (!length) {
- return result;
- }
- if (iteratee) {
- values = arrayMap(values, baseUnary(iteratee));
- }
- if (comparator) {
- includes = arrayIncludesWith;
- isCommon = false;
- }
- else if (values.length >= LARGE_ARRAY_SIZE) {
- includes = cacheHas;
- isCommon = false;
- values = new SetCache(values);
- }
- outer:
- while (++index < length) {
- var value = array[index],
- computed = iteratee ? iteratee(value) : value;
-
- if (isCommon && computed === computed) {
- var valuesIndex = valuesLength;
- while (valuesIndex--) {
- if (values[valuesIndex] === computed) {
- continue outer;
- }
- }
- result.push(value);
- }
- else if (!includes(values, computed, comparator)) {
- result.push(value);
- }
- }
- return result;
-}
-
/**
* The base implementation of `_.property` without support for deep paths.
*
@@ -126,7 +51,7 @@ function baseProperty(key) {
var getLength = baseProperty('length');
/**
- * Creates an array excluding all provided values using
+ * Creates an array excluding all given values using
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
* for equality comparisons.
*
@@ -154,7 +79,6 @@ var without = rest(function(array, values) {
*
* @static
* @memberOf _
- * @type Function
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
@@ -173,8 +97,7 @@ var without = rest(function(array, values) {
* // => false
*/
function isArrayLike(value) {
- return value != null &&
- !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));
+ return value != null && isLength(getLength(value)) && !isFunction(value);
}
/**
@@ -183,7 +106,6 @@ function isArrayLike(value) {
*
* @static
* @memberOf _
- * @type Function
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.
@@ -223,8 +145,8 @@ function isArrayLikeObject(value) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
var tag = isObject(value) ? objectToString.call(value) : '';
return tag == funcTag || tag == genTag;
}
@@ -254,7 +176,8 @@ function isFunction(value) {
* // => false
*/
function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/README.md
deleted file mode 100644
index af814ce59e6a3d..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._arrayincludes v4.0.0
-
-The internal [lodash](https://lodash.com/) function `arrayIncludes` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayincludes
-```
-
-In Node.js:
-```js
-var arrayIncludes = require('lodash._arrayincludes');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._arrayincludes) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/index.js
deleted file mode 100644
index b9d5f79787ff7c..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.includes` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludes(array, value) {
- return !!array.length && baseIndexOf(array, value, 0) > -1;
-}
-
-/**
- * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} fromIndex The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function baseIndexOf(array, value, fromIndex) {
- if (value !== value) {
- return indexOfNaN(array, fromIndex);
- }
- var index = fromIndex - 1,
- length = array.length;
-
- while (++index < length) {
- if (array[index] === value) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * Gets the index at which the first occurrence of `NaN` is found in `array`.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {number} fromIndex The index to search from.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {number} Returns the index of the matched `NaN`, else `-1`.
- */
-function indexOfNaN(array, fromIndex, fromRight) {
- var length = array.length,
- index = fromIndex + (fromRight ? 0 : -1);
-
- while ((fromRight ? index-- : ++index < length)) {
- var other = array[index];
- if (other !== other) {
- return index;
- }
- }
- return -1;
-}
-
-module.exports = arrayIncludes;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/package.json
deleted file mode 100644
index e060d56c5ef07a..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludes/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayincludes@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.without"
- ]
- ],
- "_from": "lodash._arrayincludes@>=4.0.0 <5.0.0",
- "_id": "lodash._arrayincludes@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.without/lodash._arrayincludes",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayincludes",
- "raw": "lodash._arrayincludes@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.without"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayincludes/-/lodash._arrayincludes-4.0.0.tgz",
- "_shasum": "670d14047d4fef8147c5560e02edad59f0051251",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayincludes@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.without",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `arrayIncludes` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "670d14047d4fef8147c5560e02edad59f0051251",
- "tarball": "http://registry.npmjs.org/lodash._arrayincludes/-/lodash._arrayincludes-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayincludes",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/README.md
deleted file mode 100644
index 26d2593ad3b3cc..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._arrayincludeswith v4.0.0
-
-The internal [lodash](https://lodash.com/) function `arrayIncludesWith` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arrayincludeswith
-```
-
-In Node.js:
-```js
-var arrayIncludesWith = require('lodash._arrayincludeswith');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._arrayincludeswith) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/index.js
deleted file mode 100644
index b4416d7f0e5269..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.includesWith` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @param {Function} comparator The comparator invoked per element.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludesWith(array, value, comparator) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (comparator(value, array[index])) {
- return true;
- }
- }
- return false;
-}
-
-module.exports = arrayIncludesWith;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/package.json
deleted file mode 100644
index 4479e59333229b..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arrayincludeswith/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._arrayincludeswith@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.without"
- ]
- ],
- "_from": "lodash._arrayincludeswith@>=4.0.0 <5.0.0",
- "_id": "lodash._arrayincludeswith@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.without/lodash._arrayincludeswith",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arrayincludeswith",
- "raw": "lodash._arrayincludeswith@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.without"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arrayincludeswith/-/lodash._arrayincludeswith-4.0.0.tgz",
- "_shasum": "cf065785fdbd28753efa4fd2f0b71facc1897a4c",
- "_shrinkwrap": null,
- "_spec": "lodash._arrayincludeswith@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.without",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `arrayIncludesWith` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "cf065785fdbd28753efa4fd2f0b71facc1897a4c",
- "tarball": "http://registry.npmjs.org/lodash._arrayincludeswith/-/lodash._arrayincludeswith-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arrayincludeswith",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/LICENSE.txt b/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/LICENSE.txt
deleted file mode 100644
index 17764328c826b5..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/README.md
deleted file mode 100644
index 1c866863dafcf4..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._arraymap v3.0.0
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `arrayMap` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._arraymap
-```
-
-In Node.js/io.js:
-
-```js
-var arrayMap = require('lodash._arraymap');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._arraymap) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/index.js
deleted file mode 100644
index 4e0c30bbc17222..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * lodash 3.0.0 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.7.0
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A specialized version of `_.map` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function arrayMap(array, iteratee) {
- var index = -1,
- length = array.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
-}
-
-module.exports = arrayMap;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/package.json
deleted file mode 100644
index e4c9ea7f3c69a9..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._arraymap/package.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
- "_args": [
- [
- "lodash._arraymap@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.without"
- ]
- ],
- "_from": "lodash._arraymap@>=3.0.0 <4.0.0",
- "_id": "lodash._arraymap@3.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.without/lodash._arraymap",
- "_nodeVersion": "0.10.35",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.3.0",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._arraymap",
- "raw": "lodash._arraymap@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.without"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz",
- "_shasum": "1a8fd0f4c0df4b61dea076d717cdc97f0a3c3e66",
- "_shrinkwrap": null,
- "_spec": "lodash._arraymap@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.without",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The modern build of lodash’s internal `arrayMap` as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "1a8fd0f4c0df4b61dea076d717cdc97f0a3c3e66",
- "tarball": "http://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._arraymap",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/README.md
new file mode 100644
index 00000000000000..0f5e0fad20fd0a
--- /dev/null
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/README.md
@@ -0,0 +1,18 @@
+# lodash._basedifference v4.4.0
+
+The internal [lodash](https://lodash.com/) function `baseDifference` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._basedifference
+```
+
+In Node.js:
+```js
+var baseDifference = require('lodash._basedifference');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.4.0-npm-packages/lodash._basedifference) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/index.js
new file mode 100644
index 00000000000000..783488521bddd2
--- /dev/null
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/index.js
@@ -0,0 +1,218 @@
+/**
+ * lodash 4.4.0 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license
+ */
+var SetCache = require('lodash._setcache');
+
+/** Used as the size to enable large array optimizations. */
+var LARGE_ARRAY_SIZE = 200;
+
+/** Used to stand-in for `undefined` hash values. */
+var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+/**
+ * A specialized version of `_.includes` for arrays without support for
+ * specifying an index to search from.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} target The value to search for.
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
+ */
+function arrayIncludes(array, value) {
+ return !!array.length && baseIndexOf(array, value, 0) > -1;
+}
+
+/**
+ * A specialized version of `_.includesWith` for arrays without support for
+ * specifying an index to search from.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} target The value to search for.
+ * @param {Function} comparator The comparator invoked per element.
+ * @returns {boolean} Returns `true` if `target` is found, else `false`.
+ */
+function arrayIncludesWith(array, value, comparator) {
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ if (comparator(value, array[index])) {
+ return true;
+ }
+ }
+ return false;
+}
+
+/**
+ * A specialized version of `_.map` for arrays without support for iteratee
+ * shorthands.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+function arrayMap(array, iteratee) {
+ var index = -1,
+ length = array.length,
+ result = Array(length);
+
+ while (++index < length) {
+ result[index] = iteratee(array[index], index, array);
+ }
+ return result;
+}
+
+/**
+ * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function baseIndexOf(array, value, fromIndex) {
+ if (value !== value) {
+ return indexOfNaN(array, fromIndex);
+ }
+ var index = fromIndex - 1,
+ length = array.length;
+
+ while (++index < length) {
+ if (array[index] === value) {
+ return index;
+ }
+ }
+ return -1;
+}
+
+/**
+ * The base implementation of `_.unary` without support for storing wrapper metadata.
+ *
+ * @private
+ * @param {Function} func The function to cap arguments for.
+ * @returns {Function} Returns the new function.
+ */
+function baseUnary(func) {
+ return function(value) {
+ return func(value);
+ };
+}
+
+/**
+ * Gets the index at which the first occurrence of `NaN` is found in `array`.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {number} fromIndex The index to search from.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {number} Returns the index of the matched `NaN`, else `-1`.
+ */
+function indexOfNaN(array, fromIndex, fromRight) {
+ var length = array.length,
+ index = fromIndex + (fromRight ? 0 : -1);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ var other = array[index];
+ if (other !== other) {
+ return index;
+ }
+ }
+ return -1;
+}
+
+/**
+ * Checks if `value` is in `cache`.
+ *
+ * @private
+ * @param {Object} cache The set cache to search.
+ * @param {*} value The value to search for.
+ * @returns {number} Returns `true` if `value` is found, else `false`.
+ */
+function cacheHas(cache, value) {
+ var map = cache.__data__;
+ if (isKeyable(value)) {
+ var data = map.__data__,
+ hash = typeof value == 'string' ? data.string : data.hash;
+
+ return hash[value] === HASH_UNDEFINED;
+ }
+ return map.has(value);
+}
+
+/**
+ * The base implementation of methods like `_.difference` without support for
+ * excluding multiple arrays or iteratee shorthands.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Array} values The values to exclude.
+ * @param {Function} [iteratee] The iteratee invoked per element.
+ * @param {Function} [comparator] The comparator invoked per element.
+ * @returns {Array} Returns the new array of filtered values.
+ */
+function baseDifference(array, values, iteratee, comparator) {
+ var index = -1,
+ includes = arrayIncludes,
+ isCommon = true,
+ length = array.length,
+ result = [],
+ valuesLength = values.length;
+
+ if (!length) {
+ return result;
+ }
+ if (iteratee) {
+ values = arrayMap(values, baseUnary(iteratee));
+ }
+ if (comparator) {
+ includes = arrayIncludesWith;
+ isCommon = false;
+ }
+ else if (values.length >= LARGE_ARRAY_SIZE) {
+ includes = cacheHas;
+ isCommon = false;
+ values = new SetCache(values);
+ }
+ outer:
+ while (++index < length) {
+ var value = array[index],
+ computed = iteratee ? iteratee(value) : value;
+
+ if (isCommon && computed === computed) {
+ var valuesIndex = valuesLength;
+ while (valuesIndex--) {
+ if (values[valuesIndex] === computed) {
+ continue outer;
+ }
+ }
+ result.push(value);
+ }
+ else if (!includes(values, computed, comparator)) {
+ result.push(value);
+ }
+ }
+ return result;
+}
+
+/**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+function isKeyable(value) {
+ var type = typeof value;
+ return type == 'number' || type == 'boolean' ||
+ (type == 'string' && value != '__proto__') || value == null;
+}
+
+module.exports = baseDifference;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/README.md
similarity index 81%
rename from deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/README.md
rename to deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/README.md
index 56265a8fe436ea..696e7cd135725c 100644
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/README.md
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/README.md
@@ -1,4 +1,4 @@
-# lodash._setcache v4.0.1
+# lodash._setcache v4.1.1
The internal [lodash](https://lodash.com/) function `SetCache` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var SetCache = require('lodash._setcache');
```
-See the [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash._setcache) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.1.1-npm-packages/lodash._setcache) for more details.
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/index.js
similarity index 81%
rename from deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/index.js
rename to deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/index.js
index fad3ae61b5b75b..dd96de49f1fa96 100644
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/index.js
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/index.js
@@ -1,12 +1,11 @@
/**
- * lodash 4.1.0 (Custom Build)
+ * lodash 4.1.1 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var root = require('lodash._root');
/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';
@@ -21,6 +20,55 @@ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari > 5). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
/**
* Checks if `value` is a host object in IE < 9.
*
@@ -73,6 +121,7 @@ var Map = getNative(root, 'Map'),
* Creates an hash object.
*
* @private
+ * @constructor
* @returns {Object} Returns the new hash object.
*/
function Hash() {}
@@ -133,6 +182,7 @@ function hashSet(hash, key, value) {
* Creates a map cache object to store key-value pairs.
*
* @private
+ * @constructor
* @param {Array} [values] The values to cache.
*/
function MapCache(values) {
@@ -154,7 +204,11 @@ function MapCache(values) {
* @memberOf MapCache
*/
function mapClear() {
- this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': Map ? new Map : [],
+ 'string': new Hash
+ };
}
/**
@@ -230,6 +284,45 @@ function mapSet(key, value) {
return this;
}
+/**
+ *
+ * Creates a set cache object to store unique values.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [values] The values to cache.
+ */
+function SetCache(values) {
+ var index = -1,
+ length = values ? values.length : 0;
+
+ this.__data__ = new MapCache;
+ while (++index < length) {
+ this.push(values[index]);
+ }
+}
+
+/**
+ * Adds `value` to the set cache.
+ *
+ * @private
+ * @name push
+ * @memberOf SetCache
+ * @param {*} value The value to cache.
+ */
+function cachePush(value) {
+ var map = this.__data__;
+ if (isKeyable(value)) {
+ var data = map.__data__,
+ hash = typeof value == 'string' ? data.string : data.hash;
+
+ hash[value] = HASH_UNDEFINED;
+ }
+ else {
+ map.set(value, HASH_UNDEFINED);
+ }
+}
+
/**
* Removes `key` and its value from the associative array.
*
@@ -322,7 +415,7 @@ function assocSet(array, key, value) {
* @returns {*} Returns the function if it's native, else `undefined`.
*/
function getNative(object, key) {
- var value = object == null ? undefined : object[key];
+ var value = object[key];
return isNative(value) ? value : undefined;
}
@@ -336,7 +429,7 @@ function getNative(object, key) {
function isKeyable(value) {
var type = typeof value;
return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
+ (type == 'string' && value != '__proto__') || value == null;
}
/**
@@ -391,8 +484,8 @@ function eq(value, other) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
var tag = isObject(value) ? objectToString.call(value) : '';
return tag == funcTag || tag == genTag;
}
@@ -489,4 +582,7 @@ MapCache.prototype.get = mapGet;
MapCache.prototype.has = mapHas;
MapCache.prototype.set = mapSet;
-module.exports = MapCache;
+// Add functions to the `SetCache`.
+SetCache.prototype.push = cachePush;
+
+module.exports = SetCache;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/package.json
similarity index 66%
rename from deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/package.json
rename to deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/package.json
index 8535c4aa0857bf..217a0b8d9b1d37 100644
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/package.json
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/node_modules/lodash._setcache/package.json
@@ -2,20 +2,24 @@
"_args": [
[
"lodash._setcache@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.without"
+ "/Users/rebecca/code/npm/node_modules/lodash.without/node_modules/lodash._basedifference"
]
],
"_from": "lodash._setcache@>=4.0.0 <5.0.0",
- "_id": "lodash._setcache@4.0.1",
+ "_id": "lodash._setcache@4.1.1",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.without/lodash._setcache",
- "_nodeVersion": "5.4.0",
+ "_location": "/lodash.without/lodash._basedifference/lodash._setcache",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash._setcache-4.1.1.tgz_1456896443505_0.39592266851104796"
+ },
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
"name": "lodash._setcache",
@@ -26,13 +30,13 @@
"type": "range"
},
"_requiredBy": [
- "/lodash.without"
+ "/lodash.without/lodash._basedifference"
],
- "_resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.0.1.tgz",
- "_shasum": "d8c6196cee20791ed3545b08c6cea0278df0401e",
+ "_resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.1.1.tgz",
+ "_shasum": "338f47e49f21ba8bb89e621e7815d781bd4dbd97",
"_shrinkwrap": null,
"_spec": "lodash._setcache@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.without",
+ "_where": "/Users/rebecca/code/npm/node_modules/lodash.without/node_modules/lodash._basedifference",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -43,46 +47,44 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
+ "email": "blaine.bublitz@gmail.com",
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {
- "lodash._mapcache": "^4.0.0"
- },
+ "dependencies": {},
"description": "The internal lodash function `SetCache` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "d8c6196cee20791ed3545b08c6cea0278df0401e",
- "tarball": "http://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.0.1.tgz"
+ "shasum": "338f47e49f21ba8bb89e621e7815d781bd4dbd97",
+ "tarball": "http://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.1.1.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine.bublitz@gmail.com"
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
}
],
"name": "lodash._setcache",
@@ -95,5 +97,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.0.1"
+ "version": "4.1.1"
}
diff --git a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/package.json
similarity index 61%
rename from deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json
rename to deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/package.json
index 07c2eb7ade9285..5aebde78cd1eda 100644
--- a/deps/npm/node_modules/lodash.uniq/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json
+++ b/deps/npm/node_modules/lodash.without/node_modules/lodash._basedifference/package.json
@@ -1,19 +1,19 @@
{
"_args": [
[
- "lodash._mapcache@^4.0.0",
- "/Users/zkat/Documents/code/npm/node_modules/lodash.uniq/node_modules/lodash._setcache"
+ "lodash._basedifference@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/lodash.without"
]
],
- "_from": "lodash._mapcache@>=4.0.0 <5.0.0",
- "_id": "lodash._mapcache@4.1.0",
+ "_from": "lodash._basedifference@>=4.0.0 <5.0.0",
+ "_id": "lodash._basedifference@4.4.0",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.uniq/lodash._setcache/lodash._mapcache",
+ "_location": "/lodash.without/lodash._basedifference",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
"host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._mapcache-4.1.0.tgz_1454898271298_0.09834620845504105"
+ "tmp": "tmp/lodash._basedifference-4.4.0.tgz_1455614999271_0.6685796829406172"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
@@ -22,21 +22,21 @@
"_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
- "name": "lodash._mapcache",
- "raw": "lodash._mapcache@^4.0.0",
+ "name": "lodash._basedifference",
+ "raw": "lodash._basedifference@^4.0.0",
"rawSpec": "^4.0.0",
"scope": null,
"spec": ">=4.0.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/lodash.uniq/lodash._setcache"
+ "/lodash.without"
],
- "_resolved": "https://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.1.0.tgz",
- "_shasum": "c4815d2446e43554e564b1ea9cbd8501f7a4fdc5",
+ "_resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-4.4.0.tgz",
+ "_shasum": "b0c364ecd319c7669092dc1f84c466f798642be3",
"_shrinkwrap": null,
- "_spec": "lodash._mapcache@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash.uniq/node_modules/lodash._setcache",
+ "_spec": "lodash._basedifference@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/lodash.without",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -63,14 +63,14 @@
}
],
"dependencies": {
- "lodash._root": "^3.0.0"
+ "lodash._setcache": "^4.0.0"
},
- "description": "The internal lodash function `MapCache` exported as a module.",
+ "description": "The internal lodash function `baseDifference` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "c4815d2446e43554e564b1ea9cbd8501f7a4fdc5",
- "tarball": "http://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.1.0.tgz"
+ "shasum": "b0c364ecd319c7669092dc1f84c466f798642be3",
+ "tarball": "http://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-4.4.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -85,11 +85,11 @@
"name": "mathias"
},
{
- "email": "blaine.bublitz@gmail.com",
+ "email": "blaine@iceddev.com",
"name": "phated"
}
],
- "name": "lodash._mapcache",
+ "name": "lodash._basedifference",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -99,5 +99,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.1.0"
+ "version": "4.4.0"
}
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/README.md
deleted file mode 100644
index 1bc556dc513245..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._cachehas v4.0.0
-
-The internal [lodash](https://lodash.com/) function `cacheHas` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._cachehas
-```
-
-In Node.js:
-```js
-var cacheHas = require('lodash._cachehas');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._cachehas) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/index.js
deleted file mode 100644
index 93693f8f69ff8e..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/index.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- * Checks if `value` is in `cache`.
- *
- * @private
- * @param {Object} cache The set cache to search.
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
-function cacheHas(cache, value) {
- var map = cache.__data__;
- if (isKeyable(value)) {
- var data = map.__data__,
- hash = typeof value == 'string' ? data.string : data.hash;
-
- return hash[value] === HASH_UNDEFINED;
- }
- return map.has(value);
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-module.exports = cacheHas;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/package.json
deleted file mode 100644
index ab02956384e480..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._cachehas/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_args": [
- [
- "lodash._cachehas@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.without"
- ]
- ],
- "_from": "lodash._cachehas@>=4.0.0 <5.0.0",
- "_id": "lodash._cachehas@4.0.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.without/lodash._cachehas",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._cachehas",
- "raw": "lodash._cachehas@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.without"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._cachehas/-/lodash._cachehas-4.0.0.tgz",
- "_shasum": "18dab9e3694144f24bcb4a8e03f14616e3453a34",
- "_shrinkwrap": null,
- "_spec": "lodash._cachehas@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.without",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `cacheHas` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "18dab9e3694144f24bcb4a8e03f14616e3453a34",
- "tarball": "http://registry.npmjs.org/lodash._cachehas/-/lodash._cachehas-4.0.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- }
- ],
- "name": "lodash._cachehas",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/README.md
deleted file mode 100644
index 56265a8fe436ea..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._setcache v4.0.1
-
-The internal [lodash](https://lodash.com/) function `SetCache` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._setcache
-```
-
-In Node.js:
-```js
-var SetCache = require('lodash._setcache');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash._setcache) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/index.js b/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/index.js
deleted file mode 100644
index 45a19c662d65d1..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * lodash 4.0.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var MapCache = require('lodash._mapcache');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/**
- *
- * Creates a set cache object to store unique values.
- *
- * @private
- * @param {Array} [values] The values to cache.
- */
-function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.push(values[index]);
- }
-}
-
-/**
- * Adds `value` to the set cache.
- *
- * @private
- * @name push
- * @memberOf SetCache
- * @param {*} value The value to cache.
- */
-function cachePush(value) {
- var map = this.__data__;
- if (isKeyable(value)) {
- var data = map.__data__,
- hash = typeof value == 'string' ? data.string : data.hash;
-
- hash[value] = HASH_UNDEFINED;
- }
- else {
- map.set(value, HASH_UNDEFINED);
- }
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return type == 'number' || type == 'boolean' ||
- (type == 'string' && value !== '__proto__') || value == null;
-}
-
-// Add functions to the `SetCache`.
-SetCache.prototype.push = cachePush;
-
-module.exports = SetCache;
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE b/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md b/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md
deleted file mode 100644
index e5a9fd14355783..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._mapcache v4.0.1
-
-The internal [lodash](https://lodash.com/) function `MapCache` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._mapcache
-```
-
-In Node.js:
-```js
-var MapCache = require('lodash._mapcache');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash._mapcache) for more details.
diff --git a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json b/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json
deleted file mode 100644
index 67c024b12a1800..00000000000000
--- a/deps/npm/node_modules/lodash.without/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "_args": [
- [
- "lodash._mapcache@^4.0.0",
- "/Users/rebecca/code/npm/node_modules/lodash.without/node_modules/lodash._setcache"
- ]
- ],
- "_from": "lodash._mapcache@>=4.0.0 <5.0.0",
- "_id": "lodash._mapcache@4.0.1",
- "_inCache": true,
- "_installable": true,
- "_location": "/lodash.without/lodash._setcache/lodash._mapcache",
- "_nodeVersion": "5.4.0",
- "_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._mapcache-4.0.1.tgz_1454484290388_0.2519109307322651"
- },
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash._mapcache",
- "raw": "lodash._mapcache@^4.0.0",
- "rawSpec": "^4.0.0",
- "scope": null,
- "spec": ">=4.0.0 <5.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/lodash.without/lodash._setcache"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.0.1.tgz",
- "_shasum": "f9815450d837741c827e20389075d6ac10678535",
- "_shrinkwrap": null,
- "_spec": "lodash._mapcache@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/lodash.without/node_modules/lodash._setcache",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The internal lodash function `MapCache` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "f9815450d837741c827e20389075d6ac10678535",
- "tarball": "http://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.0.1.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine.bublitz@gmail.com"
- }
- ],
- "name": "lodash._mapcache",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/lodash.without/package.json b/deps/npm/node_modules/lodash.without/package.json
index 7560b7a572f46e..5077fe66a63789 100644
--- a/deps/npm/node_modules/lodash.without/package.json
+++ b/deps/npm/node_modules/lodash.without/package.json
@@ -1,41 +1,41 @@
{
"_args": [
[
- "lodash.without@~4.0.1",
+ "lodash.without@~4.1.0",
"/Users/rebecca/code/npm"
]
],
- "_from": "lodash.without@>=4.0.1 <4.1.0",
- "_id": "lodash.without@4.0.2",
+ "_from": "lodash.without@>=4.1.0 <4.2.0",
+ "_id": "lodash.without@4.1.1",
"_inCache": true,
"_installable": true,
"_location": "/lodash.without",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash.without-4.0.2.tgz_1454484814633_0.6160044688731432"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.without-4.1.1.tgz_1456896882082_0.03977343044243753"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
"name": "lodash.without",
- "raw": "lodash.without@~4.0.1",
- "rawSpec": "~4.0.1",
+ "raw": "lodash.without@~4.1.0",
+ "rawSpec": "~4.1.0",
"scope": null,
- "spec": ">=4.0.1 <4.1.0",
+ "spec": ">=4.1.0 <4.2.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.0.2.tgz",
- "_shasum": "e44e83ca13150ff146416b4dd986f24b6dd26a9e",
+ "_resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.1.1.tgz",
+ "_shasum": "00ba28bb140083195c73a156da9668afe8ce1dbe",
"_shrinkwrap": null,
- "_spec": "lodash.without@~4.0.1",
+ "_spec": "lodash.without@~4.1.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"email": "john.david.dalton@gmail.com",
@@ -47,35 +47,31 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
+ "email": "blaine.bublitz@gmail.com",
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
"dependencies": {
- "lodash._arrayincludes": "^4.0.0",
- "lodash._arrayincludeswith": "^4.0.0",
- "lodash._arraymap": "^3.0.0",
- "lodash._cachehas": "^4.0.0",
- "lodash._setcache": "^4.0.0",
+ "lodash._basedifference": "^4.0.0",
"lodash.rest": "^4.0.0"
},
"description": "The lodash method `_.without` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "e44e83ca13150ff146416b4dd986f24b6dd26a9e",
- "tarball": "http://registry.npmjs.org/lodash.without/-/lodash.without-4.0.2.tgz"
+ "shasum": "00ba28bb140083195c73a156da9668afe8ce1dbe",
+ "tarball": "http://registry.npmjs.org/lodash.without/-/lodash.without-4.1.1.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -86,16 +82,16 @@
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash.without",
@@ -108,5 +104,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.0.2"
+ "version": "4.1.1"
}
diff --git a/deps/npm/node_modules/node-gyp/CHANGELOG.md b/deps/npm/node_modules/node-gyp/CHANGELOG.md
index a0193adf0c74bd..089ee84a4d7dbc 100644
--- a/deps/npm/node_modules/node-gyp/CHANGELOG.md
+++ b/deps/npm/node_modules/node-gyp/CHANGELOG.md
@@ -1,3 +1,26 @@
+v3.3.0 2016-02-16
+
+* [[`818d854a4d`](https://github.com/nodejs/node-gyp/commit/818d854a4d)] - Introduce NODEJS_ORG_MIRROR and IOJS_ORG_MIRROR (Rod Vagg) [#878](https://github.com/nodejs/node-gyp/pull/878)
+* [[`d1e4cc4b62`](https://github.com/nodejs/node-gyp/commit/d1e4cc4b62)] - **(SEMVER-MINOR)** Download headers tarball for ~0.12.10 || ~0.10.42 (Rod Vagg) [#877](https://github.com/nodejs/node-gyp/pull/877)
+* [[`6e28ad1bea`](https://github.com/nodejs/node-gyp/commit/6e28ad1bea)] - Allow for npmlog@2.x (Rebecca Turner) [#861](https://github.com/nodejs/node-gyp/pull/861)
+* [[`07371e5812`](https://github.com/nodejs/node-gyp/commit/07371e5812)] - Use -fPIC for NetBSD. (Marcin Cieślak) [#856](https://github.com/nodejs/node-gyp/pull/856)
+* [[`8c4b0ffa50`](https://github.com/nodejs/node-gyp/commit/8c4b0ffa50)] - **(SEMVER-MINOR)** Add --cafile command line option. (Ben Noordhuis) [#837](https://github.com/nodejs/node-gyp/pull/837)
+* [[`b3ad43498e`](https://github.com/nodejs/node-gyp/commit/b3ad43498e)] - **(SEMVER-MINOR)** Make download() function testable. (Ben Noordhuis) [#837](https://github.com/nodejs/node-gyp/pull/837)
+
+v3.2.1 2015-12-03
+
+* [[`ab89b477c4`](https://github.com/nodejs/node-gyp/commit/ab89b477c4)] - Upgrade gyp to b3cef02. (Ben Noordhuis) [#831](https://github.com/nodejs/node-gyp/pull/831)
+* [[`90078ecb17`](https://github.com/nodejs/node-gyp/commit/90078ecb17)] - Define WIN32_LEAN_AND_MEAN conditionally. (Ben Noordhuis) [#824](https://github.com/nodejs/node-gyp/pull/824)
+
+v3.2.0 2015-11-25
+
+* [[`268f1ca4c7`](https://github.com/nodejs/node-gyp/commit/268f1ca4c7)] - Use result of `which` when searching for python. (Refael Ackermann) [#668](https://github.com/nodejs/node-gyp/pull/668)
+* [[`817ed9bd78`](https://github.com/nodejs/node-gyp/commit/817ed9bd78)] - Add test for python executable search logic. (Ben Noordhuis) [#756](https://github.com/nodejs/node-gyp/pull/756)
+* [[`0e2dfda1f3`](https://github.com/nodejs/node-gyp/commit/0e2dfda1f3)] - Fix test/test-options when run through `npm test`. (Ben Noordhuis) [#755](https://github.com/nodejs/node-gyp/pull/755)
+* [[`9bfa0876b4`](https://github.com/nodejs/node-gyp/commit/9bfa0876b4)] - Add support for AIX (Michael Dawson) [#753](https://github.com/nodejs/node-gyp/pull/753)
+* [[`a8d441a0a2`](https://github.com/nodejs/node-gyp/commit/a8d441a0a2)] - Update README for Windows 10 support. (Jason Williams) [#766](https://github.com/nodejs/node-gyp/pull/766)
+* [[`d1d6015276`](https://github.com/nodejs/node-gyp/commit/d1d6015276)] - Update broken links and switch to HTTPS. (andrew morton)
+
v3.1.0 2015-11-14
* [[`9049241f91`](https://github.com/nodejs/node-gyp/commit/9049241f91)] - **gyp**: don't use links at all, just copy the files instead (Nathan Zadoks)
diff --git a/deps/npm/node_modules/node-gyp/addon.gypi b/deps/npm/node_modules/node-gyp/addon.gypi
index 3372bfa521f623..552e4748d3b7e7 100644
--- a/deps/npm/node_modules/node-gyp/addon.gypi
+++ b/deps/npm/node_modules/node-gyp/addon.gypi
@@ -99,7 +99,8 @@
'_FILE_OFFSET_BITS=64'
],
}],
- [ 'OS=="freebsd" or OS=="openbsd" or OS=="solaris" or (OS=="linux" and target_arch!="ia32")', {
+ [ 'OS in "freebsd openbsd netbsd solaris" or \
+ (OS=="linux" and target_arch!="ia32")', {
'cflags': [ '-fPIC' ],
}]
]
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
index ad6eff6d17b17d..bb9eb5f4b96775 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
@@ -164,7 +164,7 @@ def Write(self, qualified_target, relative_target, base_path, output_filename,
if self.toolset == 'host':
self.WriteLn('LOCAL_IS_HOST_MODULE := true')
self.WriteLn('LOCAL_MULTILIB := $(GYP_HOST_MULTILIB)')
- else:
+ elif sdk_version > 0:
self.WriteLn('LOCAL_MODULE_TARGET_ARCH := '
'$(TARGET_$(GYP_VAR_PREFIX)ARCH)')
self.WriteLn('LOCAL_SDK_VERSION := %s' % sdk_version)
@@ -965,7 +965,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
builddir_name = generator_flags.get('output_dir', 'out')
limit_to_target_all = generator_flags.get('limit_to_target_all', False)
write_alias_targets = generator_flags.get('write_alias_targets', True)
- sdk_version = generator_flags.get('aosp_sdk_version', 19)
+ sdk_version = generator_flags.get('aosp_sdk_version', 0)
android_top_dir = os.environ.get('ANDROID_BUILD_TOP')
assert android_top_dir, '$ANDROID_BUILD_TOP not set; you need to run lunch.'
diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js
index ddad77ec2b9509..fa2e1c5430086b 100644
--- a/deps/npm/node_modules/node-gyp/lib/install.js
+++ b/deps/npm/node_modules/node-gyp/lib/install.js
@@ -1,6 +1,8 @@
module.exports = exports = install
+module.exports.test = { download: download, readCAFile: readCAFile }
+
exports.usage = 'Install node development files for the specified node version.'
/**
@@ -110,45 +112,6 @@ function install (gyp, argv, callback) {
go()
}
- function download (url) {
- log.http('GET', url)
-
- var req = null
- var requestOpts = {
- uri: url
- , headers: {
- 'User-Agent': 'node-gyp v' + gyp.version + ' (node ' + process.version + ')'
- }
- }
-
- // basic support for a proxy server
- var proxyUrl = gyp.opts.proxy
- || process.env.http_proxy
- || process.env.HTTP_PROXY
- || process.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)
- }
- }
- try {
- // The "request" constructor can throw sometimes apparently :(
- // See: https://github.com/nodejs/node-gyp/issues/114
- req = request(requestOpts)
- } catch (e) {
- cb(e)
- }
- if (req) {
- req.on('response', function (res) {
- log.http(res.statusCode, url)
- })
- }
- return req
- }
-
function getContentSha(res, callback) {
var shasum = crypto.createHash('sha256')
res.on('data', function (chunk) {
@@ -218,8 +181,11 @@ function install (gyp, argv, callback) {
return
}
- var req = download(release.tarballUrl)
- if (!req) 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) {
@@ -311,8 +277,12 @@ function install (gyp, argv, callback) {
var shasumsPath = path.resolve(devDir, 'SHASUMS256.txt')
log.verbose('checksum url', release.shasumsUrl)
- var req = download(release.shasumsUrl)
- if (!req) return
+ 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) {
@@ -358,8 +328,12 @@ function install (gyp, argv, callback) {
if (err) return done(err)
log.verbose('streaming 32-bit ' + release.name + '.lib to:', libPath32)
- var req = download(release.libUrl32)
- if (!req) return
+ 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) {
@@ -384,8 +358,12 @@ function install (gyp, argv, callback) {
if (err) return done(err)
log.verbose('streaming 64-bit ' + release.name + '.lib to:', libPath64)
- var req = download(release.libUrl64)
- if (!req) return
+ 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) {
@@ -444,3 +422,48 @@ function install (gyp, argv, callback) {
}
}
+
+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/deps/npm/node_modules/node-gyp/lib/node-gyp.js b/deps/npm/node_modules/node-gyp/lib/node-gyp.js
index b84f17d7e2cf9f..a5a332885597bf 100644
--- a/deps/npm/node_modules/node-gyp/lib/node-gyp.js
+++ b/deps/npm/node_modules/node-gyp/lib/node-gyp.js
@@ -84,6 +84,7 @@ proto.package = require('../package')
proto.configDefs = {
help: Boolean // everywhere
, arch: String // 'configure'
+ , cafile: String // 'install'
, debug: Boolean // 'build'
, directory: String // bin
, make: String // 'build'
diff --git a/deps/npm/node_modules/node-gyp/lib/process-release.js b/deps/npm/node_modules/node-gyp/lib/process-release.js
index 2a574f437e10af..f5a3cca6357b6d 100644
--- a/deps/npm/node_modules/node-gyp/lib/process-release.js
+++ b/deps/npm/node_modules/node-gyp/lib/process-release.js
@@ -1,7 +1,10 @@
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"
@@ -21,6 +24,7 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
, libUrl32
, libUrl64
, tarballUrl
+ , canGetHeaders
if (!versionSemver) {
// not a valid semver string, nothing we can do
@@ -49,10 +53,25 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
// check for the nvm.sh standard mirror env variables
if (!overrideDistUrl) {
- if (isIojs && process.env.NVM_IOJS_ORG_MIRROR)
- overrideDistUrl = process.env.NVM_IOJS_ORG_MIRROR
- else if (process.env.NVM_NODEJS_ORG_MIRROR)
- overrideDistUrl = process.env.NVM_NODEJS_ORG_MIRROR
+ 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')
+ }
+ }
}
@@ -93,7 +112,8 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
// 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
- tarballUrl = url.resolve(baseUrl, name + '-v' + version + (versionSemver.major >= 3 ? '-headers' : '') + '.tar.gz')
+ canGetHeaders = semver.satisfies(versionSemver, headersTarballRange)
+ tarballUrl = url.resolve(baseUrl, name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz')
return {
version: version,
diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
index f8d40f79acde0a..abe535df327354 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
+++ b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
@@ -99,7 +99,7 @@ function expand(str, isTop) {
var isOptions = /^(.*,)+(.+)?$/.test(m.body);
if (!isSequence && !isOptions) {
// {a},b}
- if (m.post.match(/,.*}/)) {
+ if (m.post.match(/,.*\}/)) {
str = m.pre + '{' + m.body + escClose + m.post;
return expand(str);
}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
index 9b240267e8aa0e..fffa04e2966692 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
@@ -2,20 +2,24 @@
"_args": [
[
"brace-expansion@^1.0.0",
- "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/glob/node_modules/minimatch"
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch"
]
],
"_from": "brace-expansion@>=1.0.0 <2.0.0",
- "_id": "brace-expansion@1.1.2",
+ "_id": "brace-expansion@1.1.3",
"_inCache": true,
"_installable": true,
"_location": "/node-gyp/glob/minimatch/brace-expansion",
- "_nodeVersion": "4.2.1",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168"
+ },
"_npmUser": {
"email": "julian@juliangruber.com",
"name": "juliangruber"
},
- "_npmVersion": "2.14.7",
+ "_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
"name": "brace-expansion",
@@ -28,11 +32,11 @@
"_requiredBy": [
"/node-gyp/glob/minimatch"
],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz",
- "_shasum": "f21445d0488b658e2771efd870eff51df29f04ef",
+ "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz",
+ "_shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
"_shrinkwrap": null,
"_spec": "brace-expansion@^1.0.0",
- "_where": "/Users/rebecca/code/release/npm-3/node_modules/node-gyp/node_modules/glob/node_modules/minimatch",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch",
"author": {
"email": "mail@juliangruber.com",
"name": "Julian Gruber",
@@ -47,26 +51,26 @@
},
"description": "Brace expansion as known from sh/bash",
"devDependencies": {
- "tape": "4.2.2"
+ "tape": "4.4.0"
},
"directories": {},
"dist": {
- "shasum": "f21445d0488b658e2771efd870eff51df29f04ef",
- "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz"
+ "shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
+ "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz"
},
- "gitHead": "b03773a30fa516b1374945b68e9acb6253d595fa",
+ "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231",
"homepage": "https://github.com/juliangruber/brace-expansion",
"keywords": [],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
- "name": "juliangruber",
- "email": "julian@juliangruber.com"
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
},
{
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
}
],
"name": "brace-expansion",
@@ -82,19 +86,19 @@
},
"testling": {
"browsers": [
- "android-browser/4.2..latest",
- "chrome/25..latest",
- "chrome/canary",
+ "ie/8..latest",
"firefox/20..latest",
"firefox/nightly",
- "ie/8..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
+ "chrome/25..latest",
+ "chrome/canary",
"opera/12..latest",
"opera/next",
- "safari/5.1..latest"
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
],
"files": "test/*.js"
},
- "version": "1.1.2"
+ "version": "1.1.3"
}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/README.md
deleted file mode 100644
index a57cf429d4a6fa..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/README.md
+++ /dev/null
@@ -1,195 +0,0 @@
-# npmlog
-
-The logger util that npm uses.
-
-This logger is very basic. It does the logging for npm. It supports
-custom levels and colored output.
-
-By default, logs are written to stderr. If you want to send log messages
-to outputs other than streams, then you can change the `log.stream`
-member, or you can just listen to the events that it emits, and do
-whatever you want with them.
-
-# Basic Usage
-
-```
-var log = require('npmlog')
-
-// additional stuff ---------------------------+
-// message ----------+ |
-// prefix ----+ | |
-// level -+ | | |
-// v v v v
- log.info('fyi', 'I have a kitty cat: %j', myKittyCat)
-```
-
-## log.level
-
-* {String}
-
-The level to display logs at. Any logs at or above this level will be
-displayed. The special level `silent` will prevent anything from being
-displayed ever.
-
-## log.record
-
-* {Array}
-
-An array of all the log messages that have been entered.
-
-## log.maxRecordSize
-
-* {Number}
-
-The maximum number of records to keep. If log.record gets bigger than
-10% over this value, then it is sliced down to 90% of this value.
-
-The reason for the 10% window is so that it doesn't have to resize a
-large array on every log entry.
-
-## log.prefixStyle
-
-* {Object}
-
-A style object that specifies how prefixes are styled. (See below)
-
-## log.headingStyle
-
-* {Object}
-
-A style object that specifies how the heading is styled. (See below)
-
-## log.heading
-
-* {String} Default: ""
-
-If set, a heading that is printed at the start of every line.
-
-## log.stream
-
-* {Stream} Default: `process.stderr`
-
-The stream where output is written.
-
-## log.enableColor()
-
-Force colors to be used on all messages, regardless of the output
-stream.
-
-## log.disableColor()
-
-Disable colors on all messages.
-
-## log.enableProgress()
-
-Enable the display of log activity spinner and progress bar
-
-## log.disableProgress()
-
-Disable the display of a progress bar
-
-## log.enableUnicode()
-
-Force the unicode theme to be used for the progress bar.
-
-## log.disableUnicode()
-
-Disable the use of unicode in the progress bar.
-
-## log.setGaugeTemplate(template)
-
-Overrides the default gauge template.
-
-## log.pause()
-
-Stop emitting messages to the stream, but do not drop them.
-
-## log.resume()
-
-Emit all buffered messages that were written while paused.
-
-## log.log(level, prefix, message, ...)
-
-* `level` {String} The level to emit the message at
-* `prefix` {String} A string prefix. Set to "" to skip.
-* `message...` Arguments to `util.format`
-
-Emit a log message at the specified level.
-
-## log\[level](prefix, message, ...)
-
-For example,
-
-* log.silly(prefix, message, ...)
-* log.verbose(prefix, message, ...)
-* log.info(prefix, message, ...)
-* log.http(prefix, message, ...)
-* log.warn(prefix, message, ...)
-* log.error(prefix, message, ...)
-
-Like `log.log(level, prefix, message, ...)`. In this way, each level is
-given a shorthand, so you can do `log.info(prefix, message)`.
-
-## log.addLevel(level, n, style, disp)
-
-* `level` {String} Level indicator
-* `n` {Number} The numeric level
-* `style` {Object} Object with fg, bg, inverse, etc.
-* `disp` {String} Optional replacement for `level` in the output.
-
-Sets up a new level with a shorthand function and so forth.
-
-Note that if the number is `Infinity`, then setting the level to that
-will cause all log messages to be suppressed. If the number is
-`-Infinity`, then the only way to show it is to enable all log messages.
-
-## log.newItem(name, todo, weight)
-
-* `name` {String} Optional; progress item name.
-* `todo` {Number} Optional; total amount of work to be done. Default 0.
-* `weight` {Number} Optional; the weight of this item relative to others. Default 1.
-
-This adds a new `are-we-there-yet` item tracker to the progress tracker. The
-object returned has the `log[level]` methods but is otherwise an
-`are-we-there-yet` `Tracker` object.
-
-## log.newStream(name, todo, weight)
-
-This adds a new `are-we-there-yet` stream tracker to the progress tracker. The
-object returned has the `log[level]` methods but is otherwise an
-`are-we-there-yet` `TrackerStream` object.
-
-## log.newGroup(name, weight)
-
-This adds a new `are-we-there-yet` tracker group to the progress tracker. The
-object returned has the `log[level]` methods but is otherwise an
-`are-we-there-yet` `TrackerGroup` object.
-
-# Events
-
-Events are all emitted with the message object.
-
-* `log` Emitted for all messages
-* `log.` Emitted for all messages with the `` level.
-* `` Messages with prefixes also emit their prefix as an event.
-
-# Style Objects
-
-Style objects can have the following fields:
-
-* `fg` {String} Color for the foreground text
-* `bg` {String} Color for the background
-* `bold`, `inverse`, `underline` {Boolean} Set the associated property
-* `bell` {Boolean} Make a noise (This is pretty annoying, probably.)
-
-# Message Objects
-
-Every log event is emitted with a message object, and the `log.record`
-list contains all of them that have been created. They have the
-following fields:
-
-* `id` {Number}
-* `level` {String}
-* `prefix` {String}
-* `message` {String} Result of `util.format()`
-* `messageRaw` {Array} Arguments to `util.format()`
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/example.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/example.js
deleted file mode 100644
index c009fb15777fbe..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/example.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var log = require('./log.js')
-
-log.heading = 'npm'
-
-console.error('log.level=silly')
-log.level = 'silly'
-log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
-log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
-log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
-log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
-log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
-log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
-console.error('log.level=silent')
-log.level = 'silent'
-log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
-log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
-log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
-log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
-log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
-log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
-console.error('log.level=info')
-log.level = 'info'
-log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
-log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
-log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
-log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
-log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
-log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('404', 'This is a longer\n'+
- 'message, with some details\n'+
- 'and maybe a stack.\n'+
- new Error('a 404 error').stack)
-log.addLevel('noise', 10000, {beep: true})
-log.noise(false, 'LOUD NOISES')
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/log.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/log.js
deleted file mode 100644
index 8bf6422b6cf44d..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/log.js
+++ /dev/null
@@ -1,247 +0,0 @@
-'use strict'
-var Progress = require('are-we-there-yet')
-var Gauge = require('gauge')
-var EE = require('events').EventEmitter
-var log = exports = module.exports = new EE
-var util = require('util')
-
-var ansi = require('ansi')
-log.cursor = ansi(process.stderr)
-log.stream = process.stderr
-
-// by default, let ansi decide based on tty-ness.
-var colorEnabled = undefined
-log.enableColor = function () {
- colorEnabled = true
- this.cursor.enabled = true
-}
-log.disableColor = function () {
- colorEnabled = false
- this.cursor.enabled = false
-}
-
-// default level
-log.level = 'info'
-
-log.gauge = new Gauge(log.cursor)
-log.tracker = new Progress.TrackerGroup()
-
-// no progress bars unless asked
-log.progressEnabled = false
-
-var gaugeTheme = undefined
-
-log.enableUnicode = function () {
- gaugeTheme = Gauge.unicode
- log.gauge.setTheme(gaugeTheme)
-}
-
-log.disableUnicode = function () {
- gaugeTheme = Gauge.ascii
- log.gauge.setTheme(gaugeTheme)
-}
-
-var gaugeTemplate = undefined
-log.setGaugeTemplate = function (template) {
- gaugeTemplate = template
- log.gauge.setTemplate(gaugeTemplate)
-}
-
-log.enableProgress = function () {
- if (this.progressEnabled) return
- this.progressEnabled = true
- if (this._pause) return
- this.tracker.on('change', this.showProgress)
- this.gauge.enable()
- this.showProgress()
-}
-
-log.disableProgress = function () {
- if (!this.progressEnabled) return
- this.clearProgress()
- this.progressEnabled = false
- this.tracker.removeListener('change', this.showProgress)
- this.gauge.disable()
-}
-
-var trackerConstructors = ['newGroup', 'newItem', 'newStream']
-
-var mixinLog = function (tracker) {
- // mixin the public methods from log into the tracker
- // (except: conflicts and one's we handle specially)
- Object.keys(log).forEach(function (P) {
- if (P[0] === '_') return
- if (trackerConstructors.filter(function (C) { return C === P }).length) return
- if (tracker[P]) return
- if (typeof log[P] !== 'function') return
- var func = log[P]
- tracker[P] = function () {
- return func.apply(log, arguments)
- }
- })
- // if the new tracker is a group, make sure any subtrackers get
- // mixed in too
- if (tracker instanceof Progress.TrackerGroup) {
- trackerConstructors.forEach(function (C) {
- var func = tracker[C]
- tracker[C] = function () { return mixinLog(func.apply(tracker, arguments)) }
- })
- }
- return tracker
-}
-
-// Add tracker constructors to the top level log object
-trackerConstructors.forEach(function (C) {
- log[C] = function () { return mixinLog(this.tracker[C].apply(this.tracker, arguments)) }
-})
-
-log.clearProgress = function () {
- if (!this.progressEnabled) return
- this.gauge.hide()
-}
-
-log.showProgress = function (name) {
- if (!this.progressEnabled) return
- this.gauge.show(name, this.tracker.completed())
-}.bind(log) // bind for use in tracker's on-change listener
-
-// temporarily stop emitting, but don't drop
-log.pause = function () {
- this._paused = true
-}
-
-log.resume = function () {
- if (!this._paused) return
- this._paused = false
-
- var b = this._buffer
- this._buffer = []
- b.forEach(function (m) {
- this.emitLog(m)
- }, this)
- if (this.progressEnabled) this.enableProgress()
-}
-
-log._buffer = []
-
-var id = 0
-log.record = []
-log.maxRecordSize = 10000
-log.log = function (lvl, prefix, message) {
- var l = this.levels[lvl]
- if (l === undefined) {
- return this.emit('error', new Error(util.format(
- 'Undefined log level: %j', lvl)))
- }
-
- var a = new Array(arguments.length - 2)
- var stack = null
- for (var i = 2; i < arguments.length; i ++) {
- var arg = a[i-2] = arguments[i]
-
- // resolve stack traces to a plain string.
- if (typeof arg === 'object' && arg &&
- (arg instanceof Error) && arg.stack) {
- arg.stack = stack = arg.stack + ''
- }
- }
- if (stack) a.unshift(stack + '\n')
- message = util.format.apply(util, a)
-
- var m = { id: id++,
- level: lvl,
- prefix: String(prefix || ''),
- message: message,
- messageRaw: a }
-
- this.emit('log', m)
- this.emit('log.' + lvl, m)
- if (m.prefix) this.emit(m.prefix, m)
-
- this.record.push(m)
- var mrs = this.maxRecordSize
- var n = this.record.length - mrs
- if (n > mrs / 10) {
- var newSize = Math.floor(mrs * 0.9)
- this.record = this.record.slice(-1 * newSize)
- }
-
- this.emitLog(m)
-}.bind(log)
-
-log.emitLog = function (m) {
- if (this._paused) {
- this._buffer.push(m)
- return
- }
- if (this.progressEnabled) this.gauge.pulse(m.prefix)
- var l = this.levels[m.level]
- if (l === undefined) return
- if (l < this.levels[this.level]) return
- if (l > 0 && !isFinite(l)) return
-
- var style = log.style[m.level]
- var disp = log.disp[m.level] || m.level
- this.clearProgress()
- m.message.split(/\r?\n/).forEach(function (line) {
- if (this.heading) {
- this.write(this.heading, this.headingStyle)
- this.write(' ')
- }
- this.write(disp, log.style[m.level])
- var p = m.prefix || ''
- if (p) this.write(' ')
- this.write(p, this.prefixStyle)
- this.write(' ' + line + '\n')
- }, this)
- this.showProgress()
-}
-
-log.write = function (msg, style) {
- if (!this.cursor) return
- if (this.stream !== this.cursor.stream) {
- this.cursor = ansi(this.stream, { enabled: colorEnabled })
- var options = {}
- if (gaugeTheme != null) options.theme = gaugeTheme
- if (gaugeTemplate != null) options.template = gaugeTemplate
- this.gauge = new Gauge(options, this.cursor)
- }
-
- style = style || {}
- if (style.fg) this.cursor.fg[style.fg]()
- if (style.bg) this.cursor.bg[style.bg]()
- if (style.bold) this.cursor.bold()
- if (style.underline) this.cursor.underline()
- if (style.inverse) this.cursor.inverse()
- if (style.beep) this.cursor.beep()
- this.cursor.write(msg).reset()
-}
-
-log.addLevel = function (lvl, n, style, disp) {
- if (!disp) disp = lvl
- this.levels[lvl] = n
- this.style[lvl] = style
- if (!this[lvl]) this[lvl] = function () {
- var a = new Array(arguments.length + 1)
- a[0] = lvl
- for (var i = 0; i < arguments.length; i ++) {
- a[i + 1] = arguments[i]
- }
- return this.log.apply(this, a)
- }.bind(this)
- this.disp[lvl] = disp
-}
-
-log.prefixStyle = { fg: 'magenta' }
-log.headingStyle = { fg: 'white', bg: 'black' }
-
-log.style = {}
-log.levels = {}
-log.disp = {}
-log.addLevel('silly', -Infinity, { inverse: true }, 'sill')
-log.addLevel('verbose', 1000, { fg: 'blue', bg: 'black' }, 'verb')
-log.addLevel('info', 2000, { fg: 'green' })
-log.addLevel('http', 3000, { fg: 'green', bg: 'black' })
-log.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN')
-log.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!')
-log.addLevel('silent', Infinity)
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.jshintrc b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.jshintrc
deleted file mode 100644
index 248c5426ea63dc..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.jshintrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "laxcomma": true,
- "asi": true
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md
deleted file mode 100644
index aea8aaf0991e70..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-0.3.1 / 2016-01-14
-==================
-
- * add MIT LICENSE file (#23, @kasicka)
- * preserve chaining after redundant style-method calls (#19, @drewblaisdell)
- * package: add "license" field (#16, @BenjaminTsai)
-
-0.3.0 / 2014-05-09
-==================
-
- * package: remove "test" script and "devDependencies"
- * package: remove "engines" section
- * pacakge: remove "bin" section
- * package: beautify
- * examples: remove `starwars` example (#15)
- * Documented goto, horizontalAbsolute, and eraseLine methods in README.md (#12, @Jammerwoch)
- * add `.jshintrc` file
-
-< 0.3.0
-=======
-
- * Prehistoric
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE
deleted file mode 100644
index 2ea4dc5efb8729..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2012 Nathan Rajlich
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/README.md
deleted file mode 100644
index 6ce19403c4c466..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-ansi.js
-=========
-### Advanced ANSI formatting tool for Node.js
-
-`ansi.js` is a module for Node.js that provides an easy-to-use API for
-writing ANSI escape codes to `Stream` instances. ANSI escape codes are used to do
-fancy things in a terminal window, like render text in colors, delete characters,
-lines, the entire window, or hide and show the cursor, and lots more!
-
-#### Features:
-
- * 256 color support for the terminal!
- * Make a beep sound from your terminal!
- * Works with *any* writable `Stream` instance.
- * Allows you to move the cursor anywhere on the terminal window.
- * Allows you to delete existing contents from the terminal window.
- * Allows you to hide and show the cursor.
- * Converts CSS color codes and RGB values into ANSI escape codes.
- * Low-level; you are in control of when escape codes are used, it's not abstracted.
-
-
-Installation
-------------
-
-Install with `npm`:
-
-``` bash
-$ npm install ansi
-```
-
-
-Example
--------
-
-``` js
-var ansi = require('ansi')
- , cursor = ansi(process.stdout)
-
-// You can chain your calls forever:
-cursor
- .red() // Set font color to red
- .bg.grey() // Set background color to grey
- .write('Hello World!') // Write 'Hello World!' to stdout
- .bg.reset() // Reset the bgcolor before writing the trailing \n,
- // to avoid Terminal glitches
- .write('\n') // And a final \n to wrap things up
-
-// Rendering modes are persistent:
-cursor.hex('#660000').bold().underline()
-
-// You can use the regular logging functions, text will be green:
-console.log('This is blood red, bold text')
-
-// To reset just the foreground color:
-cursor.fg.reset()
-
-console.log('This will still be bold')
-
-// to go to a location (x,y) on the console
-// note: 1-indexed, not 0-indexed:
-cursor.goto(10, 5).write('Five down, ten over')
-
-// to clear the current line:
-cursor.horizontalAbsolute(0).eraseLine().write('Starting again')
-
-// to go to a different column on the current line:
-cursor.horizontalAbsolute(5).write('column five')
-
-// Clean up after yourself!
-cursor.reset()
-```
-
-
-License
--------
-
-(The MIT License)
-
-Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js
deleted file mode 100755
index c1ec929d0bf8a6..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * Invokes the terminal "beep" sound once per second on every exact second.
- */
-
-process.title = 'beep'
-
-var cursor = require('../../')(process.stdout)
-
-function beep () {
- cursor.beep()
- setTimeout(beep, 1000 - (new Date()).getMilliseconds())
-}
-
-setTimeout(beep, 1000 - (new Date()).getMilliseconds())
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js
deleted file mode 100755
index 6ac21ffa99f87a..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * Like GNU ncurses "clear" command.
- * https://github.com/mscdex/node-ncurses/blob/master/deps/ncurses/progs/clear.c
- */
-
-process.title = 'clear'
-
-function lf () { return '\n' }
-
-require('../../')(process.stdout)
- .write(Array.apply(null, Array(process.stdout.getWindowSize()[1])).map(lf).join(''))
- .eraseData(2)
- .goto(1, 1)
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js
deleted file mode 100755
index 50f964490ea1ea..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env node
-
-var tty = require('tty')
-var cursor = require('../')(process.stdout)
-
-// listen for the queryPosition report on stdin
-process.stdin.resume()
-raw(true)
-
-process.stdin.once('data', function (b) {
- var match = /\[(\d+)\;(\d+)R$/.exec(b.toString())
- if (match) {
- var xy = match.slice(1, 3).reverse().map(Number)
- console.error(xy)
- }
-
- // cleanup and close stdin
- raw(false)
- process.stdin.pause()
-})
-
-
-// send the query position request code to stdout
-cursor.queryPosition()
-
-function raw (mode) {
- if (process.stdin.setRawMode) {
- process.stdin.setRawMode(mode)
- } else {
- tty.setRawMode(mode)
- }
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js
deleted file mode 100644
index d28dbda27f93d2..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env node
-
-var assert = require('assert')
- , ansi = require('../../')
-
-function Progress (stream, width) {
- this.cursor = ansi(stream)
- this.delta = this.cursor.newlines
- this.width = width | 0 || 10
- this.open = '['
- this.close = ']'
- this.complete = '█'
- this.incomplete = '_'
-
- // initial render
- this.progress = 0
-}
-
-Object.defineProperty(Progress.prototype, 'progress', {
- get: get
- , set: set
- , configurable: true
- , enumerable: true
-})
-
-function get () {
- return this._progress
-}
-
-function set (v) {
- this._progress = Math.max(0, Math.min(v, 100))
-
- var w = this.width - this.complete.length - this.incomplete.length
- , n = w * (this._progress / 100) | 0
- , i = w - n
- , com = c(this.complete, n)
- , inc = c(this.incomplete, i)
- , delta = this.cursor.newlines - this.delta
-
- assert.equal(com.length + inc.length, w)
-
- if (delta > 0) {
- this.cursor.up(delta)
- this.delta = this.cursor.newlines
- }
-
- this.cursor
- .horizontalAbsolute(0)
- .eraseLine(2)
- .fg.white()
- .write(this.open)
- .fg.grey()
- .bold()
- .write(com)
- .resetBold()
- .write(inc)
- .fg.white()
- .write(this.close)
- .fg.reset()
- .write('\n')
-}
-
-function c (char, length) {
- return Array.apply(null, Array(length)).map(function () {
- return char
- }).join('')
-}
-
-
-
-
-// Usage
-var width = parseInt(process.argv[2], 10) || process.stdout.getWindowSize()[0] / 2
- , p = new Progress(process.stdout, width)
-
-;(function tick () {
- p.progress += Math.random() * 5
- p.cursor
- .eraseLine(2)
- .write('Progress: ')
- .bold().write(p.progress.toFixed(2))
- .write('%')
- .resetBold()
- .write('\n')
- if (p.progress < 100)
- setTimeout(tick, 100)
-})()
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js
deleted file mode 100644
index b1714e328995c1..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js
+++ /dev/null
@@ -1,405 +0,0 @@
-
-/**
- * References:
- *
- * - http://en.wikipedia.org/wiki/ANSI_escape_code
- * - http://www.termsys.demon.co.uk/vtansi.htm
- *
- */
-
-/**
- * Module dependencies.
- */
-
-var emitNewlineEvents = require('./newlines')
- , prefix = '\x1b[' // For all escape codes
- , suffix = 'm' // Only for color codes
-
-/**
- * The ANSI escape sequences.
- */
-
-var codes = {
- up: 'A'
- , down: 'B'
- , forward: 'C'
- , back: 'D'
- , nextLine: 'E'
- , previousLine: 'F'
- , horizontalAbsolute: 'G'
- , eraseData: 'J'
- , eraseLine: 'K'
- , scrollUp: 'S'
- , scrollDown: 'T'
- , savePosition: 's'
- , restorePosition: 'u'
- , queryPosition: '6n'
- , hide: '?25l'
- , show: '?25h'
-}
-
-/**
- * Rendering ANSI codes.
- */
-
-var styles = {
- bold: 1
- , italic: 3
- , underline: 4
- , inverse: 7
-}
-
-/**
- * The negating ANSI code for the rendering modes.
- */
-
-var reset = {
- bold: 22
- , italic: 23
- , underline: 24
- , inverse: 27
-}
-
-/**
- * The standard, styleable ANSI colors.
- */
-
-var colors = {
- white: 37
- , black: 30
- , blue: 34
- , cyan: 36
- , green: 32
- , magenta: 35
- , red: 31
- , yellow: 33
- , grey: 90
- , brightBlack: 90
- , brightRed: 91
- , brightGreen: 92
- , brightYellow: 93
- , brightBlue: 94
- , brightMagenta: 95
- , brightCyan: 96
- , brightWhite: 97
-}
-
-
-/**
- * Creates a Cursor instance based off the given `writable stream` instance.
- */
-
-function ansi (stream, options) {
- if (stream._ansicursor) {
- return stream._ansicursor
- } else {
- return stream._ansicursor = new Cursor(stream, options)
- }
-}
-module.exports = exports = ansi
-
-/**
- * The `Cursor` class.
- */
-
-function Cursor (stream, options) {
- if (!(this instanceof Cursor)) {
- return new Cursor(stream, options)
- }
- if (typeof stream != 'object' || typeof stream.write != 'function') {
- throw new Error('a valid Stream instance must be passed in')
- }
-
- // the stream to use
- this.stream = stream
-
- // when 'enabled' is false then all the functions are no-ops except for write()
- this.enabled = options && options.enabled
- if (typeof this.enabled === 'undefined') {
- this.enabled = stream.isTTY
- }
- this.enabled = !!this.enabled
-
- // then `buffering` is true, then `write()` calls are buffered in
- // memory until `flush()` is invoked
- this.buffering = !!(options && options.buffering)
- this._buffer = []
-
- // controls the foreground and background colors
- this.fg = this.foreground = new Colorer(this, 0)
- this.bg = this.background = new Colorer(this, 10)
-
- // defaults
- this.Bold = false
- this.Italic = false
- this.Underline = false
- this.Inverse = false
-
- // keep track of the number of "newlines" that get encountered
- this.newlines = 0
- emitNewlineEvents(stream)
- stream.on('newline', function () {
- this.newlines++
- }.bind(this))
-}
-exports.Cursor = Cursor
-
-/**
- * Helper function that calls `write()` on the underlying Stream.
- * Returns `this` instead of the write() return value to keep
- * the chaining going.
- */
-
-Cursor.prototype.write = function (data) {
- if (this.buffering) {
- this._buffer.push(arguments)
- } else {
- this.stream.write.apply(this.stream, arguments)
- }
- return this
-}
-
-/**
- * Buffer `write()` calls into memory.
- *
- * @api public
- */
-
-Cursor.prototype.buffer = function () {
- this.buffering = true
- return this
-}
-
-/**
- * Write out the in-memory buffer.
- *
- * @api public
- */
-
-Cursor.prototype.flush = function () {
- this.buffering = false
- var str = this._buffer.map(function (args) {
- if (args.length != 1) throw new Error('unexpected args length! ' + args.length);
- return args[0];
- }).join('');
- this._buffer.splice(0); // empty
- this.write(str);
- return this
-}
-
-
-/**
- * The `Colorer` class manages both the background and foreground colors.
- */
-
-function Colorer (cursor, base) {
- this.current = null
- this.cursor = cursor
- this.base = base
-}
-exports.Colorer = Colorer
-
-/**
- * Write an ANSI color code, ensuring that the same code doesn't get rewritten.
- */
-
-Colorer.prototype._setColorCode = function setColorCode (code) {
- var c = String(code)
- if (this.current === c) return
- this.cursor.enabled && this.cursor.write(prefix + c + suffix)
- this.current = c
- return this
-}
-
-
-/**
- * Set up the positional ANSI codes.
- */
-
-Object.keys(codes).forEach(function (name) {
- var code = String(codes[name])
- Cursor.prototype[name] = function () {
- var c = code
- if (arguments.length > 0) {
- c = toArray(arguments).map(Math.round).join(';') + code
- }
- this.enabled && this.write(prefix + c)
- return this
- }
-})
-
-/**
- * Set up the functions for the rendering ANSI codes.
- */
-
-Object.keys(styles).forEach(function (style) {
- var name = style[0].toUpperCase() + style.substring(1)
- , c = styles[style]
- , r = reset[style]
-
- Cursor.prototype[style] = function () {
- if (this[name]) return this
- this.enabled && this.write(prefix + c + suffix)
- this[name] = true
- return this
- }
-
- Cursor.prototype['reset' + name] = function () {
- if (!this[name]) return this
- this.enabled && this.write(prefix + r + suffix)
- this[name] = false
- return this
- }
-})
-
-/**
- * Setup the functions for the standard colors.
- */
-
-Object.keys(colors).forEach(function (color) {
- var code = colors[color]
-
- Colorer.prototype[color] = function () {
- this._setColorCode(this.base + code)
- return this.cursor
- }
-
- Cursor.prototype[color] = function () {
- return this.foreground[color]()
- }
-})
-
-/**
- * Makes a beep sound!
- */
-
-Cursor.prototype.beep = function () {
- this.enabled && this.write('\x07')
- return this
-}
-
-/**
- * Moves cursor to specific position
- */
-
-Cursor.prototype.goto = function (x, y) {
- x = x | 0
- y = y | 0
- this.enabled && this.write(prefix + y + ';' + x + 'H')
- return this
-}
-
-/**
- * Resets the color.
- */
-
-Colorer.prototype.reset = function () {
- this._setColorCode(this.base + 39)
- return this.cursor
-}
-
-/**
- * Resets all ANSI formatting on the stream.
- */
-
-Cursor.prototype.reset = function () {
- this.enabled && this.write(prefix + '0' + suffix)
- this.Bold = false
- this.Italic = false
- this.Underline = false
- this.Inverse = false
- this.foreground.current = null
- this.background.current = null
- return this
-}
-
-/**
- * Sets the foreground color with the given RGB values.
- * The closest match out of the 216 colors is picked.
- */
-
-Colorer.prototype.rgb = function (r, g, b) {
- var base = this.base + 38
- , code = rgb(r, g, b)
- this._setColorCode(base + ';5;' + code)
- return this.cursor
-}
-
-/**
- * Same as `cursor.fg.rgb(r, g, b)`.
- */
-
-Cursor.prototype.rgb = function (r, g, b) {
- return this.foreground.rgb(r, g, b)
-}
-
-/**
- * Accepts CSS color codes for use with ANSI escape codes.
- * For example: `#FF000` would be bright red.
- */
-
-Colorer.prototype.hex = function (color) {
- return this.rgb.apply(this, hex(color))
-}
-
-/**
- * Same as `cursor.fg.hex(color)`.
- */
-
-Cursor.prototype.hex = function (color) {
- return this.foreground.hex(color)
-}
-
-
-// UTIL FUNCTIONS //
-
-/**
- * Translates a 255 RGB value to a 0-5 ANSI RGV value,
- * then returns the single ANSI color code to use.
- */
-
-function rgb (r, g, b) {
- var red = r / 255 * 5
- , green = g / 255 * 5
- , blue = b / 255 * 5
- return rgb5(red, green, blue)
-}
-
-/**
- * Turns rgb 0-5 values into a single ANSI color code to use.
- */
-
-function rgb5 (r, g, b) {
- var red = Math.round(r)
- , green = Math.round(g)
- , blue = Math.round(b)
- return 16 + (red*36) + (green*6) + blue
-}
-
-/**
- * Accepts a hex CSS color code string (# is optional) and
- * translates it into an Array of 3 RGB 0-255 values, which
- * can then be used with rgb().
- */
-
-function hex (color) {
- var c = color[0] === '#' ? color.substring(1) : color
- , r = c.substring(0, 2)
- , g = c.substring(2, 4)
- , b = c.substring(4, 6)
- return [parseInt(r, 16), parseInt(g, 16), parseInt(b, 16)]
-}
-
-/**
- * Turns an array-like object into a real array.
- */
-
-function toArray (a) {
- var i = 0
- , l = a.length
- , rtn = []
- for (; i 0) {
- var len = data.length
- , i = 0
- // now try to calculate any deltas
- if (typeof data == 'string') {
- for (; i=0.3.0 <0.4.0",
- "_id": "ansi@0.3.1",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/ansi",
- "_nodeVersion": "5.3.0",
- "_npmUser": {
- "email": "nathan@tootallnate.net",
- "name": "tootallnate"
- },
- "_npmVersion": "3.3.12",
- "_phantomChildren": {},
- "_requested": {
- "name": "ansi",
- "raw": "ansi@~0.3.0",
- "rawSpec": "~0.3.0",
- "scope": null,
- "spec": ">=0.3.0 <0.4.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog",
- "/node-gyp/npmlog/gauge"
- ],
- "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
- "_shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21",
- "_shrinkwrap": null,
- "_spec": "ansi@~0.3.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog",
- "author": {
- "email": "nathan@tootallnate.net",
- "name": "Nathan Rajlich",
- "url": "http://tootallnate.net"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/ansi.js/issues"
- },
- "dependencies": {},
- "description": "Advanced ANSI formatting tool for Node.js",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21",
- "tarball": "http://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz"
- },
- "gitHead": "4d0d4af94e0bdaa648bd7262acd3bde4b98d5246",
- "homepage": "https://github.com/TooTallNate/ansi.js#readme",
- "keywords": [
- "256",
- "ansi",
- "color",
- "cursor",
- "formatting",
- "rgb",
- "stream",
- "terminal"
- ],
- "license": "MIT",
- "main": "./lib/ansi.js",
- "maintainers": [
- {
- "name": "TooTallNate",
- "email": "nathan@tootallnate.net"
- },
- {
- "name": "tootallnate",
- "email": "nathan@tootallnate.net"
- }
- ],
- "name": "ansi",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/ansi.js.git"
- },
- "scripts": {},
- "version": "0.3.1"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE
deleted file mode 100644
index af4588069db82d..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE
+++ /dev/null
@@ -1,5 +0,0 @@
-Copyright (c) 2015, Rebecca Turner
-
-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/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md
deleted file mode 100644
index cff489810b4f54..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md
+++ /dev/null
@@ -1,184 +0,0 @@
-are-we-there-yet
-----------------
-
-Track complex hiearchies of asynchronous task completion statuses. This is
-intended to give you a way of recording and reporting the progress of the big
-recursive fan-out and gather type workflows that are so common in async.
-
-What you do with this completion data is up to you, but the most common use case is to
-feed it to one of the many progress bar modules.
-
-Most progress bar modules include a rudamentary version of this, but my
-needs were more complex.
-
-Usage
-=====
-
-```javascript
-var TrackerGroup = require("are-we-there-yet").TrackerGroup
-
-var top = new TrackerGroup("program")
-
-var single = top.newItem("one thing", 100)
-single.completeWork(20)
-
-console.log(top.completed()) // 0.2
-
-fs.stat("file", function(er, stat) {
- if (er) throw er
- var stream = top.newStream("file", stat.size)
- console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete
- // and 50% * 20% == 10%
- fs.createReadStream("file").pipe(stream).on("data", function (chunk) {
- // do stuff with chunk
- })
- top.on("change", function (name) {
- // called each time a chunk is read from "file"
- // top.completed() will start at 0.1 and fill up to 0.6 as the file is read
- })
-})
-```
-
-Shared Methods
-==============
-
-All tracker objects described below have the following methods, they, along
-with the event comprise the interface for consumers of tracker objects.
-
-* var completed = tracker.completed()
-
-Returns the ratio of completed work to work to be done. Range of 0 to 1.
-
-* tracker.finish()
-
-Marks the tracker as completed. With a TrackerGroup this marks all of its
-components as completed.
-
-Marks all of the components of this tracker as finished, which in turn means
-that `tracker.completed()` for this will now be 1.
-
-This will result in one or more `change` events being emitted.
-
-Events
-======
-
-All tracker objects emit `change` events with an argument of the name of the
-thing changing.
-
-TrackerGroup
-============
-
-* var tracker = new TrackerGroup(**name**)
-
- * **name** *(optional)* - The name of this tracker group, used in change
- notifications if the component updating didn't have a name. Defaults to undefined.
-
-Creates a new empty tracker aggregation group. These are trackers whose
-completion status is determined by the completion status of other trackers.
-
-* tracker.addUnit(**otherTracker**, **weight**)
-
- * **otherTracker** - Any of the other are-we-there-yet tracker objects
- * **weight** *(optional)* - The weight to give the tracker, defaults to 1.
-
-Adds the **otherTracker** to this aggregation group. The weight determines
-how long you expect this tracker to take to complete in proportion to other
-units. So for instance, if you add one tracker with a weight of 1 and
-another with a weight of 2, you're saying the second will take twice as long
-to complete as the first. As such, the first will account for 33% of the
-completion of this tracker and the second will account for the other 67%.
-
-Returns **otherTracker**.
-
-* var subGroup = tracker.newGroup(**name**, **weight**)
-
-The above is exactly equivalent to:
-
-```javascript
- var subGroup = tracker.addUnit(new TrackerGroup(name), weight)
-```
-
-* var subItem = tracker.newItem(**name**, **todo**, **weight**)
-
-The above is exactly equivalent to:
-
-```javascript
- var subItem = tracker.addUnit(new Tracker(name, todo), weight)
-```
-
-* var subStream = tracker.newStream(**name**, **todo**, **weight**)
-
-The above is exactly equivalent to:
-
-```javascript
- var subStream = tracker.addUnit(new TrackerStream(name, todo), weight)
-```
-
-* console.log( tracker.debug() )
-
-Returns a tree showing the completion of this tracker group and all of its
-children, including recursively entering all of the children.
-
-Tracker
-=======
-
-* var tracker = new Tracker(**name**, **todo**)
-
- * **name** *(optional)* The name of this counter to report in change
- events. Defaults to undefined.
- * **todo** *(optional)* The amount of work todo (a number). Defaults to 0.
-
-Ordinarily these are constructed as a part of a tracker group (via
-`newItem`).
-
-* var completed = tracker.completed()
-
-Returns the ratio of completed work to work to be done. Range of 0 to 1. If
-total work to be done is 0 then it will return 0.
-
-* tracker.addWork(**todo**)
-
- * **todo** A number to add to the amount of work to be done.
-
-Increases the amount of work to be done, thus decreasing the completion
-percentage. Triggers a `change` event.
-
-* tracker.completeWork(**completed**)
-
- * **completed** A number to add to the work complete
-
-Increase the amount of work complete, thus increasing the completion percentage.
-Will never increase the work completed past the amount of work todo. That is,
-percentages > 100% are not allowed. Triggers a `change` event.
-
-* tracker.finish()
-
-Marks this tracker as finished, tracker.completed() will now be 1. Triggers
-a `change` event.
-
-TrackerStream
-=============
-
-* var tracker = new TrackerStream(**name**, **size**, **options**)
-
- * **name** *(optional)* The name of this counter to report in change
- events. Defaults to undefined.
- * **size** *(optional)* The number of bytes being sent through this stream.
- * **options** *(optional)* A hash of stream options
-
-The tracker stream object is a pass through stream that updates an internal
-tracker object each time a block passes through. It's intended to track
-downloads, file extraction and other related activities. You use it by piping
-your data source into it and then using it as your data source.
-
-If your data has a length attribute then that's used as the amount of work
-completed when the chunk is passed through. If it does not (eg, object
-streams) then each chunk counts as completing 1 unit of work, so your size
-should be the total number of objects being streamed.
-
-* tracker.addWork(**todo**)
-
- * **todo** Increase the expected overall size by **todo** bytes.
-
-Increases the amount of work to be done, thus decreasing the completion
-percentage. Triggers a `change` event.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js
deleted file mode 100644
index 22f47ac8852b89..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js
+++ /dev/null
@@ -1,130 +0,0 @@
-"use strict"
-var stream = require("readable-stream");
-var EventEmitter = require("events").EventEmitter
-var util = require("util")
-var delegate = require("delegates")
-
-var TrackerGroup = exports.TrackerGroup = function (name) {
- EventEmitter.call(this)
- this.name = name
- this.trackGroup = []
- var self = this
- this.totalWeight = 0
- var noteChange = this.noteChange = function (name) {
- self.emit("change", name || this.name)
- }.bind(this)
- this.trackGroup.forEach(function(unit) {
- unit.on("change", noteChange)
- })
-}
-util.inherits(TrackerGroup, EventEmitter)
-
-TrackerGroup.prototype.completed = function () {
- if (this.trackGroup.length==0) return 0
- var valPerWeight = 1 / this.totalWeight
- var completed = 0
- this.trackGroup.forEach(function(T) {
- completed += valPerWeight * T.weight * T.completed()
- })
- return completed
-}
-
-TrackerGroup.prototype.addUnit = function (unit, weight, noChange) {
- unit.weight = weight || 1
- this.totalWeight += unit.weight
- this.trackGroup.push(unit)
- unit.on("change", this.noteChange)
- if (! noChange) this.emit("change", this.name)
- return unit
-}
-
-TrackerGroup.prototype.newGroup = function (name, weight) {
- return this.addUnit(new TrackerGroup(name), weight)
-}
-
-TrackerGroup.prototype.newItem = function (name, todo, weight) {
- return this.addUnit(new Tracker(name, todo), weight)
-}
-
-TrackerGroup.prototype.newStream = function (name, todo, weight) {
- return this.addUnit(new TrackerStream(name, todo), weight)
-}
-
-TrackerGroup.prototype.finish = function () {
- if (! this.trackGroup.length) { this.addUnit(new Tracker(), 1, true) }
- var self = this
- this.trackGroup.forEach(function(T) {
- T.removeListener("change", self.noteChange)
- T.finish()
- })
- this.emit("change", this.name)
-}
-
-var buffer = " "
-TrackerGroup.prototype.debug = function (depth) {
- depth = depth || 0
- var indent = depth ? buffer.substr(0,depth) : ""
- var output = indent + (this.name||"top") + ": " + this.completed() + "\n"
- this.trackGroup.forEach(function(T) {
- if (T instanceof TrackerGroup) {
- output += T.debug(depth + 1)
- }
- else {
- output += indent + " " + T.name + ": " + T.completed() + "\n"
- }
- })
- return output
-}
-
-var Tracker = exports.Tracker = function (name,todo) {
- EventEmitter.call(this)
- this.name = name
- this.workDone = 0
- this.workTodo = todo || 0
-}
-util.inherits(Tracker, EventEmitter)
-
-Tracker.prototype.completed = function () {
- return this.workTodo==0 ? 0 : this.workDone / this.workTodo
-}
-
-Tracker.prototype.addWork = function (work) {
- this.workTodo += work
- this.emit("change", this.name)
-}
-
-Tracker.prototype.completeWork = function (work) {
- this.workDone += work
- if (this.workDone > this.workTodo) this.workDone = this.workTodo
- this.emit("change", this.name)
-}
-
-Tracker.prototype.finish = function () {
- this.workTodo = this.workDone = 1
- this.emit("change", this.name)
-}
-
-
-var TrackerStream = exports.TrackerStream = function (name, size, options) {
- stream.Transform.call(this, options)
- this.tracker = new Tracker(name, size)
- this.name = name
- var self = this
- this.tracker.on("change", function (name) { self.emit("change", name) })
-}
-util.inherits(TrackerStream, stream.Transform)
-
-TrackerStream.prototype._transform = function (data, encoding, cb) {
- this.tracker.completeWork(data.length ? data.length : 1)
- this.push(data)
- cb()
-}
-
-TrackerStream.prototype._flush = function (cb) {
- this.tracker.finish()
- cb()
-}
-
-delegate(TrackerStream.prototype, "tracker")
- .method("completed")
- .method("addWork")
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore
deleted file mode 100644
index c2658d7d1b3184..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules/
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md
deleted file mode 100644
index aee31a4c35b7f3..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md
+++ /dev/null
@@ -1,16 +0,0 @@
-
-0.1.0 / 2014-10-17
-==================
-
- * adds `.fluent()` to api
-
-0.0.3 / 2014-01-13
-==================
-
- * fix receiver for .method()
-
-0.0.2 / 2014-01-13
-==================
-
- * Object.defineProperty() sucks
- * Initial commit
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile
deleted file mode 100644
index a9dcfd50dbdb22..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-
-test:
- @./node_modules/.bin/mocha \
- --require should \
- --reporter spec \
- --bail
-
-.PHONY: test
\ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md
deleted file mode 100644
index ab8cf4ace15939..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md
+++ /dev/null
@@ -1,94 +0,0 @@
-
-# delegates
-
- Node method and accessor delegation utilty.
-
-## Installation
-
-```
-$ npm install delegates
-```
-
-## Example
-
-```js
-var delegate = require('delegates');
-
-...
-
-delegate(proto, 'request')
- .method('acceptsLanguages')
- .method('acceptsEncodings')
- .method('acceptsCharsets')
- .method('accepts')
- .method('is')
- .access('querystring')
- .access('idempotent')
- .access('socket')
- .access('length')
- .access('query')
- .access('search')
- .access('status')
- .access('method')
- .access('path')
- .access('body')
- .access('host')
- .access('url')
- .getter('subdomains')
- .getter('protocol')
- .getter('header')
- .getter('stale')
- .getter('fresh')
- .getter('secure')
- .getter('ips')
- .getter('ip')
-```
-
-# API
-
-## Delegate(proto, prop)
-
-Creates a delegator instance used to configure using the `prop` on the given
-`proto` object. (which is usually a prototype)
-
-## Delegate#method(name)
-
-Allows the given method `name` to be accessed on the host.
-
-## Delegate#getter(name)
-
-Creates a "getter" for the property with the given `name` on the delegated
-object.
-
-## Delegate#setter(name)
-
-Creates a "setter" for the property with the given `name` on the delegated
-object.
-
-## Delegate#access(name)
-
-Creates an "accessor" (ie: both getter *and* setter) for the property with the
-given `name` on the delegated object.
-
-## Delegate#fluent(name)
-
-A unique type of "accessor" that works for a "fluent" API. When called as a
-getter, the method returns the expected value. However, if the method is called
-with a value, it will return itself so it can be chained. For example:
-
-```js
-delegate(proto, 'request')
- .fluent('query')
-
-// getter
-var q = request.query();
-
-// setter (chainable)
-request
- .query({ a: 1 })
- .query({ b: 2 });
-```
-
-# License
-
- MIT
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js
deleted file mode 100644
index 17c222d52935c6..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js
+++ /dev/null
@@ -1,121 +0,0 @@
-
-/**
- * Expose `Delegator`.
- */
-
-module.exports = Delegator;
-
-/**
- * Initialize a delegator.
- *
- * @param {Object} proto
- * @param {String} target
- * @api public
- */
-
-function Delegator(proto, target) {
- if (!(this instanceof Delegator)) return new Delegator(proto, target);
- this.proto = proto;
- this.target = target;
- this.methods = [];
- this.getters = [];
- this.setters = [];
- this.fluents = [];
-}
-
-/**
- * Delegate method `name`.
- *
- * @param {String} name
- * @return {Delegator} self
- * @api public
- */
-
-Delegator.prototype.method = function(name){
- var proto = this.proto;
- var target = this.target;
- this.methods.push(name);
-
- proto[name] = function(){
- return this[target][name].apply(this[target], arguments);
- };
-
- return this;
-};
-
-/**
- * Delegator accessor `name`.
- *
- * @param {String} name
- * @return {Delegator} self
- * @api public
- */
-
-Delegator.prototype.access = function(name){
- return this.getter(name).setter(name);
-};
-
-/**
- * Delegator getter `name`.
- *
- * @param {String} name
- * @return {Delegator} self
- * @api public
- */
-
-Delegator.prototype.getter = function(name){
- var proto = this.proto;
- var target = this.target;
- this.getters.push(name);
-
- proto.__defineGetter__(name, function(){
- return this[target][name];
- });
-
- return this;
-};
-
-/**
- * Delegator setter `name`.
- *
- * @param {String} name
- * @return {Delegator} self
- * @api public
- */
-
-Delegator.prototype.setter = function(name){
- var proto = this.proto;
- var target = this.target;
- this.setters.push(name);
-
- proto.__defineSetter__(name, function(val){
- return this[target][name] = val;
- });
-
- return this;
-};
-
-/**
- * Delegator fluent accessor
- *
- * @param {String} name
- * @return {Delegator} self
- * @api public
- */
-
-Delegator.prototype.fluent = function (name) {
- var proto = this.proto;
- var target = this.target;
- this.fluents.push(name);
-
- proto[name] = function(val){
- if ('undefined' != typeof val) {
- this[target][name] = val;
- return this;
- } else {
- return this[target][name];
- }
- };
-
- return this;
-};
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
deleted file mode 100644
index ea3c1da0d490b2..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "delegates",
- "version": "0.1.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/node-delegates.git"
- },
- "description": "delegate methods and accessors to another property",
- "keywords": [
- "delegate",
- "delegation"
- ],
- "dependencies": {},
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/visionmedia/node-delegates/issues"
- },
- "homepage": "https://github.com/visionmedia/node-delegates",
- "_id": "delegates@0.1.0",
- "_shasum": "b4b57be11a1653517a04b27f0949bdc327dfe390",
- "_from": "delegates@>=0.1.0 <0.2.0",
- "_npmVersion": "1.4.9",
- "_npmUser": {
- "name": "dominicbarnes",
- "email": "dominic@dbarnes.info"
- },
- "maintainers": [
- {
- "name": "tjholowaychuk",
- "email": "tj@vision-media.ca"
- },
- {
- "name": "dominicbarnes",
- "email": "dominic@dbarnes.info"
- }
- ],
- "dist": {
- "shasum": "b4b57be11a1653517a04b27f0949bdc327dfe390",
- "tarball": "http://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js
deleted file mode 100644
index 7b6e3d4df19d90..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js
+++ /dev/null
@@ -1,94 +0,0 @@
-
-var assert = require('assert');
-var delegate = require('..');
-
-describe('.method(name)', function(){
- it('should delegate methods', function(){
- var obj = {};
-
- obj.request = {
- foo: function(bar){
- assert(this == obj.request);
- return bar;
- }
- };
-
- delegate(obj, 'request').method('foo');
-
- obj.foo('something').should.equal('something');
- })
-})
-
-describe('.getter(name)', function(){
- it('should delegate getters', function(){
- var obj = {};
-
- obj.request = {
- get type() {
- return 'text/html';
- }
- }
-
- delegate(obj, 'request').getter('type');
-
- obj.type.should.equal('text/html');
- })
-})
-
-describe('.setter(name)', function(){
- it('should delegate setters', function(){
- var obj = {};
-
- obj.request = {
- get type() {
- return this._type.toUpperCase();
- },
-
- set type(val) {
- this._type = val;
- }
- }
-
- delegate(obj, 'request').setter('type');
-
- obj.type = 'hey';
- obj.request.type.should.equal('HEY');
- })
-})
-
-describe('.access(name)', function(){
- it('should delegate getters and setters', function(){
- var obj = {};
-
- obj.request = {
- get type() {
- return this._type.toUpperCase();
- },
-
- set type(val) {
- this._type = val;
- }
- }
-
- delegate(obj, 'request').access('type');
-
- obj.type = 'hey';
- obj.type.should.equal('HEY');
- })
-})
-
-describe('.fluent(name)', function () {
- it('should delegate in a fluent fashion', function () {
- var obj = {
- settings: {
- env: 'development'
- }
- };
-
- delegate(obj, 'settings').fluent('env');
-
- obj.env().should.equal('development');
- obj.env('production').should.equal(obj);
- obj.settings.env.should.equal('production');
- })
-})
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json
deleted file mode 100644
index 0df2df0abddc88..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_args": [
- [
- "are-we-there-yet@~1.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog"
- ]
- ],
- "_from": "are-we-there-yet@>=1.0.0 <1.1.0",
- "_id": "are-we-there-yet@1.0.5",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/are-we-there-yet",
- "_nodeVersion": "4.2.2",
- "_npmUser": {
- "email": "me@re-becca.org",
- "name": "iarna"
- },
- "_npmVersion": "3.5.2",
- "_phantomChildren": {},
- "_requested": {
- "name": "are-we-there-yet",
- "raw": "are-we-there-yet@~1.0.0",
- "rawSpec": "~1.0.0",
- "scope": null,
- "spec": ">=1.0.0 <1.1.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog"
- ],
- "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.5.tgz",
- "_shasum": "239f26706da902a2bffb72c33de66fdfd3798ac5",
- "_shrinkwrap": null,
- "_spec": "are-we-there-yet@~1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog",
- "author": {
- "name": "Rebecca Turner",
- "url": "http://re-becca.org"
- },
- "bugs": {
- "url": "https://github.com/iarna/are-we-there-yet/issues"
- },
- "dependencies": {
- "delegates": "^0.1.0",
- "readable-stream": "^2.0.0 || ^1.1.13"
- },
- "description": "Keep track of the overall completion of many dispirate processes",
- "devDependencies": {
- "tap": "^0.4.13"
- },
- "directories": {},
- "dist": {
- "shasum": "239f26706da902a2bffb72c33de66fdfd3798ac5",
- "tarball": "http://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.5.tgz"
- },
- "gitHead": "abaff79ae17e9397eae19d29d2d75778d18aab3a",
- "homepage": "https://github.com/iarna/are-we-there-yet",
- "license": "ISC",
- "main": "index.js",
- "maintainers": [
- {
- "name": "iarna",
- "email": "me@re-becca.org"
- }
- ],
- "name": "are-we-there-yet",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/iarna/are-we-there-yet.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.0.5"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
deleted file mode 100644
index 18c31c32cfda1e..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict"
-var test = require("tap").test
-var Tracker = require("../index.js").Tracker
-
-var timeoutError = new Error("timeout")
-var testEvent = function (obj,event,next) {
- var timeout = setTimeout(function(){
- obj.removeListener(event, eventHandler)
- next(timeoutError)
- }, 10)
- var eventHandler = function () {
- var args = Array.prototype.slice.call(arguments)
- args.unshift(null)
- clearTimeout(timeout)
- next.apply(null, args)
- }
- obj.once(event, eventHandler)
-}
-
-test("Tracker", function (t) {
- t.plan(10)
-
- var name = "test"
- var track = new Tracker(name)
-
- t.is(track.completed(), 0, "Nothing todo is 0 completion")
-
- var todo = 100
- track = new Tracker(name, todo)
- t.is(track.completed(), 0, "Nothing done is 0 completion")
-
- testEvent(track, "change", afterCompleteWork)
- track.completeWork(100)
- function afterCompleteWork(er, onChangeName) {
- t.is(er, null, "completeWork: on change event fired")
- t.is(onChangeName, name, "completeWork: on change emits the correct name")
- }
- t.is(track.completed(), 1, "completeWork: 100% completed")
-
- testEvent(track, "change", afterAddWork)
- track.addWork(100)
- function afterAddWork(er, onChangeName) {
- t.is(er, null, "addWork: on change event fired")
- t.is(onChangeName, name, "addWork: on change emits the correct name")
- }
- t.is(track.completed(), 0.5, "addWork: 50% completed")
-
-
- track.completeWork(200)
- t.is(track.completed(), 1, "completeWork: Over completion is still only 100% complete")
-
- track = new Tracker(name, todo)
- track.completeWork(50)
- track.finish()
- t.is(track.completed(), 1, "finish: Explicitly finishing moves to 100%")
-})
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
deleted file mode 100644
index f97e1034ff9e07..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
+++ /dev/null
@@ -1,87 +0,0 @@
-"use strict"
-var test = require("tap").test
-var Tracker = require("../index.js").Tracker
-var TrackerGroup = require("../index.js").TrackerGroup
-
-var timeoutError = new Error("timeout")
-var testEvent = function (obj,event,next) {
- var timeout = setTimeout(function(){
- obj.removeListener(event, eventHandler)
- next(timeoutError)
- }, 10)
- var eventHandler = function () {
- var args = Array.prototype.slice.call(arguments)
- args.unshift(null)
- clearTimeout(timeout)
- next.apply(null, args)
- }
- obj.once(event, eventHandler)
-}
-
-test("TrackerGroup", function (t) {
- var name = "test"
-
- var track = new TrackerGroup(name)
- t.is(track.completed(), 0, "Nothing todo is 0 completion")
- testEvent(track, "change", afterFinishEmpty)
- track.finish()
- var a, b
- function afterFinishEmpty(er, onChangeName) {
- t.is(er, null, "finishEmpty: on change event fired")
- t.is(onChangeName, name, "finishEmpty: on change emits the correct name")
- t.is(track.completed(), 1, "finishEmpty: Finishing an empty group actually finishes it")
-
- track = new TrackerGroup(name)
- a = track.newItem("a", 10, 1)
- b = track.newItem("b", 10, 1)
- t.is(track.completed(), 0, "Initially empty")
- testEvent(track, "change", afterCompleteWork)
- a.completeWork(5)
- }
- function afterCompleteWork(er, onChangeName) {
- t.is(er, null, "on change event fired")
- t.is(onChangeName, "a", "on change emits the correct name")
- t.is(track.completed(), 0.25, "Complete half of one is a quarter overall")
- testEvent(track, "change", afterFinishAll)
- track.finish()
- }
- function afterFinishAll(er, onChangeName) {
- t.is(er, null, "finishAll: on change event fired")
- t.is(onChangeName, name, "finishAll: on change emits the correct name")
- t.is(track.completed(), 1, "Finishing everything ")
-
- track = new TrackerGroup(name)
- a = track.newItem("a", 10, 2)
- b = track.newItem("b", 10, 1)
- t.is(track.completed(), 0, "weighted: Initially empty")
- testEvent(track, "change", afterWeightedCompleteWork)
- a.completeWork(5)
- }
- function afterWeightedCompleteWork(er, onChangeName) {
- t.is(er, null, "weighted: on change event fired")
- t.is(onChangeName, "a", "weighted: on change emits the correct name")
- t.is(Math.round(track.completed()*100), 33, "weighted: Complete half of double weighted")
- testEvent(track, "change", afterWeightedFinishAll)
- track.finish()
- }
- function afterWeightedFinishAll(er, onChangeName) {
- t.is(er, null, "weightedFinishAll: on change event fired")
- t.is(onChangeName, name, "weightedFinishAll: on change emits the correct name")
- t.is(track.completed(), 1, "weightedFinishaAll: Finishing everything ")
-
- track = new TrackerGroup(name)
- a = track.newGroup("a", 10)
- b = track.newGroup("b", 10)
- var a1 = a.newItem("a.1",10)
- a1.completeWork(5)
- t.is(track.completed(), 0.25, "nested: Initially quarter done")
- testEvent(track, "change", afterNestedComplete)
- b.finish()
- }
- function afterNestedComplete(er, onChangeName) {
- t.is(er, null, "nestedComplete: on change event fired")
- t.is(onChangeName, "b", "nestedComplete: on change emits the correct name")
- t.is(track.completed(), 0.75, "nestedComplete: Finishing everything ")
- t.end()
- }
-})
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
deleted file mode 100644
index 72b6043097f477..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict"
-var test = require("tap").test
-var util = require("util")
-var stream = require("readable-stream")
-var TrackerStream = require("../index.js").TrackerStream
-
-var timeoutError = new Error("timeout")
-var testEvent = function (obj,event,next) {
- var timeout = setTimeout(function(){
- obj.removeListener(event, eventHandler)
- next(timeoutError)
- }, 10)
- var eventHandler = function () {
- var args = Array.prototype.slice.call(arguments)
- args.unshift(null)
- clearTimeout(timeout)
- next.apply(null, args)
- }
- obj.once(event, eventHandler)
-}
-
-var Sink = function () {
- stream.Writable.apply(this,arguments)
-}
-util.inherits(Sink, stream.Writable)
-Sink.prototype._write = function (data, encoding, cb) {
- cb()
-}
-
-test("TrackerStream", function (t) {
- t.plan(9)
-
- var name = "test"
- var track = new TrackerStream(name)
-
- t.is(track.completed(), 0, "Nothing todo is 0 completion")
-
- var todo = 10
- track = new TrackerStream(name, todo)
- t.is(track.completed(), 0, "Nothing done is 0 completion")
-
- track.pipe(new Sink())
-
- testEvent(track, "change", afterCompleteWork)
- track.write("0123456789")
- function afterCompleteWork(er, onChangeName) {
- t.is(er, null, "write: on change event fired")
- t.is(onChangeName, name, "write: on change emits the correct name")
- t.is(track.completed(), 1, "write: 100% completed")
-
- testEvent(track, "change", afterAddWork)
- track.addWork(10)
- }
- function afterAddWork(er, onChangeName) {
- t.is(er, null, "addWork: on change event fired")
- t.is(track.completed(), 0.5, "addWork: 50% completed")
-
- testEvent(track, "change", afterAllWork)
- track.write("ABCDEFGHIJKLMNOPQRST")
- }
- function afterAllWork(er) {
- t.is(er, null, "allWork: on change event fired")
- t.is(track.completed(), 1, "allWork: 100% completed")
- }
-})
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore
deleted file mode 100644
index df22a16c635a02..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore
+++ /dev/null
@@ -1,32 +0,0 @@
-# Logs
-logs
-*.log
-
-# Runtime data
-pids
-*.pid
-*.seed
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Compiled binary addons (http://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directory
-# Commenting this out is preferred by some people, see
-# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
-node_modules
-
-# Users Environment Variables
-.lock-wscript
-
-# Editor cruft
-*~
-.#*
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/README.md
deleted file mode 100644
index ca0a8cd773d6d2..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/README.md
+++ /dev/null
@@ -1,166 +0,0 @@
-gauge
-=====
-
-A nearly stateless terminal based horizontal guage / progress bar.
-
-```javascript
-var Gauge = require("gauge")
-
-var gauge = new Gauge()
-
-gauge.show("test", 0.20)
-
-gauge.pulse("this")
-
-gauge.hide()
-```
-
-![](example.png)
-
-
-### `var gauge = new Gauge([options], [ansiStream])`
-
-* **options** – *(optional)* An option object. (See [below] for details.)
-* **ansiStream** – *(optional)* A stream that's been blessed by the [ansi]
- module to include various commands for controlling the cursor in a terminal.
-
-[ansi]: https://www.npmjs.com/package/ansi
-[below]: #theme-objects
-
-Constructs a new gauge. Gauges are drawn on a single line, and are not drawn
-if the current terminal isn't a tty.
-
-If you resize your terminal in a way that can be detected then the gauge
-will be drawn at the new size. As a general rule, growing your terminal will
-be clean, but shrinking your terminal will result in cruft as we don't have
-enough information to know where what we wrote previously is now located.
-
-The **options** object can have the following properties, all of which are
-optional:
-
-* maxUpdateFrequency: defaults to 50 msec, the gauge will not be drawn more
- than once in this period of time. This applies to `show` and `pulse`
- calls, but if you `hide` and then `show` the gauge it will draw it
- regardless of time since last draw.
-* theme: defaults to Gauge.unicode` if the terminal supports
- unicode according to [has-unicode], otherwise it defaults to `Gauge.ascii`.
- Details on the [theme object](#theme-objects) are documented elsewhere.
-* template: see [documentation elsewhere](#template-objects) for
- defaults and details.
-
-[has-unicode]: https://www.npmjs.com/package/has-unicode
-
-If **ansiStream** isn't passed in, then one will be constructed from stderr
-with `ansi(process.stderr)`.
-
-### `gauge.show([name, [completed]])`
-
-* **name** – *(optional)* The name of the current thing contributing to progress. Defaults to the last value used, or "".
-* **completed** – *(optional)* The portion completed as a value between 0 and 1. Defaults to the last value used, or 0.
-
-If `process.stdout.isTTY` is false then this does nothing. If completed is 0
-and `gauge.pulse` has never been called, then similarly nothing will be printed.
-
-If `maxUpdateFrequency` msec haven't passed since the last call to `show` or
-`pulse` then similarly, nothing will be printed. (Actually, the update is
-deferred until `maxUpdateFrequency` msec have passed and if nothing else has
-happened, the gauge update will happen.)
-
-### `gauge.hide()`
-
-Removes the gauge from the terminal.
-
-### `gauge.pulse([name])`
-
-* **name** – *(optional)* The specific thing that triggered this pulse
-
-Spins the spinner in the gauge to show output. If **name** is included then
-it will be combined with the last name passed to `gauge.show` using the
-subsection property of the theme (typically a right facing arrow).
-
-### `gauge.disable()`
-
-Hides the gauge and ignores further calls to `show` or `pulse`.
-
-### `gauge.enable()`
-
-Shows the gauge and resumes updating when `show` or `pulse` is called.
-
-### `gauge.setTheme(theme)`
-
-Change the active theme, will be displayed with the next show or pulse
-
-### `gauge.setTemplate(template)`
-
-Change the active template, will be displayed with the next show or pulse
-
-### Theme Objects
-
-There are two theme objects available as a part of the module, `Gauge.unicode` and `Gauge.ascii`.
-Theme objects have the follow properties:
-
-| Property | Unicode | ASCII |
-| ---------- | ------- | ----- |
-| startgroup | ╢ | \| |
-| endgroup | ╟ | \| |
-| complete | █ | # |
-| incomplete | ░ | - |
-| spinner | ▀▐▄▌ | -\\\|/ |
-| subsection | → | -> |
-
-*startgroup*, *endgroup* and *subsection* can be as many characters as you want.
-
-*complete* and *incomplete* should be a single character width each.
-
-*spinner* is a list of characters to use in turn when displaying an activity
-spinner. The Gauge will spin as many characters as you give here.
-
-### Template Objects
-
-A template is an array of objects and strings that, after being evaluated,
-will be turned into the gauge line. The default template is:
-
-```javascript
-[
- {type: "name", separated: true, maxLength: 25, minLength: 25, align: "left"},
- {type: "spinner", separated: true},
- {type: "startgroup"},
- {type: "completionbar"},
- {type: "endgroup"}
-]
-```
-
-The various template elements can either be **plain strings**, in which case they will
-be be included verbatum in the output.
-
-If the template element is an object, it can have the following keys:
-
-* *type* can be:
- * `name` – The most recent name passed to `show`; if this is in response to a
- `pulse` then the name passed to `pulse` will be appended along with the
- subsection property from the theme.
- * `spinner` – If you've ever called `pulse` this will be one of the characters
- from the spinner property of the theme.
- * `startgroup` – The `startgroup` property from the theme.
- * `completionbar` – This progress bar itself
- * `endgroup` – The `endgroup` property from the theme.
-* *separated* – If true, the element will be separated with spaces from things on
- either side (and margins count as space, so it won't be indented), but only
- if its included.
-* *maxLength* – The maximum length for this element. If its value is longer it
- will be truncated.
-* *minLength* – The minimum length for this element. If its value is shorter it
- will be padded according to the *align* value.
-* *align* – (Default: left) Possible values "left", "right" and "center". Works
- as you'd expect from word processors.
-* *length* – Provides a single value for both *minLength* and *maxLength*. If both
- *length* and *minLength or *maxLength* are specifed then the latter take precedence.
-
-### Tracking Completion
-
-If you have more than one thing going on that you want to track completion
-of, you may find the related [are-we-there-yet] helpful. It's `change`
-event can be wired up to the `show` method to get a more traditional
-progress bar interface.
-
-[are-we-there-yet]: https://www.npmjs.com/package/are-we-there-yet
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.png b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.png
deleted file mode 100644
index 2667cac459e177..00000000000000
Binary files a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.png and /dev/null differ
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
deleted file mode 100644
index 89c8deeafbddea..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash.pad v3.2.0
-
-The [lodash](https://lodash.com/) method `_.pad` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.pad
-```
-
-In Node.js:
-```js
-var pad = require('lodash.pad');
-```
-
-See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/3.2.0-npm-packages/lodash.pad) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js
deleted file mode 100644
index 85a5a90b3b7d61..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
- * lodash 3.1.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0,
- MAX_SAFE_INTEGER = 9007199254740991,
- MAX_INTEGER = 1.7976931348623157e+308,
- NAN = 0 / 0;
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
-
-/** Used to match leading and trailing whitespace. */
-var reTrim = /^\s+|\s+$/g;
-
-/** Used to detect bad signed hexadecimal string values. */
-var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
-
-/** Used to detect binary string values. */
-var reIsBinary = /^0b[01]+$/i;
-
-/** Used to detect octal string values. */
-var reIsOctal = /^0o[0-7]+$/i;
-
-/** Built-in method references without a dependency on `global`. */
-var freeParseInt = parseInt;
-
-/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Built-in value references. */
-var _Symbol = global.Symbol;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeFloor = Math.floor;
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = _Symbol ? _Symbol.prototype : undefined,
- symbolToString = _Symbol ? symbolProto.toString : undefined;
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
-/**
- * Converts `value` to an integer.
- *
- * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {number} Returns the converted integer.
- * @example
- *
- * _.toInteger(3);
- * // => 3
- *
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
- *
- * _.toInteger(Infinity);
- * // => 1.7976931348623157e+308
- *
- * _.toInteger('3');
- * // => 3
- */
-function toInteger(value) {
- if (!value) {
- return value === 0 ? value : 0;
- }
- value = toNumber(value);
- if (value === INFINITY || value === -INFINITY) {
- var sign = (value < 0 ? -1 : 1);
- return sign * MAX_INTEGER;
- }
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 0;
-}
-
-/**
- * Converts `value` to a number.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {number} Returns the number.
- * @example
- *
- * _.toNumber(3);
- * // => 3
- *
- * _.toNumber(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toNumber(Infinity);
- * // => Infinity
- *
- * _.toNumber('3');
- * // => 3
- */
-function toNumber(value) {
- if (isObject(value)) {
- var other = isFunction(value.valueOf) ? value.valueOf() : value;
- value = isObject(other) ? (other + '') : other;
- }
- if (typeof value != 'string') {
- return value === 0 ? value : +value;
- }
- value = value.replace(reTrim, '');
- var isBinary = reIsBinary.test(value);
- return (isBinary || reIsOctal.test(value))
- ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
- : (reIsBadHex.test(value) ? NAN : +value);
-}
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return _Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
-/**
- * Repeats the given string `n` times.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to repeat.
- * @param {number} [n=0] The number of times to repeat the string.
- * @returns {string} Returns the repeated string.
- * @example
- *
- * _.repeat('*', 3);
- * // => '***'
- *
- * _.repeat('abc', 2);
- * // => 'abcabc'
- *
- * _.repeat('abc', 0);
- * // => ''
- */
-function repeat(string, n) {
- string = toString(string);
- n = toInteger(n);
-
- var result = '';
- if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
- return result;
- }
- // Leverage the exponentiation by squaring algorithm for a faster repeat.
- // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
- do {
- if (n % 2) {
- result += string;
- }
- n = nativeFloor(n / 2);
- string += string;
- } while (n);
-
- return result;
-}
-
-module.exports = repeat;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json
deleted file mode 100644
index e47ce40925c5fa..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "_args": [
- [
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
- ]
- ],
- "_from": "lodash.repeat@>=3.0.0 <4.0.0",
- "_id": "lodash.repeat@3.1.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/gauge/lodash.pad/lodash.repeat",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash.repeat",
- "raw": "lodash.repeat@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog/gauge/lodash.pad"
- ],
- "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.0.tgz",
- "_shasum": "a7bfe799b07c9a75dc010b65c61c1cfed3e18a96",
- "_shrinkwrap": null,
- "_spec": "lodash.repeat@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The lodash method `_.repeat` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "a7bfe799b07c9a75dc010b65c61c1cfed3e18a96",
- "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "repeat",
- "stdlib",
- "util"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "name": "lodash.repeat",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.1.0"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
deleted file mode 100644
index 6c81f2aa4a033b..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "_args": [
- [
- "lodash.pad@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge"
- ]
- ],
- "_from": "lodash.pad@>=3.0.0 <4.0.0",
- "_id": "lodash.pad@3.2.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/gauge/lodash.pad",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash.pad",
- "raw": "lodash.pad@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog/gauge"
- ],
- "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.2.0.tgz",
- "_shasum": "d1d882526da12087ef8c6089173ec081717698a2",
- "_shrinkwrap": null,
- "_spec": "lodash.pad@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {
- "lodash.repeat": "^3.0.0"
- },
- "description": "The lodash method `_.pad` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "d1d882526da12087ef8c6089173ec081717698a2",
- "tarball": "http://registry.npmjs.org/lodash.pad/-/lodash.pad-3.2.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "pad",
- "stdlib",
- "util"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "name": "lodash.pad",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.2.0"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md
deleted file mode 100644
index 641b4d6f007ad4..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash.padleft v3.1.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.padLeft` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.padleft
-```
-
-In Node.js/io.js:
-
-```js
-var padLeft = require('lodash.padleft');
-```
-
-See the [documentation](https://lodash.com/docs#padLeft) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.padleft) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js
deleted file mode 100644
index 2abb69a6c06558..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * lodash 3.1.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseToString = require('lodash._basetostring'),
- createPadding = require('lodash._createpadding');
-
-/**
- * Creates a function for `_.padLeft` or `_.padRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify padding from the right.
- * @returns {Function} Returns the new pad function.
- */
-function createPadDir(fromRight) {
- return function(string, length, chars) {
- string = baseToString(string);
- return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string);
- };
-}
-
-/**
- * Pads `string` on the left side if it is shorter than `length`. Padding
- * characters are truncated if they exceed `length`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to pad.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the padded string.
- * @example
- *
- * _.padLeft('abc', 6);
- * // => ' abc'
- *
- * _.padLeft('abc', 6, '_-');
- * // => '_-_abc'
- *
- * _.padLeft('abc', 3);
- * // => 'abc'
- */
-var padLeft = createPadDir();
-
-module.exports = padLeft;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/README.md
deleted file mode 100644
index f81145e6ebe765..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._basetostring v3.0.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseToString` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basetostring
-```
-
-In Node.js/io.js:
-
-```js
-var baseToString = require('lodash._basetostring');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._basetostring) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/index.js
deleted file mode 100644
index db8ecc9fdd0094..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * lodash 3.0.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/package.json
deleted file mode 100644
index f592f32e198f3e..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "lodash._basetostring",
- "version": "3.0.1",
- "description": "The modern build of lodash’s internal `baseToString` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._basetostring@3.0.1",
- "_shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "_from": "lodash._basetostring@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "tarball": "http://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/README.md
deleted file mode 100644
index f9c9411c70412e..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._createpadding v3.6.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createPadding` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._createpadding
-```
-
-In Node.js/io.js:
-
-```js
-var createPadding = require('lodash._createpadding');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash._createpadding) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/index.js
deleted file mode 100644
index 3541a8aae32935..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * lodash 3.6.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var repeat = require('lodash.repeat');
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeIsFinite = global.isFinite;
-
-/**
- * Creates the padding required for `string` based on the given `length`.
- * The `chars` string is truncated if the number of characters exceeds `length`.
- *
- * @private
- * @param {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the pad for `string`.
- */
-function createPadding(string, length, chars) {
- var strLength = string.length;
- length = +length;
-
- if (strLength >= length || !nativeIsFinite(length)) {
- return '';
- }
- var padLength = length - strLength;
- chars = chars == null ? ' ' : (chars + '');
- return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength);
-}
-
-module.exports = createPadding;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
deleted file mode 100644
index 85a5a90b3b7d61..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
- * lodash 3.1.0 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used as references for various `Number` constants. */
-var INFINITY = 1 / 0,
- MAX_SAFE_INTEGER = 9007199254740991,
- MAX_INTEGER = 1.7976931348623157e+308,
- NAN = 0 / 0;
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
-
-/** Used to match leading and trailing whitespace. */
-var reTrim = /^\s+|\s+$/g;
-
-/** Used to detect bad signed hexadecimal string values. */
-var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
-
-/** Used to detect binary string values. */
-var reIsBinary = /^0b[01]+$/i;
-
-/** Used to detect octal string values. */
-var reIsOctal = /^0o[0-7]+$/i;
-
-/** Built-in method references without a dependency on `global`. */
-var freeParseInt = parseInt;
-
-/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Built-in value references. */
-var _Symbol = global.Symbol;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeFloor = Math.floor;
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = _Symbol ? _Symbol.prototype : undefined,
- symbolToString = _Symbol ? symbolProto.toString : undefined;
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
-/**
- * Converts `value` to an integer.
- *
- * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {number} Returns the converted integer.
- * @example
- *
- * _.toInteger(3);
- * // => 3
- *
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
- *
- * _.toInteger(Infinity);
- * // => 1.7976931348623157e+308
- *
- * _.toInteger('3');
- * // => 3
- */
-function toInteger(value) {
- if (!value) {
- return value === 0 ? value : 0;
- }
- value = toNumber(value);
- if (value === INFINITY || value === -INFINITY) {
- var sign = (value < 0 ? -1 : 1);
- return sign * MAX_INTEGER;
- }
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 0;
-}
-
-/**
- * Converts `value` to a number.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {number} Returns the number.
- * @example
- *
- * _.toNumber(3);
- * // => 3
- *
- * _.toNumber(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toNumber(Infinity);
- * // => Infinity
- *
- * _.toNumber('3');
- * // => 3
- */
-function toNumber(value) {
- if (isObject(value)) {
- var other = isFunction(value.valueOf) ? value.valueOf() : value;
- value = isObject(other) ? (other + '') : other;
- }
- if (typeof value != 'string') {
- return value === 0 ? value : +value;
- }
- value = value.replace(reTrim, '');
- var isBinary = reIsBinary.test(value);
- return (isBinary || reIsOctal.test(value))
- ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
- : (reIsBadHex.test(value) ? NAN : +value);
-}
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return _Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
-/**
- * Repeats the given string `n` times.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to repeat.
- * @param {number} [n=0] The number of times to repeat the string.
- * @returns {string} Returns the repeated string.
- * @example
- *
- * _.repeat('*', 3);
- * // => '***'
- *
- * _.repeat('abc', 2);
- * // => 'abcabc'
- *
- * _.repeat('abc', 0);
- * // => ''
- */
-function repeat(string, n) {
- string = toString(string);
- n = toInteger(n);
-
- var result = '';
- if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
- return result;
- }
- // Leverage the exponentiation by squaring algorithm for a faster repeat.
- // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
- do {
- if (n % 2) {
- result += string;
- }
- n = nativeFloor(n / 2);
- string += string;
- } while (n);
-
- return result;
-}
-
-module.exports = repeat;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
deleted file mode 100644
index fce6e4d3acd8f8..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "_args": [
- [
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
- ],
- [
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding"
- ]
- ],
- "_from": "lodash.repeat@>=3.0.0 <4.0.0",
- "_id": "lodash.repeat@3.1.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/gauge/lodash.padleft/lodash._createpadding/lodash.repeat",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash.repeat",
- "raw": "lodash.repeat@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog/gauge/lodash.padleft/lodash._createpadding"
- ],
- "_shrinkwrap": null,
- "_spec": "lodash.repeat@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The lodash method `_.repeat` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "a7bfe799b07c9a75dc010b65c61c1cfed3e18a96",
- "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "repeat",
- "stdlib",
- "util"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "name": "lodash.repeat",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.1.0"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/package.json
deleted file mode 100644
index 376b174bee4ab4..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "lodash._createpadding",
- "version": "3.6.1",
- "description": "The modern build of lodash’s internal `createPadding` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash.repeat": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._createpadding@3.6.1",
- "_shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "_from": "lodash._createpadding@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "tarball": "http://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json
deleted file mode 100644
index 55b0c256f9d1bc..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "name": "lodash.padleft",
- "version": "3.1.1",
- "description": "The modern build of lodash’s `_.padLeft` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "stdlib",
- "util"
- ],
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash._basetostring": "^3.0.0",
- "lodash._createpadding": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash.padleft@3.1.1",
- "_shasum": "150151f1e0245edba15d50af2d71f1d5cff46530",
- "_from": "lodash.padleft@>=3.0.0 <4.0.0",
- "_npmVersion": "2.9.0",
- "_nodeVersion": "0.12.2",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "150151f1e0245edba15d50af2d71f1d5cff46530",
- "tarball": "http://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md
deleted file mode 100644
index bcd6e5742fe126..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash.padright v3.1.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.padRight` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.padright
-```
-
-In Node.js/io.js:
-
-```js
-var padRight = require('lodash.padright');
-```
-
-See the [documentation](https://lodash.com/docs#padRight) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.padright) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js
deleted file mode 100644
index 6de81c4bbedc1c..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * lodash 3.1.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseToString = require('lodash._basetostring'),
- createPadding = require('lodash._createpadding');
-
-/**
- * Creates a function for `_.padLeft` or `_.padRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify padding from the right.
- * @returns {Function} Returns the new pad function.
- */
-function createPadDir(fromRight) {
- return function(string, length, chars) {
- string = baseToString(string);
- return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string);
- };
-}
-
-/**
- * Pads `string` on the right side if it is shorter than `length`. Padding
- * characters are truncated if they exceed `length`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to pad.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the padded string.
- * @example
- *
- * _.padRight('abc', 6);
- * // => 'abc '
- *
- * _.padRight('abc', 6, '_-');
- * // => 'abc_-_'
- *
- * _.padRight('abc', 3);
- * // => 'abc'
- */
-var padRight = createPadDir(true);
-
-module.exports = padRight;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/README.md
deleted file mode 100644
index f81145e6ebe765..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._basetostring v3.0.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseToString` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basetostring
-```
-
-In Node.js/io.js:
-
-```js
-var baseToString = require('lodash._basetostring');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._basetostring) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/index.js
deleted file mode 100644
index db8ecc9fdd0094..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * lodash 3.0.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/package.json
deleted file mode 100644
index f592f32e198f3e..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "lodash._basetostring",
- "version": "3.0.1",
- "description": "The modern build of lodash’s internal `baseToString` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._basetostring@3.0.1",
- "_shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "_from": "lodash._basetostring@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "tarball": "http://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/README.md
deleted file mode 100644
index f9c9411c70412e..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._createpadding v3.6.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createPadding` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._createpadding
-```
-
-In Node.js/io.js:
-
-```js
-var createPadding = require('lodash._createpadding');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash._createpadding) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/index.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/index.js
deleted file mode 100644
index 3541a8aae32935..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * lodash 3.6.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var repeat = require('lodash.repeat');
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeIsFinite = global.isFinite;
-
-/**
- * Creates the padding required for `string` based on the given `length`.
- * The `chars` string is truncated if the number of characters exceeds `length`.
- *
- * @private
- * @param {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the pad for `string`.
- */
-function createPadding(string, length, chars) {
- var strLength = string.length;
- length = +length;
-
- if (strLength >= length || !nativeIsFinite(length)) {
- return '';
- }
- var padLength = length - strLength;
- chars = chars == null ? ' ' : (chars + '');
- return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength);
-}
-
-module.exports = createPadding;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
deleted file mode 100644
index a911d99092d3dc..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash.repeat v3.1.0
-
-The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.repeat
-```
-
-In Node.js:
-```js
-var repeat = require('lodash.repeat');
-```
-
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
deleted file mode 100644
index b4df1e69392c8d..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "_args": [
- [
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
- ],
- [
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding"
- ]
- ],
- "_from": "lodash.repeat@>=3.0.0 <4.0.0",
- "_id": "lodash.repeat@3.1.0",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/gauge/lodash.padright/lodash._createpadding/lodash.repeat",
- "_nodeVersion": "5.4.0",
- "_npmUser": {
- "email": "john.david.dalton@gmail.com",
- "name": "jdalton"
- },
- "_npmVersion": "2.14.15",
- "_phantomChildren": {},
- "_requested": {
- "name": "lodash.repeat",
- "raw": "lodash.repeat@^3.0.0",
- "rawSpec": "^3.0.0",
- "scope": null,
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog/gauge/lodash.padright/lodash._createpadding"
- ],
- "_shrinkwrap": null,
- "_spec": "lodash.repeat@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding",
- "author": {
- "email": "john.david.dalton@gmail.com",
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "description": "The lodash method `_.repeat` exported as a module.",
- "devDependencies": {},
- "directories": {},
- "dist": {
- "shasum": "a7bfe799b07c9a75dc010b65c61c1cfed3e18a96",
- "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.0.tgz"
- },
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "repeat",
- "stdlib",
- "util"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "name": "lodash.repeat",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.1.0"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/package.json
deleted file mode 100644
index 376b174bee4ab4..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "lodash._createpadding",
- "version": "3.6.1",
- "description": "The modern build of lodash’s internal `createPadding` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash.repeat": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._createpadding@3.6.1",
- "_shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "_from": "lodash._createpadding@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "tarball": "http://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json
deleted file mode 100644
index 2a40f94bfc3bfd..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "name": "lodash.padright",
- "version": "3.1.1",
- "description": "The modern build of lodash’s `_.padRight` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "stdlib",
- "util"
- ],
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash._basetostring": "^3.0.0",
- "lodash._createpadding": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash.padright@3.1.1",
- "_shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0",
- "_from": "lodash.padright@>=3.0.0 <4.0.0",
- "_npmVersion": "2.9.0",
- "_nodeVersion": "0.12.2",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0",
- "tarball": "http://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json
deleted file mode 100644
index fe0af0817f5e06..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "_args": [
- [
- "gauge@~1.2.0",
- "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog"
- ]
- ],
- "_from": "gauge@>=1.2.0 <1.3.0",
- "_id": "gauge@1.2.4",
- "_inCache": true,
- "_installable": true,
- "_location": "/node-gyp/npmlog/gauge",
- "_nodeVersion": "4.2.2",
- "_npmUser": {
- "email": "me@re-becca.org",
- "name": "iarna"
- },
- "_npmVersion": "3.5.4",
- "_phantomChildren": {},
- "_requested": {
- "name": "gauge",
- "raw": "gauge@~1.2.0",
- "rawSpec": "~1.2.0",
- "scope": null,
- "spec": ">=1.2.0 <1.3.0",
- "type": "range"
- },
- "_requiredBy": [
- "/node-gyp/npmlog"
- ],
- "_shasum": "b1d519758b3c77c7b45021d0ca4841548818bc41",
- "_shrinkwrap": null,
- "_spec": "gauge@~1.2.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog",
- "author": {
- "email": "me@re-becca.org",
- "name": "Rebecca Turner"
- },
- "bugs": {
- "url": "https://github.com/iarna/gauge/issues"
- },
- "dependencies": {
- "ansi": "^0.3.0",
- "has-unicode": "^2.0.0",
- "lodash.pad": "^3.0.0",
- "lodash.padleft": "^3.0.0",
- "lodash.padright": "^3.0.0"
- },
- "description": "A terminal based horizontal guage",
- "devDependencies": {
- "tap": "^0.4.13"
- },
- "directories": {},
- "dist": {
- "shasum": "b1d519758b3c77c7b45021d0ca4841548818bc41",
- "tarball": "http://registry.npmjs.org/gauge/-/gauge-1.2.4.tgz"
- },
- "gitHead": "a6af415c7e143fd8dd058c97f5f3ed3dbad872f3",
- "homepage": "https://github.com/iarna/gauge",
- "keywords": [
- "gauge",
- "progress",
- "progressbar"
- ],
- "license": "ISC",
- "main": "progress-bar.js",
- "maintainers": [
- {
- "name": "iarna",
- "email": "me@re-becca.org"
- }
- ],
- "name": "gauge",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/iarna/gauge.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.2.4"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js
deleted file mode 100644
index 16bdadc5103eee..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js
+++ /dev/null
@@ -1,226 +0,0 @@
-"use strict"
-var hasUnicode = require("has-unicode")
-var ansi = require("ansi")
-var align = {
- center: require("lodash.pad"),
- left: require("lodash.padright"),
- right: require("lodash.padleft")
-}
-var defaultStream = process.stderr
-function isTTY() {
- return process.stderr.isTTY
-}
-function getWritableTTYColumns() {
- // Writing to the final column wraps the line
- // We have to use stdout here, because Node's magic SIGWINCH handler only
- // updates process.stdout, not process.stderr
- return process.stdout.columns - 1
-}
-
-var ProgressBar = module.exports = function (options, cursor) {
- if (! options) options = {}
- if (! cursor && options.write) {
- cursor = options
- options = {}
- }
- if (! cursor) {
- cursor = ansi(defaultStream)
- }
- this.cursor = cursor
- this.showing = false
- this.theme = options.theme || (hasUnicode() ? ProgressBar.unicode : ProgressBar.ascii)
- this.template = options.template || [
- {type: "name", separated: true, length: 25},
- {type: "spinner", separated: true},
- {type: "startgroup"},
- {type: "completionbar"},
- {type: "endgroup"}
- ]
- this.updatefreq = options.maxUpdateFrequency || 50
- this.lastName = ""
- this.lastCompleted = 0
- this.spun = 0
- this.last = new Date(0)
-
- var self = this
- this._handleSizeChange = function () {
- if (!self.showing) return
- self.hide()
- self.show()
- }
-}
-ProgressBar.prototype = {}
-
-ProgressBar.unicode = {
- startgroup: "╢",
- endgroup: "╟",
- complete: "█",
- incomplete: "░",
- spinner: "▀▐▄▌",
- subsection: "→"
-}
-
-ProgressBar.ascii = {
- startgroup: "|",
- endgroup: "|",
- complete: "#",
- incomplete: "-",
- spinner: "-\\|/",
- subsection: "->"
-}
-
-ProgressBar.prototype.setTheme = function(theme) {
- this.theme = theme
-}
-
-ProgressBar.prototype.setTemplate = function(template) {
- this.template = template
-}
-
-ProgressBar.prototype._enableResizeEvents = function() {
- process.stdout.on('resize', this._handleSizeChange)
-}
-
-ProgressBar.prototype._disableResizeEvents = function() {
- process.stdout.removeListener('resize', this._handleSizeChange)
-}
-
-ProgressBar.prototype.disable = function() {
- this.hide()
- this.disabled = true
-}
-
-ProgressBar.prototype.enable = function() {
- this.disabled = false
- this.show()
-}
-
-ProgressBar.prototype.hide = function() {
- if (!isTTY()) return
- if (this.disabled) return
- this.cursor.show()
- if (this.showing) this.cursor.up(1)
- this.cursor.horizontalAbsolute(0).eraseLine()
- this.showing = false
-}
-
-var repeat = function (str, count) {
- var out = ""
- for (var ii=0; ii P | |----|\n' ],
- [ 'show' ] ])
-})
-
-test("window resizing", function (t) {
- t.plan(16)
- process.stderr.isTTY = true
- process.stdout.columns = 32
- bar.show("NAME", 0.1)
- cursor = []
- bar.last = new Date(0)
- bar.pulse()
- isOutput(t, "32 columns",
- [ [ 'up', 1 ],
- [ 'hide' ],
- [ 'horizontalAbsolute', 0 ],
- [ 'write', 'NAME / |##------------------|\n' ],
- [ 'show' ] ])
-
- process.stdout.columns = 16
- bar.show("NAME", 0.5)
- cursor = []
- bar.last = new Date(0)
- bar.pulse()
- isOutput(t, "16 columns",
- [ [ 'up', 1 ],
- [ 'hide' ],
- [ 'horizontalAbsolute', 0 ],
- [ 'write', 'NAME - |##--|\n' ],
- [ 'show' ] ]);
-});
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json
deleted file mode 100644
index 5be8cf8e5bfb70..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "name": "npmlog",
- "description": "logger for npm",
- "version": "1.2.1",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/npmlog.git"
- },
- "main": "log.js",
- "scripts": {
- "test": "tap test/*.js"
- },
- "dependencies": {
- "ansi": "~0.3.0",
- "are-we-there-yet": "~1.0.0",
- "gauge": "~1.2.0"
- },
- "devDependencies": {
- "tap": ""
- },
- "license": "ISC",
- "gitHead": "4e1a73a567036064ded425a7d48c863d53550b4f",
- "bugs": {
- "url": "https://github.com/isaacs/npmlog/issues"
- },
- "homepage": "https://github.com/isaacs/npmlog#readme",
- "_id": "npmlog@1.2.1",
- "_shasum": "28e7be619609b53f7ad1dd300a10d64d716268b6",
- "_from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0",
- "_npmVersion": "2.10.0",
- "_nodeVersion": "2.0.1",
- "_npmUser": {
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
- },
- "dist": {
- "shasum": "28e7be619609b53f7ad1dd300a10d64d716268b6",
- "tarball": "http://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz"
- },
- "maintainers": [
- {
- "name": "isaacs",
- "email": "i@izs.me"
- },
- {
- "name": "iarna",
- "email": "me@re-becca.org"
- }
- ],
- "directories": {},
- "_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/test/basic.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/test/basic.js
deleted file mode 100644
index 1afcabd1c6bd8d..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/test/basic.js
+++ /dev/null
@@ -1,228 +0,0 @@
-var tap = require('tap')
-var log = require('../')
-
-var result = []
-var logEvents = []
-var logInfoEvents = []
-var logPrefixEvents = []
-
-var util = require('util')
-
-var resultExpect =
-[ '\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[7msill\u001b[0m \u001b[0m\u001b[35msilly prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[34m\u001b[40mverb\u001b[0m \u001b[0m\u001b[35mverbose prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32minfo\u001b[0m \u001b[0m\u001b[35minfo prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32m\u001b[40mhttp\u001b[0m \u001b[0m\u001b[35mhttp prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[30m\u001b[43mWARN\u001b[0m \u001b[0m\u001b[35mwarn prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35merror prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32minfo\u001b[0m \u001b[0m\u001b[35minfo prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32m\u001b[40mhttp\u001b[0m \u001b[0m\u001b[35mhttp prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[30m\u001b[43mWARN\u001b[0m \u001b[0m\u001b[35mwarn prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35merror prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m This is a longer\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m message, with some details\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m and maybe a stack.\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m \n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u0007noise\u001b[0m\u001b[35m\u001b[0m LOUD NOISES\n',
- '\u001b[0m' ]
-
-var logPrefixEventsExpect =
-[ { id: 2,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 9,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 16,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] } ]
-
-// should be the same.
-var logInfoEventsExpect = logPrefixEventsExpect
-
-var logEventsExpect =
-[ { id: 0,
- level: 'silly',
- prefix: 'silly prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 1,
- level: 'verbose',
- prefix: 'verbose prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 2,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 3,
- level: 'http',
- prefix: 'http prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 4,
- level: 'warn',
- prefix: 'warn prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 5,
- level: 'error',
- prefix: 'error prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 6,
- level: 'silent',
- prefix: 'silent prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 7,
- level: 'silly',
- prefix: 'silly prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 8,
- level: 'verbose',
- prefix: 'verbose prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 9,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 10,
- level: 'http',
- prefix: 'http prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 11,
- level: 'warn',
- prefix: 'warn prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 12,
- level: 'error',
- prefix: 'error prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 13,
- level: 'silent',
- prefix: 'silent prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 14,
- level: 'silly',
- prefix: 'silly prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 15,
- level: 'verbose',
- prefix: 'verbose prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 16,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 17,
- level: 'http',
- prefix: 'http prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 18,
- level: 'warn',
- prefix: 'warn prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 19,
- level: 'error',
- prefix: 'error prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 20,
- level: 'silent',
- prefix: 'silent prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 21,
- level: 'error',
- prefix: '404',
- message: 'This is a longer\nmessage, with some details\nand maybe a stack.\n',
- messageRaw: [ 'This is a longer\nmessage, with some details\nand maybe a stack.\n' ] },
- { id: 22,
- level: 'noise',
- prefix: false,
- message: 'LOUD NOISES',
- messageRaw: [ 'LOUD NOISES' ] } ]
-
-var Stream = require('stream').Stream
-var s = new Stream()
-s.write = function (m) {
- result.push(m)
-}
-
-s.writable = true
-s.isTTY = true
-s.end = function () {}
-
-log.stream = s
-
-log.heading = 'npm'
-
-
-tap.test('basic', function (t) {
- log.on('log', logEvents.push.bind(logEvents))
- log.on('log.info', logInfoEvents.push.bind(logInfoEvents))
- log.on('info prefix', logPrefixEvents.push.bind(logPrefixEvents))
-
- console.error('log.level=silly')
- log.level = 'silly'
- log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
- log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
- log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
- log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
- log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
- log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
- console.error('log.level=silent')
- log.level = 'silent'
- log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
- log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
- log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
- log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
- log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
- log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
- console.error('log.level=info')
- log.level = 'info'
- log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
- log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
- log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
- log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
- log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
- log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('404', 'This is a longer\n'+
- 'message, with some details\n'+
- 'and maybe a stack.\n')
- log.addLevel('noise', 10000, {beep: true})
- log.noise(false, 'LOUD NOISES')
-
- t.deepEqual(result.join('').trim(), resultExpect.join('').trim(), 'result')
- t.deepEqual(log.record, logEventsExpect, 'record')
- t.deepEqual(logEvents, logEventsExpect, 'logEvents')
- t.deepEqual(logInfoEvents, logInfoEventsExpect, 'logInfoEvents')
- t.deepEqual(logPrefixEvents, logPrefixEventsExpect, 'logPrefixEvents')
-
- t.end()
-})
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/test/progress.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/test/progress.js
deleted file mode 100644
index 14dfb32740fb34..00000000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/test/progress.js
+++ /dev/null
@@ -1,114 +0,0 @@
-'use strict'
-
-var test = require('tap').test
-var log = require('../log.js')
-
-var actions = []
-log.gauge = {
- enable: function () {
- actions.push(['enable'])
- },
- disable: function () {
- actions.push(['disable'])
- },
- hide: function () {
- actions.push(['hide'])
- },
- show: function (name, completed) {
- actions.push(['show', name, completed])
- },
- pulse: function (name) {
- actions.push(['pulse', name])
- }
-}
-
-function didActions(t, msg, output) {
- var tests = []
- for (var ii = 0; ii < output.length; ++ ii) {
- for (var jj = 0; jj < output[ii].length; ++ jj) {
- tests.push({cmd: ii, arg: jj})
- }
- }
- t.is(actions.length, output.length, msg)
- tests.forEach(function (test) {
- t.is(actions[test.cmd] ? actions[test.cmd][test.arg] : null,
- output[test.cmd][test.arg],
- msg + ': ' + output[test.cmd] + (test.arg ? ' arg #'+test.arg : ''))
- })
- actions = []
-}
-
-
-test('enableProgress', function (t) {
- t.plan(6)
- log.enableProgress()
- didActions(t, 'enableProgress', [ [ 'enable' ], [ 'show', undefined, 0 ] ])
- log.enableProgress()
- didActions(t, 'enableProgress again', [])
-})
-
-test('disableProgress', function (t) {
- t.plan(4)
- log.disableProgress()
- didActions(t, 'disableProgress', [ [ 'hide' ], [ 'disable' ] ])
- log.disableProgress()
- didActions(t, 'disableProgress again', [])
-})
-
-test('showProgress', function (t) {
- t.plan(5)
- log.showProgress('foo')
- didActions(t, 'showProgress disabled', [])
- log.enableProgress()
- actions = []
- log.showProgress('foo')
- didActions(t, 'showProgress', [ [ 'show', 'foo', 0 ] ])
-})
-
-test('clearProgress', function (t) {
- t.plan(3)
- log.clearProgress()
- didActions(t, 'clearProgress', [ [ 'hide' ] ])
- log.disableProgress()
- actions = []
- log.clearProgress()
- didActions(t, 'clearProgress disabled', [ ])
-})
-
-test("newItem", function (t) {
- t.plan(12)
- log.enableProgress()
- actions = []
- var a = log.newItem("test", 10)
- didActions(t, "newItem", [ [ 'show', undefined, 0 ] ])
- a.completeWork(5)
- didActions(t, "newItem:completeWork", [ [ 'show', 'test', 0.5 ] ])
- a.finish()
- didActions(t, "newItem:finish", [ [ 'show', 'test', 1 ] ])
-})
-
-// test that log objects proxy through. And test that completion status filters up
-test("newGroup", function (t) {
- t.plan(23)
- var a = log.newGroup("newGroup")
- didActions(t, "newGroup", [ [ 'show', undefined, 0.5 ] ])
- a.warn("test", "this is a test")
- didActions(t, "newGroup:warn", [ [ 'pulse', 'test' ], [ 'hide' ], [ 'show', undefined, 0.5 ] ])
- var b = a.newItem("newGroup2", 10)
- didActions(t, "newGroup:newItem", [ [ 'show', 'newGroup', 0.5 ] ])
- b.completeWork(5)
- didActions(t, "newGroup:completeWork", [ [ 'show', 'newGroup2', 0.75 ] ])
- a.finish()
- didActions(t, "newGroup:finish", [ [ 'show', 'newGroup', 1 ] ])
-})
-
-test("newStream", function (t) {
- t.plan(13)
- var a = log.newStream("newStream", 10)
- didActions(t, "newStream", [ [ 'show', undefined, 0.6666666666666666 ] ])
- a.write("abcde")
- didActions(t, "newStream", [ [ 'show', 'newStream', 0.8333333333333333 ] ])
- a.write("fghij")
- didActions(t, "newStream", [ [ 'show', 'newStream', 1 ] ])
- t.is(log.tracker.completed(), 1, "Overall completion")
-})
diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
index f92c3d56d7366d..bbbc22ce91b18a 100644
--- a/deps/npm/node_modules/node-gyp/package.json
+++ b/deps/npm/node_modules/node-gyp/package.json
@@ -1,48 +1,46 @@
{
"_args": [
[
- "node-gyp@~3.2.1",
- "/Users/ogd/Documents/projects/npm/npm"
+ "node-gyp@3.3.1",
+ "/Users/rebecca/code/npm"
]
],
- "_from": "node-gyp@>=3.2.1 <3.3.0",
- "_id": "node-gyp@3.2.1",
+ "_from": "node-gyp@3.3.1",
+ "_id": "node-gyp@3.3.1",
"_inCache": true,
"_installable": true,
"_location": "/node-gyp",
"_nodeVersion": "6.0.0-pre",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/node-gyp-3.3.1.tgz_1457115144174_0.4018901875242591"
+ },
"_npmUser": {
"email": "info@bnoordhuis.nl",
"name": "bnoordhuis"
},
"_npmVersion": "3.3.12",
"_phantomChildren": {
- "brace-expansion": "1.1.2",
- "core-util-is": "1.0.2",
- "debug": "2.2.0",
- "has-unicode": "1.0.1",
"inflight": "1.0.4",
"inherits": "2.0.1",
- "isarray": "0.0.1",
- "once": "1.3.2",
- "string_decoder": "0.10.31"
+ "once": "1.3.3"
},
"_requested": {
"name": "node-gyp",
- "raw": "node-gyp@~3.2.1",
- "rawSpec": "~3.2.1",
+ "raw": "node-gyp@3.3.1",
+ "rawSpec": "3.3.1",
"scope": null,
- "spec": ">=3.2.1 <3.3.0",
- "type": "range"
+ "spec": "3.3.1",
+ "type": "version"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.2.1.tgz",
- "_shasum": "f5dd569970a508464cc3c15d7e9e8d2de8638dd5",
+ "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz",
+ "_shasum": "80f7b6d7c2f9c0495ba42c518a670c99bdf6e4a0",
"_shrinkwrap": null,
- "_spec": "node-gyp@~3.2.1",
- "_where": "/Users/ogd/Documents/projects/npm/npm",
+ "_spec": "node-gyp@3.3.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"email": "nathan@tootallnate.net",
"name": "Nathan Rajlich",
@@ -61,7 +59,7 @@
"minimatch": "1",
"mkdirp": "^0.5.0",
"nopt": "2 || 3",
- "npmlog": "0 || 1",
+ "npmlog": "0 || 1 || 2",
"osenv": "0",
"path-array": "^1.0.0",
"request": "2",
@@ -76,50 +74,50 @@
},
"directories": {},
"dist": {
- "shasum": "f5dd569970a508464cc3c15d7e9e8d2de8638dd5",
- "tarball": "http://registry.npmjs.org/node-gyp/-/node-gyp-3.2.1.tgz"
+ "shasum": "80f7b6d7c2f9c0495ba42c518a670c99bdf6e4a0",
+ "tarball": "http://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz"
},
"engines": {
"node": ">= 0.8.0"
},
- "gitHead": "89692c9187e10df944b0bf587ed44381b004a08c",
+ "gitHead": "1dcf356ca7b658789447108b29a985c00ffcf0f5",
"homepage": "https://github.com/nodejs/node-gyp#readme",
"installVersion": 9,
"keywords": [
+ "native",
"addon",
- "bindings",
+ "module",
"c",
"c++",
- "gyp",
- "module",
- "native"
+ "bindings",
+ "gyp"
],
"license": "MIT",
"main": "./lib/node-gyp.js",
"maintainers": [
{
- "name": "TooTallNate",
- "email": "nathan@tootallnate.net"
+ "email": "nathan@tootallnate.net",
+ "name": "TooTallNate"
},
{
- "name": "bnoordhuis",
- "email": "info@bnoordhuis.nl"
+ "email": "info@bnoordhuis.nl",
+ "name": "bnoordhuis"
},
{
- "name": "fishrock123",
- "email": "fishrock123@rocketmail.com"
+ "email": "fishrock123@rocketmail.com",
+ "name": "fishrock123"
},
{
- "name": "isaacs",
- "email": "i@izs.me"
+ "email": "i@izs.me",
+ "name": "isaacs"
},
{
- "name": "rvagg",
- "email": "rod@vagg.org"
+ "email": "rod@vagg.org",
+ "name": "rvagg"
},
{
- "name": "tootallnate",
- "email": "nathan@tootallnate.net"
+ "email": "nathan@tootallnate.net",
+ "name": "tootallnate"
}
],
"name": "node-gyp",
@@ -133,5 +131,5 @@
"scripts": {
"test": "tape test/test-*"
},
- "version": "3.2.1"
+ "version": "3.3.1"
}
diff --git a/deps/npm/node_modules/node-gyp/test/docker.sh b/deps/npm/node_modules/node-gyp/test/docker.sh
index b64b79a3769186..ac21aa8d75c989 100755
--- a/deps/npm/node_modules/node-gyp/test/docker.sh
+++ b/deps/npm/node_modules/node-gyp/test/docker.sh
@@ -2,9 +2,11 @@
#set -e
-test_node_versions="0.8.28 0.10.40 0.12.7"
+test_node_versions="0.8.28 0.10.40 0.12.7 4.3.0 5.6.0"
test_iojs_versions="1.8.4 2.4.0 3.3.0"
+myuid=$(id -u)
+mygid=$(id -g)
__dirname="$(CDPATH= cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
dot_node_gyp=${__dirname}/.node-gyp/
@@ -41,6 +43,7 @@ run_tests() {
/bin/su -s /bin/bash node-gyp -c 'cd && ${run_cmd}'"
rm -rf $dot_node_gyp
+ mkdir $dot_node_gyp
docker run \
--rm -i \
@@ -52,10 +55,10 @@ run_tests() {
# A base image with build tools and a user account
setup_container "node-gyp-test/base" "ubuntu:14.04" "
+ adduser --gecos node-gyp --home /node-gyp/ --disabled-login node-gyp --uid $myuid &&
+ echo "node-gyp:node-gyp" | chpasswd &&
apt-get update &&
- apt-get install -y build-essential python git rsync curl &&
- adduser --gecos node-gyp --home /node-gyp/ --disabled-login node-gyp &&
- echo "node-gyp:node-gyp" | chpasswd
+ apt-get install -y build-essential python git rsync curl
"
# An image on top of the base containing clones of repos we want to use for testing
@@ -111,7 +114,9 @@ test_download_node_version() {
test_download_node_version "0.12.7" "0.10.30/src" "0.10.30"
test_download_node_version "3.3.0" "iojs-1.8.4/src" "1.8.4"
# should download the headers file
-test_download_node_version "3.3.0" "iojs-3.2.0/include/node" "3.2.0"
+test_download_node_version "3.3.0" "iojs-3.3.0/include/node" "3.3.0"
+test_download_node_version "4.3.0" "4.3.0/include/node" "4.3.0"
+test_download_node_version "5.6.0" "5.6.0/include/node" "5.6.0"
# TODO: test --dist-url by starting up a localhost server and serving up tarballs
@@ -126,6 +131,7 @@ run_tests "3.3.0" "
nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\"
"
+# REMOVE after next semver-major
run_tests "3.3.0" "
(node /node-gyp-src/test/simple-proxy.js 8080 /doobar/ https://iojs.org/dist/ &) &&
cd node-buffertools &&
@@ -133,6 +139,7 @@ run_tests "3.3.0" "
nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\"
"
+# REMOVE after next semver-major
run_tests "0.12.7" "
(node /node-gyp-src/test/simple-proxy.js 8080 /boombar/ https://nodejs.org/dist/ &) &&
cd node-buffertools &&
@@ -140,4 +147,18 @@ run_tests "0.12.7" "
nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\"
"
+run_tests "3.3.0" "
+ (node /node-gyp-src/test/simple-proxy.js 8080 /doobar/ https://iojs.org/dist/ &) &&
+ cd node-buffertools &&
+ IOJS_ORG_MIRROR=http://localhost:8080/doobar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild &&
+ nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\"
+"
+
+run_tests "0.12.7" "
+ (node /node-gyp-src/test/simple-proxy.js 8080 /boombar/ https://nodejs.org/dist/ &) &&
+ cd node-buffertools &&
+ NODEJS_ORG_MIRROR=http://localhost:8080/boombar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild &&
+ nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\"
+"
+
rm -rf $dot_node_gyp
diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt b/deps/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt
new file mode 100644
index 00000000000000..fb1dea98a78c84
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt
@@ -0,0 +1,40 @@
+-----BEGIN CERTIFICATE-----
+MIIDJjCCAg4CAhnOMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
+VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
+TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
+bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMBkxFzAV
+BgNVBAMMDnN0cm9uZ2xvb3AuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAwOYI7OZ2FX/YjRgLZoDQlbPc5UZXU/j0e1wwiJNPtPEax9Y5Uoza0Pnt
+Ikzkc2SfvQ+IJrhXo385tI0W5juuqbHnE7UrjUuPjUX6NHevkxcs/flmjan5wnZM
+cPsGhH71WDuUEEflvZihf2Se2x+xgZtMhc5XGmVmRuZFYKvkgUhA2/w8/QrK+jPT
+n9QRJxZjWNh2RBdC1B7u4jffSmOSUljYFH1I2eTeY+Rdi6YUIYSU9gEoZxsv3Tia
+SomfMF5jt2Mouo6MzA+IhLvvFjcrcph1Qxgi9RkfdCMMd+Ipm9YWELkyG1bDRpQy
+0iyHD4gvVsAqz1Y2KdRSdc3Kt+nTqwIDAQABoxkwFzAVBgNVHREEDjAMhwQAAAAA
+hwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQAhy4J0hML3NgmDRHdL5/iTucBe22Mf
+jJjg2aifD1S187dHm+Il4qZNO2plWwAhN0h704f+8wpsaALxUvBIu6nvlvcMP5PH
+jGN5JLe2Km3UaPvYOQU2SgacLilu+uBcIo2JSHLV6O7ziqUj5Gior6YxDLCtEZie
+Ea8aX5/YjuACtEMJ1JjRqjgkM66XAoUe0E8onOK3FgTIO3tGoTJwRp0zS50pFuP0
+PsZtT04ck6mmXEXXknNoAyBCvPypfms9OHqcUIW9fiQnrGbS/Ri4QSQYj0DtFk/1
+na4fY1gf3zTHxH8259b/TOOaPfTnCEsOQtjUrWNR4xhmVZ+HJy4yytUW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlcCAmm6MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
+VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
+TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
+bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMH0xCzAJ
+BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZ
+MBcGA1UECgwQU3Ryb25nTG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRow
+GAYDVQQDDBFjYS5zdHJvbmdsb29wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBANfj86jkvvYDjHBgiqWhk9Cj+bqiMq3MqnV0CBO4iuK33Fo6XssE
+H+yVdXlIBFbFe6t655MdBVOR2Sfj7WqNh96vhu6PyDHiwcQlTaiLU6nhIed1J4Wv
+lvnJHFmp8Wbtx5AgLT4UYu03ftvXEl2DLi3vhSL2tRM1ebXHB/KPbRWkb25DPX0P
+foOHot3f2dgNe2x6kponf7E/QDmAu3s7Nlkfh+ryDhgGU7wocXEhXbprNqRqOGNo
+xbXgUI+/9XDxYT/7Gn5LF/fPjtN+aB0SKMnTsDhprVlZie83mlqJ46fOOrR+vrsQ
+mi/1m/TadrARtZoIExC/cQRdVM05EK4tUa8CAwEAATANBgkqhkiG9w0BAQsFAAOC
+AQEAQ7k5WhyhDTIGYCNzRnrMHWSzGqa1y4tJMW06wafJNRqTm1cthq1ibc6Hfq5a
+K10K0qMcgauRTfQ1MWrVCTW/KnJ1vkhiTOH+RvxapGn84gSaRmV6KZen0+gMsgae
+KEGe/3Hn+PmDVV+PTamHgPACfpTww38WHIe/7Ce9gHfG7MZ8cKHNZhDy0IAYPln+
+YRwMLd7JNQffHAbWb2CE1mcea4H/12U8JZW5tHCF6y9V+7IuDzqwIrLKcW3lG17n
+VUG6ODF/Ryqn3V5X+TL91YyXi6c34y34IpC7MQDV/67U7+5Bp5CfeDPWW2wVSrW+
+uGZtfEvhbNm6m2i4UNmpCXxUZQ==
+-----END CERTIFICATE-----
diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/ca.crt b/deps/npm/node_modules/node-gyp/test/fixtures/ca.crt
new file mode 100644
index 00000000000000..9d2755a74f6cde
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/test/fixtures/ca.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbzCCAlcCAmm6MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
+VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
+TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
+bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMH0xCzAJ
+BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZ
+MBcGA1UECgwQU3Ryb25nTG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRow
+GAYDVQQDDBFjYS5zdHJvbmdsb29wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBANfj86jkvvYDjHBgiqWhk9Cj+bqiMq3MqnV0CBO4iuK33Fo6XssE
+H+yVdXlIBFbFe6t655MdBVOR2Sfj7WqNh96vhu6PyDHiwcQlTaiLU6nhIed1J4Wv
+lvnJHFmp8Wbtx5AgLT4UYu03ftvXEl2DLi3vhSL2tRM1ebXHB/KPbRWkb25DPX0P
+foOHot3f2dgNe2x6kponf7E/QDmAu3s7Nlkfh+ryDhgGU7wocXEhXbprNqRqOGNo
+xbXgUI+/9XDxYT/7Gn5LF/fPjtN+aB0SKMnTsDhprVlZie83mlqJ46fOOrR+vrsQ
+mi/1m/TadrARtZoIExC/cQRdVM05EK4tUa8CAwEAATANBgkqhkiG9w0BAQsFAAOC
+AQEAQ7k5WhyhDTIGYCNzRnrMHWSzGqa1y4tJMW06wafJNRqTm1cthq1ibc6Hfq5a
+K10K0qMcgauRTfQ1MWrVCTW/KnJ1vkhiTOH+RvxapGn84gSaRmV6KZen0+gMsgae
+KEGe/3Hn+PmDVV+PTamHgPACfpTww38WHIe/7Ce9gHfG7MZ8cKHNZhDy0IAYPln+
+YRwMLd7JNQffHAbWb2CE1mcea4H/12U8JZW5tHCF6y9V+7IuDzqwIrLKcW3lG17n
+VUG6ODF/Ryqn3V5X+TL91YyXi6c34y34IpC7MQDV/67U7+5Bp5CfeDPWW2wVSrW+
+uGZtfEvhbNm6m2i4UNmpCXxUZQ==
+-----END CERTIFICATE-----
diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/server.crt b/deps/npm/node_modules/node-gyp/test/fixtures/server.crt
new file mode 100644
index 00000000000000..fe13bb96c599cf
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/test/fixtures/server.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJjCCAg4CAhnOMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
+VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
+TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
+bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMBkxFzAV
+BgNVBAMMDnN0cm9uZ2xvb3AuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAwOYI7OZ2FX/YjRgLZoDQlbPc5UZXU/j0e1wwiJNPtPEax9Y5Uoza0Pnt
+Ikzkc2SfvQ+IJrhXo385tI0W5juuqbHnE7UrjUuPjUX6NHevkxcs/flmjan5wnZM
+cPsGhH71WDuUEEflvZihf2Se2x+xgZtMhc5XGmVmRuZFYKvkgUhA2/w8/QrK+jPT
+n9QRJxZjWNh2RBdC1B7u4jffSmOSUljYFH1I2eTeY+Rdi6YUIYSU9gEoZxsv3Tia
+SomfMF5jt2Mouo6MzA+IhLvvFjcrcph1Qxgi9RkfdCMMd+Ipm9YWELkyG1bDRpQy
+0iyHD4gvVsAqz1Y2KdRSdc3Kt+nTqwIDAQABoxkwFzAVBgNVHREEDjAMhwQAAAAA
+hwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQAhy4J0hML3NgmDRHdL5/iTucBe22Mf
+jJjg2aifD1S187dHm+Il4qZNO2plWwAhN0h704f+8wpsaALxUvBIu6nvlvcMP5PH
+jGN5JLe2Km3UaPvYOQU2SgacLilu+uBcIo2JSHLV6O7ziqUj5Gior6YxDLCtEZie
+Ea8aX5/YjuACtEMJ1JjRqjgkM66XAoUe0E8onOK3FgTIO3tGoTJwRp0zS50pFuP0
+PsZtT04ck6mmXEXXknNoAyBCvPypfms9OHqcUIW9fiQnrGbS/Ri4QSQYj0DtFk/1
+na4fY1gf3zTHxH8259b/TOOaPfTnCEsOQtjUrWNR4xhmVZ+HJy4yytUW
+-----END CERTIFICATE-----
diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/server.key b/deps/npm/node_modules/node-gyp/test/fixtures/server.key
new file mode 100644
index 00000000000000..f8227f4c0c2d43
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/test/fixtures/server.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA5gjs5nYVf9iN
+GAtmgNCVs9zlRldT+PR7XDCIk0+08RrH1jlSjNrQ+e0iTORzZJ+9D4gmuFejfzm0
+jRbmO66psecTtSuNS4+NRfo0d6+TFyz9+WaNqfnCdkxw+waEfvVYO5QQR+W9mKF/
+ZJ7bH7GBm0yFzlcaZWZG5kVgq+SBSEDb/Dz9Csr6M9Of1BEnFmNY2HZEF0LUHu7i
+N99KY5JSWNgUfUjZ5N5j5F2LphQhhJT2AShnGy/dOJpKiZ8wXmO3Yyi6jozMD4iE
+u+8WNytymHVDGCL1GR90Iwx34imb1hYQuTIbVsNGlDLSLIcPiC9WwCrPVjYp1FJ1
+zcq36dOrAgMBAAECggEACg60Xm2xsHNG/ixHw+NpfLSxCr89JGKxlJD88tIDcOK1
+S8AOoxA3BHhTddteeenALmJV7fbkkuC6SICmtgBcnfppmuxyRd6vsGT6o6ut2tR1
+gxRy1WYMYKg8WhOshlH8RspscODeyKDhorvDUJd5cNGBDuTwQ68PwxiUe3La6iac
+EVQoKohg9EmRIhMF1i8I00zXE8p3XENrlTc491ipc+gLPIP5vtqHyQztEUkZHkWd
+dXbs+n1hGCr+4FxrphGYEW80HINzmume7dGChr8nvF4ZZcuWW13DJuNim6pQno1i
+hM8VdXm8XphLh0XEGI5OCfu/CetkBILZRXKltZk6AQKBgQDoBqJzRlp7regYNU4q
+usfS+43tPNaJ0o4DIzcLawqpmK/B/cZStzHl14Sm62BVkKV6cnWAJPeLkENPMFoV
+7Q7wLZBJxpPzqXkpeiDkKN4Wovca891Rffne5Sz6IDB5mOxMjfKIEPd5RkmB5Lkp
+qQLwm3YJ2AJcLagG/Gi1DFDRAQKBgQDU1G9T43Mjke6TXG0u7gCSb+VwyDRsrvJA
+u2vy6+MANRc1EEF31YLmTKOU5XxUmhtIu7TUbgPoNi0HuRFXx4Zul3BPlAosLMJv
+kNQbA/9d0YQAfSgTsploN5CX65dLZ4ejIzVgDZREzpIBWTze6YZTA2DT5iOIet84
+DD5DujY4qwKBgG0PuUo/9oYOD3tZiv1wwD5+uY6auykbTF9TLStzzBY9y9d+hrsY
+mx6zOAoRtz1g+TdeF7b9KVJzo//T9XQ68nuYnyreaWrt7SK+4jj8sK+pOEd1+0Cz
+20CXLpX/jWmKpP+y9R5aA0kA7cpdjV90rwoTuN8Vpr5XQ5TNDhaTzGUBAoGABYig
+fGXlkH8y3NICZL37ddNC+/O4qTrDQbudyusnM9ItkEuj6CG9DY/gkPaGjQyUuQdo
+ZD2YDGmcMh81vDqL3ERDv03yFcP0KkJxwWIRObdA32JhsGFsa7FGKS0O+f7vH+bC
+dITl3gQg97gCRSl9PJtR4TCSq/HF7Acld01YK5ECgYEAwLFB5JIuxrowJe74cCMP
+n5Rwuc8vWdOsg+ytvQTv0/hVCdzcaLet6YvagnWTWaU7PUwTFxZs/mLQ9CAWVutK
+IRzs/GWxGFjH5xotDaJdDDzSdQye4tUqvUVxv7zzzsVycCPBYFkyRQ8Tmr5FLtUJ
+Cl48TZ6J8Rx5avjdtOw3QC8=
+-----END PRIVATE KEY-----
diff --git a/deps/npm/node_modules/node-gyp/test/test-download.js b/deps/npm/node_modules/node-gyp/test/test-download.js
new file mode 100644
index 00000000000000..6e6f64f058c2e6
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/test/test-download.js
@@ -0,0 +1,102 @@
+'use strict'
+
+var fs = require('fs')
+var http = require('http')
+var https = require('https')
+var test = require('tape')
+var install = require('../lib/install')
+
+test('download over http', function (t) {
+ t.plan(2)
+
+ var server = http.createServer(function (req, res) {
+ t.strictEqual(req.headers['user-agent'],
+ 'node-gyp v42 (node ' + process.version + ')')
+ res.end('ok')
+ server.close()
+ })
+
+ var host = '127.0.0.1'
+ server.listen(0, host, function () {
+ var port = this.address().port
+ var gyp = {
+ opts: {},
+ version: '42',
+ }
+ var url = 'http://' + host + ':' + port
+ var req = install.test.download(gyp, {}, url)
+ req.on('response', function (res) {
+ var body = ''
+ res.setEncoding('utf8')
+ res.on('data', function(data) {
+ body += data
+ })
+ res.on('end', function() {
+ t.strictEqual(body, 'ok')
+ })
+ })
+ })
+})
+
+test('download over https with custom ca', function (t) {
+ t.plan(3)
+
+ var cert = fs.readFileSync(__dirname + '/fixtures/server.crt', 'utf8')
+ var key = fs.readFileSync(__dirname + '/fixtures/server.key', 'utf8')
+
+ var cafile = __dirname + '/fixtures/ca.crt'
+ var ca = install.test.readCAFile(cafile)
+ t.strictEqual(ca.length, 1)
+
+ var options = { ca: ca, cert: cert, key: key }
+ var server = https.createServer(options, function (req, res) {
+ t.strictEqual(req.headers['user-agent'],
+ 'node-gyp v42 (node ' + process.version + ')')
+ res.end('ok')
+ server.close()
+ })
+
+ server.on('clientError', function (err) {
+ throw err
+ })
+
+ var host = '127.0.0.1'
+ server.listen(8000, host, function () {
+ var port = this.address().port
+ var gyp = {
+ opts: { cafile: cafile },
+ version: '42',
+ }
+ var url = 'https://' + host + ':' + port
+ var req = install.test.download(gyp, {}, url)
+ req.on('response', function (res) {
+ var body = ''
+ res.setEncoding('utf8')
+ res.on('data', function(data) {
+ body += data
+ })
+ res.on('end', function() {
+ t.strictEqual(body, 'ok')
+ })
+ })
+ })
+})
+
+test('download with missing cafile', function (t) {
+ t.plan(1)
+ var gyp = {
+ opts: { cafile: 'no.such.file' },
+ }
+ try {
+ install.test.download(gyp, {}, 'http://bad/')
+ } catch (e) {
+ t.ok(/no.such.file/.test(e.message))
+ }
+})
+
+test('check certificate splitting', function (t) {
+ var cas = install.test.readCAFile(__dirname + '/fixtures/ca-bundle.crt')
+ t.plan(2)
+ t.strictEqual(cas.length, 2)
+ t.notStrictEqual(cas[0], cas[1])
+})
diff --git a/deps/npm/node_modules/node-gyp/test/test-process-release.js b/deps/npm/node_modules/node-gyp/test/test-process-release.js
index 33655ab726a555..48411ae0a7d5a9 100644
--- a/deps/npm/node_modules/node-gyp/test/test-process-release.js
+++ b/deps/npm/node_modules/node-gyp/test/test-process-release.js
@@ -45,23 +45,93 @@ test('test process release - process.version = 0.10.21', function (t) {
})
})
-test('test process release - process.version = 0.12.22', function (t) {
+// prior to -headers.tar.gz
+test('test process release - process.version = 0.12.9', function (t) {
t.plan(2)
- var release = processRelease([], { opts: {} }, 'v0.12.22', null)
+ var release = processRelease([], { opts: {} }, 'v0.12.9', null)
- t.equal(release.semver.version, '0.12.22')
+ t.equal(release.semver.version, '0.12.9')
delete release.semver
t.deepEqual(release, {
- version: '0.12.22',
+ version: '0.12.9',
name: 'node',
- baseUrl: 'https://nodejs.org/dist/v0.12.22/',
- tarballUrl: 'https://nodejs.org/dist/v0.12.22/node-v0.12.22.tar.gz',
- shasumsUrl: 'https://nodejs.org/dist/v0.12.22/SHASUMS256.txt',
- versionDir: '0.12.22',
- libUrl32: 'https://nodejs.org/dist/v0.12.22/node.lib',
- libUrl64: 'https://nodejs.org/dist/v0.12.22/x64/node.lib',
+ baseUrl: 'https://nodejs.org/dist/v0.12.9/',
+ tarballUrl: 'https://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz',
+ shasumsUrl: 'https://nodejs.org/dist/v0.12.9/SHASUMS256.txt',
+ versionDir: '0.12.9',
+ libUrl32: 'https://nodejs.org/dist/v0.12.9/node.lib',
+ libUrl64: 'https://nodejs.org/dist/v0.12.9/x64/node.lib',
+ libPath32: 'node.lib',
+ libPath64: 'x64/node.lib'
+ })
+})
+
+// prior to -headers.tar.gz
+test('test process release - process.version = 0.10.41', function (t) {
+ t.plan(2)
+
+ var release = processRelease([], { opts: {} }, 'v0.10.41', null)
+
+ t.equal(release.semver.version, '0.10.41')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '0.10.41',
+ name: 'node',
+ baseUrl: 'https://nodejs.org/dist/v0.10.41/',
+ tarballUrl: 'https://nodejs.org/dist/v0.10.41/node-v0.10.41.tar.gz',
+ shasumsUrl: 'https://nodejs.org/dist/v0.10.41/SHASUMS256.txt',
+ versionDir: '0.10.41',
+ libUrl32: 'https://nodejs.org/dist/v0.10.41/node.lib',
+ libUrl64: 'https://nodejs.org/dist/v0.10.41/x64/node.lib',
+ libPath32: 'node.lib',
+ libPath64: 'x64/node.lib'
+ })
+})
+
+// has -headers.tar.gz
+test('test process release - process.release ~ node@0.10.42', function (t) {
+ t.plan(2)
+
+ var release = processRelease([], { opts: {} }, 'v0.10.42', null)
+
+ t.equal(release.semver.version, '0.10.42')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '0.10.42',
+ name: 'node',
+ baseUrl: 'https://nodejs.org/dist/v0.10.42/',
+ tarballUrl: 'https://nodejs.org/dist/v0.10.42/node-v0.10.42-headers.tar.gz',
+ shasumsUrl: 'https://nodejs.org/dist/v0.10.42/SHASUMS256.txt',
+ versionDir: '0.10.42',
+ libUrl32: 'https://nodejs.org/dist/v0.10.42/node.lib',
+ libUrl64: 'https://nodejs.org/dist/v0.10.42/x64/node.lib',
+ libPath32: 'node.lib',
+ libPath64: 'x64/node.lib'
+ })
+})
+
+// has -headers.tar.gz
+test('test process release - process.release ~ node@0.12.10', function (t) {
+ t.plan(2)
+
+ var release = processRelease([], { opts: {} }, 'v0.12.10', null)
+
+ t.equal(release.semver.version, '0.12.10')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '0.12.10',
+ name: 'node',
+ baseUrl: 'https://nodejs.org/dist/v0.12.10/',
+ tarballUrl: 'https://nodejs.org/dist/v0.12.10/node-v0.12.10-headers.tar.gz',
+ shasumsUrl: 'https://nodejs.org/dist/v0.12.10/SHASUMS256.txt',
+ versionDir: '0.12.10',
+ libUrl32: 'https://nodejs.org/dist/v0.12.10/node.lib',
+ libUrl64: 'https://nodejs.org/dist/v0.12.10/x64/node.lib',
libPath32: 'node.lib',
libPath64: 'x64/node.lib'
})
@@ -448,3 +518,120 @@ test('test process release - process.release ~ node@4.0.0-rc.4 - bogus string pa
libPath64: 'win-x64/node.lib'
})
})
+
+test('test process release - NODEJS_ORG_MIRROR', function (t) {
+ t.plan(2)
+
+ process.env.NODEJS_ORG_MIRROR = 'http://foo.bar'
+
+ var release = processRelease([], { opts: {} }, 'v4.1.23', {
+ name: 'node',
+ headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
+ })
+
+ t.equal(release.semver.version, '4.1.23')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '4.1.23',
+ name: 'node',
+ baseUrl: 'http://foo.bar/v4.1.23/',
+ tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz',
+ shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt',
+ versionDir: '4.1.23',
+ libUrl32: 'http://foo.bar/v4.1.23/win-x86/node.lib',
+ libUrl64: 'http://foo.bar/v4.1.23/win-x64/node.lib',
+ libPath32: 'win-x86/node.lib',
+ libPath64: 'win-x64/node.lib'
+ })
+
+ delete process.env.NODEJS_ORG_MIRROR
+})
+
+test('test process release - NVM_NODEJS_ORG_MIRROR', function (t) {
+ t.plan(2)
+
+ process.env.NVM_NODEJS_ORG_MIRROR = 'http://foo.bar'
+
+ var release = processRelease([], { opts: {} }, 'v4.1.23', {
+ name: 'node',
+ headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
+ })
+
+ t.equal(release.semver.version, '4.1.23')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '4.1.23',
+ name: 'node',
+ baseUrl: 'http://foo.bar/v4.1.23/',
+ tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz',
+ shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt',
+ versionDir: '4.1.23',
+ libUrl32: 'http://foo.bar/v4.1.23/win-x86/node.lib',
+ libUrl64: 'http://foo.bar/v4.1.23/win-x64/node.lib',
+ libPath32: 'win-x86/node.lib',
+ libPath64: 'win-x64/node.lib'
+ })
+
+ delete process.env.NVM_NODEJS_ORG_MIRROR
+})
+
+test('test process release - IOJS_ORG_MIRROR', function (t) {
+ t.plan(2)
+
+ process.env.IOJS_ORG_MIRROR = 'http://foo.bar'
+
+ var release = processRelease([], { opts: {} }, 'v3.2.24', {
+ name: 'io.js',
+ headersUrl: 'https://iojs.org/download/release/v3.2.24/iojs-v3.2.24-headers.tar.gz'
+ })
+
+ t.equal(release.semver.version, '3.2.24')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '3.2.24',
+ name: 'iojs',
+ baseUrl: 'http://foo.bar/v3.2.24/',
+ tarballUrl: 'http://foo.bar/v3.2.24/iojs-v3.2.24-headers.tar.gz',
+ shasumsUrl: 'http://foo.bar/v3.2.24/SHASUMS256.txt',
+ versionDir: 'iojs-3.2.24',
+ libUrl32: 'http://foo.bar/v3.2.24/win-x86/iojs.lib',
+ libUrl64: 'http://foo.bar/v3.2.24/win-x64/iojs.lib',
+ libPath32: 'win-x86/iojs.lib',
+ libPath64: 'win-x64/iojs.lib'
+ })
+
+ delete process.env.IOJS_ORG_MIRROR
+})
+
+
+test('test process release - NVM_IOJS_ORG_MIRROR', function (t) {
+ t.plan(2)
+
+ process.env.NVM_IOJS_ORG_MIRROR = 'http://foo.bar'
+
+ var release = processRelease([], { opts: {} }, 'v3.2.24', {
+ name: 'io.js',
+ headersUrl: 'https://iojs.org/download/release/v3.2.24/iojs-v3.2.24-headers.tar.gz'
+ })
+
+ t.equal(release.semver.version, '3.2.24')
+ delete release.semver
+
+ t.deepEqual(release, {
+ version: '3.2.24',
+ name: 'iojs',
+ baseUrl: 'http://foo.bar/v3.2.24/',
+ tarballUrl: 'http://foo.bar/v3.2.24/iojs-v3.2.24-headers.tar.gz',
+ shasumsUrl: 'http://foo.bar/v3.2.24/SHASUMS256.txt',
+ versionDir: 'iojs-3.2.24',
+ libUrl32: 'http://foo.bar/v3.2.24/win-x86/iojs.lib',
+ libUrl64: 'http://foo.bar/v3.2.24/win-x64/iojs.lib',
+ libPath32: 'win-x86/iojs.lib',
+ libPath64: 'win-x64/iojs.lib'
+ })
+
+ delete process.env.NVM_IOJS_ORG_MIRROR
+})
diff --git a/deps/npm/node_modules/npm-registry-client/README.md b/deps/npm/node_modules/npm-registry-client/README.md
index fb3226cf401b5b..2caa3643708f80 100644
--- a/deps/npm/node_modules/npm-registry-client/README.md
+++ b/deps/npm/node_modules/npm-registry-client/README.md
@@ -310,5 +310,9 @@ any):
Default = `"latest"`
* `couchToken` {Object} A token for use with
[couch-login](https://npmjs.org/package/couch-login).
-* `sessionToken` {string} A random identifier for this set of client requests.
+* `sessionToken` {String} A random identifier for this set of client requests.
Default = 8 random hexadecimal bytes.
+* `maxSockets` {Number} The maximum number of connections that will be open per
+ origin (unique combination of protocol:host:port). Passed to the
+ [httpAgent](https://nodejs.org/api/http.html#http_agent_maxsockets).
+ Default = 50
diff --git a/deps/npm/node_modules/npm-registry-client/index.js b/deps/npm/node_modules/npm-registry-client/index.js
index 9b99a23738f103..a199801f98da99 100644
--- a/deps/npm/node_modules/npm-registry-client/index.js
+++ b/deps/npm/node_modules/npm-registry-client/index.js
@@ -39,6 +39,7 @@ function RegClient (config) {
if (typeof this.config.retry.factor !== 'number') this.config.retry.factor = 10
if (typeof this.config.retry.minTimeout !== 'number') this.config.retry.minTimeout = 10000
if (typeof this.config.retry.maxTimeout !== 'number') this.config.retry.maxTimeout = 60000
+ if (typeof this.config.maxSockets !== 'number') this.config.maxSockets = 50
this.config.userAgent = this.config.userAgent || 'node/' + process.version
this.config.defaultTag = this.config.defaultTag || 'latest'
diff --git a/deps/npm/node_modules/npm-registry-client/lib/initialize.js b/deps/npm/node_modules/npm-registry-client/lib/initialize.js
index 4a2160fbbdad8a..3c12697f03cba6 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/initialize.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/initialize.js
@@ -4,9 +4,6 @@ var HttpsAgent = require('https').Agent
var pkg = require('../package.json')
-var httpAgent
-var httpsAgent
-
module.exports = initialize
function initialize (uri, method, accept, headers) {
@@ -24,7 +21,7 @@ function initialize (uri, method, accept, headers) {
cert: this.config.ssl.certificate,
key: this.config.ssl.key,
ca: this.config.ssl.ca,
- agent: getAgent(uri.protocol, this.config)
+ agent: getAgent.call(this, uri.protocol)
}
// allow explicit disabling of proxy in environment via CLI
@@ -55,28 +52,30 @@ function initialize (uri, method, accept, headers) {
return opts
}
-function getAgent (protocol, config) {
+function getAgent (protocol) {
if (protocol === 'https:') {
- if (!httpsAgent) {
- httpsAgent = new HttpsAgent({
+ if (!this.httpsAgent) {
+ this.httpsAgent = new HttpsAgent({
keepAlive: true,
- localAddress: config.proxy.localAddress,
- rejectUnauthorized: config.ssl.strict,
- ca: config.ssl.ca,
- cert: config.ssl.certificate,
- key: config.ssl.key
+ maxSockets: this.config.maxSockets,
+ localAddress: this.config.proxy.localAddress,
+ rejectUnauthorized: this.config.ssl.strict,
+ ca: this.config.ssl.ca,
+ cert: this.config.ssl.certificate,
+ key: this.config.ssl.key
})
}
- return httpsAgent
+ return this.httpsAgent
} else {
- if (!httpAgent) {
- httpAgent = new HttpAgent({
+ if (!this.httpAgent) {
+ this.httpAgent = new HttpAgent({
keepAlive: true,
- localAddress: config.proxy.localAddress
+ maxSockets: this.config.maxSockets,
+ localAddress: this.config.proxy.localAddress
})
}
- return httpAgent
+ return this.httpAgent
}
}
diff --git a/deps/npm/node_modules/npm-registry-client/package.json b/deps/npm/node_modules/npm-registry-client/package.json
index aa8a9516e11716..ca717a0bd3b952 100644
--- a/deps/npm/node_modules/npm-registry-client/package.json
+++ b/deps/npm/node_modules/npm-registry-client/package.json
@@ -1,18 +1,51 @@
{
+ "_args": [
+ [
+ "npm-registry-client@latest",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-registry-client@latest",
+ "_id": "npm-registry-client@7.1.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/npm-registry-client",
+ "_nodeVersion": "5.4.0",
+ "_npmOperationalInternal": {
+ "host": "packages-5-east.internal.npmjs.com",
+ "tmp": "tmp/npm-registry-client-7.1.0.tgz_1456435497334_0.35472381697036326"
+ },
+ "_npmUser": {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ },
+ "_npmVersion": "3.7.5",
+ "_phantomChildren": {
+ "inherits": "2.0.1",
+ "readable-stream": "2.0.5"
+ },
+ "_requested": {
+ "name": "npm-registry-client",
+ "raw": "npm-registry-client@latest",
+ "rawSpec": "latest",
+ "scope": null,
+ "spec": "latest",
+ "type": "tag"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_shasum": "e3be14ab279fe5123e15ab5c8a650445415664a5",
+ "_shrinkwrap": null,
+ "_spec": "npm-registry-client@latest",
+ "_where": "/Users/rebecca/code/npm",
"author": {
- "name": "Isaac Z. Schlueter",
"email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
"url": "http://blog.izs.me/"
},
- "name": "npm-registry-client",
- "description": "Client for the npm registry",
- "version": "7.0.9",
- "repository": {
- "url": "git+https://github.com/npm/npm-registry-client.git"
- },
- "main": "index.js",
- "scripts": {
- "test": "standard && tap test/*.js"
+ "bugs": {
+ "url": "https://github.com/npm/npm-registry-client/issues"
},
"dependencies": {
"chownr": "^1.0.1",
@@ -21,14 +54,15 @@
"mkdirp": "^0.5.0",
"normalize-package-data": "~1.0.1 || ^2.0.0",
"npm-package-arg": "^3.0.0 || ^4.0.0",
+ "npmlog": "~2.0.0",
"once": "^1.3.0",
"request": "^2.47.0",
"retry": "^0.8.0",
"rimraf": "2",
"semver": "2 >=2.2.1 || 3.x || 4 || 5",
- "slide": "^1.1.3",
- "npmlog": "~2.0.0"
+ "slide": "^1.1.3"
},
+ "description": "Client for the npm registry",
"devDependencies": {
"negotiator": "^0.4.9",
"nock": "^0.56.0",
@@ -36,18 +70,43 @@
"standard": "^4.0.0",
"tap": "^1.2.0"
},
+ "directories": {},
+ "dist": {
+ "shasum": "e3be14ab279fe5123e15ab5c8a650445415664a5",
+ "tarball": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.0.tgz"
+ },
+ "gitHead": "d077cb652152a8c265369d9d169cba8a52239fb4",
+ "homepage": "https://github.com/npm/npm-registry-client#readme",
+ "license": "ISC",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
+ },
+ {
+ "email": "ogd@aoaioxxysz.net",
+ "name": "othiym23"
+ },
+ {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ },
+ {
+ "email": "kat@sykosomatic.org",
+ "name": "zkat"
+ }
+ ],
+ "name": "npm-registry-client",
"optionalDependencies": {
"npmlog": "~2.0.0"
},
- "license": "ISC",
- "readme": "# npm-registry-client\n\nThe code that npm uses to talk to the registry.\n\nIt handles all the caching and HTTP calls.\n\n## Usage\n\n```javascript\nvar RegClient = require('npm-registry-client')\nvar client = new RegClient(config)\nvar uri = \"https://registry.npmjs.org/npm\"\nvar params = {timeout: 1000}\n\nclient.get(uri, params, function (error, data, raw, res) {\n // error is an error if there was a problem.\n // data is the parsed data object\n // raw is the json string\n // res is the response from couch\n})\n```\n\n# Registry URLs\n\nThe registry calls take either a full URL pointing to a resource in the\nregistry, or a base URL for the registry as a whole (including the registry\npath – but be sure to terminate the path with `/`). `http` and `https` URLs are\nthe only ones supported.\n\n## Using the client\n\nEvery call to the client follows the same pattern:\n\n* `uri` {String} The *fully-qualified* URI of the registry API method being\n invoked.\n* `params` {Object} Per-request parameters.\n* `callback` {Function} Callback to be invoked when the call is complete.\n\n### Credentials\n\nMany requests to the registry can by authenticated, and require credentials\nfor authorization. These credentials always look the same:\n\n* `username` {String}\n* `password` {String}\n* `email` {String}\n* `alwaysAuth` {Boolean} Whether calls to the target registry are always\n authed.\n\n**or**\n\n* `token` {String}\n* `alwaysAuth` {Boolean} Whether calls to the target registry are always\n authed.\n\n## API\n\n### client.access(uri, params, cb)\n\n* `uri` {String} Registry URL for the package's access API endpoint.\n Looks like `/-/package//access`.\n* `params` {Object} Object containing per-request properties.\n * `access` {String} New access level for the package. Can be either\n `public` or `restricted`. Registry will raise an error if trying\n to change the access level of an unscoped package.\n * `auth` {Credentials}\n\nSet the access level for scoped packages. For now, there are only two\naccess levels: \"public\" and \"restricted\".\n\n### client.adduser(uri, params, cb)\n\n* `uri` {String} Base registry URL.\n* `params` {Object} Object containing per-request properties.\n * `auth` {Credentials}\n* `cb` {Function}\n * `error` {Error | null}\n * `data` {Object} the parsed data object\n * `raw` {String} the json\n * `res` {Response Object} response from couch\n\nAdd a user account to the registry, or verify the credentials.\n\n### client.deprecate(uri, params, cb)\n\n* `uri` {String} Full registry URI for the deprecated package.\n* `params` {Object} Object containing per-request properties.\n * `version` {String} Semver version range.\n * `message` {String} The message to use as a deprecation warning.\n * `auth` {Credentials}\n* `cb` {Function}\n\nDeprecate a version of a package in the registry.\n\n### client.distTags.fetch(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `auth` {Credentials}\n* `cb` {Function}\n\nFetch all of the `dist-tags` for the named package.\n\n### client.distTags.add(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTag` {String} Name of the new `dist-tag`.\n * `version` {String} Exact version to be mapped to the `dist-tag`.\n * `auth` {Credentials}\n* `cb` {Function}\n\nAdd (or replace) a single dist-tag onto the named package.\n\n### client.distTags.set(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTags` {Object} Object containing a map from tag names to package\n versions.\n * `auth` {Credentials}\n* `cb` {Function}\n\nSet all of the `dist-tags` for the named package at once, creating any\n`dist-tags` that do not already exit. Any `dist-tags` not included in the\n`distTags` map will be removed.\n\n### client.distTags.update(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTags` {Object} Object containing a map from tag names to package\n versions.\n * `auth` {Credentials}\n* `cb` {Function}\n\nUpdate the values of multiple `dist-tags`, creating any `dist-tags` that do\nnot already exist. Any pre-existing `dist-tags` not included in the `distTags`\nmap will be left alone.\n\n### client.distTags.rm(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTag` {String} Name of the new `dist-tag`.\n * `auth` {Credentials}\n* `cb` {Function}\n\nRemove a single `dist-tag` from the named package.\n\n### client.get(uri, params, cb)\n\n* `uri` {String} The complete registry URI to fetch\n* `params` {Object} Object containing per-request properties.\n * `timeout` {Number} Duration before the request times out. Optional\n (default: never).\n * `follow` {Boolean} Follow 302/301 responses. Optional (default: true).\n * `staleOk` {Boolean} If there's cached data available, then return that to\n the callback quickly, and update the cache the background. Optional\n (default: false).\n * `auth` {Credentials} Optional.\n* `cb` {Function}\n\nFetches data from the registry via a GET request, saving it in the cache folder\nwith the ETag or the \"Last Modified\" timestamp.\n\n### client.publish(uri, params, cb)\n\n* `uri` {String} The registry URI for the package to publish.\n* `params` {Object} Object containing per-request properties.\n * `metadata` {Object} Package metadata.\n * `access` {String} Access for the package. Can be `public` or `restricted` (no default).\n * `body` {Stream} Stream of the package body / tarball.\n * `auth` {Credentials}\n* `cb` {Function}\n\nPublish a package to the registry.\n\nNote that this does not create the tarball from a folder.\n\n### client.star(uri, params, cb)\n\n* `uri` {String} The complete registry URI for the package to star.\n* `params` {Object} Object containing per-request properties.\n * `starred` {Boolean} True to star the package, false to unstar it. Optional\n (default: false).\n * `auth` {Credentials}\n* `cb` {Function}\n\nStar or unstar a package.\n\nNote that the user does not have to be the package owner to star or unstar a\npackage, though other writes do require that the user be the package owner.\n\n### client.stars(uri, params, cb)\n\n* `uri` {String} The base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `username` {String} Name of user to fetch starred packages for. Optional\n (default: user in `auth`).\n * `auth` {Credentials} Optional (required if `username` is omitted).\n* `cb` {Function}\n\nView your own or another user's starred packages.\n\n### client.tag(uri, params, cb)\n\n* `uri` {String} The complete registry URI to tag\n* `params` {Object} Object containing per-request properties.\n * `version` {String} Version to tag.\n * `tag` {String} Tag name to apply.\n * `auth` {Credentials}\n* `cb` {Function}\n\nMark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the\nspecified version.\n\n### client.unpublish(uri, params, cb)\n\n* `uri` {String} The complete registry URI of the package to unpublish.\n* `params` {Object} Object containing per-request properties.\n * `version` {String} version to unpublish. Optional – omit to unpublish all\n versions.\n * `auth` {Credentials}\n* `cb` {Function}\n\nRemove a version of a package (or all versions) from the registry. When the\nlast version us unpublished, the entire document is removed from the database.\n\n### client.whoami(uri, params, cb)\n\n* `uri` {String} The base registry for the URI.\n* `params` {Object} Object containing per-request properties.\n * `auth` {Credentials}\n* `cb` {Function}\n\nSimple call to see who the registry thinks you are. Especially useful with\ntoken-based auth.\n\n\n## PLUMBING\n\nThe below are primarily intended for use by the rest of the API, or by the npm\ncaching logic directly.\n\n### client.request(uri, params, cb)\n\n* `uri` {String} URI pointing to the resource to request.\n* `params` {Object} Object containing per-request properties.\n * `method` {String} HTTP method. Optional (default: \"GET\").\n * `body` {Stream | Buffer | String | Object} The request body. Objects\n that are not Buffers or Streams are encoded as JSON. Optional – body\n only used for write operations.\n * `etag` {String} The cached ETag. Optional.\n * `lastModified` {String} The cached Last-Modified timestamp. Optional.\n * `follow` {Boolean} Follow 302/301 responses. Optional (default: true).\n * `auth` {Credentials} Optional.\n* `cb` {Function}\n * `error` {Error | null}\n * `data` {Object} the parsed data object\n * `raw` {String} the json\n * `res` {Response Object} response from couch\n\nMake a generic request to the registry. All the other methods are wrappers\naround `client.request`.\n\n### client.fetch(uri, params, cb)\n\n* `uri` {String} The complete registry URI to upload to\n* `params` {Object} Object containing per-request properties.\n * `headers` {Stream} HTTP headers to be included with the request. Optional.\n * `auth` {Credentials} Optional.\n* `cb` {Function}\n\nFetch a package from a URL, with auth set appropriately if included. Used to\ncache remote tarballs as well as request package tarballs from the registry.\n\n# Configuration\n\nThe client uses its own configuration, which is just passed in as a simple\nnested object. The following are the supported values (with their defaults, if\nany):\n\n* `proxy.http` {URL} The URL to proxy HTTP requests through.\n* `proxy.https` {URL} The URL to proxy HTTPS requests through. Defaults to be\n the same as `proxy.http` if unset.\n* `proxy.localAddress` {IP} The local address to use on multi-homed systems.\n* `ssl.ca` {String} Certificate signing authority certificates to trust.\n* `ssl.certificate` {String} Client certificate (PEM encoded). Enable access\n to servers that require client certificates.\n* `ssl.key` {String} Private key (PEM encoded) for client certificate.\n* `ssl.strict` {Boolean} Whether or not to be strict with SSL certificates.\n Default = `true`\n* `retry.count` {Number} Number of times to retry on GET failures. Default = 2.\n* `retry.factor` {Number} `factor` setting for `node-retry`. Default = 10.\n* `retry.minTimeout` {Number} `minTimeout` setting for `node-retry`.\n Default = 10000 (10 seconds)\n* `retry.maxTimeout` {Number} `maxTimeout` setting for `node-retry`.\n Default = 60000 (60 seconds)\n* `userAgent` {String} User agent header to send. Default =\n `\"node/{process.version}\"`\n* `log` {Object} The logger to use. Defaults to `require(\"npmlog\")` if\n that works, otherwise logs are disabled.\n* `defaultTag` {String} The default tag to use when publishing new packages.\n Default = `\"latest\"`\n* `couchToken` {Object} A token for use with\n [couch-login](https://npmjs.org/package/couch-login).\n* `sessionToken` {string} A random identifier for this set of client requests.\n Default = 8 random hexadecimal bytes.\n",
- "readmeFilename": "README.md",
- "gitHead": "2c0c83149edb270829582a234703404b2ba1c410",
- "bugs": {
- "url": "https://github.com/npm/npm-registry-client/issues"
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "url": "git+https://github.com/npm/npm-registry-client.git"
},
- "homepage": "https://github.com/npm/npm-registry-client#readme",
- "_id": "npm-registry-client@7.0.9",
- "_shasum": "1baf86ee5285c4e6d38d4556208ded56049231bb",
- "_from": "npm-registry-client@>=7.0.9 <7.1.0"
+ "scripts": {
+ "test": "standard && tap test/*.js"
+ },
+ "version": "7.1.0"
}
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json b/deps/npm/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json
new file mode 100644
index 00000000000000..4561db502b18e5
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json
@@ -0,0 +1 @@
+{"_id":"@npm%2fnpm-registry-client","_rev":"213-0a1049cf56172b7d9a1184742c6477b9","name":"@npm/npm-registry-client","description":"Client for the npm registry","dist-tags":{"latest":"2.0.4","v2.0":"2.0.3"},"versions":{"0.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.1","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"693a08f6d2faea22bbd2bf412508a63d3e6229a7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.2","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"b48c0ec5563c6a6fdc253454fc56d2c60c5a26f4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.3","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"ccc0254c2d59e3ea9b9050e2b16edef78df1a1e8","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.4","_engineSupported":true,"_npmVersion":"1.1.25","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"faabd25ef477521c74ac21e0f4cf3a2f66d18fb3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.5","dist":{"shasum":"85219810c9d89ae8d28ea766e7cf74efbd9f1e52","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.5.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"The code that npm uses to talk to the registry","version":"0.0.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.6","dist":{"shasum":"cc6533b3b41df65e6e9db2601fbbf1a509a7e94c","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.6.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"The code that npm uses to talk to the registry","version":"0.0.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.7","dist":{"shasum":"0cee1d1c61f1c8e483774fe1f7bbb81c4f394a3a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.7.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.8","dist":{"shasum":"1b7411c3f7310ec2a96b055b00e7ca606e47bd07","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.8.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.9","dist":{"shasum":"6d5bfde431559ac9e2e52a7db85f5839b874f022","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.9.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.10","dist":{"shasum":"0c8b6a4615bce82aa6cc04a0d1f7dc89921f7a38","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.10.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.11","dist":{"shasum":"afab40be5bed1faa946d8e1827844698f2ec1db7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.11.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.0","dist":{"shasum":"1077d6bbb5e432450239dc6622a59474953ffbea","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.1","dist":{"shasum":"759765361d09b715270f59cf50f10908e4e9c5fc","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.2","dist":{"shasum":"541ce93abb3d35f5c325545c718dd3bbeaaa9ff0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.3","dist":{"shasum":"e9a40d7031e8f809af5fd85aa9aac979e17efc97","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.4","dist":{"shasum":"b211485b046191a1085362376530316f0cab0420","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.4.tgz"},"_npmVersion":"1.1.48","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.0","dist":{"shasum":"6508a4b4d96f31057d5200ca5779531bafd2b840","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.0.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.1","dist":{"shasum":"1bc8c4576c368cd88253d8a52daf40c55b89bb1a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.1.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.5","dist":{"shasum":"2f55d675dfb977403b1ad0d96874c1d30e8058d7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.5.tgz"},"_npmVersion":"1.1.51","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.6","dist":{"shasum":"f05df6695360360ad220e6e13a6a7bace7165fbe","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.6.tgz"},"_npmVersion":"1.1.56","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.7","dist":{"shasum":"867bad8854cae82ed89ee3b7f1d391af59491671","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.7.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.8","dist":{"shasum":"ef194cdb70f1ea03a576cff2c97392fa96e36563","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.8.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.9","dist":{"shasum":"3cec10431dfed1594adaf99c50f482ee56ecf9e4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.9.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.10","dist":{"shasum":"1e69726dae0944e78562fd77243f839c6a2ced1e","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.10.tgz"},"_npmVersion":"1.1.64","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.11","dist":{"shasum":"d92f33c297eb1bbd57fd597c3d8f5f7e9340a0b5","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.11.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.12":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.12","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.12","dist":{"shasum":"3bfb6fc0e4b131d665580cd1481c341fe521bfd3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.12.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.13":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.13","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.13","dist":{"shasum":"e03f2a4340065511b7184a3e2862cd5d459ef027","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.13.tgz"},"_from":".","_npmVersion":"1.2.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.14":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.14","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.14","dist":{"shasum":"186874a7790417a340d582b1cd4a7c338087ee12","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.14.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.15":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.15","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.15","dist":{"shasum":"f71f32b7185855f1f8b7a5ef49e49d2357c2c552","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.15.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.16":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.16","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.16","dist":{"shasum":"3331323b5050fc5afdf77c3a35913c16f3e43964","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.16.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.17":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.17","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.17","dist":{"shasum":"1df2bbecac6751f5d9600fb43722aef96d956773","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.17.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.18":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.18","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.18","dist":{"shasum":"198c8d15ed9b1ed546faf6e431eb63a6b18193ad","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.18.tgz"},"_from":".","_npmVersion":"1.2.13","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.19":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.19","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.19","dist":{"shasum":"106da826f0d2007f6e081f2b68fb6f26fa951b20","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.19.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.20":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.20","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.20","dist":{"shasum":"3fff194331e26660be2cf8ebf45ddf7d36add5f6","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.20.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.21":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.21","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.21","dist":{"shasum":"d85dd32525f193925c46ff9eb0e0f529dfd1b254","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.21.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.22":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.22","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.22","dist":{"shasum":"caa22ff40a1ccd632a660b8b80c333c8f92d5a17","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.22.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.23":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.23","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.23","dist":{"shasum":"a320ab2b1d048b4f7b88e40bd86974ca322b4c24","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.23.tgz"},"_from":".","_npmVersion":"1.2.19","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.24":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.24","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.24","dist":{"shasum":"e12f644338619319ee7f233363a1714a87f3c72d","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.24.tgz"},"_from":".","_npmVersion":"1.2.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.25":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.25","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.25","dist":{"shasum":"c2caeb1dcf937d6fcc4a187765d401f5e2f54027","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.25.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.26":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.26","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.26","dist":{"shasum":"4c5a2b3de946e383032f10fa497d0c15ee5f4c60","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.26.tgz"},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.27":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.27","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~2.0.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.27","dist":{"shasum":"8f338189d32769267886a07ad7b7fd2267446adf","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.27.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.28":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.28","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"~2.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.28","dist":{"shasum":"959141fc0180d7b1ad089e87015a8a2142a8bffc","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.28.tgz"},"_from":".","_npmVersion":"1.3.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.29":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.29","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.29","dist":{"shasum":"66ff2766f0c61d41e8a6139d3692d8833002c686","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.29.tgz"},"_from":".","_npmVersion":"1.3.12","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.30":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.30","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.30","dist":{"shasum":"f01cae5c51aa0a1c5dc2516cbad3ebde068d3eaa","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.30.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.31":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.31","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.31","dist":{"shasum":"24a23e24e43246677cb485f8391829e9536563d4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.31.tgz"},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.0","dist":{"shasum":"66eab02a69be67f232ac14023eddfb8308c2eccd","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.1","dist":{"shasum":"16dba07cc304442edcece378218672d0a1258ef8","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.1.tgz"},"_from":".","_npmVersion":"1.3.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.2","dist":{"shasum":"ea3060bd0a87fb1d97b87433b50f38f7272b1686","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.2.tgz"},"_from":".","_npmVersion":"1.3.20","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.3","dist":{"shasum":"da08bb681fb24aa5c988ca71f8c10f27f09daf4a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.4","dist":{"shasum":"25d771771590b1ca39277aea4506af234c5f4342","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.4.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.5","dist":{"shasum":"98ba1ac851a3939a3fb9917c28fa8da522dc635f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.5.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.6","dist":{"shasum":"c48a2a03643769acc49672860f7920ec6bffac6e","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.6.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.0","dist":{"shasum":"30d0c178b7f2e54183a6a3fc9fe4071eb10290bf","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.1","dist":{"shasum":"9c49b3e44558e2072158fb085be8a083c5f83537","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.0","_npmUser":{"name":"npm-www","email":"npm@npmjs.com"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.2","dist":{"shasum":"d9568a9413bee14951201ce73f3b3992ec6658c0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.2.tgz"},"_from":".","_npmVersion":"1.4.1","_npmUser":{"name":"npm-www","email":"npm@npmjs.com"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.3","dist":{"shasum":"aa188fc5067158e991a57f4697c54994108f5389","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.3.tgz"},"_from":".","_npmVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.4","dist":{"shasum":"f9dbc383a49069d8c7f67755a3ff6e424aff584f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.4.tgz"},"_from":".","_npmVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.5","dist":{"shasum":"7d6fdca46139470715f9477ddb5ad3e770d4de7b","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.6","_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"657f69a79543fc4cc264c3b2de958bd15f7140fe","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.6.tgz"},"directories":{}},"0.4.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.7","dist":{"shasum":"f4369b59890da7882527eb7c427dd95d43707afb","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.7.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.8","_shasum":"a6685a161033101be6064b7af887ab440e8695d0","_from":".","_npmVersion":"1.4.8","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"a6685a161033101be6064b7af887ab440e8695d0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.8.tgz"},"directories":{}},"0.4.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.9","_shasum":"304d3d4726a58e33d8cc965afdc9ed70b996580c","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"304d3d4726a58e33d8cc965afdc9ed70b996580c","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.9.tgz"},"directories":{}},"0.4.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.10","_shasum":"ab7bf1be3ba07d769eaf74dee3c9347e02283116","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"ab7bf1be3ba07d769eaf74dee3c9347e02283116","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.10.tgz"},"directories":{}},"0.4.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"2 >=2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.11","_shasum":"032e9b6b050ed052ee9441841a945a184ea6bc33","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"032e9b6b050ed052ee9441841a945a184ea6bc33","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.11.tgz"},"directories":{}},"0.4.12":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.12","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"2 >=2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.12","_shasum":"34303422f6a3da93ca3a387a2650d707c8595b99","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"34303422f6a3da93ca3a387a2650d707c8595b99","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.12.tgz"},"directories":{}},"1.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"1.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@1.0.0","_shasum":"2a6f9dfdce5f8ebf4b9af4dbfd738384d25014e5","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"2a6f9dfdce5f8ebf4b9af4dbfd738384d25014e5","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-1.0.0.tgz"},"directories":{}},"1.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"1.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"98b1278c230cf6c159f189e2f8c69daffa727ab8","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@1.0.1","_shasum":"c5f6a87d285f2005a35d3f67d9c724bce551b0f1","_from":".","_npmVersion":"1.4.13","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"c5f6a87d285f2005a35d3f67d9c724bce551b0f1","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-1.0.1.tgz"},"directories":{}},"2.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"47a98069b6a34e751cbd5b84ce92858cae5abe70","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.0","_shasum":"88810dac2d534c0df1d905c79e723392fcfc791a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"88810dac2d534c0df1d905c79e723392fcfc791a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.0.tgz"},"directories":{}},"2.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"123e40131f83f7265f66ecd2a558cce44a3aea86","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.1","_shasum":"611c7cb7c8f7ff22be2ebc6398423b5de10db0e2","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"611c7cb7c8f7ff22be2ebc6398423b5de10db0e2","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.1.tgz"},"directories":{}},"2.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"6ecc311c9dd4890f2d9b6bae60447070a3321e12","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.2","_shasum":"a82b000354c7f830114fb18444764bc477d5740f","_from":".","_npmVersion":"1.4.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"a82b000354c7f830114fb18444764bc477d5740f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.2.tgz"},"directories":{}},"3.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"6bb1aec1e85fa82ee075bd997d6fb9f2dbb7f643","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.0","_shasum":"4febc5cdb274e9fa06bc3008910e3fa1ec007994","_from":".","_npmVersion":"1.5.0-pre","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"4febc5cdb274e9fa06bc3008910e3fa1ec007994","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.0.tgz"},"directories":{}},"3.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"fe8382dde609ea1e3580fcdc5bc3d0bba119cfc6","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.1","_shasum":"5f3ee362ce5c237cfb798fce22c77875fc1a63c2","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"5f3ee362ce5c237cfb798fce22c77875fc1a63c2","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.1.tgz"},"directories":{}},"2.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"2578fb9a807d77417554ba235ba8fac39405e832","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.3","_shasum":"93dad3d9a162c99404badb71739c622c0f3b9a72","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"93dad3d9a162c99404badb71739c622c0f3b9a72","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.3.tgz"},"directories":{}},"3.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"15343019160ace0b9874cf0ec186b3425dbc7301","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.2","_shasum":"5dd0910157ce55f4286a1871d39f9a2128cd3c99","_from":".","_npmVersion":"1.5.0-alpha-2","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"5dd0910157ce55f4286a1871d39f9a2128cd3c99","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.2.tgz"},"directories":{}},"3.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1 || 3.x","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"b18a780d1185f27c06c27812147b83aba0d4a2f5","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.3","_shasum":"2377dc1cf69b4d374b3a95fb7feba8c804d8cb30","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"2377dc1cf69b4d374b3a95fb7feba8c804d8cb30","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.3.tgz"},"directories":{}},"3.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.5.0","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1 || 3.x","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"54900fe4b2eb5b99ee6dfe173f145732fdfae80e","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.4","_shasum":"d4a177d1f25615cfaef9b6844fa366ffbf5f578a","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"d4a177d1f25615cfaef9b6844fa366ffbf5f578a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.4.tgz"},"directories":{}},"3.0.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"0.5","normalize-package-data":"0.4","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"2","semver":"2 >=2.2.1 || 3.x","slide":"^1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"635db1654346bc86473df7b39626601425f46177","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.5","_shasum":"cdabaefa399b81ac8a86a48718aefd80e7b19ff3","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"cdabaefa399b81ac8a86a48718aefd80e7b19ff3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.5.tgz"},"directories":{}},"3.0.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"^0.5.0","normalize-package-data":"0.4","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"2","semver":"2 >=2.2.1 || 3.x","slide":"^1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"ISC","gitHead":"eba30fadd724ed5cad1aec95ac3ee907a59b7317","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.6","_shasum":"14a17d9a60ed2a80b04edcbc596dbce0d96540ee","_from":".","_npmVersion":"1.4.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"14a17d9a60ed2a80b04edcbc596dbce0d96540ee","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.6.tgz"},"directories":{}},"2.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"^0.5.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"ISC","gitHead":"a10f621d9cdc813b9d3092a14b661f65bfa6d40d","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.4","_shasum":"528e08900d7655c12096d1637d1c3a7a5b451019","_from":".","_npmVersion":"1.4.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"528e08900d7655c12096d1637d1c3a7a5b451019","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.4.tgz"},"directories":{}}},"readme":"# npm-registry-client\u000a\u000aThe code that npm uses to talk to the registry.\u000a\u000aIt handles all the caching and HTTP calls.\u000a\u000a## Usage\u000a\u000a```javascript\u000avar RegClient = require('npm-registry-client')\u000avar client = new RegClient(config)\u000avar uri = \"npm://registry.npmjs.org/npm\"\u000avar options = {timeout: 1000}\u000a\u000aclient.get(uri, options, function (error, data, raw, res) {\u000a // error is an error if there was a problem.\u000a // data is the parsed data object\u000a // raw is the json string\u000a // res is the response from couch\u000a})\u000a```\u000a\u000a# Registry URLs\u000a\u000aThe registry calls take either a full URL pointing to a resource in the\u000aregistry, or a base URL for the registry as a whole (for the base URL, any path\u000awill be ignored). In addition to `http` and `https`, `npm` URLs are allowed.\u000a`npm` URLs are `https` URLs with the additional restrictions that they will\u000aalways include authorization credentials, and the response is always registry\u000ametadata (and not tarballs or other attachments).\u000a\u000a# Configuration\u000a\u000aThis program is designed to work with\u000a[npmconf](https://npmjs.org/package/npmconf), but you can also pass in\u000aa plain-jane object with the appropriate configs, and it'll shim it\u000afor you. Any configuration thingie that has get/set/del methods will\u000aalso be accepted.\u000a\u000a* `cache` **Required** {String} Path to the cache folder\u000a* `always-auth` {Boolean} Auth even for GET requests.\u000a* `auth` {String} A base64-encoded `username:password`\u000a* `email` {String} User's email address\u000a* `tag` {String} The default tag to use when publishing new packages.\u000a Default = `\"latest\"`\u000a* `ca` {String} Cerficate signing authority certificates to trust.\u000a* `cert` {String} Client certificate (PEM encoded). Enable access\u000a to servers that require client certificates\u000a* `key` {String} Private key (PEM encoded) for client certificate 'cert'\u000a* `strict-ssl` {Boolean} Whether or not to be strict with SSL\u000a certificates. Default = `true`\u000a* `user-agent` {String} User agent header to send. Default =\u000a `\"node/{process.version} {process.platform} {process.arch}\"`\u000a* `log` {Object} The logger to use. Defaults to `require(\"npmlog\")` if\u000a that works, otherwise logs are disabled.\u000a* `fetch-retries` {Number} Number of times to retry on GET failures.\u000a Default=2\u000a* `fetch-retry-factor` {Number} `factor` setting for `node-retry`. Default=10\u000a* `fetch-retry-mintimeout` {Number} `minTimeout` setting for `node-retry`.\u000a Default=10000 (10 seconds)\u000a* `fetch-retry-maxtimeout` {Number} `maxTimeout` setting for `node-retry`.\u000a Default=60000 (60 seconds)\u000a* `proxy` {URL} The url to proxy requests through.\u000a* `https-proxy` {URL} The url to proxy https requests through.\u000a Defaults to be the same as `proxy` if unset.\u000a* `_auth` {String} The base64-encoded authorization header.\u000a* `username` `_password` {String} Username/password to use to generate\u000a `_auth` if not supplied.\u000a* `_token` {Object} A token for use with\u000a [couch-login](https://npmjs.org/package/couch-login)\u000a\u000a# client.request(method, uri, options, cb)\u000a\u000a* `method` {String} HTTP method\u000a* `uri` {String} URI pointing to the resource to request\u000a* `options` {Object} Object containing optional per-request properties.\u000a * `what` {Stream | Buffer | String | Object} The request body. Objects\u000a that are not Buffers or Streams are encoded as JSON.\u000a * `etag` {String} The cached ETag\u000a * `follow` {Boolean} Follow 302/301 responses (defaults to true)\u000a* `cb` {Function}\u000a * `error` {Error | null}\u000a * `data` {Object} the parsed data object\u000a * `raw` {String} the json\u000a * `res` {Response Object} response from couch\u000a\u000aMake a request to the registry. All the other methods are wrappers around\u000a`request`.\u000a\u000a# client.adduser(base, username, password, email, cb)\u000a\u000a* `base` {String} Base registry URL\u000a* `username` {String}\u000a* `password` {String}\u000a* `email` {String}\u000a* `cb` {Function}\u000a\u000aAdd a user account to the registry, or verify the credentials.\u000a\u000a# client.deprecate(uri, version, message, cb)\u000a\u000a* `uri` {String} Full registry URI for the deprecated package\u000a* `version` {String} Semver version range\u000a* `message` {String} The message to use as a deprecation warning\u000a* `cb` {Function}\u000a\u000aDeprecate a version of a package in the registry.\u000a\u000a# client.bugs(uri, cb)\u000a\u000a* `uri` {String} Full registry URI for the package\u000a* `cb` {Function}\u000a\u000aGet the url for bugs of a package\u000a\u000a# client.get(uri, options, cb)\u000a\u000a* `uri` {String} The complete registry URI to fetch\u000a* `options` {Object} Object containing optional per-request properties.\u000a * `timeout` {Number} Duration before the request times out.\u000a * `follow` {Boolean} Follow 302/301 responses (defaults to true)\u000a * `staleOk` {Boolean} If there's cached data available, then return that\u000a to the callback quickly, and update the cache the background.\u000a\u000aFetches data from the registry via a GET request, saving it in the cache folder\u000awith the ETag.\u000a\u000a# client.publish(uri, data, tarball, cb)\u000a\u000a* `uri` {String} The registry URI to publish to\u000a* `data` {Object} Package data\u000a* `tarball` {String | Stream} Filename or stream of the package tarball\u000a* `cb` {Function}\u000a\u000aPublish a package to the registry.\u000a\u000aNote that this does not create the tarball from a folder. However, it can\u000aaccept a gzipped tar stream or a filename to a tarball.\u000a\u000a# client.star(uri, starred, cb)\u000a\u000a* `uri` {String} The complete registry URI to star\u000a* `starred` {Boolean} True to star the package, false to unstar it.\u000a* `cb` {Function}\u000a\u000aStar or unstar a package.\u000a\u000aNote that the user does not have to be the package owner to star or unstar a\u000apackage, though other writes do require that the user be the package owner.\u000a\u000a# client.stars(base, username, cb)\u000a\u000a* `base` {String} The base URL for the registry\u000a* `username` {String} Name of user to fetch starred packages for.\u000a* `cb` {Function}\u000a\u000aView your own or another user's starred packages.\u000a\u000a# client.tag(uri, version, tag, cb)\u000a\u000a* `uri` {String} The complete registry URI to tag\u000a* `version` {String} Version to tag\u000a* `tag` {String} Tag name to apply\u000a* `cb` {Function}\u000a\u000aMark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the\u000aspecified version.\u000a\u000a# client.unpublish(uri, [ver], cb)\u000a\u000a* `uri` {String} The complete registry URI to unpublish\u000a* `ver` {String} version to unpublish. Leave blank to unpublish all\u000a versions.\u000a* `cb` {Function}\u000a\u000aRemove a version of a package (or all versions) from the registry. When the\u000alast version us unpublished, the entire document is removed from the database.\u000a\u000a# client.upload(uri, file, [etag], [nofollow], cb)\u000a\u000a* `uri` {String} The complete registry URI to upload to\u000a* `file` {String | Stream} Either the filename or a readable stream\u000a* `etag` {String} Cache ETag\u000a* `nofollow` {Boolean} Do not follow 301/302 responses\u000a* `cb` {Function}\u000a\u000aUpload an attachment. Mostly used by `client.publish()`.\u000a","maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"time":{"modified":"2014-07-31T21:59:52.896Z","created":"2012-06-07T04:43:36.581Z","0.0.1":"2012-06-07T04:43:38.123Z","0.0.2":"2012-06-07T05:35:05.937Z","0.0.3":"2012-06-09T00:55:25.861Z","0.0.4":"2012-06-11T03:53:26.548Z","0.0.5":"2012-06-11T23:48:11.235Z","0.0.6":"2012-06-17T06:23:27.320Z","0.0.7":"2012-06-18T19:19:38.315Z","0.0.8":"2012-06-28T20:40:20.563Z","0.0.9":"2012-07-10T03:28:04.651Z","0.0.10":"2012-07-11T17:03:45.151Z","0.0.11":"2012-07-17T14:06:37.489Z","0.1.0":"2012-07-23T18:17:38.007Z","0.1.1":"2012-07-23T21:21:28.196Z","0.1.2":"2012-07-24T06:14:12.831Z","0.1.3":"2012-08-07T02:02:20.564Z","0.1.4":"2012-08-15T03:04:52.822Z","0.1.5":"2012-08-17T21:59:33.310Z","0.2.0":"2012-08-17T22:00:18.081Z","0.2.1":"2012-08-17T22:07:28.827Z","0.2.2":"2012-08-17T22:37:24.352Z","0.2.3":"2012-08-19T19:16:44.808Z","0.2.4":"2012-08-19T19:18:51.792Z","0.2.5":"2012-08-20T16:54:50.794Z","0.2.6":"2012-08-22T00:25:04.766Z","0.2.7":"2012-08-27T19:07:34.829Z","0.2.8":"2012-10-02T19:53:50.661Z","0.2.9":"2012-10-03T22:09:50.766Z","0.2.10":"2012-10-25T14:55:54.216Z","0.2.11":"2012-12-21T16:26:38.094Z","0.2.12":"2013-01-18T22:22:41.668Z","0.2.13":"2013-02-06T00:16:35.939Z","0.2.14":"2013-02-10T02:44:02.764Z","0.2.15":"2013-02-11T19:18:55.678Z","0.2.16":"2013-02-15T17:09:03.249Z","0.2.17":"2013-02-16T03:47:13.898Z","0.2.18":"2013-03-06T22:09:23.536Z","0.2.19":"2013-03-20T06:27:39.128Z","0.2.20":"2013-03-28T00:43:07.558Z","0.2.21":"2013-04-29T15:46:54.094Z","0.2.22":"2013-04-29T15:51:02.178Z","0.2.23":"2013-05-11T00:28:14.198Z","0.2.24":"2013-05-24T21:27:50.693Z","0.2.25":"2013-06-20T15:36:46.277Z","0.2.26":"2013-07-06T17:12:54.670Z","0.2.27":"2013-07-11T07:14:45.740Z","0.2.28":"2013-08-02T20:27:41.732Z","0.2.29":"2013-10-28T18:23:24.477Z","0.2.30":"2013-11-18T23:12:00.540Z","0.2.31":"2013-12-16T08:36:43.044Z","0.3.0":"2013-12-17T07:03:10.699Z","0.3.1":"2013-12-17T16:53:27.867Z","0.3.2":"2013-12-17T22:25:14.882Z","0.3.3":"2013-12-21T16:07:06.773Z","0.3.4":"2014-01-29T15:24:05.163Z","0.3.5":"2014-01-31T01:53:19.656Z","0.3.6":"2014-02-07T00:17:21.362Z","0.4.0":"2014-02-13T01:17:18.973Z","0.4.1":"2014-02-13T23:47:37.892Z","0.4.2":"2014-02-14T00:29:13.086Z","0.4.3":"2014-02-16T03:40:54.640Z","0.4.4":"2014-02-16T03:41:48.856Z","0.4.5":"2014-03-12T05:09:17.474Z","0.4.6":"2014-03-29T19:44:15.041Z","0.4.7":"2014-04-02T19:41:07.149Z","0.4.8":"2014-05-01T22:24:54.980Z","0.4.9":"2014-05-12T21:52:55.127Z","0.4.10":"2014-05-13T16:44:29.801Z","0.4.11":"2014-05-13T20:33:04.738Z","0.4.12":"2014-05-14T06:14:22.842Z","1.0.0":"2014-05-14T23:04:37.188Z","1.0.1":"2014-06-03T00:55:54.448Z","2.0.0":"2014-06-06T04:23:46.579Z","2.0.1":"2014-06-06T06:25:14.419Z","2.0.2":"2014-06-14T00:33:10.205Z","3.0.0":"2014-07-02T00:30:29.154Z","3.0.1":"2014-07-14T23:29:05.057Z","2.0.3":"2014-07-15T00:09:36.043Z","3.0.2":"2014-07-17T06:30:02.659Z","3.0.3":"2014-07-23T21:20:42.406Z","3.0.4":"2014-07-25T00:27:26.007Z","3.0.5":"2014-07-25T00:28:48.007Z","3.0.6":"2014-07-31T21:57:49.043Z","2.0.4":"2014-07-31T21:59:52.896Z"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":{"url":"git://github.com/isaacs/npm-registry-client"},"users":{"fgribreau":true,"fengmk2":true},"readmeFilename":"README.md","homepage":"https://github.com/isaacs/npm-registry-client","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"license":"ISC","_attachments":{}}
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json
new file mode 100644
index 00000000000000..01da3002763731
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json
@@ -0,0 +1 @@
+{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.3","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"47ac53683daf832bfa952e1774417da47817ae42","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz"},"readme":" __ \n /\\ \\ __ \n __ __ ___ \\_\\ \\ __ _ __ ____ ___ ___ _ __ __ /\\_\\ ____ \n /\\ \\/\\ \\ /' _ `\\ /'_ \\ /'__`\\/\\ __\\/ ,__\\ / ___\\ / __`\\/\\ __\\/'__`\\ \\/\\ \\ /',__\\ \n \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\ __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\ __/ __ \\ \\ \\/\\__, `\\\n \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n \\/___/ \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/ \\/____/\\/___/ \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n \\ \\____/ \n \\/___/\n \nUnderscore.js is a utility-belt library for JavaScript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz
new file mode 100644
index 00000000000000..19da9baa7fb191
Binary files /dev/null and b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz differ
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/cache.json b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/cache.json
new file mode 100644
index 00000000000000..d899f11922a405
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/cache.json
@@ -0,0 +1 @@
+{"_id":"underscore","_rev":"72-47f2986bfd8e8b55068b204588bbf484","name":"underscore","description":"JavaScript's functional programming helper library.","dist-tags":{"latest":"1.3.3","stable":"1.3.3"},"versions":{"1.0.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.3","_id":"underscore@1.0.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.3.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.0.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.4","_id":"underscore@1.0.4","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.4.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.0":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.0","_id":"underscore@1.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.0.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.1":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.1","_id":"underscore@1.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.1.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.2":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.2","_id":"underscore@1.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.2.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.3","_id":"underscore@1.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.8-1","_nodeVersion":"v0.2.5","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.3.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore.js","version":"1.1.4","_id":"underscore@1.1.4","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.9","_nodeVersion":"v0.5.0-pre","dist":{"shasum":"9e82274902865625b3a6d4c315a38ffd80047dae","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.4.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.1.5":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.5","_id":"underscore@1.1.5","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.16","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"23601d62c75619998b2f0db24938102793336a56","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.5.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.6":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.6","_id":"underscore@1.1.6","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"6868da1bdd72d75285be0b4e50f228e70d001a2c","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.6.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.7":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.7","devDependencies":{},"_id":"underscore@1.1.7","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"40bab84bad19d230096e8d6ef628bff055d83db0","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz"},"scripts":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.0","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.0","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"b32ce32c8c118caa8031c10b54c7f65ab3b557fd","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.0.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.1","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.1","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"74dd40e9face84e724eb2edae945b8aedc233ba3","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.2.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"11b874da70f4683d7d48bba2b44be1e600d2f6cf","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.3.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.4":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.4","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.4","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"e8da6241aa06f64df2473bb2590b8c17c84c3c7e","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.0","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.0","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"253b2d79b7bb67943ced0fc744eb18267963ede8","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.0.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.1","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.1","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"6cb8aad0e77eb5dbbfb54b22bcd8697309cf9641","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.1.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.2","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"1b4e455089ab1d1d38ab6794ffe6cf08f764394a","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.2.tgz"},"readme":" __ \n /\\ \\ __ \n __ __ ___ \\_\\ \\ __ _ __ ____ ___ ___ _ __ __ /\\_\\ ____ \n /\\ \\/\\ \\ /' _ `\\ /'_ \\ /'__`\\/\\ __\\/ ,__\\ / ___\\ / __`\\/\\ __\\/'__`\\ \\/\\ \\ /',__\\ \n \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\ __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\ __/ __ \\ \\ \\/\\__, `\\\n \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n \\/___/ \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/ \\/____/\\/___/ \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n \\ \\____/ \n \\/___/\n \nUnderscore.js is a utility-belt library for JavaScript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.3","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"47ac53683daf832bfa952e1774417da47817ae42","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz"},"readme":" __ \n /\\ \\ __ \n __ __ ___ \\_\\ \\ __ _ __ ____ ___ ___ _ __ __ /\\_\\ ____ \n /\\ \\/\\ \\ /' _ `\\ /'_ \\ /'__`\\/\\ __\\/ ,__\\ / ___\\ / __`\\/\\ __\\/'__`\\ \\/\\ \\ /',__\\ \n \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\ __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\ __/ __ \\ \\ \\/\\__, `\\\n \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n \\/___/ \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/ \\/____/\\/___/ \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n \\ \\____/ \n \\/___/\n \nUnderscore.js is a utility-belt library for JavaScript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}}},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"time":{"1.0.3":"2011-12-07T15:12:18.045Z","1.0.4":"2011-12-07T15:12:18.045Z","1.1.0":"2011-12-07T15:12:18.045Z","1.1.1":"2011-12-07T15:12:18.045Z","1.1.2":"2011-12-07T15:12:18.045Z","1.1.3":"2011-12-07T15:12:18.045Z","1.1.4":"2011-12-07T15:12:18.045Z","1.1.5":"2011-12-07T15:12:18.045Z","1.1.6":"2011-12-07T15:12:18.045Z","1.1.7":"2011-12-07T15:12:18.045Z","1.2.0":"2011-12-07T15:12:18.045Z","1.2.1":"2011-12-07T15:12:18.045Z","1.2.2":"2011-11-14T20:28:47.115Z","1.2.3":"2011-12-07T15:12:18.045Z","1.2.4":"2012-01-09T17:23:14.818Z","1.3.0":"2012-01-11T16:41:38.459Z","1.3.1":"2012-01-23T22:57:36.474Z","1.3.2":"2012-04-09T18:38:14.345Z","1.3.3":"2012-04-10T14:43:48.089Z"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"users":{"vesln":true,"mvolkmann":true,"lancehunt":true,"mikl":true,"linus":true,"vasc":true,"bat":true,"dmalam":true,"mbrevoort":true,"danielr":true,"rsimoes":true,"thlorenz":true}}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/test/initialize.js b/deps/npm/node_modules/npm-registry-client/test/initialize.js
index aefbe626fce210..3856b67b45e0f8 100644
--- a/deps/npm/node_modules/npm-registry-client/test/initialize.js
+++ b/deps/npm/node_modules/npm-registry-client/test/initialize.js
@@ -1,4 +1,5 @@
var test = require('tap').test
+var url = require('url')
// var server = require('./lib/server.js')
var Client = require('../')
@@ -29,6 +30,39 @@ test('defaulted initialization', function (t) {
var HttpAgent = require('http').Agent
t.ok(options.agent instanceof HttpAgent, 'got an HTTP agent for an HTTP URL')
+ t.equal(options.agent.maxSockets, 50, 'maxSockets set to a reasonable default')
+
+ t.end()
+})
+
+test('intializing with maxSockets set works for http', function (t) {
+ var client = new Client({ maxSockets: Infinity })
+ var options = client.initialize(
+ url.parse('http://localhost:1337/'),
+ 'GET',
+ 'application/json',
+ {}
+ )
+
+ var HttpAgent = require('http').Agent
+ t.ok(options.agent instanceof HttpAgent, 'got an HTTP agent for an HTTP URL')
+ t.equal(options.agent.maxSockets, Infinity, 'request uses configured value for maxSockets')
+
+ t.end()
+})
+
+test('intializing with maxSockets set works for https', function (t) {
+ var client = new Client({ maxSockets: Infinity })
+ var options = client.initialize(
+ url.parse('https://localhost:1337/'),
+ 'GET',
+ 'application/json',
+ {}
+ )
+
+ var HttpsAgent = require('https').Agent
+ t.ok(options.agent instanceof HttpsAgent, 'got an HTTPS agent for an HTTPS URL')
+ t.equal(options.agent.maxSockets, Infinity, 'request uses configured value for maxSockets')
t.end()
})
diff --git a/deps/npm/node_modules/npmlog/log.js b/deps/npm/node_modules/npmlog/log.js
index d70004d2ec252c..8d781f17319084 100644
--- a/deps/npm/node_modules/npmlog/log.js
+++ b/deps/npm/node_modules/npmlog/log.js
@@ -100,9 +100,10 @@ log.clearProgress = function () {
this.gauge.hide()
}
-log.showProgress = function (name) {
+log.showProgress = function (name, completed) {
if (!this.progressEnabled) return
- this.gauge.show(name, this.tracker.completed())
+ if (completed == null) completed = this.tracker.completed()
+ this.gauge.show(name, completed)
}.bind(log) // bind for use in tracker's on-change listener
// temporarily stop emitting, but don't drop
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md
new file mode 100644
index 00000000000000..e990b86ddfb416
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md
@@ -0,0 +1,19 @@
+Hi, figured we could actually use a changelog now:
+
+## 1.1.1 2016-01-29
+
+* Fix a typo in stream completion tracker
+
+## 1.1.0 2016-01-29
+
+* Rewrote completion percent computation to be low impact– no more walking a
+ tree of completion groups every time we need this info. Previously, with
+ medium sized tree of completion groups, even a relatively modest number of
+ calls to the top level `completed()` method would result in absurd numbers
+ of calls overall as it walked down the tree. We now, instead, keep track as
+ we bubble up changes, so the computation is limited to when data changes and
+ to the depth of that one branch, instead of _every_ node. (Plus, we were already
+ incurring _this_ cost, since we already bubbled out changes.)
+* Moved different tracker types out to their own files.
+* Made tests test for TOO MANY events too.
+* Standarized the source code formatting
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md
index cff489810b4f54..f8789800aa784c 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md
@@ -62,8 +62,18 @@ This will result in one or more `change` events being emitted.
Events
======
-All tracker objects emit `change` events with an argument of the name of the
-thing changing.
+All tracker objects emit `change` events with the following arguments:
+
+```
+function (name, completed, tracker)
+```
+
+`name` is the name of the tracker that originally emitted the event,
+or if it didn't have one, the first containing tracker group that had one.
+
+`completed` is the percent complete (as returned by `tracker.completed()` method).
+
+`tracker` is the tracker object that you are listening for events on.
TrackerGroup
============
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js
index 9e7711935a32c0..57d8743fdad177 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js
@@ -1,132 +1,4 @@
-"use strict"
-var stream = require("readable-stream")
-var EventEmitter = require("events").EventEmitter
-var util = require("util")
-var delegate = require("delegates")
-
-function noteChange (trackerGroup) {
- return function (name) {
- trackerGroup.emit('change', name || trackerGroup.name);
- }
-}
-
-var TrackerGroup = exports.TrackerGroup = function (name) {
- EventEmitter.call(this)
- this.name = name
- this.trackGroup = []
- this.totalWeight = 0
- this.noteChange = noteChange(this)
-}
-util.inherits(TrackerGroup, EventEmitter)
-
-TrackerGroup.prototype.completed = function () {
- if (this.trackGroup.length==0) return 0
- var valPerWeight = 1 / this.totalWeight
- var completed = 0
- for (var i = 0, len = this.trackGroup.length; i < len; i++){
- var group = this.trackGroup[i];
- completed += valPerWeight * group.weight * group.completed()
- }
- return completed
-}
-
-TrackerGroup.prototype.addUnit = function (unit, weight, noChange) {
- unit.weight = weight || 1
- this.totalWeight += unit.weight
- this.trackGroup.push(unit)
- // Bubble events back up
- unit.on("change", this.noteChange)
- if (! noChange) this.emit("change", this.name)
- return unit
-}
-
-TrackerGroup.prototype.newGroup = function (name, weight) {
- return this.addUnit(new TrackerGroup(name), weight)
-}
-
-TrackerGroup.prototype.newItem = function (name, todo, weight) {
- return this.addUnit(new Tracker(name, todo), weight)
-}
-
-TrackerGroup.prototype.newStream = function (name, todo, weight) {
- return this.addUnit(new TrackerStream(name, todo), weight)
-}
-
-TrackerGroup.prototype.finish = function () {
- if (! this.trackGroup.length) this.addUnit(new Tracker(), 1, true)
- for (var i = 0, len = this.trackGroup.length; i < len; i++) {
- var group = this.trackGroup[i]
- group.removeListener("change", this.noteChange)
- group.finish()
- }
- this.emit("change", this.name)
-}
-
-var buffer = " "
-TrackerGroup.prototype.debug = function (depth) {
- depth = depth || 0
- var indent = depth ? buffer.substr(0,depth) : ""
- var output = indent + (this.name||"top") + ": " + this.completed() + "\n"
- this.trackGroup.forEach(function(T) {
- if (T instanceof TrackerGroup) {
- output += T.debug(depth + 1)
- }
- else {
- output += indent + " " + T.name + ": " + T.completed() + "\n"
- }
- })
- return output
-}
-
-var Tracker = exports.Tracker = function (name,todo) {
- EventEmitter.call(this)
- this.name = name
- this.workDone = 0
- this.workTodo = todo || 0
-}
-util.inherits(Tracker, EventEmitter)
-
-Tracker.prototype.completed = function () {
- return this.workTodo === 0 ? 0 : this.workDone / this.workTodo
-}
-
-Tracker.prototype.addWork = function (work) {
- this.workTodo += work
- this.emit("change", this.name)
-}
-
-Tracker.prototype.completeWork = function (work) {
- this.workDone += work
- if (this.workDone > this.workTodo) this.workDone = this.workTodo
- this.emit("change", this.name)
-}
-
-Tracker.prototype.finish = function () {
- this.workTodo = this.workDone = 1
- this.emit("change", this.name)
-}
-
-
-var TrackerStream = exports.TrackerStream = function (name, size, options) {
- stream.Transform.call(this, options)
- this.tracker = new Tracker(name, size)
- this.name = name
- var self = this
- this.tracker.on("change", function (name) { self.emit("change", name) })
-}
-util.inherits(TrackerStream, stream.Transform)
-
-TrackerStream.prototype._transform = function (data, encoding, cb) {
- this.tracker.completeWork(data.length ? data.length : 1)
- this.push(data)
- cb()
-}
-
-TrackerStream.prototype._flush = function (cb) {
- this.tracker.finish()
- cb()
-}
-
-delegate(TrackerStream.prototype, "tracker")
- .method("completed")
- .method("addWork")
+'use strict'
+exports.TrackerGroup = require('./tracker-group.js')
+exports.Tracker = require('./tracker.js')
+exports.TrackerStream = require('./tracker-stream.js')
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
index fa2d7c62eb7e39..eb2dea38b8b726 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
@@ -1,36 +1,40 @@
{
"_args": [
[
- "are-we-there-yet@~1.0.6",
+ "are-we-there-yet@~1.1.2",
"/Users/rebecca/code/npm/node_modules/npmlog"
]
],
- "_from": "are-we-there-yet@>=1.0.6 <1.1.0",
- "_id": "are-we-there-yet@1.0.6",
+ "_from": "are-we-there-yet@>=1.1.2 <1.2.0",
+ "_id": "are-we-there-yet@1.1.2",
"_inCache": true,
"_installable": true,
"_location": "/npmlog/are-we-there-yet",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "4.2.2",
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/are-we-there-yet-1.1.2.tgz_1458084397358_0.15847722673788667"
+ },
"_npmUser": {
"email": "me@re-becca.org",
"name": "iarna"
},
- "_npmVersion": "3.6.0",
+ "_npmVersion": "3.8.1",
"_phantomChildren": {},
"_requested": {
"name": "are-we-there-yet",
- "raw": "are-we-there-yet@~1.0.6",
- "rawSpec": "~1.0.6",
+ "raw": "are-we-there-yet@~1.1.2",
+ "rawSpec": "~1.1.2",
"scope": null,
- "spec": ">=1.0.6 <1.1.0",
+ "spec": ">=1.1.2 <1.2.0",
"type": "range"
},
"_requiredBy": [
"/npmlog"
],
- "_shasum": "a2d28c93102aa6cc96245a26cb954de06ec53f0c",
+ "_shasum": "80e470e95a084794fe1899262c5667c6e88de1b3",
"_shrinkwrap": null,
- "_spec": "are-we-there-yet@~1.0.6",
+ "_spec": "are-we-there-yet@~1.1.2",
"_where": "/Users/rebecca/code/npm/node_modules/npmlog",
"author": {
"name": "Rebecca Turner",
@@ -45,21 +49,22 @@
},
"description": "Keep track of the overall completion of many dispirate processes",
"devDependencies": {
- "tap": "^5.2.0"
+ "standard": "^6.0.8",
+ "tap": "^5.7.0"
},
"directories": {},
"dist": {
- "shasum": "a2d28c93102aa6cc96245a26cb954de06ec53f0c",
- "tarball": "http://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz"
+ "shasum": "80e470e95a084794fe1899262c5667c6e88de1b3",
+ "tarball": "http://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz"
},
- "gitHead": "5f19c8b6f9c5afb8b0b17308cb9d66f7027ae526",
+ "gitHead": "dd5706e2204cb681e78031d0ffe156ed4cc75823",
"homepage": "https://github.com/iarna/are-we-there-yet",
"license": "ISC",
"main": "index.js",
"maintainers": [
{
- "name": "iarna",
- "email": "me@re-becca.org"
+ "email": "me@re-becca.org",
+ "name": "iarna"
}
],
"name": "are-we-there-yet",
@@ -70,7 +75,7 @@
"url": "git+https://github.com/iarna/are-we-there-yet.git"
},
"scripts": {
- "test": "tap test/*.js"
+ "test": "standard && tap test/*.js"
},
- "version": "1.0.6"
+ "version": "1.1.2"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js
new file mode 100644
index 00000000000000..2aa7c05c5864fa
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js
@@ -0,0 +1,29 @@
+'use strict'
+var util = require('util')
+
+module.exports = function (obj, event, next) {
+ var timeout = setTimeout(gotTimeout, 10)
+ obj.once(event, gotResult)
+
+ function gotTimeout () {
+ obj.removeListener(event, gotResult)
+ next(new Error('Timeout listening for ' + event))
+ }
+ var result = []
+ function gotResult () {
+ result = Array.prototype.slice.call(arguments)
+ clearTimeout(timeout)
+ timeout = setTimeout(gotNoMoreResults, 10)
+ obj.once(event, gotTooManyResults)
+ }
+ function gotNoMoreResults () {
+ obj.removeListener(event, gotTooManyResults)
+ var args = [null].concat(result)
+ next.apply(null, args)
+ }
+ function gotTooManyResults () {
+ var secondResult = Array.prototype.slice.call(arguments)
+ clearTimeout(timeout)
+ next(new Error('Got too many results, first ' + util.inspect(result) + ' and then ' + util.inspect(secondResult)))
+ }
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
index 18c31c32cfda1e..374c7739d0c011 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
@@ -1,56 +1,57 @@
-"use strict"
-var test = require("tap").test
-var Tracker = require("../index.js").Tracker
-
-var timeoutError = new Error("timeout")
-var testEvent = function (obj,event,next) {
- var timeout = setTimeout(function(){
- obj.removeListener(event, eventHandler)
- next(timeoutError)
- }, 10)
- var eventHandler = function () {
- var args = Array.prototype.slice.call(arguments)
- args.unshift(null)
- clearTimeout(timeout)
- next.apply(null, args)
- }
- obj.once(event, eventHandler)
-}
+'use strict'
+var test = require('tap').test
+var Tracker = require('../index.js').Tracker
+
+var testEvent = require('./lib/test-event.js')
-test("Tracker", function (t) {
- t.plan(10)
+var name = 'test'
- var name = "test"
- var track = new Tracker(name)
+test('initialization', function (t) {
+ var simple = new Tracker(name)
- t.is(track.completed(), 0, "Nothing todo is 0 completion")
+ t.is(simple.completed(), 0, 'Nothing todo is 0 completion')
+ t.done()
+})
- var todo = 100
+var track
+var todo = 100
+test('completion', function (t) {
track = new Tracker(name, todo)
- t.is(track.completed(), 0, "Nothing done is 0 completion")
+ t.is(track.completed(), 0, 'Nothing done is 0 completion')
- testEvent(track, "change", afterCompleteWork)
- track.completeWork(100)
- function afterCompleteWork(er, onChangeName) {
- t.is(er, null, "completeWork: on change event fired")
- t.is(onChangeName, name, "completeWork: on change emits the correct name")
- }
- t.is(track.completed(), 1, "completeWork: 100% completed")
+ testEvent(track, 'change', afterCompleteWork)
+
+ track.completeWork(todo)
+ t.is(track.completed(), 1, 'completeWork: 100% completed')
- testEvent(track, "change", afterAddWork)
- track.addWork(100)
- function afterAddWork(er, onChangeName) {
- t.is(er, null, "addWork: on change event fired")
- t.is(onChangeName, name, "addWork: on change emits the correct name")
+ function afterCompleteWork (er, onChangeName) {
+ t.is(er, null, 'completeWork: on change event fired')
+ t.is(onChangeName, name, 'completeWork: on change emits the correct name')
+ t.done()
}
- t.is(track.completed(), 0.5, "addWork: 50% completed")
+})
+test('add more work', function (t) {
+ testEvent(track, 'change', afterAddWork)
+ track.addWork(todo)
+ t.is(track.completed(), 0.5, 'addWork: 50% completed')
+ function afterAddWork (er, onChangeName) {
+ t.is(er, null, 'addWork: on change event fired')
+ t.is(onChangeName, name, 'addWork: on change emits the correct name')
+ t.done()
+ }
+})
+test('complete more work', function (t) {
track.completeWork(200)
- t.is(track.completed(), 1, "completeWork: Over completion is still only 100% complete")
+ t.is(track.completed(), 1, 'completeWork: Over completion is still only 100% complete')
+ t.done()
+})
- track = new Tracker(name, todo)
- track.completeWork(50)
- track.finish()
- t.is(track.completed(), 1, "finish: Explicitly finishing moves to 100%")
+test('finish is always 100%', function (t) {
+ var finishtest = new Tracker(name, todo)
+ finishtest.completeWork(50)
+ finishtest.finish()
+ t.is(finishtest.completed(), 1, 'finish: Explicitly finishing moves to 100%')
+ t.done()
})
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
index f97e1034ff9e07..799a7670b65934 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
@@ -1,87 +1,96 @@
-"use strict"
-var test = require("tap").test
-var Tracker = require("../index.js").Tracker
-var TrackerGroup = require("../index.js").TrackerGroup
+'use strict'
+var test = require('tap').test
+var TrackerGroup = require('../index.js').TrackerGroup
+var testEvent = require('./lib/test-event.js')
-var timeoutError = new Error("timeout")
-var testEvent = function (obj,event,next) {
- var timeout = setTimeout(function(){
- obj.removeListener(event, eventHandler)
- next(timeoutError)
- }, 10)
- var eventHandler = function () {
- var args = Array.prototype.slice.call(arguments)
- args.unshift(null)
- clearTimeout(timeout)
- next.apply(null, args)
- }
- obj.once(event, eventHandler)
-}
-
-test("TrackerGroup", function (t) {
- var name = "test"
+test('TrackerGroup', function (t) {
+ var name = 'test'
var track = new TrackerGroup(name)
- t.is(track.completed(), 0, "Nothing todo is 0 completion")
- testEvent(track, "change", afterFinishEmpty)
+ t.is(track.completed(), 0, 'Nothing todo is 0 completion')
+ testEvent(track, 'change', afterFinishEmpty)
track.finish()
var a, b
- function afterFinishEmpty(er, onChangeName) {
- t.is(er, null, "finishEmpty: on change event fired")
- t.is(onChangeName, name, "finishEmpty: on change emits the correct name")
- t.is(track.completed(), 1, "finishEmpty: Finishing an empty group actually finishes it")
+ function afterFinishEmpty (er, onChangeName, completion) {
+ t.is(er, null, 'finishEmpty: on change event fired')
+ t.is(onChangeName, name, 'finishEmpty: on change emits the correct name')
+ t.is(completion, 1, 'finishEmpty: passed through completion was correct')
+ t.is(track.completed(), 1, 'finishEmpty: Finishing an empty group actually finishes it')
track = new TrackerGroup(name)
- a = track.newItem("a", 10, 1)
- b = track.newItem("b", 10, 1)
- t.is(track.completed(), 0, "Initially empty")
- testEvent(track, "change", afterCompleteWork)
+ a = track.newItem('a', 10, 1)
+ b = track.newItem('b', 10, 1)
+ t.is(track.completed(), 0, 'Initially empty')
+ testEvent(track, 'change', afterCompleteWork)
a.completeWork(5)
}
- function afterCompleteWork(er, onChangeName) {
- t.is(er, null, "on change event fired")
- t.is(onChangeName, "a", "on change emits the correct name")
- t.is(track.completed(), 0.25, "Complete half of one is a quarter overall")
- testEvent(track, "change", afterFinishAll)
+ function afterCompleteWork (er, onChangeName, completion) {
+ t.is(er, null, 'on change event fired')
+ t.is(onChangeName, 'a', 'on change emits the correct name')
+ t.is(completion, 0.25, 'Complete half of one is a quarter overall')
+ t.is(track.completed(), 0.25, 'Complete half of one is a quarter overall')
+ testEvent(track, 'change', afterFinishAll)
track.finish()
}
- function afterFinishAll(er, onChangeName) {
- t.is(er, null, "finishAll: on change event fired")
- t.is(onChangeName, name, "finishAll: on change emits the correct name")
- t.is(track.completed(), 1, "Finishing everything ")
+ function afterFinishAll (er, onChangeName, completion) {
+ t.is(er, null, 'finishAll: on change event fired')
+ t.is(onChangeName, name, 'finishAll: on change emits the correct name')
+ t.is(completion, 1, 'Finishing everything ')
+ t.is(track.completed(), 1, 'Finishing everything ')
track = new TrackerGroup(name)
- a = track.newItem("a", 10, 2)
- b = track.newItem("b", 10, 1)
- t.is(track.completed(), 0, "weighted: Initially empty")
- testEvent(track, "change", afterWeightedCompleteWork)
+ a = track.newItem('a', 10, 2)
+ b = track.newItem('b', 10, 1)
+ t.is(track.completed(), 0, 'weighted: Initially empty')
+ testEvent(track, 'change', afterWeightedCompleteWork)
a.completeWork(5)
}
- function afterWeightedCompleteWork(er, onChangeName) {
- t.is(er, null, "weighted: on change event fired")
- t.is(onChangeName, "a", "weighted: on change emits the correct name")
- t.is(Math.round(track.completed()*100), 33, "weighted: Complete half of double weighted")
- testEvent(track, "change", afterWeightedFinishAll)
+ function afterWeightedCompleteWork (er, onChangeName, completion) {
+ t.is(er, null, 'weighted: on change event fired')
+ t.is(onChangeName, 'a', 'weighted: on change emits the correct name')
+ t.is(Math.floor(completion * 100), 33, 'weighted: Complete half of double weighted')
+ t.is(Math.floor(track.completed() * 100), 33, 'weighted: Complete half of double weighted')
+ testEvent(track, 'change', afterWeightedFinishAll)
track.finish()
}
- function afterWeightedFinishAll(er, onChangeName) {
- t.is(er, null, "weightedFinishAll: on change event fired")
- t.is(onChangeName, name, "weightedFinishAll: on change emits the correct name")
- t.is(track.completed(), 1, "weightedFinishaAll: Finishing everything ")
+ function afterWeightedFinishAll (er, onChangeName, completion) {
+ t.is(er, null, 'weightedFinishAll: on change event fired')
+ t.is(onChangeName, name, 'weightedFinishAll: on change emits the correct name')
+ t.is(completion, 1, 'weightedFinishaAll: Finishing everything ')
+ t.is(track.completed(), 1, 'weightedFinishaAll: Finishing everything ')
track = new TrackerGroup(name)
- a = track.newGroup("a", 10)
- b = track.newGroup("b", 10)
- var a1 = a.newItem("a.1",10)
+ a = track.newGroup('a', 10)
+ b = track.newGroup('b', 10)
+ var a1 = a.newItem('a.1', 10)
a1.completeWork(5)
- t.is(track.completed(), 0.25, "nested: Initially quarter done")
- testEvent(track, "change", afterNestedComplete)
+ t.is(track.completed(), 0.25, 'nested: Initially quarter done')
+ testEvent(track, 'change', afterNestedComplete)
b.finish()
}
- function afterNestedComplete(er, onChangeName) {
- t.is(er, null, "nestedComplete: on change event fired")
- t.is(onChangeName, "b", "nestedComplete: on change emits the correct name")
- t.is(track.completed(), 0.75, "nestedComplete: Finishing everything ")
+ function afterNestedComplete (er, onChangeName, completion) {
+ t.is(er, null, 'nestedComplete: on change event fired')
+ t.is(onChangeName, 'b', 'nestedComplete: on change emits the correct name')
+ t.is(completion, 0.75, 'nestedComplete: Finishing everything ')
+ t.is(track.completed(), 0.75, 'nestedComplete: Finishing everything ')
t.end()
}
})
+
+test('cycles', function (t) {
+ var track = new TrackerGroup('top')
+ testCycle(track, track)
+ var layer1 = track.newGroup('layer1')
+ testCycle(layer1, track)
+ t.end()
+
+ function testCycle (addTo, toAdd) {
+ try {
+ addTo.addUnit(toAdd)
+ t.fail(toAdd.name)
+ } catch (ex) {
+ console.log(ex)
+ t.pass(toAdd.name)
+ }
+ }
+})
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
index 72b6043097f477..65f04b03769190 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
@@ -1,65 +1,51 @@
-"use strict"
-var test = require("tap").test
-var util = require("util")
-var stream = require("readable-stream")
-var TrackerStream = require("../index.js").TrackerStream
-
-var timeoutError = new Error("timeout")
-var testEvent = function (obj,event,next) {
- var timeout = setTimeout(function(){
- obj.removeListener(event, eventHandler)
- next(timeoutError)
- }, 10)
- var eventHandler = function () {
- var args = Array.prototype.slice.call(arguments)
- args.unshift(null)
- clearTimeout(timeout)
- next.apply(null, args)
- }
- obj.once(event, eventHandler)
-}
+'use strict'
+var test = require('tap').test
+var util = require('util')
+var stream = require('readable-stream')
+var TrackerStream = require('../index.js').TrackerStream
+var testEvent = require('./lib/test-event.js')
var Sink = function () {
- stream.Writable.apply(this,arguments)
+ stream.Writable.apply(this, arguments)
}
util.inherits(Sink, stream.Writable)
Sink.prototype._write = function (data, encoding, cb) {
cb()
}
-test("TrackerStream", function (t) {
+test('TrackerStream', function (t) {
t.plan(9)
- var name = "test"
+ var name = 'test'
var track = new TrackerStream(name)
- t.is(track.completed(), 0, "Nothing todo is 0 completion")
+ t.is(track.completed(), 0, 'Nothing todo is 0 completion')
var todo = 10
track = new TrackerStream(name, todo)
- t.is(track.completed(), 0, "Nothing done is 0 completion")
+ t.is(track.completed(), 0, 'Nothing done is 0 completion')
track.pipe(new Sink())
- testEvent(track, "change", afterCompleteWork)
- track.write("0123456789")
- function afterCompleteWork(er, onChangeName) {
- t.is(er, null, "write: on change event fired")
- t.is(onChangeName, name, "write: on change emits the correct name")
- t.is(track.completed(), 1, "write: 100% completed")
+ testEvent(track, 'change', afterCompleteWork)
+ track.write('0123456789')
+ function afterCompleteWork (er, onChangeName) {
+ t.is(er, null, 'write: on change event fired')
+ t.is(onChangeName, name, 'write: on change emits the correct name')
+ t.is(track.completed(), 1, 'write: 100% completed')
- testEvent(track, "change", afterAddWork)
+ testEvent(track, 'change', afterAddWork)
track.addWork(10)
}
- function afterAddWork(er, onChangeName) {
- t.is(er, null, "addWork: on change event fired")
- t.is(track.completed(), 0.5, "addWork: 50% completed")
+ function afterAddWork (er, onChangeName) {
+ t.is(er, null, 'addWork: on change event fired')
+ t.is(track.completed(), 0.5, 'addWork: 50% completed')
- testEvent(track, "change", afterAllWork)
- track.write("ABCDEFGHIJKLMNOPQRST")
+ testEvent(track, 'change', afterAllWork)
+ track.write('ABCDEFGHIJKLMNOPQRST')
}
- function afterAllWork(er) {
- t.is(er, null, "allWork: on change event fired")
- t.is(track.completed(), 1, "allWork: 100% completed")
+ function afterAllWork (er) {
+ t.is(er, null, 'allWork: on change event fired')
+ t.is(track.completed(), 1, 'allWork: 100% completed')
}
})
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js
new file mode 100644
index 00000000000000..6f436875578a7a
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js
@@ -0,0 +1,11 @@
+'use strict'
+var EventEmitter = require('events').EventEmitter
+var util = require('util')
+
+var trackerId = 0
+var TrackerBase = module.exports = function (name) {
+ EventEmitter.call(this)
+ this.id = ++trackerId
+ this.name = name
+}
+util.inherits(TrackerBase, EventEmitter)
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js
new file mode 100644
index 00000000000000..9759e1226db046
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js
@@ -0,0 +1,107 @@
+'use strict'
+var util = require('util')
+var TrackerBase = require('./tracker-base.js')
+var Tracker = require('./tracker.js')
+var TrackerStream = require('./tracker-stream.js')
+
+var TrackerGroup = module.exports = function (name) {
+ TrackerBase.call(this, name)
+ this.parentGroup = null
+ this.trackers = []
+ this.completion = {}
+ this.weight = {}
+ this.totalWeight = 0
+ this.finished = false
+ this.bubbleChange = bubbleChange(this)
+}
+util.inherits(TrackerGroup, TrackerBase)
+
+function bubbleChange (trackerGroup) {
+ return function (name, completed, tracker) {
+ trackerGroup.completion[tracker.id] = completed
+ if (trackerGroup.finished) return
+ trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup)
+ }
+}
+
+TrackerGroup.prototype.nameInTree = function () {
+ var names = []
+ var from = this
+ while (from) {
+ names.unshift(from.name)
+ from = from.parentGroup
+ }
+ return names.join('/')
+}
+
+TrackerGroup.prototype.addUnit = function (unit, weight) {
+ if (unit.addUnit) {
+ var toTest = this
+ while (toTest) {
+ if (unit === toTest) {
+ throw new Error(
+ 'Attempted to add tracker group ' +
+ unit.name + ' to tree that already includes it ' +
+ this.nameInTree(this))
+ }
+ toTest = toTest.parentGroup
+ }
+ unit.parentGroup = this
+ }
+ this.weight[unit.id] = weight || 1
+ this.totalWeight += this.weight[unit.id]
+ this.trackers.push(unit)
+ this.completion[unit.id] = unit.completed()
+ unit.on('change', this.bubbleChange)
+ if (!this.finished) this.emit('change', unit.name, this.completion[unit.id], unit)
+ return unit
+}
+
+TrackerGroup.prototype.completed = function () {
+ if (this.trackers.length === 0) return 0
+ var valPerWeight = 1 / this.totalWeight
+ var completed = 0
+ for (var ii = 0; ii < this.trackers.length; ii++) {
+ var trackerId = this.trackers[ii].id
+ completed += valPerWeight * this.weight[trackerId] * this.completion[trackerId]
+ }
+ return completed
+}
+
+TrackerGroup.prototype.newGroup = function (name, weight) {
+ return this.addUnit(new TrackerGroup(name), weight)
+}
+
+TrackerGroup.prototype.newItem = function (name, todo, weight) {
+ return this.addUnit(new Tracker(name, todo), weight)
+}
+
+TrackerGroup.prototype.newStream = function (name, todo, weight) {
+ return this.addUnit(new TrackerStream(name, todo), weight)
+}
+
+TrackerGroup.prototype.finish = function () {
+ this.finished = true
+ if (!this.trackers.length) this.addUnit(new Tracker(), 1, true)
+ for (var ii = 0; ii < this.trackers.length; ii++) {
+ var tracker = this.trackers[ii]
+ tracker.finish()
+ tracker.removeListener('change', this.bubbleChange)
+ }
+ this.emit('change', this.name, 1, this)
+}
+
+var buffer = ' '
+TrackerGroup.prototype.debug = function (depth) {
+ depth = depth || 0
+ var indent = depth ? buffer.substr(0, depth) : ''
+ var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n'
+ this.trackers.forEach(function (tracker) {
+ if (tracker instanceof TrackerGroup) {
+ output += tracker.debug(depth + 1)
+ } else {
+ output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n'
+ }
+ })
+ return output
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js
new file mode 100644
index 00000000000000..fb9598ed4e9c31
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js
@@ -0,0 +1,35 @@
+'use strict'
+var util = require('util')
+var stream = require('readable-stream')
+var delegate = require('delegates')
+var Tracker = require('./tracker.js')
+
+var TrackerStream = module.exports = function (name, size, options) {
+ stream.Transform.call(this, options)
+ this.tracker = new Tracker(name, size)
+ this.name = name
+ this.id = this.tracker.id
+ this.tracker.on('change', delegateChange(this))
+}
+util.inherits(TrackerStream, stream.Transform)
+
+function delegateChange (trackerStream) {
+ return function (name, completion, tracker) {
+ trackerStream.emit('change', name, completion, trackerStream)
+ }
+}
+
+TrackerStream.prototype._transform = function (data, encoding, cb) {
+ this.tracker.completeWork(data.length ? data.length : 1)
+ this.push(data)
+ cb()
+}
+
+TrackerStream.prototype._flush = function (cb) {
+ this.tracker.finish()
+ cb()
+}
+
+delegate(TrackerStream.prototype, 'tracker')
+ .method('completed')
+ .method('addWork')
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js
new file mode 100644
index 00000000000000..68c2339b45409a
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js
@@ -0,0 +1,30 @@
+'use strict'
+var util = require('util')
+var TrackerBase = require('./tracker-base.js')
+
+var Tracker = module.exports = function (name, todo) {
+ TrackerBase.call(this, name)
+ this.workDone = 0
+ this.workTodo = todo || 0
+}
+util.inherits(Tracker, TrackerBase)
+
+Tracker.prototype.completed = function () {
+ return this.workTodo === 0 ? 0 : this.workDone / this.workTodo
+}
+
+Tracker.prototype.addWork = function (work) {
+ this.workTodo += work
+ this.emit('change', this.name, this.completed(), this)
+}
+
+Tracker.prototype.completeWork = function (work) {
+ this.workDone += work
+ if (this.workDone > this.workTodo) this.workDone = this.workTodo
+ this.emit('change', this.name, this.completed(), this)
+}
+
+Tracker.prototype.finish = function () {
+ this.workTodo = this.workDone = 1
+ this.emit('change', this.name, 1, this)
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/README.md
index ca0a8cd773d6d2..337dc9d8d45e14 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/README.md
@@ -1,7 +1,7 @@
gauge
=====
-A nearly stateless terminal based horizontal guage / progress bar.
+A nearly stateless terminal based horizontal gauge / progress bar.
```javascript
var Gauge = require("gauge")
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
index 3e4c3c1990abff..f43453bf2e04eb 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
@@ -1,4 +1,4 @@
-# lodash.pad v3.2.1
+# lodash.pad v4.1.0
The [lodash](https://lodash.com/) method `_.pad` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var pad = require('lodash.pad');
```
-See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/3.2.1-npm-packages/lodash.pad) for more details.
+See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.pad) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
index 9ad6fab39d35a6..6220e0f831a714 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
@@ -1,12 +1,13 @@
/**
- * lodash 3.2.1 (Custom Build)
+ * lodash 4.1.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var repeat = require('lodash.repeat');
+var repeat = require('lodash.repeat'),
+ toString = require('lodash.tostring');
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -15,8 +16,7 @@ var INFINITY = 1 / 0,
/** `Object#toString` result references. */
var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+ genTag = '[object GeneratorFunction]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -59,7 +59,7 @@ var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq,
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
-/** Built-in method references without a dependency on `global`. */
+/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
/**
@@ -92,7 +92,7 @@ function stringToArray(string) {
}
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
@@ -100,17 +100,10 @@ var objectProto = global.Object.prototype;
*/
var objectToString = objectProto.toString;
-/** Built-in value references. */
-var Symbol = global.Symbol;
-
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeCeil = Math.ceil,
nativeFloor = Math.floor;
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = Symbol ? symbolProto.toString : undefined;
-
/**
* Creates the padding for `string` based on `length`. The `chars` string
* is truncated if the number of characters exceeds `length`.
@@ -185,60 +178,10 @@ function isFunction(value) {
* // => false
*/
function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
}
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
/**
* Converts `value` to an integer.
*
@@ -313,41 +256,6 @@ function toNumber(value) {
: (reIsBadHex.test(value) ? NAN : +value);
}
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
/**
* Pads `string` on the left and right sides if it's shorter than `length`.
* Padding characters are truncated if they can't be evenly divided by `length`.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE
index b054ca5a3ac7d6..bcbe13d67a9621 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/LICENSE
@@ -1,22 +1,23 @@
+The MIT License (MIT)
+
Copyright 2012-2016 The Dojo Foundation
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md
index 134f8303b85839..33b447cd53e779 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md
@@ -1,4 +1,4 @@
-# lodash.repeat v3.1.1
+# lodash.repeat v4.0.0
The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var repeat = require('lodash.repeat');
```
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.repeat) for more details.
+See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js
index 1103d1f165117c..7a54e85714c367 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/index.js
@@ -1,11 +1,12 @@
/**
- * lodash 3.1.1 (Custom Build)
+ * lodash 4.0.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
+var toString = require('lodash.tostring');
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -15,8 +16,7 @@ var INFINITY = 1 / 0,
/** `Object#toString` result references. */
var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+ genTag = '[object GeneratorFunction]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -30,11 +30,11 @@ var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;
-/** Built-in method references without a dependency on `global`. */
+/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
@@ -42,16 +42,9 @@ var objectProto = global.Object.prototype;
*/
var objectToString = objectProto.toString;
-/** Built-in value references. */
-var Symbol = global.Symbol;
-
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeFloor = Math.floor;
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = Symbol ? symbolProto.toString : undefined;
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -100,60 +93,10 @@ function isFunction(value) {
* // => false
*/
function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
}
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
/**
* Converts `value` to an integer.
*
@@ -228,41 +171,6 @@ function toNumber(value) {
: (reIsBadHex.test(value) ? NAN : +value);
}
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
/**
* Repeats the given string `n` times.
*
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json
index f0ba58bfaf6b55..b9946dcdbf7951 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/package.json
@@ -1,37 +1,41 @@
{
"_args": [
[
- "lodash.repeat@^3.0.0",
+ "lodash.repeat@^4.0.0",
"/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
]
],
- "_from": "lodash.repeat@>=3.0.0 <4.0.0",
- "_id": "lodash.repeat@3.1.1",
+ "_from": "lodash.repeat@>=4.0.0 <5.0.0",
+ "_id": "lodash.repeat@4.0.0",
"_inCache": true,
"_installable": true,
"_location": "/npmlog/gauge/lodash.pad/lodash.repeat",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.repeat-4.0.0.tgz_1455602646227_0.7481637196615338"
+ },
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
"name": "lodash.repeat",
- "raw": "lodash.repeat@^3.0.0",
- "rawSpec": "^3.0.0",
+ "raw": "lodash.repeat@^4.0.0",
+ "rawSpec": "^4.0.0",
"scope": null,
- "spec": ">=3.0.0 <4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
"/npmlog/gauge/lodash.pad"
],
- "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.1.tgz",
- "_shasum": "71c0768468951e57f72425485150bce37ad89357",
+ "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz",
+ "_shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22",
"_shrinkwrap": null,
- "_spec": "lodash.repeat@^3.0.0",
+ "_spec": "lodash.repeat@^4.0.0",
"_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad",
"author": {
"email": "john.david.dalton@gmail.com",
@@ -43,51 +47,50 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
+ "dependencies": {
+ "lodash.tostring": "^4.0.0"
+ },
"description": "The lodash method `_.repeat` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "71c0768468951e57f72425485150bce37ad89357",
- "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.1.tgz"
+ "shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22",
+ "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
- "lodash",
"lodash-modularized",
- "repeat",
- "stdlib",
- "util"
+ "repeat"
],
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash.repeat",
@@ -100,5 +103,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "3.1.1"
+ "version": "4.0.0"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
new file mode 100644
index 00000000000000..b3858fd68e7866
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
@@ -0,0 +1,18 @@
+# lodash.tostring v4.1.2
+
+The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.tostring
+```
+
+In Node.js:
+```js
+var toString = require('lodash.tostring');
+```
+
+See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.tostring) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
new file mode 100644
index 00000000000000..5c0e3e2b987eb6
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
@@ -0,0 +1,164 @@
+/**
+ * lodash 4.1.2 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string if it's not one. An empty string is returned
+ * for `null` and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (value == null) {
+ return '';
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+module.exports = toString;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
new file mode 100644
index 00000000000000..8ee1a50433d1f6
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
@@ -0,0 +1,106 @@
+{
+ "_args": [
+ [
+ "lodash.tostring@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ]
+ ],
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_id": "lodash.tostring@4.1.2",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/npmlog/gauge/lodash.pad/lodash.tostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.17",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/npmlog/gauge/lodash.pad",
+ "/npmlog/gauge/lodash.pad/lodash.repeat"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz",
+ "_shasum": "7d326a5cf64da4298f2fd35b688d848267535288",
+ "_shrinkwrap": null,
+ "_spec": "lodash.tostring@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The lodash method `_.toString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "7d326a5cf64da4298f2fd35b688d848267535288",
+ "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.tostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.1.2"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
index c65f97e2e537bc..2b83241d5057e0 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
@@ -1,37 +1,41 @@
{
"_args": [
[
- "lodash.pad@^3.0.0",
+ "lodash.pad@^4.1.0",
"/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge"
]
],
- "_from": "lodash.pad@>=3.0.0 <4.0.0",
- "_id": "lodash.pad@3.2.1",
+ "_from": "lodash.pad@>=4.1.0 <5.0.0",
+ "_id": "lodash.pad@4.1.0",
"_inCache": true,
"_installable": true,
"_location": "/npmlog/gauge/lodash.pad",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.pad-4.1.0.tgz_1455615516420_0.3130727862007916"
+ },
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
"name": "lodash.pad",
- "raw": "lodash.pad@^3.0.0",
- "rawSpec": "^3.0.0",
+ "raw": "lodash.pad@^4.1.0",
+ "rawSpec": "^4.1.0",
"scope": null,
- "spec": ">=3.0.0 <4.0.0",
+ "spec": ">=4.1.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
"/npmlog/gauge"
],
- "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.2.1.tgz",
- "_shasum": "f71e5c1e2c6447c8e1c818dc3f74e5c02e716de3",
+ "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz",
+ "_shasum": "dbbe3a9681fccb69970473a2263f50c196ac3aa9",
"_shrinkwrap": null,
- "_spec": "lodash.pad@^3.0.0",
+ "_spec": "lodash.pad@^4.1.0",
"_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge",
"author": {
"email": "john.david.dalton@gmail.com",
@@ -43,53 +47,51 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
"dependencies": {
- "lodash.repeat": "^3.0.0"
+ "lodash.repeat": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
},
"description": "The lodash method `_.pad` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "f71e5c1e2c6447c8e1c818dc3f74e5c02e716de3",
- "tarball": "http://registry.npmjs.org/lodash.pad/-/lodash.pad-3.2.1.tgz"
+ "shasum": "dbbe3a9681fccb69970473a2263f50c196ac3aa9",
+ "tarball": "http://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
- "lodash",
"lodash-modularized",
- "pad",
- "stdlib",
- "util"
+ "pad"
],
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash.pad",
@@ -102,5 +104,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "3.2.1"
+ "version": "4.1.0"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
new file mode 100644
index 00000000000000..ac84987849bf1a
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
@@ -0,0 +1,18 @@
+# lodash.padend v4.2.0
+
+The [lodash](https://lodash.com/) method `_.padEnd` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.padend
+```
+
+In Node.js:
+```js
+var padEnd = require('lodash.padend');
+```
+
+See the [documentation](https://lodash.com/docs#padEnd) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.padend) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
similarity index 66%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
index 4a32b912cb10f3..d7c813a1dbd015 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
@@ -1,12 +1,13 @@
/**
- * lodash 3.2.0 (Custom Build)
+ * lodash 4.2.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
-var repeat = require('lodash.repeat');
+var repeat = require('lodash.repeat'),
+ toString = require('lodash.tostring');
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -15,8 +16,7 @@ var INFINITY = 1 / 0,
/** `Object#toString` result references. */
var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+ genTag = '[object GeneratorFunction]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -32,13 +32,15 @@ var reIsOctal = /^0o[0-7]+$/i;
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
- rsComboRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
+ rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
+ rsComboSymbolsRange = '\\u20d0-\\u20f0',
rsVarRange = '\\ufe0e\\ufe0f';
/** Used to compose unicode capture groups. */
var rsAstral = '[' + rsAstralRange + ']',
- rsCombo = '[' + rsComboRange + ']',
- rsModifier = '(?:\\ud83c[\\udffb-\\udfff])',
+ rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
rsNonAstral = '[^' + rsAstralRange + ']',
rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
@@ -52,17 +54,18 @@ var reOptMod = rsModifier + '?',
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reComplexSymbol = RegExp(rsSymbol + rsSeq, 'g');
+var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
-var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
+var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
-/** Built-in method references without a dependency on `global`. */
+/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
/**
* Gets the number of symbols in `string`.
*
+ * @private
* @param {string} string The string to inspect.
* @returns {number} Returns the string size.
*/
@@ -89,7 +92,7 @@ function stringToArray(string) {
}
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
@@ -97,16 +100,8 @@ var objectProto = global.Object.prototype;
*/
var objectToString = objectProto.toString;
-/** Built-in value references. */
-var _Symbol = global.Symbol;
-
/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeFloor = Math.floor;
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = _Symbol ? _Symbol.prototype : undefined,
- symbolToString = _Symbol ? symbolProto.toString : undefined;
+var nativeCeil = Math.ceil;
/**
* Creates the padding for `string` based on `length`. The `chars` string
@@ -182,60 +177,10 @@ function isFunction(value) {
* // => false
*/
function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
}
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
/**
* Converts `value` to an integer.
*
@@ -311,43 +256,8 @@ function toNumber(value) {
}
/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return _Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
-/**
- * Pads `string` on the left and right sides if it's shorter than `length`.
- * Padding characters are truncated if they can't be evenly divided by `length`.
+ * Pads `string` on the right side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
*
* @static
* @memberOf _
@@ -358,28 +268,18 @@ function toString(value) {
* @returns {string} Returns the padded string.
* @example
*
- * _.pad('abc', 8);
- * // => ' abc '
+ * _.padEnd('abc', 6);
+ * // => 'abc '
*
- * _.pad('abc', 8, '_-');
- * // => '_-abc_-_'
+ * _.padEnd('abc', 6, '_-');
+ * // => 'abc_-_'
*
- * _.pad('abc', 3);
+ * _.padEnd('abc', 3);
* // => 'abc'
*/
-function pad(string, length, chars) {
+function padEnd(string, length, chars) {
string = toString(string);
- length = toInteger(length);
-
- var strLength = stringSize(string);
- if (!length || strLength >= length) {
- return string;
- }
- var mid = (length - strLength) / 2,
- leftLength = nativeFloor(mid),
- rightLength = nativeCeil(mid);
-
- return createPadding('', leftLength, chars) + string + createPadding('', rightLength, chars);
+ return string + createPadding(string, length, chars);
}
-module.exports = pad;
+module.exports = padEnd;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/README.md
similarity index 80%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/README.md
index a911d99092d3dc..33b447cd53e779 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.repeat/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/README.md
@@ -1,4 +1,4 @@
-# lodash.repeat v3.1.0
+# lodash.repeat v4.0.0
The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var repeat = require('lodash.repeat');
```
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash.repeat) for more details.
+See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/index.js
similarity index 67%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/index.js
index 1103d1f165117c..7a54e85714c367 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/index.js
@@ -1,11 +1,12 @@
/**
- * lodash 3.1.1 (Custom Build)
+ * lodash 4.0.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
+var toString = require('lodash.tostring');
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -15,8 +16,7 @@ var INFINITY = 1 / 0,
/** `Object#toString` result references. */
var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+ genTag = '[object GeneratorFunction]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -30,11 +30,11 @@ var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;
-/** Built-in method references without a dependency on `global`. */
+/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
@@ -42,16 +42,9 @@ var objectProto = global.Object.prototype;
*/
var objectToString = objectProto.toString;
-/** Built-in value references. */
-var Symbol = global.Symbol;
-
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeFloor = Math.floor;
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = Symbol ? symbolProto.toString : undefined;
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -100,60 +93,10 @@ function isFunction(value) {
* // => false
*/
function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
}
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
/**
* Converts `value` to an integer.
*
@@ -228,41 +171,6 @@ function toNumber(value) {
: (reIsBadHex.test(value) ? NAN : +value);
}
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
/**
* Repeats the given string `n` times.
*
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/package.json
similarity index 65%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/package.json
index 9cc6496f6cb356..e98ee4125c0d0c 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.repeat/package.json
@@ -1,40 +1,44 @@
{
"_args": [
[
- "lodash.repeat@^3.0.0",
+ "lodash.repeat@^4.0.0",
"/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
],
[
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding"
+ "lodash.repeat@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend"
]
],
- "_from": "lodash.repeat@>=3.0.0 <4.0.0",
- "_id": "lodash.repeat@3.1.1",
+ "_from": "lodash.repeat@>=4.0.0 <5.0.0",
+ "_id": "lodash.repeat@4.0.0",
"_inCache": true,
"_installable": true,
- "_location": "/npmlog/gauge/lodash.padright/lodash._createpadding/lodash.repeat",
- "_nodeVersion": "5.4.0",
+ "_location": "/npmlog/gauge/lodash.padend/lodash.repeat",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.repeat-4.0.0.tgz_1455602646227_0.7481637196615338"
+ },
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
"name": "lodash.repeat",
- "raw": "lodash.repeat@^3.0.0",
- "rawSpec": "^3.0.0",
+ "raw": "lodash.repeat@^4.0.0",
+ "rawSpec": "^4.0.0",
"scope": null,
- "spec": ">=3.0.0 <4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/npmlog/gauge/lodash.padright/lodash._createpadding"
+ "/npmlog/gauge/lodash.padend"
],
"_shrinkwrap": null,
- "_spec": "lodash.repeat@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding",
+ "_spec": "lodash.repeat@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -45,51 +49,50 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
+ "dependencies": {
+ "lodash.tostring": "^4.0.0"
+ },
"description": "The lodash method `_.repeat` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "71c0768468951e57f72425485150bce37ad89357",
- "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.1.tgz"
+ "shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22",
+ "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
- "lodash",
"lodash-modularized",
- "repeat",
- "stdlib",
- "util"
+ "repeat"
],
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash.repeat",
@@ -102,5 +105,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "3.1.1"
+ "version": "4.0.0"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md
new file mode 100644
index 00000000000000..b3858fd68e7866
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md
@@ -0,0 +1,18 @@
+# lodash.tostring v4.1.2
+
+The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.tostring
+```
+
+In Node.js:
+```js
+var toString = require('lodash.tostring');
+```
+
+See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.tostring) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js
new file mode 100644
index 00000000000000..5c0e3e2b987eb6
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js
@@ -0,0 +1,164 @@
+/**
+ * lodash 4.1.2 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string if it's not one. An empty string is returned
+ * for `null` and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (value == null) {
+ return '';
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+module.exports = toString;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
new file mode 100644
index 00000000000000..61501df10307e9
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
@@ -0,0 +1,108 @@
+{
+ "_args": [
+ [
+ "lodash.tostring@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ "lodash.tostring@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend"
+ ]
+ ],
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_id": "lodash.tostring@4.1.2",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/npmlog/gauge/lodash.padend/lodash.tostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.17",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/npmlog/gauge/lodash.padend",
+ "/npmlog/gauge/lodash.padend/lodash.repeat"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "lodash.tostring@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The lodash method `_.toString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "7d326a5cf64da4298f2fd35b688d848267535288",
+ "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.tostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.1.2"
+}
diff --git a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
similarity index 59%
rename from deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
index 72f15d1b14a15f..fa826877c5a5e4 100644
--- a/deps/npm/node_modules/lodash.union/node_modules/lodash._setcache/node_modules/lodash._mapcache/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
@@ -1,19 +1,19 @@
{
"_args": [
[
- "lodash._mapcache@^4.0.0",
- "/Users/zkat/Documents/code/npm/node_modules/lodash.union/node_modules/lodash._setcache"
+ "lodash.padend@^4.1.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge"
]
],
- "_from": "lodash._mapcache@>=4.0.0 <5.0.0",
- "_id": "lodash._mapcache@4.1.0",
+ "_from": "lodash.padend@>=4.1.0 <5.0.0",
+ "_id": "lodash.padend@4.2.0",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.union/lodash._setcache/lodash._mapcache",
+ "_location": "/npmlog/gauge/lodash.padend",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._mapcache-4.1.0.tgz_1454898271298_0.09834620845504105"
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.padend-4.2.0.tgz_1455615519416_0.9670630963519216"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
@@ -22,21 +22,21 @@
"_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
- "name": "lodash._mapcache",
- "raw": "lodash._mapcache@^4.0.0",
- "rawSpec": "^4.0.0",
+ "name": "lodash.padend",
+ "raw": "lodash.padend@^4.1.0",
+ "rawSpec": "^4.1.0",
"scope": null,
- "spec": ">=4.0.0 <5.0.0",
+ "spec": ">=4.1.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/lodash.union/lodash._setcache"
+ "/npmlog/gauge"
],
- "_resolved": "https://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.1.0.tgz",
- "_shasum": "c4815d2446e43554e564b1ea9cbd8501f7a4fdc5",
+ "_resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz",
+ "_shasum": "b84e8c3401d4538055c6e321a51e3aee19881a18",
"_shrinkwrap": null,
- "_spec": "lodash._mapcache@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash.union/node_modules/lodash._setcache",
+ "_spec": "lodash.padend@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -63,17 +63,22 @@
}
],
"dependencies": {
- "lodash._root": "^3.0.0"
+ "lodash.repeat": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
},
- "description": "The internal lodash function `MapCache` exported as a module.",
+ "description": "The lodash method `_.padEnd` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "c4815d2446e43554e564b1ea9cbd8501f7a4fdc5",
- "tarball": "http://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.1.0.tgz"
+ "shasum": "b84e8c3401d4538055c6e321a51e3aee19881a18",
+ "tarball": "http://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "padend"
+ ],
"license": "MIT",
"maintainers": [
{
@@ -89,7 +94,7 @@
"name": "phated"
}
],
- "name": "lodash._mapcache",
+ "name": "lodash.padend",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -99,5 +104,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.1.0"
+ "version": "4.2.0"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md
deleted file mode 100644
index 641b4d6f007ad4..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash.padleft v3.1.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.padLeft` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.padleft
-```
-
-In Node.js/io.js:
-
-```js
-var padLeft = require('lodash.padleft');
-```
-
-See the [documentation](https://lodash.com/docs#padLeft) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.padleft) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js
deleted file mode 100644
index 2abb69a6c06558..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * lodash 3.1.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseToString = require('lodash._basetostring'),
- createPadding = require('lodash._createpadding');
-
-/**
- * Creates a function for `_.padLeft` or `_.padRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify padding from the right.
- * @returns {Function} Returns the new pad function.
- */
-function createPadDir(fromRight) {
- return function(string, length, chars) {
- string = baseToString(string);
- return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string);
- };
-}
-
-/**
- * Pads `string` on the left side if it is shorter than `length`. Padding
- * characters are truncated if they exceed `length`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to pad.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the padded string.
- * @example
- *
- * _.padLeft('abc', 6);
- * // => ' abc'
- *
- * _.padLeft('abc', 6, '_-');
- * // => '_-_abc'
- *
- * _.padLeft('abc', 3);
- * // => 'abc'
- */
-var padLeft = createPadDir();
-
-module.exports = padLeft;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/README.md
deleted file mode 100644
index f81145e6ebe765..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._basetostring v3.0.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseToString` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basetostring
-```
-
-In Node.js/io.js:
-
-```js
-var baseToString = require('lodash._basetostring');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._basetostring) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/index.js
deleted file mode 100644
index db8ecc9fdd0094..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * lodash 3.0.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/package.json
deleted file mode 100644
index f592f32e198f3e..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._basetostring/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "lodash._basetostring",
- "version": "3.0.1",
- "description": "The modern build of lodash’s internal `baseToString` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._basetostring@3.0.1",
- "_shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "_from": "lodash._basetostring@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "tarball": "http://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/README.md
deleted file mode 100644
index f9c9411c70412e..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._createpadding v3.6.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createPadding` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._createpadding
-```
-
-In Node.js/io.js:
-
-```js
-var createPadding = require('lodash._createpadding');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash._createpadding) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/index.js
deleted file mode 100644
index 3541a8aae32935..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * lodash 3.6.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var repeat = require('lodash.repeat');
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeIsFinite = global.isFinite;
-
-/**
- * Creates the padding required for `string` based on the given `length`.
- * The `chars` string is truncated if the number of characters exceeds `length`.
- *
- * @private
- * @param {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the pad for `string`.
- */
-function createPadding(string, length, chars) {
- var strLength = string.length;
- length = +length;
-
- if (strLength >= length || !nativeIsFinite(length)) {
- return '';
- }
- var padLength = length - strLength;
- chars = chars == null ? ' ' : (chars + '');
- return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength);
-}
-
-module.exports = createPadding;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
deleted file mode 100644
index 134f8303b85839..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash.repeat v3.1.1
-
-The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.repeat
-```
-
-In Node.js:
-```js
-var repeat = require('lodash.repeat');
-```
-
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/package.json
deleted file mode 100644
index 376b174bee4ab4..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "lodash._createpadding",
- "version": "3.6.1",
- "description": "The modern build of lodash’s internal `createPadding` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash.repeat": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._createpadding@3.6.1",
- "_shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "_from": "lodash._createpadding@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "tarball": "http://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json
deleted file mode 100644
index 55b0c256f9d1bc..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "name": "lodash.padleft",
- "version": "3.1.1",
- "description": "The modern build of lodash’s `_.padLeft` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "stdlib",
- "util"
- ],
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash._basetostring": "^3.0.0",
- "lodash._createpadding": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash.padleft@3.1.1",
- "_shasum": "150151f1e0245edba15d50af2d71f1d5cff46530",
- "_from": "lodash.padleft@>=3.0.0 <4.0.0",
- "_npmVersion": "2.9.0",
- "_nodeVersion": "0.12.2",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "150151f1e0245edba15d50af2d71f1d5cff46530",
- "tarball": "http://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md
deleted file mode 100644
index bcd6e5742fe126..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash.padright v3.1.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.padRight` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.padright
-```
-
-In Node.js/io.js:
-
-```js
-var padRight = require('lodash.padright');
-```
-
-See the [documentation](https://lodash.com/docs#padRight) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.padright) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js
deleted file mode 100644
index 6de81c4bbedc1c..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * lodash 3.1.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseToString = require('lodash._basetostring'),
- createPadding = require('lodash._createpadding');
-
-/**
- * Creates a function for `_.padLeft` or `_.padRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify padding from the right.
- * @returns {Function} Returns the new pad function.
- */
-function createPadDir(fromRight) {
- return function(string, length, chars) {
- string = baseToString(string);
- return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string);
- };
-}
-
-/**
- * Pads `string` on the right side if it is shorter than `length`. Padding
- * characters are truncated if they exceed `length`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to pad.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the padded string.
- * @example
- *
- * _.padRight('abc', 6);
- * // => 'abc '
- *
- * _.padRight('abc', 6, '_-');
- * // => 'abc_-_'
- *
- * _.padRight('abc', 3);
- * // => 'abc'
- */
-var padRight = createPadDir(true);
-
-module.exports = padRight;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/README.md
deleted file mode 100644
index f81145e6ebe765..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._basetostring v3.0.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseToString` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basetostring
-```
-
-In Node.js/io.js:
-
-```js
-var baseToString = require('lodash._basetostring');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._basetostring) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/index.js
deleted file mode 100644
index db8ecc9fdd0094..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * lodash 3.0.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/package.json
deleted file mode 100644
index f592f32e198f3e..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._basetostring/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "lodash._basetostring",
- "version": "3.0.1",
- "description": "The modern build of lodash’s internal `baseToString` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._basetostring@3.0.1",
- "_shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "_from": "lodash._basetostring@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5",
- "tarball": "http://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/LICENSE
deleted file mode 100644
index 9cd87e5dcefe58..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2015 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/README.md
deleted file mode 100644
index f9c9411c70412e..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# lodash._createpadding v3.6.1
-
-The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createPadding` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
-
-## Installation
-
-Using npm:
-
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._createpadding
-```
-
-In Node.js/io.js:
-
-```js
-var createPadding = require('lodash._createpadding');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash._createpadding) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/index.js
deleted file mode 100644
index 3541a8aae32935..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * lodash 3.6.1 (Custom Build)
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.3
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var repeat = require('lodash.repeat');
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeCeil = Math.ceil,
- nativeIsFinite = global.isFinite;
-
-/**
- * Creates the padding required for `string` based on the given `length`.
- * The `chars` string is truncated if the number of characters exceeds `length`.
- *
- * @private
- * @param {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
- * @param {string} [chars=' '] The string used as padding.
- * @returns {string} Returns the pad for `string`.
- */
-function createPadding(string, length, chars) {
- var strLength = string.length;
- length = +length;
-
- if (strLength >= length || !nativeIsFinite(length)) {
- return '';
- }
- var padLength = length - strLength;
- chars = chars == null ? ' ' : (chars + '');
- return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength);
-}
-
-module.exports = createPadding;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
deleted file mode 100644
index b054ca5a3ac7d6..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
deleted file mode 100644
index 134f8303b85839..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash.repeat v3.1.1
-
-The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.repeat
-```
-
-In Node.js:
-```js
-var repeat = require('lodash.repeat');
-```
-
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.1.1-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/package.json
deleted file mode 100644
index 376b174bee4ab4..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "lodash._createpadding",
- "version": "3.6.1",
- "description": "The modern build of lodash’s internal `createPadding` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash.repeat": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash._createpadding@3.6.1",
- "_shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "_from": "lodash._createpadding@>=3.0.0 <4.0.0",
- "_npmVersion": "2.12.0",
- "_nodeVersion": "0.12.5",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "4907b438595adc54ee8935527a6c424c02c81a87",
- "tarball": "http://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json
deleted file mode 100644
index 2a40f94bfc3bfd..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "name": "lodash.padright",
- "version": "3.1.1",
- "description": "The modern build of lodash’s `_.padRight` as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "keywords": [
- "lodash",
- "lodash-modularized",
- "stdlib",
- "util"
- ],
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "dependencies": {
- "lodash._basetostring": "^3.0.0",
- "lodash._createpadding": "^3.0.0"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "_id": "lodash.padright@3.1.1",
- "_shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0",
- "_from": "lodash.padright@>=3.0.0 <4.0.0",
- "_npmVersion": "2.9.0",
- "_nodeVersion": "0.12.2",
- "_npmUser": {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- "maintainers": [
- {
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
- },
- {
- "name": "d10",
- "email": "demoneaux@gmail.com"
- },
- {
- "name": "kitcambridge",
- "email": "github@kitcambridge.be"
- },
- {
- "name": "mathias",
- "email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine@iceddev.com"
- }
- ],
- "dist": {
- "shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0",
- "tarball": "http://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
new file mode 100644
index 00000000000000..d3176b0012afb9
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
@@ -0,0 +1,18 @@
+# lodash.padstart v4.2.0
+
+The [lodash](https://lodash.com/) method `_.padStart` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.padstart
+```
+
+In Node.js:
+```js
+var padStart = require('lodash.padstart');
+```
+
+See the [documentation](https://lodash.com/docs#padStart) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.padstart) for more details.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
similarity index 53%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
index 85a5a90b3b7d61..9f403a1f857fae 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
@@ -1,22 +1,22 @@
/**
- * lodash 3.1.0 (Custom Build)
+ * lodash 4.2.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
+var repeat = require('lodash.repeat'),
+ toString = require('lodash.tostring');
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
- MAX_SAFE_INTEGER = 9007199254740991,
MAX_INTEGER = 1.7976931348623157e+308,
NAN = 0 / 0;
/** `Object#toString` result references. */
var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+ genTag = '[object GeneratorFunction]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -30,11 +30,69 @@ var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;
-/** Built-in method references without a dependency on `global`. */
+/** Used to compose unicode character classes. */
+var rsAstralRange = '\\ud800-\\udfff',
+ rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
+ rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsVarRange = '\\ufe0e\\ufe0f';
+
+/** Used to compose unicode capture groups. */
+var rsAstral = '[' + rsAstralRange + ']',
+ rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
+ rsNonAstral = '[^' + rsAstralRange + ']',
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
+ rsZWJ = '\\u200d';
+
+/** Used to compose unicode regexes. */
+var reOptMod = rsModifier + '?',
+ rsOptVar = '[' + rsVarRange + ']?',
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
+
+/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
+var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+
+/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
+/**
+ * Gets the number of symbols in `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the string size.
+ */
+function stringSize(string) {
+ if (!(string && reHasComplexSymbol.test(string))) {
+ return string.length;
+ }
+ var result = reComplexSymbol.lastIndex = 0;
+ while (reComplexSymbol.test(string)) {
+ result++;
+ }
+ return result;
+}
+
+/**
+ * Converts `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function stringToArray(string) {
+ return string.match(reComplexSymbol);
+}
+
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
@@ -42,15 +100,34 @@ var objectProto = global.Object.prototype;
*/
var objectToString = objectProto.toString;
-/** Built-in value references. */
-var _Symbol = global.Symbol;
-
/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeFloor = Math.floor;
+var nativeCeil = Math.ceil;
+
+/**
+ * Creates the padding for `string` based on `length`. The `chars` string
+ * is truncated if the number of characters exceeds `length`.
+ *
+ * @private
+ * @param {string} string The string to create padding for.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padding for `string`.
+ */
+function createPadding(string, length, chars) {
+ length = toInteger(length);
+
+ var strLength = stringSize(string);
+ if (!length || strLength >= length) {
+ return '';
+ }
+ var padLength = length - strLength;
+ chars = chars === undefined ? ' ' : (chars + '');
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = _Symbol ? _Symbol.prototype : undefined,
- symbolToString = _Symbol ? symbolProto.toString : undefined;
+ var result = repeat(chars, nativeCeil(padLength / stringSize(chars)));
+ return reHasComplexSymbol.test(chars)
+ ? stringToArray(result).slice(0, padLength).join('')
+ : result.slice(0, padLength);
+}
/**
* Checks if `value` is classified as a `Function` object.
@@ -100,60 +177,10 @@ function isFunction(value) {
* // => false
*/
function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
}
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
/**
* Converts `value` to an integer.
*
@@ -229,79 +256,30 @@ function toNumber(value) {
}
/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return _Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
-/**
- * Repeats the given string `n` times.
+ * Pads `string` on the left side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
*
* @static
* @memberOf _
* @category String
- * @param {string} [string=''] The string to repeat.
- * @param {number} [n=0] The number of times to repeat the string.
- * @returns {string} Returns the repeated string.
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
* @example
*
- * _.repeat('*', 3);
- * // => '***'
+ * _.padStart('abc', 6);
+ * // => ' abc'
*
- * _.repeat('abc', 2);
- * // => 'abcabc'
+ * _.padStart('abc', 6, '_-');
+ * // => '_-_abc'
*
- * _.repeat('abc', 0);
- * // => ''
+ * _.padStart('abc', 3);
+ * // => 'abc'
*/
-function repeat(string, n) {
+function padStart(string, length, chars) {
string = toString(string);
- n = toInteger(n);
-
- var result = '';
- if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
- return result;
- }
- // Leverage the exponentiation by squaring algorithm for a faster repeat.
- // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
- do {
- if (n % 2) {
- result += string;
- }
- n = nativeFloor(n / 2);
- string += string;
- } while (n);
-
- return result;
+ return createPadding(string, length, chars) + string;
}
-module.exports = repeat;
+module.exports = padStart;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/README.md
similarity index 80%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/README.md
index a911d99092d3dc..33b447cd53e779 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/README.md
@@ -1,4 +1,4 @@
-# lodash.repeat v3.1.0
+# lodash.repeat v4.0.0
The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var repeat = require('lodash.repeat');
```
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash.repeat) for more details.
+See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/index.js
similarity index 67%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/index.js
index 1103d1f165117c..7a54e85714c367 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/index.js
@@ -1,11 +1,12 @@
/**
- * lodash 3.1.1 (Custom Build)
+ * lodash 4.0.0 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
+var toString = require('lodash.tostring');
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -15,8 +16,7 @@ var INFINITY = 1 / 0,
/** `Object#toString` result references. */
var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+ genTag = '[object GeneratorFunction]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -30,11 +30,11 @@ var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;
-/** Built-in method references without a dependency on `global`. */
+/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
@@ -42,16 +42,9 @@ var objectProto = global.Object.prototype;
*/
var objectToString = objectProto.toString;
-/** Built-in value references. */
-var Symbol = global.Symbol;
-
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeFloor = Math.floor;
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = Symbol ? symbolProto.toString : undefined;
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -100,60 +93,10 @@ function isFunction(value) {
* // => false
*/
function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
var type = typeof value;
return !!value && (type == 'object' || type == 'function');
}
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
-}
-
/**
* Converts `value` to an integer.
*
@@ -228,41 +171,6 @@ function toNumber(value) {
: (reIsBadHex.test(value) ? NAN : +value);
}
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
-function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
-}
-
/**
* Repeats the given string `n` times.
*
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/package.json
similarity index 65%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/package.json
index 682bca742b0d17..8bb2966c4a3149 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.repeat/package.json
@@ -1,40 +1,44 @@
{
"_args": [
[
- "lodash.repeat@^3.0.0",
+ "lodash.repeat@^4.0.0",
"/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
],
[
- "lodash.repeat@^3.0.0",
- "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding"
+ "lodash.repeat@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart"
]
],
- "_from": "lodash.repeat@>=3.0.0 <4.0.0",
- "_id": "lodash.repeat@3.1.1",
+ "_from": "lodash.repeat@>=4.0.0 <5.0.0",
+ "_id": "lodash.repeat@4.0.0",
"_inCache": true,
"_installable": true,
- "_location": "/npmlog/gauge/lodash.padleft/lodash._createpadding/lodash.repeat",
- "_nodeVersion": "5.4.0",
+ "_location": "/npmlog/gauge/lodash.padstart/lodash.repeat",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.repeat-4.0.0.tgz_1455602646227_0.7481637196615338"
+ },
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
"name": "lodash.repeat",
- "raw": "lodash.repeat@^3.0.0",
- "rawSpec": "^3.0.0",
+ "raw": "lodash.repeat@^4.0.0",
+ "rawSpec": "^4.0.0",
"scope": null,
- "spec": ">=3.0.0 <4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/npmlog/gauge/lodash.padleft/lodash._createpadding"
+ "/npmlog/gauge/lodash.padstart"
],
"_shrinkwrap": null,
- "_spec": "lodash.repeat@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/node_modules/lodash._createpadding",
+ "_spec": "lodash.repeat@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -45,51 +49,50 @@
},
"contributors": [
{
- "name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
"email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
"url": "https://github.com/phated"
},
{
- "name": "Mathias Bynens",
"email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
+ "dependencies": {
+ "lodash.tostring": "^4.0.0"
+ },
"description": "The lodash method `_.repeat` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "71c0768468951e57f72425485150bce37ad89357",
- "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.1.1.tgz"
+ "shasum": "aaf570b2ab0bfb0dda6d6e93291d54b30b1f7d22",
+ "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
- "lodash",
"lodash-modularized",
- "repeat",
- "stdlib",
- "util"
+ "repeat"
],
"license": "MIT",
"maintainers": [
{
- "name": "jdalton",
- "email": "john.david.dalton@gmail.com"
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
},
{
- "name": "mathias",
- "email": "mathias@qiwi.be"
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
},
{
- "name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine@iceddev.com",
+ "name": "phated"
}
],
"name": "lodash.repeat",
@@ -102,5 +105,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "3.1.1"
+ "version": "4.0.0"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 00000000000000..bcbe13d67a9621
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright 2012-2016 The Dojo Foundation
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md
new file mode 100644
index 00000000000000..b3858fd68e7866
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md
@@ -0,0 +1,18 @@
+# lodash.tostring v4.1.2
+
+The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.tostring
+```
+
+In Node.js:
+```js
+var toString = require('lodash.tostring');
+```
+
+See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.tostring) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js
new file mode 100644
index 00000000000000..5c0e3e2b987eb6
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js
@@ -0,0 +1,164 @@
+/**
+ * lodash 4.1.2 (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string if it's not one. An empty string is returned
+ * for `null` and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (value == null) {
+ return '';
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+module.exports = toString;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json
new file mode 100644
index 00000000000000..a50df30e2cbe25
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json
@@ -0,0 +1,108 @@
+{
+ "_args": [
+ [
+ "lodash.tostring@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ "lodash.tostring@^4.0.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart"
+ ]
+ ],
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_id": "lodash.tostring@4.1.2",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/npmlog/gauge/lodash.padstart/lodash.tostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.17",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/npmlog/gauge/lodash.padstart",
+ "/npmlog/gauge/lodash.padstart/lodash.repeat"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "lodash.tostring@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The lodash method `_.toString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "7d326a5cf64da4298f2fd35b688d848267535288",
+ "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.tostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.1.2"
+}
diff --git a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
similarity index 59%
rename from deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/package.json
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
index 27fb66ea67d478..0a4deb7c03e0a6 100644
--- a/deps/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack/node_modules/lodash._mapcache/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
@@ -1,19 +1,19 @@
{
"_args": [
[
- "lodash._mapcache@^4.0.0",
- "/Users/zkat/Documents/code/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack"
+ "lodash.padstart@^4.1.0",
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge"
]
],
- "_from": "lodash._mapcache@>=4.0.0 <5.0.0",
- "_id": "lodash._mapcache@4.1.0",
+ "_from": "lodash.padstart@>=4.1.0 <5.0.0",
+ "_id": "lodash.padstart@4.2.0",
"_inCache": true,
"_installable": true,
- "_location": "/lodash.clonedeep/lodash._stack/lodash._mapcache",
+ "_location": "/npmlog/gauge/lodash.padstart",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash._mapcache-4.1.0.tgz_1454898271298_0.09834620845504105"
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.padstart-4.2.0.tgz_1455615522339_0.6710881665349007"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
@@ -22,21 +22,21 @@
"_npmVersion": "2.14.18",
"_phantomChildren": {},
"_requested": {
- "name": "lodash._mapcache",
- "raw": "lodash._mapcache@^4.0.0",
- "rawSpec": "^4.0.0",
+ "name": "lodash.padstart",
+ "raw": "lodash.padstart@^4.1.0",
+ "rawSpec": "^4.1.0",
"scope": null,
- "spec": ">=4.0.0 <5.0.0",
+ "spec": ">=4.1.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/lodash.clonedeep/lodash._stack"
+ "/npmlog/gauge"
],
- "_resolved": "https://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.1.0.tgz",
- "_shasum": "c4815d2446e43554e564b1ea9cbd8501f7a4fdc5",
+ "_resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz",
+ "_shasum": "e36f89fd6c3b5072219087695b765de83ec96985",
"_shrinkwrap": null,
- "_spec": "lodash._mapcache@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash.clonedeep/node_modules/lodash._stack",
+ "_spec": "lodash.padstart@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge",
"author": {
"email": "john.david.dalton@gmail.com",
"name": "John-David Dalton",
@@ -63,17 +63,22 @@
}
],
"dependencies": {
- "lodash._root": "^3.0.0"
+ "lodash.repeat": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
},
- "description": "The internal lodash function `MapCache` exported as a module.",
+ "description": "The lodash method `_.padStart` exported as a module.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "c4815d2446e43554e564b1ea9cbd8501f7a4fdc5",
- "tarball": "http://registry.npmjs.org/lodash._mapcache/-/lodash._mapcache-4.1.0.tgz"
+ "shasum": "e36f89fd6c3b5072219087695b765de83ec96985",
+ "tarball": "http://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "padstart"
+ ],
"license": "MIT",
"maintainers": [
{
@@ -89,7 +94,7 @@
"name": "phated"
}
],
- "name": "lodash._mapcache",
+ "name": "lodash.padstart",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -99,5 +104,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.1.0"
+ "version": "4.2.0"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
index 6f66ef146238b7..efbb346bb4f587 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
@@ -6,16 +6,20 @@
]
],
"_from": "gauge@>=1.2.5 <1.3.0",
- "_id": "gauge@1.2.5",
+ "_id": "gauge@1.2.7",
"_inCache": true,
"_installable": true,
"_location": "/npmlog/gauge",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "4.2.2",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/gauge-1.2.7.tgz_1455835409513_0.6293477965518832"
+ },
"_npmUser": {
"email": "me@re-becca.org",
"name": "iarna"
},
- "_npmVersion": "3.6.0",
+ "_npmVersion": "3.7.2",
"_phantomChildren": {},
"_requested": {
"name": "gauge",
@@ -28,7 +32,7 @@
"_requiredBy": [
"/npmlog"
],
- "_shasum": "b80f107dd1f7d3c5a85f5aa74f9e0124caac9da7",
+ "_shasum": "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93",
"_shrinkwrap": null,
"_spec": "gauge@~1.2.5",
"_where": "/Users/rebecca/code/npm/node_modules/npmlog",
@@ -42,32 +46,32 @@
"dependencies": {
"ansi": "^0.3.0",
"has-unicode": "^2.0.0",
- "lodash.pad": "^3.0.0",
- "lodash.padleft": "^3.0.0",
- "lodash.padright": "^3.0.0"
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
},
"description": "A terminal based horizontal guage",
"devDependencies": {
- "tap": "^0.4.13"
+ "tap": "^5.6.0"
},
"directories": {},
"dist": {
- "shasum": "b80f107dd1f7d3c5a85f5aa74f9e0124caac9da7",
- "tarball": "http://registry.npmjs.org/gauge/-/gauge-1.2.5.tgz"
+ "shasum": "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93",
+ "tarball": "http://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz"
},
- "gitHead": "bd0bb377d121e17d343bba156dd92fe6a8b21581",
+ "gitHead": "75a7d0a4ed67489ac992ed3d211bed60376ca7c1",
"homepage": "https://github.com/iarna/gauge",
"keywords": [
- "gauge",
+ "progressbar",
"progress",
- "progressbar"
+ "gauge"
],
"license": "ISC",
"main": "progress-bar.js",
"maintainers": [
{
- "name": "iarna",
- "email": "me@re-becca.org"
+ "email": "me@re-becca.org",
+ "name": "iarna"
}
],
"name": "gauge",
@@ -80,5 +84,5 @@
"scripts": {
"test": "tap test/*.js"
},
- "version": "1.2.5"
+ "version": "1.2.7"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js b/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js
index 00b3a77e19149b..ddfc4a44be4ded 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js
@@ -3,8 +3,8 @@ var hasUnicode = require("has-unicode")
var ansi = require("ansi")
var align = {
center: require("lodash.pad"),
- left: require("lodash.padright"),
- right: require("lodash.padleft")
+ left: require("lodash.padend"),
+ right: require("lodash.padstart")
}
var defaultStream = process.stderr
function isTTY() {
diff --git a/deps/npm/node_modules/npmlog/package.json b/deps/npm/node_modules/npmlog/package.json
index a4ddff9891c478..153145ab056059 100644
--- a/deps/npm/node_modules/npmlog/package.json
+++ b/deps/npm/node_modules/npmlog/package.json
@@ -1,40 +1,45 @@
{
"_args": [
[
- "npmlog@~2.0.0",
+ "npmlog@~2.0.2",
"/Users/rebecca/code/npm"
]
],
- "_from": "npmlog@>=2.0.0 <2.1.0",
- "_id": "npmlog@2.0.2",
+ "_from": "npmlog@>=2.0.2 <2.1.0",
+ "_id": "npmlog@2.0.3",
"_inCache": true,
"_installable": true,
"_location": "/npmlog",
- "_nodeVersion": "5.4.0",
+ "_nodeVersion": "4.2.2",
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/npmlog-2.0.3.tgz_1458089035965_0.5096880353521556"
+ },
"_npmUser": {
"email": "me@re-becca.org",
"name": "iarna"
},
- "_npmVersion": "3.6.0",
+ "_npmVersion": "3.8.1",
"_phantomChildren": {
"has-unicode": "2.0.0",
- "readable-stream": "2.0.5"
+ "readable-stream": "2.0.6"
},
"_requested": {
"name": "npmlog",
- "raw": "npmlog@~2.0.0",
- "rawSpec": "~2.0.0",
+ "raw": "npmlog@~2.0.2",
+ "rawSpec": "~2.0.2",
"scope": null,
- "spec": ">=2.0.0 <2.1.0",
+ "spec": ">=2.0.2 <2.1.0",
"type": "range"
},
"_requiredBy": [
"/",
+ "/node-gyp",
"/npm-registry-client"
],
- "_shasum": "d0470238b9697b7c3c4d16bdea65a00b12a464ab",
+ "_shasum": "020f99351f0c02e399c674ba256e7c4d3b3dd298",
"_shrinkwrap": null,
- "_spec": "npmlog@~2.0.0",
+ "_spec": "npmlog@~2.0.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"email": "i@izs.me",
@@ -46,34 +51,34 @@
},
"dependencies": {
"ansi": "~0.3.1",
- "are-we-there-yet": "~1.0.6",
+ "are-we-there-yet": "~1.1.2",
"gauge": "~1.2.5"
},
"description": "logger for npm",
"devDependencies": {
- "tap": "~5.1.2"
+ "tap": "~5.7.0"
},
"directories": {},
"dist": {
- "shasum": "d0470238b9697b7c3c4d16bdea65a00b12a464ab",
- "tarball": "http://registry.npmjs.org/npmlog/-/npmlog-2.0.2.tgz"
+ "shasum": "020f99351f0c02e399c674ba256e7c4d3b3dd298",
+ "tarball": "http://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz"
},
- "gitHead": "79dc582bf1ce4d2010454d89738a0a4dbd113be9",
+ "gitHead": "9dfe26296118ceb5443e76f347f256c35e7ca999",
"homepage": "https://github.com/npm/npmlog#readme",
"license": "ISC",
"main": "log.js",
"maintainers": [
{
- "name": "iarna",
- "email": "me@re-becca.org"
+ "email": "me@re-becca.org",
+ "name": "iarna"
},
{
- "name": "isaacs",
- "email": "i@izs.me"
+ "email": "i@izs.me",
+ "name": "isaacs"
},
{
- "name": "othiym23",
- "email": "ogd@aoaioxxysz.net"
+ "email": "ogd@aoaioxxysz.net",
+ "name": "othiym23"
}
],
"name": "npmlog",
@@ -86,5 +91,5 @@
"scripts": {
"test": "tap test/*.js"
},
- "version": "2.0.2"
+ "version": "2.0.3"
}
diff --git a/deps/npm/node_modules/npmlog/test/progress.js b/deps/npm/node_modules/npmlog/test/progress.js
index 97b13ded2c6660..68dca2afc73575 100644
--- a/deps/npm/node_modules/npmlog/test/progress.js
+++ b/deps/npm/node_modules/npmlog/test/progress.js
@@ -1,6 +1,7 @@
'use strict'
var test = require('tap').test
+var Progress = require('are-we-there-yet')
var log = require('../log.js')
var actions = []
@@ -38,9 +39,18 @@ function didActions(t, msg, output) {
actions = []
}
+function resetTracker() {
+ log.disableProgress()
+ log.tracker = new Progress.TrackerGroup()
+ log.enableProgress()
+ actions = []
+}
test('enableProgress', function (t) {
t.plan(6)
+ resetTracker()
+ log.disableProgress()
+ actions = []
log.enableProgress()
didActions(t, 'enableProgress', [ [ 'enable' ], [ 'show', undefined, 0 ] ])
log.enableProgress()
@@ -49,6 +59,7 @@ test('enableProgress', function (t) {
test('disableProgress', function (t) {
t.plan(4)
+ resetTracker()
log.disableProgress()
didActions(t, 'disableProgress', [ [ 'hide' ], [ 'disable' ] ])
log.disableProgress()
@@ -57,6 +68,9 @@ test('disableProgress', function (t) {
test('showProgress', function (t) {
t.plan(5)
+ resetTracker()
+ log.disableProgress()
+ actions = []
log.showProgress('foo')
didActions(t, 'showProgress disabled', [])
log.enableProgress()
@@ -67,6 +81,7 @@ test('showProgress', function (t) {
test('clearProgress', function (t) {
t.plan(3)
+ resetTracker()
log.clearProgress()
didActions(t, 'clearProgress', [ [ 'hide' ] ])
log.disableProgress()
@@ -77,10 +92,10 @@ test('clearProgress', function (t) {
test("newItem", function (t) {
t.plan(12)
- log.enableProgress()
+ resetTracker()
actions = []
var a = log.newItem("test", 10)
- didActions(t, "newItem", [ [ 'show', undefined, 0 ] ])
+ didActions(t, "newItem", [ [ 'show', 'test', 0 ] ])
a.completeWork(5)
didActions(t, "newItem:completeWork", [ [ 'show', 'test', 0.5 ] ])
a.finish()
@@ -90,24 +105,26 @@ test("newItem", function (t) {
// test that log objects proxy through. And test that completion status filters up
test("newGroup", function (t) {
t.plan(23)
+ resetTracker()
var a = log.newGroup("newGroup")
- didActions(t, "newGroup", [ [ 'show', undefined, 0.5 ] ])
+ didActions(t, 'newGroup', [[ 'show', 'newGroup', 0 ]])
a.warn("test", "this is a test")
- didActions(t, "newGroup:warn", [ [ 'pulse', 'test' ], [ 'hide' ], [ 'show', undefined, 0.5 ] ])
+ didActions(t, "newGroup:warn", [ [ 'pulse', 'test' ], [ 'hide' ], [ 'show', undefined, 0 ] ])
var b = a.newItem("newGroup2", 10)
- didActions(t, "newGroup:newItem", [ [ 'show', 'newGroup', 0.5 ] ])
+ didActions(t, "newGroup:newItem", [ [ 'show', 'newGroup2', 0 ] ])
b.completeWork(5)
- didActions(t, "newGroup:completeWork", [ [ 'show', 'newGroup2', 0.75 ] ])
+ didActions(t, "newGroup:completeWork", [ [ 'show', 'newGroup2', 0.5] ])
a.finish()
didActions(t, "newGroup:finish", [ [ 'show', 'newGroup', 1 ] ])
})
test("newStream", function (t) {
t.plan(13)
+ resetTracker()
var a = log.newStream("newStream", 10)
- didActions(t, "newStream", [ [ 'show', undefined, 0.6666666666666666 ] ])
+ didActions(t, "newStream", [ [ 'show', 'newStream', 0 ] ])
a.write("abcde")
- didActions(t, "newStream", [ [ 'show', 'newStream', 0.8333333333333333 ] ])
+ didActions(t, "newStream", [ [ 'show', 'newStream', 0.5 ] ])
a.write("fghij")
didActions(t, "newStream", [ [ 'show', 'newStream', 1 ] ])
t.is(log.tracker.completed(), 1, "Overall completion")
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/LICENSE b/deps/npm/node_modules/read-package-json/node_modules/glob/LICENSE
new file mode 100644
index 00000000000000..19129e315fe593
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/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/deps/npm/node_modules/read-package-json/node_modules/glob/README.md b/deps/npm/node_modules/read-package-json/node_modules/glob/README.md
new file mode 100644
index 00000000000000..6960483bac63c6
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/README.md
@@ -0,0 +1,359 @@
+# Glob
+
+Match files using the patterns the shell uses, like stars and stuff.
+
+[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
+
+This is a glob implementation in JavaScript. It uses the `minimatch`
+library to do its matching.
+
+![](oh-my-glob.gif)
+
+## Usage
+
+```javascript
+var glob = require("glob")
+
+// options is optional
+glob("**/*.js", options, function (er, files) {
+ // files is an array of filenames.
+ // If the `nonull` option is set, and nothing
+ // was found, then files is ["**/*.js"]
+ // er is an error object or null.
+})
+```
+
+## Glob Primer
+
+"Globs" are the patterns you type when you do stuff like `ls *.js` on
+the command line, or put `build/*` in a `.gitignore` file.
+
+Before parsing the path part patterns, braced sections are expanded
+into a set. Braced sections start with `{` and end with `}`, with any
+number of comma-delimited sections within. Braced sections may contain
+slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
+
+The following characters have special magic meaning when used in a
+path portion:
+
+* `*` Matches 0 or more characters in a single path portion
+* `?` Matches 1 character
+* `[...]` Matches a range of characters, similar to a RegExp range.
+ If the first character of the range is `!` or `^` then it matches
+ any character not in the range.
+* `!(pattern|pattern|pattern)` Matches anything that does not match
+ any of the patterns provided.
+* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
+ patterns provided.
+* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
+ patterns provided.
+* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
+* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
+ provided
+* `**` If a "globstar" is alone in a path portion, then it matches
+ zero or more directories and subdirectories searching for matches.
+ It does not crawl symlinked directories.
+
+### Dots
+
+If a file or directory path portion has a `.` as the first character,
+then it will not match any glob pattern unless that pattern's
+corresponding path part also has a `.` as its first character.
+
+For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
+However the pattern `a/*/c` would not, because `*` does not start with
+a dot character.
+
+You can make glob treat dots as normal characters by setting
+`dot:true` in the options.
+
+### Basename Matching
+
+If you set `matchBase:true` in the options, and the pattern has no
+slashes in it, then it will seek for any file anywhere in the tree
+with a matching basename. For example, `*.js` would match
+`test/simple/basic.js`.
+
+### Empty Sets
+
+If no matching files are found, then an empty array is returned. This
+differs from the shell, where the pattern itself is returned. For
+example:
+
+ $ echo a*s*d*f
+ a*s*d*f
+
+To get the bash-style behavior, set the `nonull:true` in the options.
+
+### See Also:
+
+* `man sh`
+* `man bash` (Search for "Pattern Matching")
+* `man 3 fnmatch`
+* `man 5 gitignore`
+* [minimatch documentation](https://github.com/isaacs/minimatch)
+
+## glob.hasMagic(pattern, [options])
+
+Returns `true` if there are any special characters in the pattern, and
+`false` otherwise.
+
+Note that the options affect the results. If `noext:true` is set in
+the options object, then `+(a|b)` will not be considered a magic
+pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
+then that is considered magical, unless `nobrace:true` is set in the
+options.
+
+## glob(pattern, [options], cb)
+
+* `pattern` `{String}` Pattern to be matched
+* `options` `{Object}`
+* `cb` `{Function}`
+ * `err` `{Error | null}`
+ * `matches` `{Array}` filenames found matching the pattern
+
+Perform an asynchronous glob search.
+
+## glob.sync(pattern, [options])
+
+* `pattern` `{String}` Pattern to be matched
+* `options` `{Object}`
+* return: `{Array}` filenames found matching the pattern
+
+Perform a synchronous glob search.
+
+## Class: glob.Glob
+
+Create a Glob object by instantiating the `glob.Glob` class.
+
+```javascript
+var Glob = require("glob").Glob
+var mg = new Glob(pattern, options, cb)
+```
+
+It's an EventEmitter, and starts walking the filesystem to find matches
+immediately.
+
+### new glob.Glob(pattern, [options], [cb])
+
+* `pattern` `{String}` pattern to search for
+* `options` `{Object}`
+* `cb` `{Function}` Called when an error occurs, or matches are found
+ * `err` `{Error | null}`
+ * `matches` `{Array}` filenames found matching the pattern
+
+Note that if the `sync` flag is set in the options, then matches will
+be immediately available on the `g.found` member.
+
+### Properties
+
+* `minimatch` The minimatch object that the glob uses.
+* `options` The options object passed in.
+* `aborted` Boolean which is set to true when calling `abort()`. There
+ is no way at this time to continue a glob search after aborting, but
+ you can re-use the statCache to avoid having to duplicate syscalls.
+* `cache` Convenience object. Each field has the following possible
+ values:
+ * `false` - Path does not exist
+ * `true` - Path exists
+ * `'FILE'` - Path exists, and is not a directory
+ * `'DIR'` - Path exists, and is a directory
+ * `[file, entries, ...]` - Path exists, is a directory, and the
+ array value is the results of `fs.readdir`
+* `statCache` Cache of `fs.stat` results, to prevent statting the same
+ path multiple times.
+* `symlinks` A record of which paths are symbolic links, which is
+ relevant in resolving `**` patterns.
+* `realpathCache` An optional object which is passed to `fs.realpath`
+ to minimize unnecessary syscalls. It is stored on the instantiated
+ Glob object, and may be re-used.
+
+### Events
+
+* `end` When the matching is finished, this is emitted with all the
+ matches found. If the `nonull` option is set, and no match was found,
+ then the `matches` list contains the original pattern. The matches
+ are sorted, unless the `nosort` flag is set.
+* `match` Every time a match is found, this is emitted with the specific
+ thing that matched. It is not deduplicated or resolved to a realpath.
+* `error` Emitted when an unexpected error is encountered, or whenever
+ any fs error occurs if `options.strict` is set.
+* `abort` When `abort()` is called, this event is raised.
+
+### Methods
+
+* `pause` Temporarily stop the search
+* `resume` Resume the search
+* `abort` Stop the search forever
+
+### Options
+
+All the options that can be passed to Minimatch can also be passed to
+Glob to change pattern matching behavior. Also, some have been added,
+or have glob-specific ramifications.
+
+All options are false by default, unless otherwise noted.
+
+All options are added to the Glob object, as well.
+
+If you are running many `glob` operations, you can pass a Glob object
+as the `options` argument to a subsequent operation to shortcut some
+`stat` and `readdir` calls. At the very least, you may pass in shared
+`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
+parallel glob operations will be sped up by sharing information about
+the filesystem.
+
+* `cwd` The current working directory in which to search. Defaults
+ to `process.cwd()`.
+* `root` The place where patterns starting with `/` will be mounted
+ onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
+ systems, and `C:\` or some such on Windows.)
+* `dot` Include `.dot` files in normal matches and `globstar` matches.
+ Note that an explicit dot in a portion of the pattern will always
+ match dot files.
+* `nomount` By default, a pattern starting with a forward-slash will be
+ "mounted" onto the root setting, so that a valid filesystem path is
+ returned. Set this flag to disable that behavior.
+* `mark` Add a `/` character to directory matches. Note that this
+ requires additional stat calls.
+* `nosort` Don't sort the results.
+* `stat` Set to true to stat *all* results. This reduces performance
+ somewhat, and is completely unnecessary, unless `readdir` is presumed
+ to be an untrustworthy indicator of file existence.
+* `silent` When an unusual error is encountered when attempting to
+ read a directory, a warning will be printed to stderr. Set the
+ `silent` option to true to suppress these warnings.
+* `strict` When an unusual error is encountered when attempting to
+ read a directory, the process will just continue on in search of
+ other matches. Set the `strict` option to raise an error in these
+ cases.
+* `cache` See `cache` property above. Pass in a previously generated
+ cache object to save some fs calls.
+* `statCache` A cache of results of filesystem information, to prevent
+ unnecessary stat calls. While it should not normally be necessary
+ to set this, you may pass the statCache from one glob() call to the
+ options object of another, if you know that the filesystem will not
+ change between calls. (See "Race Conditions" below.)
+* `symlinks` A cache of known symbolic links. You may pass in a
+ previously generated `symlinks` object to save `lstat` calls when
+ resolving `**` matches.
+* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
+* `nounique` In some cases, brace-expanded patterns can result in the
+ same file showing up multiple times in the result set. By default,
+ this implementation prevents duplicates in the result set. Set this
+ flag to disable that behavior.
+* `nonull` Set to never return an empty set, instead returning a set
+ containing the pattern itself. This is the default in glob(3).
+* `debug` Set to enable debug logging in minimatch and glob.
+* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
+* `noglobstar` Do not match `**` against multiple filenames. (Ie,
+ treat it as a normal `*` instead.)
+* `noext` Do not match `+(a|b)` "extglob" patterns.
+* `nocase` Perform a case-insensitive match. Note: on
+ case-insensitive filesystems, non-magic patterns will match by
+ default, since `stat` and `readdir` will not raise errors.
+* `matchBase` Perform a basename-only match if the pattern does not
+ contain any slash characters. That is, `*.js` would be treated as
+ equivalent to `**/*.js`, matching all js files in all directories.
+* `nodir` Do not match directories, only files. (Note: to match
+ *only* directories, simply put a `/` at the end of the pattern.)
+* `ignore` Add a pattern or an array of glob patterns to exclude matches.
+ Note: `ignore` patterns are *always* in `dot:true` mode, regardless
+ of any other settings.
+* `follow` Follow symlinked directories when expanding `**` patterns.
+ Note that this can result in a lot of duplicate references in the
+ presence of cyclic links.
+* `realpath` Set to true to call `fs.realpath` on all of the results.
+ In the case of a symlink that cannot be resolved, the full absolute
+ path to the matched entry is returned (though it will usually be a
+ broken symlink)
+
+## Comparisons to other fnmatch/glob implementations
+
+While strict compliance with the existing standards is a worthwhile
+goal, some discrepancies exist between node-glob and other
+implementations, and are intentional.
+
+The double-star character `**` is supported by default, unless the
+`noglobstar` flag is set. This is supported in the manner of bsdglob
+and bash 4.3, where `**` only has special significance if it is the only
+thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
+`a/**b` will not.
+
+Note that symlinked directories are not crawled as part of a `**`,
+though their contents may match against subsequent portions of the
+pattern. This prevents infinite loops and duplicates and the like.
+
+If an escaped pattern has no matches, and the `nonull` flag is set,
+then glob returns the pattern as-provided, rather than
+interpreting the character escapes. For example,
+`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
+`"*a?"`. This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
+
+If brace expansion is not disabled, then it is performed before any
+other interpretation of the glob pattern. Thus, a pattern like
+`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
+**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
+checked for validity. Since those two are valid, matching proceeds.
+
+### Comments and Negation
+
+Previously, this module let you mark a pattern as a "comment" if it
+started with a `#` character, or a "negated" pattern if it started
+with a `!` character.
+
+These options were deprecated in version 5, and removed in version 6.
+
+To specify things that should not match, use the `ignore` option.
+
+## Windows
+
+**Please only use forward-slashes in glob expressions.**
+
+Though windows uses either `/` or `\` as its path separator, only `/`
+characters are used by this glob implementation. You must use
+forward-slashes **only** in glob expressions. Back-slashes will always
+be interpreted as escape characters, not path separators.
+
+Results from absolute patterns such as `/foo/*` are mounted onto the
+root setting using `path.join`. On windows, this will by default result
+in `/foo/*` matching `C:\foo\bar.txt`.
+
+## Race Conditions
+
+Glob searching, by its very nature, is susceptible to race conditions,
+since it relies on directory walking and such.
+
+As a result, it is possible that a file that exists when glob looks for
+it may have been deleted or modified by the time it returns the result.
+
+As part of its internal implementation, this program caches all stat
+and readdir calls that it makes, in order to cut down on system
+overhead. However, this also makes it even more susceptible to races,
+especially if the cache or statCache objects are reused between glob
+calls.
+
+Users are thus advised not to use a glob result as a guarantee of
+filesystem state in the face of rapid changes. For the vast majority
+of operations, this is never a problem.
+
+## Contributing
+
+Any change to behavior (including bugfixes) must come with a test.
+
+Patches that fail tests or reduce performance will be rejected.
+
+```
+# to run tests
+npm test
+
+# to re-generate test fixtures
+npm run test-regen
+
+# to benchmark against bash/zsh
+npm run bench
+
+# to profile javascript
+npm run prof
+```
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/common.js b/deps/npm/node_modules/read-package-json/node_modules/glob/common.js
new file mode 100644
index 00000000000000..c9127eb334f18b
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/common.js
@@ -0,0 +1,226 @@
+exports.alphasort = alphasort
+exports.alphasorti = alphasorti
+exports.setopts = setopts
+exports.ownProp = ownProp
+exports.makeAbs = makeAbs
+exports.finish = finish
+exports.mark = mark
+exports.isIgnored = isIgnored
+exports.childrenIgnored = childrenIgnored
+
+function ownProp (obj, field) {
+ return Object.prototype.hasOwnProperty.call(obj, field)
+}
+
+var path = require("path")
+var minimatch = require("minimatch")
+var isAbsolute = require("path-is-absolute")
+var Minimatch = minimatch.Minimatch
+
+function alphasorti (a, b) {
+ return a.toLowerCase().localeCompare(b.toLowerCase())
+}
+
+function alphasort (a, b) {
+ return a.localeCompare(b)
+}
+
+function setupIgnores (self, options) {
+ self.ignore = options.ignore || []
+
+ if (!Array.isArray(self.ignore))
+ self.ignore = [self.ignore]
+
+ if (self.ignore.length) {
+ self.ignore = self.ignore.map(ignoreMap)
+ }
+}
+
+// ignore patterns are always in dot:true mode.
+function ignoreMap (pattern) {
+ var gmatcher = null
+ if (pattern.slice(-3) === '/**') {
+ var gpattern = pattern.replace(/(\/\*\*)+$/, '')
+ gmatcher = new Minimatch(gpattern, { dot: true })
+ }
+
+ return {
+ matcher: new Minimatch(pattern, { dot: true }),
+ gmatcher: gmatcher
+ }
+}
+
+function setopts (self, pattern, options) {
+ if (!options)
+ options = {}
+
+ // base-matching: just use globstar for that.
+ if (options.matchBase && -1 === pattern.indexOf("/")) {
+ if (options.noglobstar) {
+ throw new Error("base matching requires globstar")
+ }
+ pattern = "**/" + pattern
+ }
+
+ self.silent = !!options.silent
+ self.pattern = pattern
+ self.strict = options.strict !== false
+ self.realpath = !!options.realpath
+ self.realpathCache = options.realpathCache || Object.create(null)
+ self.follow = !!options.follow
+ self.dot = !!options.dot
+ self.mark = !!options.mark
+ self.nodir = !!options.nodir
+ if (self.nodir)
+ self.mark = true
+ self.sync = !!options.sync
+ self.nounique = !!options.nounique
+ self.nonull = !!options.nonull
+ self.nosort = !!options.nosort
+ self.nocase = !!options.nocase
+ self.stat = !!options.stat
+ self.noprocess = !!options.noprocess
+
+ self.maxLength = options.maxLength || Infinity
+ self.cache = options.cache || Object.create(null)
+ self.statCache = options.statCache || Object.create(null)
+ self.symlinks = options.symlinks || Object.create(null)
+
+ setupIgnores(self, options)
+
+ self.changedCwd = false
+ var cwd = process.cwd()
+ if (!ownProp(options, "cwd"))
+ self.cwd = cwd
+ else {
+ self.cwd = options.cwd
+ self.changedCwd = path.resolve(options.cwd) !== cwd
+ }
+
+ self.root = options.root || path.resolve(self.cwd, "/")
+ self.root = path.resolve(self.root)
+ if (process.platform === "win32")
+ self.root = self.root.replace(/\\/g, "/")
+
+ self.nomount = !!options.nomount
+
+ // disable comments and negation in Minimatch.
+ // Note that they are not supported in Glob itself anyway.
+ options.nonegate = true
+ options.nocomment = true
+
+ self.minimatch = new Minimatch(pattern, options)
+ self.options = self.minimatch.options
+}
+
+function finish (self) {
+ var nou = self.nounique
+ var all = nou ? [] : Object.create(null)
+
+ for (var i = 0, l = self.matches.length; i < l; i ++) {
+ var matches = self.matches[i]
+ if (!matches || Object.keys(matches).length === 0) {
+ if (self.nonull) {
+ // do like the shell, and spit out the literal glob
+ var literal = self.minimatch.globSet[i]
+ if (nou)
+ all.push(literal)
+ else
+ all[literal] = true
+ }
+ } else {
+ // had matches
+ var m = Object.keys(matches)
+ if (nou)
+ all.push.apply(all, m)
+ else
+ m.forEach(function (m) {
+ all[m] = true
+ })
+ }
+ }
+
+ if (!nou)
+ all = Object.keys(all)
+
+ if (!self.nosort)
+ all = all.sort(self.nocase ? alphasorti : alphasort)
+
+ // at *some* point we statted all of these
+ if (self.mark) {
+ for (var i = 0; i < all.length; i++) {
+ all[i] = self._mark(all[i])
+ }
+ if (self.nodir) {
+ all = all.filter(function (e) {
+ return !(/\/$/.test(e))
+ })
+ }
+ }
+
+ if (self.ignore.length)
+ all = all.filter(function(m) {
+ return !isIgnored(self, m)
+ })
+
+ self.found = all
+}
+
+function mark (self, p) {
+ var abs = makeAbs(self, p)
+ var c = self.cache[abs]
+ var m = p
+ if (c) {
+ var isDir = c === 'DIR' || Array.isArray(c)
+ var slash = p.slice(-1) === '/'
+
+ if (isDir && !slash)
+ m += '/'
+ else if (!isDir && slash)
+ m = m.slice(0, -1)
+
+ if (m !== p) {
+ var mabs = makeAbs(self, m)
+ self.statCache[mabs] = self.statCache[abs]
+ self.cache[mabs] = self.cache[abs]
+ }
+ }
+
+ return m
+}
+
+// lotta situps...
+function makeAbs (self, f) {
+ var abs = f
+ if (f.charAt(0) === '/') {
+ abs = path.join(self.root, f)
+ } else if (isAbsolute(f) || f === '') {
+ abs = f
+ } else if (self.changedCwd) {
+ abs = path.resolve(self.cwd, f)
+ } else {
+ abs = path.resolve(f)
+ }
+ return abs
+}
+
+
+// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
+// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
+function isIgnored (self, path) {
+ if (!self.ignore.length)
+ return false
+
+ return self.ignore.some(function(item) {
+ return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
+ })
+}
+
+function childrenIgnored (self, path) {
+ if (!self.ignore.length)
+ return false
+
+ return self.ignore.some(function(item) {
+ return !!(item.gmatcher && item.gmatcher.match(path))
+ })
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/glob.js b/deps/npm/node_modules/read-package-json/node_modules/glob/glob.js
new file mode 100644
index 00000000000000..a62da27ebd507a
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/glob.js
@@ -0,0 +1,765 @@
+// Approach:
+//
+// 1. Get the minimatch set
+// 2. For each pattern in the set, PROCESS(pattern, false)
+// 3. Store matches per-set, then uniq them
+//
+// PROCESS(pattern, inGlobStar)
+// Get the first [n] items from pattern that are all strings
+// Join these together. This is PREFIX.
+// If there is no more remaining, then stat(PREFIX) and
+// add to matches if it succeeds. END.
+//
+// If inGlobStar and PREFIX is symlink and points to dir
+// set ENTRIES = []
+// else readdir(PREFIX) as ENTRIES
+// If fail, END
+//
+// with ENTRIES
+// If pattern[n] is GLOBSTAR
+// // handle the case where the globstar match is empty
+// // by pruning it out, and testing the resulting pattern
+// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
+// // handle other cases.
+// for ENTRY in ENTRIES (not dotfiles)
+// // attach globstar + tail onto the entry
+// // Mark that this entry is a globstar match
+// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
+//
+// else // not globstar
+// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
+// Test ENTRY against pattern[n]
+// If fails, continue
+// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
+//
+// Caveat:
+// Cache all stats and readdirs results to minimize syscall. Since all
+// we ever care about is existence and directory-ness, we can just keep
+// `true` for files, and [children,...] for directories, or `false` for
+// things that don't exist.
+
+module.exports = glob
+
+var fs = require('fs')
+var minimatch = require('minimatch')
+var Minimatch = minimatch.Minimatch
+var inherits = require('inherits')
+var EE = require('events').EventEmitter
+var path = require('path')
+var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
+var globSync = require('./sync.js')
+var common = require('./common.js')
+var alphasort = common.alphasort
+var alphasorti = common.alphasorti
+var setopts = common.setopts
+var ownProp = common.ownProp
+var inflight = require('inflight')
+var util = require('util')
+var childrenIgnored = common.childrenIgnored
+var isIgnored = common.isIgnored
+
+var once = require('once')
+
+function glob (pattern, options, cb) {
+ if (typeof options === 'function') cb = options, options = {}
+ if (!options) options = {}
+
+ if (options.sync) {
+ if (cb)
+ throw new TypeError('callback provided to sync glob')
+ return globSync(pattern, options)
+ }
+
+ return new Glob(pattern, options, cb)
+}
+
+glob.sync = globSync
+var GlobSync = glob.GlobSync = globSync.GlobSync
+
+// old api surface
+glob.glob = glob
+
+function extend (origin, add) {
+ if (add === null || typeof add !== 'object') {
+ return origin
+ }
+
+ var keys = Object.keys(add)
+ var i = keys.length
+ while (i--) {
+ origin[keys[i]] = add[keys[i]]
+ }
+ return origin
+}
+
+glob.hasMagic = function (pattern, options_) {
+ var options = extend({}, options_)
+ options.noprocess = true
+
+ var g = new Glob(pattern, options)
+ var set = g.minimatch.set
+ if (set.length > 1)
+ return true
+
+ for (var j = 0; j < set[0].length; j++) {
+ if (typeof set[0][j] !== 'string')
+ return true
+ }
+
+ return false
+}
+
+glob.Glob = Glob
+inherits(Glob, EE)
+function Glob (pattern, options, cb) {
+ if (typeof options === 'function') {
+ cb = options
+ options = null
+ }
+
+ if (options && options.sync) {
+ if (cb)
+ throw new TypeError('callback provided to sync glob')
+ return new GlobSync(pattern, options)
+ }
+
+ if (!(this instanceof Glob))
+ return new Glob(pattern, options, cb)
+
+ setopts(this, pattern, options)
+ this._didRealPath = false
+
+ // process each pattern in the minimatch set
+ var n = this.minimatch.set.length
+
+ // The matches are stored as {: true,...} so that
+ // duplicates are automagically pruned.
+ // Later, we do an Object.keys() on these.
+ // Keep them as a list so we can fill in when nonull is set.
+ this.matches = new Array(n)
+
+ if (typeof cb === 'function') {
+ cb = once(cb)
+ this.on('error', cb)
+ this.on('end', function (matches) {
+ cb(null, matches)
+ })
+ }
+
+ var self = this
+ var n = this.minimatch.set.length
+ this._processing = 0
+ this.matches = new Array(n)
+
+ this._emitQueue = []
+ this._processQueue = []
+ this.paused = false
+
+ if (this.noprocess)
+ return this
+
+ if (n === 0)
+ return done()
+
+ for (var i = 0; i < n; i ++) {
+ this._process(this.minimatch.set[i], i, false, done)
+ }
+
+ function done () {
+ --self._processing
+ if (self._processing <= 0)
+ self._finish()
+ }
+}
+
+Glob.prototype._finish = function () {
+ assert(this instanceof Glob)
+ if (this.aborted)
+ return
+
+ if (this.realpath && !this._didRealpath)
+ return this._realpath()
+
+ common.finish(this)
+ this.emit('end', this.found)
+}
+
+Glob.prototype._realpath = function () {
+ if (this._didRealpath)
+ return
+
+ this._didRealpath = true
+
+ var n = this.matches.length
+ if (n === 0)
+ return this._finish()
+
+ var self = this
+ for (var i = 0; i < this.matches.length; i++)
+ this._realpathSet(i, next)
+
+ function next () {
+ if (--n === 0)
+ self._finish()
+ }
+}
+
+Glob.prototype._realpathSet = function (index, cb) {
+ var matchset = this.matches[index]
+ if (!matchset)
+ return cb()
+
+ var found = Object.keys(matchset)
+ var self = this
+ var n = found.length
+
+ if (n === 0)
+ return cb()
+
+ var set = this.matches[index] = Object.create(null)
+ found.forEach(function (p, i) {
+ // If there's a problem with the stat, then it means that
+ // one or more of the links in the realpath couldn't be
+ // resolved. just return the abs value in that case.
+ p = self._makeAbs(p)
+ fs.realpath(p, self.realpathCache, function (er, real) {
+ if (!er)
+ set[real] = true
+ else if (er.syscall === 'stat')
+ set[p] = true
+ else
+ self.emit('error', er) // srsly wtf right here
+
+ if (--n === 0) {
+ self.matches[index] = set
+ cb()
+ }
+ })
+ })
+}
+
+Glob.prototype._mark = function (p) {
+ return common.mark(this, p)
+}
+
+Glob.prototype._makeAbs = function (f) {
+ return common.makeAbs(this, f)
+}
+
+Glob.prototype.abort = function () {
+ this.aborted = true
+ this.emit('abort')
+}
+
+Glob.prototype.pause = function () {
+ if (!this.paused) {
+ this.paused = true
+ this.emit('pause')
+ }
+}
+
+Glob.prototype.resume = function () {
+ if (this.paused) {
+ this.emit('resume')
+ this.paused = false
+ if (this._emitQueue.length) {
+ var eq = this._emitQueue.slice(0)
+ this._emitQueue.length = 0
+ for (var i = 0; i < eq.length; i ++) {
+ var e = eq[i]
+ this._emitMatch(e[0], e[1])
+ }
+ }
+ if (this._processQueue.length) {
+ var pq = this._processQueue.slice(0)
+ this._processQueue.length = 0
+ for (var i = 0; i < pq.length; i ++) {
+ var p = pq[i]
+ this._processing--
+ this._process(p[0], p[1], p[2], p[3])
+ }
+ }
+ }
+}
+
+Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
+ assert(this instanceof Glob)
+ assert(typeof cb === 'function')
+
+ if (this.aborted)
+ return
+
+ this._processing++
+ if (this.paused) {
+ this._processQueue.push([pattern, index, inGlobStar, cb])
+ return
+ }
+
+ //console.error('PROCESS %d', this._processing, pattern)
+
+ // Get the first [n] parts of pattern that are all strings.
+ var n = 0
+ while (typeof pattern[n] === 'string') {
+ n ++
+ }
+ // now n is the index of the first one that is *not* a string.
+
+ // see if there's anything else
+ var prefix
+ switch (n) {
+ // if not, then this is rather simple
+ case pattern.length:
+ this._processSimple(pattern.join('/'), index, cb)
+ return
+
+ case 0:
+ // pattern *starts* with some non-trivial item.
+ // going to readdir(cwd), but not include the prefix in matches.
+ prefix = null
+ break
+
+ default:
+ // pattern has some string bits in the front.
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
+ // or 'relative' like '../baz'
+ prefix = pattern.slice(0, n).join('/')
+ break
+ }
+
+ var remain = pattern.slice(n)
+
+ // get the list of entries.
+ var read
+ if (prefix === null)
+ read = '.'
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
+ if (!prefix || !isAbsolute(prefix))
+ prefix = '/' + prefix
+ read = prefix
+ } else
+ read = prefix
+
+ var abs = this._makeAbs(read)
+
+ //if ignored, skip _processing
+ if (childrenIgnored(this, read))
+ return cb()
+
+ var isGlobStar = remain[0] === minimatch.GLOBSTAR
+ if (isGlobStar)
+ this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
+ else
+ this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
+}
+
+Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+ var self = this
+ this._readdir(abs, inGlobStar, function (er, entries) {
+ return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
+ })
+}
+
+Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+
+ // if the abs isn't a dir, then nothing can match!
+ if (!entries)
+ return cb()
+
+ // It will only match dot entries if it starts with a dot, or if
+ // dot is set. Stuff like @(.foo|.bar) isn't allowed.
+ var pn = remain[0]
+ var negate = !!this.minimatch.negate
+ var rawGlob = pn._glob
+ var dotOk = this.dot || rawGlob.charAt(0) === '.'
+
+ var matchedEntries = []
+ for (var i = 0; i < entries.length; i++) {
+ var e = entries[i]
+ if (e.charAt(0) !== '.' || dotOk) {
+ var m
+ if (negate && !prefix) {
+ m = !e.match(pn)
+ } else {
+ m = e.match(pn)
+ }
+ if (m)
+ matchedEntries.push(e)
+ }
+ }
+
+ //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
+
+ var len = matchedEntries.length
+ // If there are no matched entries, then nothing matches.
+ if (len === 0)
+ return cb()
+
+ // if this is the last remaining pattern bit, then no need for
+ // an additional stat *unless* the user has specified mark or
+ // stat explicitly. We know they exist, since readdir returned
+ // them.
+
+ if (remain.length === 1 && !this.mark && !this.stat) {
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ if (prefix) {
+ if (prefix !== '/')
+ e = prefix + '/' + e
+ else
+ e = prefix + e
+ }
+
+ if (e.charAt(0) === '/' && !this.nomount) {
+ e = path.join(this.root, e)
+ }
+ this._emitMatch(index, e)
+ }
+ // This was the last one, and no stats were needed
+ return cb()
+ }
+
+ // now test all matched entries as stand-ins for that part
+ // of the pattern.
+ remain.shift()
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ var newPattern
+ if (prefix) {
+ if (prefix !== '/')
+ e = prefix + '/' + e
+ else
+ e = prefix + e
+ }
+ this._process([e].concat(remain), index, inGlobStar, cb)
+ }
+ cb()
+}
+
+Glob.prototype._emitMatch = function (index, e) {
+ if (this.aborted)
+ return
+
+ if (this.matches[index][e])
+ return
+
+ if (isIgnored(this, e))
+ return
+
+ if (this.paused) {
+ this._emitQueue.push([index, e])
+ return
+ }
+
+ var abs = this._makeAbs(e)
+
+ if (this.nodir) {
+ var c = this.cache[abs]
+ if (c === 'DIR' || Array.isArray(c))
+ return
+ }
+
+ if (this.mark)
+ e = this._mark(e)
+
+ this.matches[index][e] = true
+
+ var st = this.statCache[abs]
+ if (st)
+ this.emit('stat', e, st)
+
+ this.emit('match', e)
+}
+
+Glob.prototype._readdirInGlobStar = function (abs, cb) {
+ if (this.aborted)
+ return
+
+ // follow all symlinked directories forever
+ // just proceed as if this is a non-globstar situation
+ if (this.follow)
+ return this._readdir(abs, false, cb)
+
+ var lstatkey = 'lstat\0' + abs
+ var self = this
+ var lstatcb = inflight(lstatkey, lstatcb_)
+
+ if (lstatcb)
+ fs.lstat(abs, lstatcb)
+
+ function lstatcb_ (er, lstat) {
+ if (er)
+ return cb()
+
+ var isSym = lstat.isSymbolicLink()
+ self.symlinks[abs] = isSym
+
+ // If it's not a symlink or a dir, then it's definitely a regular file.
+ // don't bother doing a readdir in that case.
+ if (!isSym && !lstat.isDirectory()) {
+ self.cache[abs] = 'FILE'
+ cb()
+ } else
+ self._readdir(abs, false, cb)
+ }
+}
+
+Glob.prototype._readdir = function (abs, inGlobStar, cb) {
+ if (this.aborted)
+ return
+
+ cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
+ if (!cb)
+ return
+
+ //console.error('RD %j %j', +inGlobStar, abs)
+ if (inGlobStar && !ownProp(this.symlinks, abs))
+ return this._readdirInGlobStar(abs, cb)
+
+ if (ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+ if (!c || c === 'FILE')
+ return cb()
+
+ if (Array.isArray(c))
+ return cb(null, c)
+ }
+
+ var self = this
+ fs.readdir(abs, readdirCb(this, abs, cb))
+}
+
+function readdirCb (self, abs, cb) {
+ return function (er, entries) {
+ if (er)
+ self._readdirError(abs, er, cb)
+ else
+ self._readdirEntries(abs, entries, cb)
+ }
+}
+
+Glob.prototype._readdirEntries = function (abs, entries, cb) {
+ if (this.aborted)
+ return
+
+ // if we haven't asked to stat everything, then just
+ // assume that everything in there exists, so we can avoid
+ // having to stat it a second time.
+ if (!this.mark && !this.stat) {
+ for (var i = 0; i < entries.length; i ++) {
+ var e = entries[i]
+ if (abs === '/')
+ e = abs + e
+ else
+ e = abs + '/' + e
+ this.cache[e] = true
+ }
+ }
+
+ this.cache[abs] = entries
+ return cb(null, entries)
+}
+
+Glob.prototype._readdirError = function (f, er, cb) {
+ if (this.aborted)
+ return
+
+ // handle errors, and cache the information
+ switch (er.code) {
+ case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+ case 'ENOTDIR': // totally normal. means it *does* exist.
+ this.cache[this._makeAbs(f)] = 'FILE'
+ break
+
+ case 'ENOENT': // not terribly unusual
+ case 'ELOOP':
+ case 'ENAMETOOLONG':
+ case 'UNKNOWN':
+ this.cache[this._makeAbs(f)] = false
+ break
+
+ default: // some unusual error. Treat as failure.
+ this.cache[this._makeAbs(f)] = false
+ if (this.strict) {
+ this.emit('error', er)
+ // If the error is handled, then we abort
+ // if not, we threw out of here
+ this.abort()
+ }
+ if (!this.silent)
+ console.error('glob error', er)
+ break
+ }
+
+ return cb()
+}
+
+Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+ var self = this
+ this._readdir(abs, inGlobStar, function (er, entries) {
+ self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
+ })
+}
+
+
+Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+ //console.error('pgs2', prefix, remain[0], entries)
+
+ // no entries means not a dir, so it can never have matches
+ // foo.txt/** doesn't match foo.txt
+ if (!entries)
+ return cb()
+
+ // test without the globstar, and with every child both below
+ // and replacing the globstar.
+ var remainWithoutGlobStar = remain.slice(1)
+ var gspref = prefix ? [ prefix ] : []
+ var noGlobStar = gspref.concat(remainWithoutGlobStar)
+
+ // the noGlobStar pattern exits the inGlobStar state
+ this._process(noGlobStar, index, false, cb)
+
+ var isSym = this.symlinks[abs]
+ var len = entries.length
+
+ // If it's a symlink, and we're in a globstar, then stop
+ if (isSym && inGlobStar)
+ return cb()
+
+ for (var i = 0; i < len; i++) {
+ var e = entries[i]
+ if (e.charAt(0) === '.' && !this.dot)
+ continue
+
+ // these two cases enter the inGlobStar state
+ var instead = gspref.concat(entries[i], remainWithoutGlobStar)
+ this._process(instead, index, true, cb)
+
+ var below = gspref.concat(entries[i], remain)
+ this._process(below, index, true, cb)
+ }
+
+ cb()
+}
+
+Glob.prototype._processSimple = function (prefix, index, cb) {
+ // XXX review this. Shouldn't it be doing the mounting etc
+ // before doing stat? kinda weird?
+ var self = this
+ this._stat(prefix, function (er, exists) {
+ self._processSimple2(prefix, index, er, exists, cb)
+ })
+}
+Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
+
+ //console.error('ps2', prefix, exists)
+
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ // If it doesn't exist, then just mark the lack of results
+ if (!exists)
+ return cb()
+
+ if (prefix && isAbsolute(prefix) && !this.nomount) {
+ var trail = /[\/\\]$/.test(prefix)
+ if (prefix.charAt(0) === '/') {
+ prefix = path.join(this.root, prefix)
+ } else {
+ prefix = path.resolve(this.root, prefix)
+ if (trail)
+ prefix += '/'
+ }
+ }
+
+ if (process.platform === 'win32')
+ prefix = prefix.replace(/\\/g, '/')
+
+ // Mark this as a match
+ this._emitMatch(index, prefix)
+ cb()
+}
+
+// Returns either 'DIR', 'FILE', or false
+Glob.prototype._stat = function (f, cb) {
+ var abs = this._makeAbs(f)
+ var needDir = f.slice(-1) === '/'
+
+ if (f.length > this.maxLength)
+ return cb()
+
+ if (!this.stat && ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+
+ if (Array.isArray(c))
+ c = 'DIR'
+
+ // It exists, but maybe not how we need it
+ if (!needDir || c === 'DIR')
+ return cb(null, c)
+
+ if (needDir && c === 'FILE')
+ return cb()
+
+ // otherwise we have to stat, because maybe c=true
+ // if we know it exists, but not what it is.
+ }
+
+ var exists
+ var stat = this.statCache[abs]
+ if (stat !== undefined) {
+ if (stat === false)
+ return cb(null, stat)
+ else {
+ var type = stat.isDirectory() ? 'DIR' : 'FILE'
+ if (needDir && type === 'FILE')
+ return cb()
+ else
+ return cb(null, type, stat)
+ }
+ }
+
+ var self = this
+ var statcb = inflight('stat\0' + abs, lstatcb_)
+ if (statcb)
+ fs.lstat(abs, statcb)
+
+ function lstatcb_ (er, lstat) {
+ if (lstat && lstat.isSymbolicLink()) {
+ // If it's a symlink, then treat it as the target, unless
+ // the target does not exist, then treat it as a file.
+ return fs.stat(abs, function (er, stat) {
+ if (er)
+ self._stat2(f, abs, null, lstat, cb)
+ else
+ self._stat2(f, abs, er, stat, cb)
+ })
+ } else {
+ self._stat2(f, abs, er, lstat, cb)
+ }
+ }
+}
+
+Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
+ if (er) {
+ this.statCache[abs] = false
+ return cb()
+ }
+
+ var needDir = f.slice(-1) === '/'
+ this.statCache[abs] = stat
+
+ if (abs.slice(-1) === '/' && !stat.isDirectory())
+ return cb(null, false, stat)
+
+ var c = stat.isDirectory() ? 'DIR' : 'FILE'
+ this.cache[abs] = this.cache[abs] || c
+
+ if (needDir && c !== 'DIR')
+ return cb()
+
+ return cb(null, c, stat)
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/LICENSE b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/LICENSE
new file mode 100644
index 00000000000000..19129e315fe593
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/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/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/README.md b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/README.md
new file mode 100644
index 00000000000000..d458bc2e0a6b03
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/README.md
@@ -0,0 +1,216 @@
+# minimatch
+
+A minimal matching utility.
+
+[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
+
+
+This is the matching library used internally by npm.
+
+It works by converting glob expressions into JavaScript `RegExp`
+objects.
+
+## Usage
+
+```javascript
+var minimatch = require("minimatch")
+
+minimatch("bar.foo", "*.foo") // true!
+minimatch("bar.foo", "*.bar") // false!
+minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
+```
+
+## Features
+
+Supports these glob features:
+
+* Brace Expansion
+* Extended glob matching
+* "Globstar" `**` matching
+
+See:
+
+* `man sh`
+* `man bash`
+* `man 3 fnmatch`
+* `man 5 gitignore`
+
+## Minimatch Class
+
+Create a minimatch object by instanting the `minimatch.Minimatch` class.
+
+```javascript
+var Minimatch = require("minimatch").Minimatch
+var mm = new Minimatch(pattern, options)
+```
+
+### Properties
+
+* `pattern` The original pattern the minimatch object represents.
+* `options` The options supplied to the constructor.
+* `set` A 2-dimensional array of regexp or string expressions.
+ Each row in the
+ array corresponds to a brace-expanded pattern. Each item in the row
+ corresponds to a single path-part. For example, the pattern
+ `{a,b/c}/d` would expand to a set of patterns like:
+
+ [ [ a, d ]
+ , [ b, c, d ] ]
+
+ If a portion of the pattern doesn't have any "magic" in it
+ (that is, it's something like `"foo"` rather than `fo*o?`), then it
+ will be left as a string rather than converted to a regular
+ expression.
+
+* `regexp` Created by the `makeRe` method. A single regular expression
+ expressing the entire pattern. This is useful in cases where you wish
+ to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
+* `negate` True if the pattern is negated.
+* `comment` True if the pattern is a comment.
+* `empty` True if the pattern is `""`.
+
+### Methods
+
+* `makeRe` Generate the `regexp` member if necessary, and return it.
+ Will return `false` if the pattern is invalid.
+* `match(fname)` Return true if the filename matches the pattern, or
+ false otherwise.
+* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
+ filename, and match it against a single row in the `regExpSet`. This
+ method is mainly for internal use, but is exposed so that it can be
+ used by a glob-walker that needs to avoid excessive filesystem calls.
+
+All other methods are internal, and will be called as necessary.
+
+## Functions
+
+The top-level exported function has a `cache` property, which is an LRU
+cache set to store 100 items. So, calling these methods repeatedly
+with the same pattern and options will use the same Minimatch object,
+saving the cost of parsing it multiple times.
+
+### minimatch(path, pattern, options)
+
+Main export. Tests a path against the pattern using the options.
+
+```javascript
+var isJS = minimatch(file, "*.js", { matchBase: true })
+```
+
+### minimatch.filter(pattern, options)
+
+Returns a function that tests its
+supplied argument, suitable for use with `Array.filter`. Example:
+
+```javascript
+var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
+```
+
+### minimatch.match(list, pattern, options)
+
+Match against the list of
+files, in the style of fnmatch or glob. If nothing is matched, and
+options.nonull is set, then return a list containing the pattern itself.
+
+```javascript
+var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
+```
+
+### minimatch.makeRe(pattern, options)
+
+Make a regular expression object from the pattern.
+
+## Options
+
+All options are `false` by default.
+
+### debug
+
+Dump a ton of stuff to stderr.
+
+### nobrace
+
+Do not expand `{a,b}` and `{1..3}` brace sets.
+
+### noglobstar
+
+Disable `**` matching against multiple folder names.
+
+### dot
+
+Allow patterns to match filenames starting with a period, even if
+the pattern does not explicitly have a period in that spot.
+
+Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
+is set.
+
+### noext
+
+Disable "extglob" style patterns like `+(a|b)`.
+
+### nocase
+
+Perform a case-insensitive match.
+
+### nonull
+
+When a match is not found by `minimatch.match`, return a list containing
+the pattern itself if this option is set. When not set, an empty list
+is returned if there are no matches.
+
+### matchBase
+
+If set, then patterns without slashes will be matched
+against the basename of the path if it contains slashes. For example,
+`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
+
+### nocomment
+
+Suppress the behavior of treating `#` at the start of a pattern as a
+comment.
+
+### nonegate
+
+Suppress the behavior of treating a leading `!` character as negation.
+
+### flipNegate
+
+Returns from negate expressions the same as if they were not negated.
+(Ie, true on a hit, false on a miss.)
+
+
+## Comparisons to other fnmatch/glob implementations
+
+While strict compliance with the existing standards is a worthwhile
+goal, some discrepancies exist between minimatch and other
+implementations, and are intentional.
+
+If the pattern starts with a `!` character, then it is negated. Set the
+`nonegate` flag to suppress this behavior, and treat leading `!`
+characters normally. This is perhaps relevant if you wish to start the
+pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
+characters at the start of a pattern will negate the pattern multiple
+times.
+
+If a pattern starts with `#`, then it is treated as a comment, and
+will not match anything. Use `\#` to match a literal `#` at the
+start of a line, or set the `nocomment` flag to suppress this behavior.
+
+The double-star character `**` is supported by default, unless the
+`noglobstar` flag is set. This is supported in the manner of bsdglob
+and bash 4.1, where `**` only has special significance if it is the only
+thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
+`a/**b` will not.
+
+If an escaped pattern has no matches, and the `nonull` flag is set,
+then minimatch.match returns the pattern as-provided, rather than
+interpreting the character escapes. For example,
+`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
+`"*a?"`. This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
+
+If brace expansion is not disabled, then it is performed before any
+other interpretation of the glob pattern. Thus, a pattern like
+`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
+**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
+checked for validity. Since those two are valid, matching proceeds.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js
new file mode 100644
index 00000000000000..ec4c05c570c52e
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js
@@ -0,0 +1,912 @@
+module.exports = minimatch
+minimatch.Minimatch = Minimatch
+
+var path = { sep: '/' }
+try {
+ path = require('path')
+} catch (er) {}
+
+var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
+var expand = require('brace-expansion')
+
+// any single thing other than /
+// don't need to escape / when using new RegExp()
+var qmark = '[^/]'
+
+// * => any number of characters
+var star = qmark + '*?'
+
+// ** when dots are allowed. Anything goes, except .. and .
+// not (^ or / followed by one or two dots followed by $ or /),
+// followed by anything, any number of times.
+var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
+
+// not a ^ or / followed by a dot,
+// followed by anything, any number of times.
+var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
+
+// characters that need to be escaped in RegExp.
+var reSpecials = charSet('().*{}+?[]^$\\!')
+
+// "abc" -> { a:true, b:true, c:true }
+function charSet (s) {
+ return s.split('').reduce(function (set, c) {
+ set[c] = true
+ return set
+ }, {})
+}
+
+// normalizes slashes.
+var slashSplit = /\/+/
+
+minimatch.filter = filter
+function filter (pattern, options) {
+ options = options || {}
+ return function (p, i, list) {
+ return minimatch(p, pattern, options)
+ }
+}
+
+function ext (a, b) {
+ a = a || {}
+ b = b || {}
+ var t = {}
+ Object.keys(b).forEach(function (k) {
+ t[k] = b[k]
+ })
+ Object.keys(a).forEach(function (k) {
+ t[k] = a[k]
+ })
+ return t
+}
+
+minimatch.defaults = function (def) {
+ if (!def || !Object.keys(def).length) return minimatch
+
+ var orig = minimatch
+
+ var m = function minimatch (p, pattern, options) {
+ return orig.minimatch(p, pattern, ext(def, options))
+ }
+
+ m.Minimatch = function Minimatch (pattern, options) {
+ return new orig.Minimatch(pattern, ext(def, options))
+ }
+
+ return m
+}
+
+Minimatch.defaults = function (def) {
+ if (!def || !Object.keys(def).length) return Minimatch
+ return minimatch.defaults(def).Minimatch
+}
+
+function minimatch (p, pattern, options) {
+ if (typeof pattern !== 'string') {
+ throw new TypeError('glob pattern string required')
+ }
+
+ if (!options) options = {}
+
+ // shortcut: comments match nothing.
+ if (!options.nocomment && pattern.charAt(0) === '#') {
+ return false
+ }
+
+ // "" only matches ""
+ if (pattern.trim() === '') return p === ''
+
+ return new Minimatch(pattern, options).match(p)
+}
+
+function Minimatch (pattern, options) {
+ if (!(this instanceof Minimatch)) {
+ return new Minimatch(pattern, options)
+ }
+
+ if (typeof pattern !== 'string') {
+ throw new TypeError('glob pattern string required')
+ }
+
+ if (!options) options = {}
+ pattern = pattern.trim()
+
+ // windows support: need to use /, not \
+ if (path.sep !== '/') {
+ pattern = pattern.split(path.sep).join('/')
+ }
+
+ this.options = options
+ this.set = []
+ this.pattern = pattern
+ this.regexp = null
+ this.negate = false
+ this.comment = false
+ this.empty = false
+
+ // make the set of regexps etc.
+ this.make()
+}
+
+Minimatch.prototype.debug = function () {}
+
+Minimatch.prototype.make = make
+function make () {
+ // don't do it more than once.
+ if (this._made) return
+
+ var pattern = this.pattern
+ var options = this.options
+
+ // empty patterns and comments match nothing.
+ if (!options.nocomment && pattern.charAt(0) === '#') {
+ this.comment = true
+ return
+ }
+ if (!pattern) {
+ this.empty = true
+ return
+ }
+
+ // step 1: figure out negation, etc.
+ this.parseNegate()
+
+ // step 2: expand braces
+ var set = this.globSet = this.braceExpand()
+
+ if (options.debug) this.debug = console.error
+
+ this.debug(this.pattern, set)
+
+ // step 3: now we have a set, so turn each one into a series of path-portion
+ // matching patterns.
+ // These will be regexps, except in the case of "**", which is
+ // set to the GLOBSTAR object for globstar behavior,
+ // and will not contain any / characters
+ set = this.globParts = set.map(function (s) {
+ return s.split(slashSplit)
+ })
+
+ this.debug(this.pattern, set)
+
+ // glob --> regexps
+ set = set.map(function (s, si, set) {
+ return s.map(this.parse, this)
+ }, this)
+
+ this.debug(this.pattern, set)
+
+ // filter out everything that didn't compile properly.
+ set = set.filter(function (s) {
+ return s.indexOf(false) === -1
+ })
+
+ this.debug(this.pattern, set)
+
+ this.set = set
+}
+
+Minimatch.prototype.parseNegate = parseNegate
+function parseNegate () {
+ var pattern = this.pattern
+ var negate = false
+ var options = this.options
+ var negateOffset = 0
+
+ if (options.nonegate) return
+
+ for (var i = 0, l = pattern.length
+ ; i < l && pattern.charAt(i) === '!'
+ ; i++) {
+ negate = !negate
+ negateOffset++
+ }
+
+ if (negateOffset) this.pattern = pattern.substr(negateOffset)
+ this.negate = negate
+}
+
+// Brace expansion:
+// a{b,c}d -> abd acd
+// a{b,}c -> abc ac
+// a{0..3}d -> a0d a1d a2d a3d
+// a{b,c{d,e}f}g -> abg acdfg acefg
+// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
+//
+// Invalid sets are not expanded.
+// a{2..}b -> a{2..}b
+// a{b}c -> a{b}c
+minimatch.braceExpand = function (pattern, options) {
+ return braceExpand(pattern, options)
+}
+
+Minimatch.prototype.braceExpand = braceExpand
+
+function braceExpand (pattern, options) {
+ if (!options) {
+ if (this instanceof Minimatch) {
+ options = this.options
+ } else {
+ options = {}
+ }
+ }
+
+ pattern = typeof pattern === 'undefined'
+ ? this.pattern : pattern
+
+ if (typeof pattern === 'undefined') {
+ throw new Error('undefined pattern')
+ }
+
+ if (options.nobrace ||
+ !pattern.match(/\{.*\}/)) {
+ // shortcut. no need to expand.
+ return [pattern]
+ }
+
+ return expand(pattern)
+}
+
+// parse a component of the expanded set.
+// At this point, no pattern may contain "/" in it
+// so we're going to return a 2d array, where each entry is the full
+// pattern, split on '/', and then turned into a regular expression.
+// A regexp is made at the end which joins each array with an
+// escaped /, and another full one which joins each regexp with |.
+//
+// Following the lead of Bash 4.1, note that "**" only has special meaning
+// when it is the *only* thing in a path portion. Otherwise, any series
+// of * is equivalent to a single *. Globstar behavior is enabled by
+// default, and can be disabled by setting options.noglobstar.
+Minimatch.prototype.parse = parse
+var SUBPARSE = {}
+function parse (pattern, isSub) {
+ var options = this.options
+
+ // shortcuts
+ if (!options.noglobstar && pattern === '**') return GLOBSTAR
+ if (pattern === '') return ''
+
+ var re = ''
+ var hasMagic = !!options.nocase
+ var escaping = false
+ // ? => one single character
+ var patternListStack = []
+ var negativeLists = []
+ var plType
+ var stateChar
+ var inClass = false
+ var reClassStart = -1
+ var classStart = -1
+ // . and .. never match anything that doesn't start with .,
+ // even when options.dot is set.
+ var patternStart = pattern.charAt(0) === '.' ? '' // anything
+ // not (start or / followed by . or .. followed by / or end)
+ : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
+ : '(?!\\.)'
+ var self = this
+
+ function clearStateChar () {
+ if (stateChar) {
+ // we had some state-tracking character
+ // that wasn't consumed by this pass.
+ switch (stateChar) {
+ case '*':
+ re += star
+ hasMagic = true
+ break
+ case '?':
+ re += qmark
+ hasMagic = true
+ break
+ default:
+ re += '\\' + stateChar
+ break
+ }
+ self.debug('clearStateChar %j %j', stateChar, re)
+ stateChar = false
+ }
+ }
+
+ for (var i = 0, len = pattern.length, c
+ ; (i < len) && (c = pattern.charAt(i))
+ ; i++) {
+ this.debug('%s\t%s %s %j', pattern, i, re, c)
+
+ // skip over any that are escaped.
+ if (escaping && reSpecials[c]) {
+ re += '\\' + c
+ escaping = false
+ continue
+ }
+
+ switch (c) {
+ case '/':
+ // completely not allowed, even escaped.
+ // Should already be path-split by now.
+ return false
+
+ case '\\':
+ clearStateChar()
+ escaping = true
+ continue
+
+ // the various stateChar values
+ // for the "extglob" stuff.
+ case '?':
+ case '*':
+ case '+':
+ case '@':
+ case '!':
+ this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
+
+ // all of those are literals inside a class, except that
+ // the glob [!a] means [^a] in regexp
+ if (inClass) {
+ this.debug(' in class')
+ if (c === '!' && i === classStart + 1) c = '^'
+ re += c
+ continue
+ }
+
+ // if we already have a stateChar, then it means
+ // that there was something like ** or +? in there.
+ // Handle the stateChar, then proceed with this one.
+ self.debug('call clearStateChar %j', stateChar)
+ clearStateChar()
+ stateChar = c
+ // if extglob is disabled, then +(asdf|foo) isn't a thing.
+ // just clear the statechar *now*, rather than even diving into
+ // the patternList stuff.
+ if (options.noext) clearStateChar()
+ continue
+
+ case '(':
+ if (inClass) {
+ re += '('
+ continue
+ }
+
+ if (!stateChar) {
+ re += '\\('
+ continue
+ }
+
+ plType = stateChar
+ patternListStack.push({
+ type: plType,
+ start: i - 1,
+ reStart: re.length
+ })
+ // negation is (?:(?!js)[^/]*)
+ re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
+ this.debug('plType %j %j', stateChar, re)
+ stateChar = false
+ continue
+
+ case ')':
+ if (inClass || !patternListStack.length) {
+ re += '\\)'
+ continue
+ }
+
+ clearStateChar()
+ hasMagic = true
+ re += ')'
+ var pl = patternListStack.pop()
+ plType = pl.type
+ // negation is (?:(?!js)[^/]*)
+ // The others are (?:)
+ switch (plType) {
+ case '!':
+ negativeLists.push(pl)
+ re += ')[^/]*?)'
+ pl.reEnd = re.length
+ break
+ case '?':
+ case '+':
+ case '*':
+ re += plType
+ break
+ case '@': break // the default anyway
+ }
+ continue
+
+ case '|':
+ if (inClass || !patternListStack.length || escaping) {
+ re += '\\|'
+ escaping = false
+ continue
+ }
+
+ clearStateChar()
+ re += '|'
+ continue
+
+ // these are mostly the same in regexp and glob
+ case '[':
+ // swallow any state-tracking char before the [
+ clearStateChar()
+
+ if (inClass) {
+ re += '\\' + c
+ continue
+ }
+
+ inClass = true
+ classStart = i
+ reClassStart = re.length
+ re += c
+ continue
+
+ case ']':
+ // a right bracket shall lose its special
+ // meaning and represent itself in
+ // a bracket expression if it occurs
+ // first in the list. -- POSIX.2 2.8.3.2
+ if (i === classStart + 1 || !inClass) {
+ re += '\\' + c
+ escaping = false
+ continue
+ }
+
+ // handle the case where we left a class open.
+ // "[z-a]" is valid, equivalent to "\[z-a\]"
+ if (inClass) {
+ // split where the last [ was, make sure we don't have
+ // an invalid re. if so, re-walk the contents of the
+ // would-be class to re-translate any characters that
+ // were passed through as-is
+ // TODO: It would probably be faster to determine this
+ // without a try/catch and a new RegExp, but it's tricky
+ // to do safely. For now, this is safe and works.
+ var cs = pattern.substring(classStart + 1, i)
+ try {
+ RegExp('[' + cs + ']')
+ } catch (er) {
+ // not a valid class!
+ var sp = this.parse(cs, SUBPARSE)
+ re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
+ hasMagic = hasMagic || sp[1]
+ inClass = false
+ continue
+ }
+ }
+
+ // finish up the class.
+ hasMagic = true
+ inClass = false
+ re += c
+ continue
+
+ default:
+ // swallow any state char that wasn't consumed
+ clearStateChar()
+
+ if (escaping) {
+ // no need
+ escaping = false
+ } else if (reSpecials[c]
+ && !(c === '^' && inClass)) {
+ re += '\\'
+ }
+
+ re += c
+
+ } // switch
+ } // for
+
+ // handle the case where we left a class open.
+ // "[abc" is valid, equivalent to "\[abc"
+ if (inClass) {
+ // split where the last [ was, and escape it
+ // this is a huge pita. We now have to re-walk
+ // the contents of the would-be class to re-translate
+ // any characters that were passed through as-is
+ cs = pattern.substr(classStart + 1)
+ sp = this.parse(cs, SUBPARSE)
+ re = re.substr(0, reClassStart) + '\\[' + sp[0]
+ hasMagic = hasMagic || sp[1]
+ }
+
+ // handle the case where we had a +( thing at the *end*
+ // of the pattern.
+ // each pattern list stack adds 3 chars, and we need to go through
+ // and escape any | chars that were passed through as-is for the regexp.
+ // Go through and escape them, taking care not to double-escape any
+ // | chars that were already escaped.
+ for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
+ var tail = re.slice(pl.reStart + 3)
+ // maybe some even number of \, then maybe 1 \, followed by a |
+ tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
+ if (!$2) {
+ // the | isn't already escaped, so escape it.
+ $2 = '\\'
+ }
+
+ // need to escape all those slashes *again*, without escaping the
+ // one that we need for escaping the | character. As it works out,
+ // escaping an even number of slashes can be done by simply repeating
+ // it exactly after itself. That's why this trick works.
+ //
+ // I am sorry that you have to see this.
+ return $1 + $1 + $2 + '|'
+ })
+
+ this.debug('tail=%j\n %s', tail, tail)
+ var t = pl.type === '*' ? star
+ : pl.type === '?' ? qmark
+ : '\\' + pl.type
+
+ hasMagic = true
+ re = re.slice(0, pl.reStart) + t + '\\(' + tail
+ }
+
+ // handle trailing things that only matter at the very end.
+ clearStateChar()
+ if (escaping) {
+ // trailing \\
+ re += '\\\\'
+ }
+
+ // only need to apply the nodot start if the re starts with
+ // something that could conceivably capture a dot
+ var addPatternStart = false
+ switch (re.charAt(0)) {
+ case '.':
+ case '[':
+ case '(': addPatternStart = true
+ }
+
+ // Hack to work around lack of negative lookbehind in JS
+ // A pattern like: *.!(x).!(y|z) needs to ensure that a name
+ // like 'a.xyz.yz' doesn't match. So, the first negative
+ // lookahead, has to look ALL the way ahead, to the end of
+ // the pattern.
+ for (var n = negativeLists.length - 1; n > -1; n--) {
+ var nl = negativeLists[n]
+
+ var nlBefore = re.slice(0, nl.reStart)
+ var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
+ var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
+ var nlAfter = re.slice(nl.reEnd)
+
+ nlLast += nlAfter
+
+ // Handle nested stuff like *(*.js|!(*.json)), where open parens
+ // mean that we should *not* include the ) in the bit that is considered
+ // "after" the negated section.
+ var openParensBefore = nlBefore.split('(').length - 1
+ var cleanAfter = nlAfter
+ for (i = 0; i < openParensBefore; i++) {
+ cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
+ }
+ nlAfter = cleanAfter
+
+ var dollar = ''
+ if (nlAfter === '' && isSub !== SUBPARSE) {
+ dollar = '$'
+ }
+ var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
+ re = newRe
+ }
+
+ // if the re is not "" at this point, then we need to make sure
+ // it doesn't match against an empty path part.
+ // Otherwise a/* will match a/, which it should not.
+ if (re !== '' && hasMagic) {
+ re = '(?=.)' + re
+ }
+
+ if (addPatternStart) {
+ re = patternStart + re
+ }
+
+ // parsing just a piece of a larger pattern.
+ if (isSub === SUBPARSE) {
+ return [re, hasMagic]
+ }
+
+ // skip the regexp for non-magical patterns
+ // unescape anything in it, though, so that it'll be
+ // an exact match against a file etc.
+ if (!hasMagic) {
+ return globUnescape(pattern)
+ }
+
+ var flags = options.nocase ? 'i' : ''
+ var regExp = new RegExp('^' + re + '$', flags)
+
+ regExp._glob = pattern
+ regExp._src = re
+
+ return regExp
+}
+
+minimatch.makeRe = function (pattern, options) {
+ return new Minimatch(pattern, options || {}).makeRe()
+}
+
+Minimatch.prototype.makeRe = makeRe
+function makeRe () {
+ if (this.regexp || this.regexp === false) return this.regexp
+
+ // at this point, this.set is a 2d array of partial
+ // pattern strings, or "**".
+ //
+ // It's better to use .match(). This function shouldn't
+ // be used, really, but it's pretty convenient sometimes,
+ // when you just want to work with a regex.
+ var set = this.set
+
+ if (!set.length) {
+ this.regexp = false
+ return this.regexp
+ }
+ var options = this.options
+
+ var twoStar = options.noglobstar ? star
+ : options.dot ? twoStarDot
+ : twoStarNoDot
+ var flags = options.nocase ? 'i' : ''
+
+ var re = set.map(function (pattern) {
+ return pattern.map(function (p) {
+ return (p === GLOBSTAR) ? twoStar
+ : (typeof p === 'string') ? regExpEscape(p)
+ : p._src
+ }).join('\\\/')
+ }).join('|')
+
+ // must match entire pattern
+ // ending in a * or ** will make it less strict.
+ re = '^(?:' + re + ')$'
+
+ // can match anything, as long as it's not this.
+ if (this.negate) re = '^(?!' + re + ').*$'
+
+ try {
+ this.regexp = new RegExp(re, flags)
+ } catch (ex) {
+ this.regexp = false
+ }
+ return this.regexp
+}
+
+minimatch.match = function (list, pattern, options) {
+ options = options || {}
+ var mm = new Minimatch(pattern, options)
+ list = list.filter(function (f) {
+ return mm.match(f)
+ })
+ if (mm.options.nonull && !list.length) {
+ list.push(pattern)
+ }
+ return list
+}
+
+Minimatch.prototype.match = match
+function match (f, partial) {
+ this.debug('match', f, this.pattern)
+ // short-circuit in the case of busted things.
+ // comments, etc.
+ if (this.comment) return false
+ if (this.empty) return f === ''
+
+ if (f === '/' && partial) return true
+
+ var options = this.options
+
+ // windows: need to use /, not \
+ if (path.sep !== '/') {
+ f = f.split(path.sep).join('/')
+ }
+
+ // treat the test path as a set of pathparts.
+ f = f.split(slashSplit)
+ this.debug(this.pattern, 'split', f)
+
+ // just ONE of the pattern sets in this.set needs to match
+ // in order for it to be valid. If negating, then just one
+ // match means that we have failed.
+ // Either way, return on the first hit.
+
+ var set = this.set
+ this.debug(this.pattern, 'set', set)
+
+ // Find the basename of the path by looking for the last non-empty segment
+ var filename
+ var i
+ for (i = f.length - 1; i >= 0; i--) {
+ filename = f[i]
+ if (filename) break
+ }
+
+ for (i = 0; i < set.length; i++) {
+ var pattern = set[i]
+ var file = f
+ if (options.matchBase && pattern.length === 1) {
+ file = [filename]
+ }
+ var hit = this.matchOne(file, pattern, partial)
+ if (hit) {
+ if (options.flipNegate) return true
+ return !this.negate
+ }
+ }
+
+ // didn't get any hits. this is success if it's a negative
+ // pattern, failure otherwise.
+ if (options.flipNegate) return false
+ return this.negate
+}
+
+// set partial to true to test if, for example,
+// "/a/b" matches the start of "/*/b/*/d"
+// Partial means, if you run out of file before you run
+// out of pattern, then that's fine, as long as all
+// the parts match.
+Minimatch.prototype.matchOne = function (file, pattern, partial) {
+ var options = this.options
+
+ this.debug('matchOne',
+ { 'this': this, file: file, pattern: pattern })
+
+ this.debug('matchOne', file.length, pattern.length)
+
+ for (var fi = 0,
+ pi = 0,
+ fl = file.length,
+ pl = pattern.length
+ ; (fi < fl) && (pi < pl)
+ ; fi++, pi++) {
+ this.debug('matchOne loop')
+ var p = pattern[pi]
+ var f = file[fi]
+
+ this.debug(pattern, p, f)
+
+ // should be impossible.
+ // some invalid regexp stuff in the set.
+ if (p === false) return false
+
+ if (p === GLOBSTAR) {
+ this.debug('GLOBSTAR', [pattern, p, f])
+
+ // "**"
+ // a/**/b/**/c would match the following:
+ // a/b/x/y/z/c
+ // a/x/y/z/b/c
+ // a/b/x/b/x/c
+ // a/b/c
+ // To do this, take the rest of the pattern after
+ // the **, and see if it would match the file remainder.
+ // If so, return success.
+ // If not, the ** "swallows" a segment, and try again.
+ // This is recursively awful.
+ //
+ // a/**/b/**/c matching a/b/x/y/z/c
+ // - a matches a
+ // - doublestar
+ // - matchOne(b/x/y/z/c, b/**/c)
+ // - b matches b
+ // - doublestar
+ // - matchOne(x/y/z/c, c) -> no
+ // - matchOne(y/z/c, c) -> no
+ // - matchOne(z/c, c) -> no
+ // - matchOne(c, c) yes, hit
+ var fr = fi
+ var pr = pi + 1
+ if (pr === pl) {
+ this.debug('** at the end')
+ // a ** at the end will just swallow the rest.
+ // We have found a match.
+ // however, it will not swallow /.x, unless
+ // options.dot is set.
+ // . and .. are *never* matched by **, for explosively
+ // exponential reasons.
+ for (; fi < fl; fi++) {
+ if (file[fi] === '.' || file[fi] === '..' ||
+ (!options.dot && file[fi].charAt(0) === '.')) return false
+ }
+ return true
+ }
+
+ // ok, let's see if we can swallow whatever we can.
+ while (fr < fl) {
+ var swallowee = file[fr]
+
+ this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
+
+ // XXX remove this slice. Just pass the start index.
+ if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
+ this.debug('globstar found match!', fr, fl, swallowee)
+ // found a match.
+ return true
+ } else {
+ // can't swallow "." or ".." ever.
+ // can only swallow ".foo" when explicitly asked.
+ if (swallowee === '.' || swallowee === '..' ||
+ (!options.dot && swallowee.charAt(0) === '.')) {
+ this.debug('dot detected!', file, fr, pattern, pr)
+ break
+ }
+
+ // ** swallows a segment, and continue.
+ this.debug('globstar swallow a segment, and continue')
+ fr++
+ }
+ }
+
+ // no match was found.
+ // However, in partial mode, we can't say this is necessarily over.
+ // If there's more *pattern* left, then
+ if (partial) {
+ // ran out of file
+ this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
+ if (fr === fl) return true
+ }
+ return false
+ }
+
+ // something other than **
+ // non-magic patterns just have to match exactly
+ // patterns with magic have been turned into regexps.
+ var hit
+ if (typeof p === 'string') {
+ if (options.nocase) {
+ hit = f.toLowerCase() === p.toLowerCase()
+ } else {
+ hit = f === p
+ }
+ this.debug('string match', p, f, hit)
+ } else {
+ hit = f.match(p)
+ this.debug('pattern match', p, f, hit)
+ }
+
+ if (!hit) return false
+ }
+
+ // Note: ending in / means that we'll get a final ""
+ // at the end of the pattern. This can only match a
+ // corresponding "" at the end of the file.
+ // If the file ends in /, then it can only match a
+ // a pattern that ends in /, unless the pattern just
+ // doesn't have any more for it. But, a/b/ should *not*
+ // match "a/b/*", even though "" matches against the
+ // [^/]*? pattern, except in partial mode, where it might
+ // simply not be reached yet.
+ // However, a/b/ should still satisfy a/*
+
+ // now either we fell off the end of the pattern, or we're done.
+ if (fi === fl && pi === pl) {
+ // ran out of pattern and filename at the same time.
+ // an exact hit!
+ return true
+ } else if (fi === fl) {
+ // ran out of file, but still had pattern left.
+ // this is ok if we're doing the match as part of
+ // a glob fs traversal.
+ return partial
+ } else if (pi === pl) {
+ // ran out of pattern, still have file left.
+ // this is only acceptable if we're on the very last
+ // empty segment of a file with a trailing slash.
+ // a/* should match a/b/
+ var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
+ return emptyFileEnd
+ }
+
+ // should be unreachable.
+ throw new Error('wtf?')
+}
+
+// replace stuff like \* with *
+function globUnescape (s) {
+ return s.replace(/\\(.)/g, '$1')
+}
+
+function regExpEscape (s) {
+ return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore
new file mode 100644
index 00000000000000..353546af2368e1
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore
@@ -0,0 +1,3 @@
+test
+.gitignore
+.travis.yml
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
new file mode 100644
index 00000000000000..b0d793ed5d9016
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
@@ -0,0 +1,122 @@
+# brace-expansion
+
+[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
+as known from sh/bash, in JavaScript.
+
+[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
+[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
+
+[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
+
+## Example
+
+```js
+var expand = require('brace-expansion');
+
+expand('file-{a,b,c}.jpg')
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
+
+expand('-v{,,}')
+// => ['-v', '-v', '-v']
+
+expand('file{0..2}.jpg')
+// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
+
+expand('file-{a..c}.jpg')
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
+
+expand('file{2..0}.jpg')
+// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
+
+expand('file{0..4..2}.jpg')
+// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
+
+expand('file-{a..e..2}.jpg')
+// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
+
+expand('file{00..10..5}.jpg')
+// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
+
+expand('{{A..C},{a..c}}')
+// => ['A', 'B', 'C', 'a', 'b', 'c']
+
+expand('ppp{,config,oe{,conf}}')
+// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
+```
+
+## API
+
+```js
+var expand = require('brace-expansion');
+```
+
+### var expanded = expand(str)
+
+Return an array of all possible and valid expansions of `str`. If none are
+found, `[str]` is returned.
+
+Valid expansions are:
+
+```js
+/^(.*,)+(.+)?$/
+// {a,b,...}
+```
+
+A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
+
+```js
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
+// {x..y[..incr]}
+```
+
+A numeric sequence from `x` to `y` inclusive, with optional increment.
+If `x` or `y` start with a leading `0`, all the numbers will be padded
+to have equal length. Negative numbers and backwards iteration work too.
+
+```js
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
+// {x..y[..incr]}
+```
+
+An alphabetic sequence from `x` to `y` inclusive, with optional increment.
+`x` and `y` must be exactly one character, and if given, `incr` must be a
+number.
+
+For compatibility reasons, the string `${` is not eligible for brace expansion.
+
+## Installation
+
+With [npm](https://npmjs.org) do:
+
+```bash
+npm install brace-expansion
+```
+
+## Contributors
+
+- [Julian Gruber](https://github.com/juliangruber)
+- [Isaac Z. Schlueter](https://github.com/isaacs)
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
new file mode 100644
index 00000000000000..36cde4de5c114b
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
@@ -0,0 +1,7 @@
+var expand = require('./');
+
+console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html'));
+console.log(expand('http://www.numericals.com/file{1..100..10}.txt'));
+console.log(expand('http://www.letters.com/file{a..z..2}.txt'));
+console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}'));
+console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}'));
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
new file mode 100644
index 00000000000000..abe535df327354
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
@@ -0,0 +1,190 @@
+var concatMap = require('concat-map');
+var balanced = require('balanced-match');
+
+module.exports = expandTop;
+
+var escSlash = '\0SLASH'+Math.random()+'\0';
+var escOpen = '\0OPEN'+Math.random()+'\0';
+var escClose = '\0CLOSE'+Math.random()+'\0';
+var escComma = '\0COMMA'+Math.random()+'\0';
+var escPeriod = '\0PERIOD'+Math.random()+'\0';
+
+function numeric(str) {
+ return parseInt(str, 10) == str
+ ? parseInt(str, 10)
+ : str.charCodeAt(0);
+}
+
+function escapeBraces(str) {
+ return str.split('\\\\').join(escSlash)
+ .split('\\{').join(escOpen)
+ .split('\\}').join(escClose)
+ .split('\\,').join(escComma)
+ .split('\\.').join(escPeriod);
+}
+
+function unescapeBraces(str) {
+ return str.split(escSlash).join('\\')
+ .split(escOpen).join('{')
+ .split(escClose).join('}')
+ .split(escComma).join(',')
+ .split(escPeriod).join('.');
+}
+
+
+// Basically just str.split(","), but handling cases
+// where we have nested braced sections, which should be
+// treated as individual members, like {a,{b,c},d}
+function parseCommaParts(str) {
+ if (!str)
+ return [''];
+
+ var parts = [];
+ var m = balanced('{', '}', str);
+
+ if (!m)
+ return str.split(',');
+
+ var pre = m.pre;
+ var body = m.body;
+ var post = m.post;
+ var p = pre.split(',');
+
+ p[p.length-1] += '{' + body + '}';
+ var postParts = parseCommaParts(post);
+ if (post.length) {
+ p[p.length-1] += postParts.shift();
+ p.push.apply(p, postParts);
+ }
+
+ parts.push.apply(parts, p);
+
+ return parts;
+}
+
+function expandTop(str) {
+ if (!str)
+ return [];
+
+ return expand(escapeBraces(str), true).map(unescapeBraces);
+}
+
+function identity(e) {
+ return e;
+}
+
+function embrace(str) {
+ return '{' + str + '}';
+}
+function isPadded(el) {
+ return /^-?0\d/.test(el);
+}
+
+function lte(i, y) {
+ return i <= y;
+}
+function gte(i, y) {
+ return i >= y;
+}
+
+function expand(str, isTop) {
+ var expansions = [];
+
+ var m = balanced('{', '}', str);
+ if (!m || /\$$/.test(m.pre)) return [str];
+
+ var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
+ var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
+ var isSequence = isNumericSequence || isAlphaSequence;
+ var isOptions = /^(.*,)+(.+)?$/.test(m.body);
+ if (!isSequence && !isOptions) {
+ // {a},b}
+ if (m.post.match(/,.*\}/)) {
+ str = m.pre + '{' + m.body + escClose + m.post;
+ return expand(str);
+ }
+ return [str];
+ }
+
+ var n;
+ if (isSequence) {
+ n = m.body.split(/\.\./);
+ } else {
+ n = parseCommaParts(m.body);
+ if (n.length === 1) {
+ // x{{a,b}}y ==> x{a}y x{b}y
+ n = expand(n[0], false).map(embrace);
+ if (n.length === 1) {
+ var post = m.post.length
+ ? expand(m.post, false)
+ : [''];
+ return post.map(function(p) {
+ return m.pre + n[0] + p;
+ });
+ }
+ }
+ }
+
+ // at this point, n is the parts, and we know it's not a comma set
+ // with a single entry.
+
+ // no need to expand pre, since it is guaranteed to be free of brace-sets
+ var pre = m.pre;
+ var post = m.post.length
+ ? expand(m.post, false)
+ : [''];
+
+ var N;
+
+ if (isSequence) {
+ var x = numeric(n[0]);
+ var y = numeric(n[1]);
+ var width = Math.max(n[0].length, n[1].length)
+ var incr = n.length == 3
+ ? Math.abs(numeric(n[2]))
+ : 1;
+ var test = lte;
+ var reverse = y < x;
+ if (reverse) {
+ incr *= -1;
+ test = gte;
+ }
+ var pad = n.some(isPadded);
+
+ N = [];
+
+ for (var i = x; test(i, y); i += incr) {
+ var c;
+ if (isAlphaSequence) {
+ c = String.fromCharCode(i);
+ if (c === '\\')
+ c = '';
+ } else {
+ c = String(i);
+ if (pad) {
+ var need = width - c.length;
+ if (need > 0) {
+ var z = new Array(need + 1).join('0');
+ if (i < 0)
+ c = '-' + z + c.slice(1);
+ else
+ c = z + c;
+ }
+ }
+ }
+ N.push(c);
+ }
+ } else {
+ N = concatMap(n, function(el) { return expand(el, false) });
+ }
+
+ for (var j = 0; j < N.length; j++) {
+ for (var k = 0; k < post.length; k++) {
+ var expansion = pre + N[j] + post[k];
+ if (!isTop || isSequence || expansion)
+ expansions.push(expansion);
+ }
+ }
+
+ return expansions;
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
new file mode 100644
index 00000000000000..fd4f2b066b339e
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
@@ -0,0 +1,2 @@
+node_modules
+.DS_Store
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
new file mode 100644
index 00000000000000..6e5919de39a312
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+ - "0.10"
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
new file mode 100644
index 00000000000000..2cdc8e4148cc0a
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
@@ -0,0 +1,21 @@
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
new file mode 100644
index 00000000000000..dd2730cfde0cab
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
@@ -0,0 +1,5 @@
+
+test:
+ @node_modules/.bin/tape test/*.js
+
+.PHONY: test
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
new file mode 100644
index 00000000000000..421f3aa5f951a2
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
@@ -0,0 +1,89 @@
+# balanced-match
+
+Match balanced string pairs, like `{` and `}` or `` and ``.
+
+[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
+[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
+
+[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
+
+## Example
+
+Get the first matching pair of braces:
+
+```js
+var balanced = require('balanced-match');
+
+console.log(balanced('{', '}', 'pre{in{nested}}post'));
+console.log(balanced('{', '}', 'pre{first}between{second}post'));
+```
+
+The matches are:
+
+```bash
+$ node example.js
+{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
+{ start: 3,
+ end: 9,
+ pre: 'pre',
+ body: 'first',
+ post: 'between{second}post' }
+```
+
+## API
+
+### var m = balanced(a, b, str)
+
+For the first non-nested matching pair of `a` and `b` in `str`, return an
+object with those keys:
+
+* **start** the index of the first match of `a`
+* **end** the index of the matching `b`
+* **pre** the preamble, `a` and `b` not included
+* **body** the match, `a` and `b` not included
+* **post** the postscript, `a` and `b` not included
+
+If there's no match, `undefined` will be returned.
+
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`.
+
+### var r = balanced.range(a, b, str)
+
+For the first non-nested matching pair of `a` and `b` in `str`, return an
+array with indexes: `[ , ]`.
+
+If there's no match, `undefined` will be returned.
+
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`.
+
+## Installation
+
+With [npm](https://npmjs.org) do:
+
+```bash
+npm install balanced-match
+```
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
new file mode 100644
index 00000000000000..9ce76f480a4321
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
@@ -0,0 +1,4 @@
+var balanced = require('./');
+
+console.log(balanced('{', '}', 'pre{in{nested}}post'));
+console.log(balanced('{', '}', 'pre{first}between{second}post'));
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
new file mode 100644
index 00000000000000..75f3d71cba90bc
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
@@ -0,0 +1,50 @@
+module.exports = balanced;
+function balanced(a, b, str) {
+ var r = range(a, b, str);
+
+ return r && {
+ start: r[0],
+ end: r[1],
+ pre: str.slice(0, r[0]),
+ body: str.slice(r[0] + a.length, r[1]),
+ post: str.slice(r[1] + b.length)
+ };
+}
+
+balanced.range = range;
+function range(a, b, str) {
+ var begs, beg, left, right, result;
+ var ai = str.indexOf(a);
+ var bi = str.indexOf(b, ai + 1);
+ var i = ai;
+
+ if (ai >= 0 && bi > 0) {
+ begs = [];
+ left = str.length;
+
+ while (i < str.length && i >= 0 && ! result) {
+ if (i == ai) {
+ begs.push(i);
+ ai = str.indexOf(a, i + 1);
+ } else if (begs.length == 1) {
+ result = [ begs.pop(), bi ];
+ } else {
+ beg = begs.pop();
+ if (beg < left) {
+ left = beg;
+ right = bi;
+ }
+
+ bi = str.indexOf(b, i + 1);
+ }
+
+ i = ai < bi && ai >= 0 ? ai : bi;
+ }
+
+ if (begs.length) {
+ result = [ left, right ];
+ }
+ }
+
+ return result;
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
new file mode 100644
index 00000000000000..24523f3bb16b79
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
@@ -0,0 +1,100 @@
+{
+ "_args": [
+ [
+ "balanced-match@^0.3.0",
+ "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ],
+ [
+ "balanced-match@^0.3.0",
+ "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ]
+ ],
+ "_from": "balanced-match@>=0.3.0 <0.4.0",
+ "_id": "balanced-match@0.3.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/read-package-json/glob/minimatch/brace-expansion/balanced-match",
+ "_nodeVersion": "4.2.1",
+ "_npmUser": {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ },
+ "_npmVersion": "2.14.7",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "balanced-match",
+ "raw": "balanced-match@^0.3.0",
+ "rawSpec": "^0.3.0",
+ "scope": null,
+ "spec": ">=0.3.0 <0.4.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/read-package-json/glob/minimatch/brace-expansion"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "balanced-match@^0.3.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
+ "author": {
+ "email": "mail@juliangruber.com",
+ "name": "Julian Gruber",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/balanced-match/issues"
+ },
+ "dependencies": {},
+ "description": "Match balanced character pairs, like \"{\" and \"}\"",
+ "devDependencies": {
+ "tape": "~4.2.2"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756",
+ "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz"
+ },
+ "gitHead": "a7114b0986554787e90b7ac595a043ca75ea77e5",
+ "homepage": "https://github.com/juliangruber/balanced-match",
+ "keywords": [
+ "match",
+ "regexp",
+ "test",
+ "balanced",
+ "parse"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ }
+ ],
+ "name": "balanced-match",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/balanced-match.git"
+ },
+ "scripts": {
+ "test": "make test"
+ },
+ "testling": {
+ "browsers": [
+ "ie/8..latest",
+ "firefox/20..latest",
+ "firefox/nightly",
+ "chrome/25..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ],
+ "files": "test/*.js"
+ },
+ "version": "0.3.0"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
new file mode 100644
index 00000000000000..f5e98e3f2a3240
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
@@ -0,0 +1,84 @@
+var test = require('tape');
+var balanced = require('..');
+
+test('balanced', function(t) {
+ t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), {
+ start: 3,
+ end: 12,
+ pre: 'pre',
+ body: 'in{nest}',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), {
+ start: 8,
+ end: 11,
+ pre: '{{{{{{{{',
+ body: 'in',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre{body{in}post'), {
+ start: 8,
+ end: 11,
+ pre: 'pre{body',
+ body: 'in',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), {
+ start: 4,
+ end: 13,
+ pre: 'pre}',
+ body: 'in{nest}',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), {
+ start: 3,
+ end: 8,
+ pre: 'pre',
+ body: 'body',
+ post: 'between{body2}post'
+ });
+ t.notOk(balanced('{', '}', 'nope'), 'should be notOk');
+ t.deepEqual(balanced('', '', 'preinnestpost'), {
+ start: 3,
+ end: 19,
+ pre: 'pre',
+ body: 'innest',
+ post: 'post'
+ });
+ t.deepEqual(balanced('', '', 'preinnestpost'), {
+ start: 7,
+ end: 23,
+ pre: 'pre',
+ body: 'innest',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), {
+ start: 3,
+ end: 9,
+ pre: 'pre',
+ body: '{in}',
+ post: 'post'
+ });
+ t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), {
+ start: 3,
+ end: 8,
+ pre: 'pre',
+ body: 'in',
+ post: '}post'
+ });
+ t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), {
+ start: 4,
+ end: 10,
+ pre: 'pre{',
+ body: 'first',
+ post: 'in{second}post'
+ });
+ t.deepEqual(balanced('', '?>', 'pre>post'), {
+ start: 3,
+ end: 4,
+ pre: 'pre',
+ body: '',
+ post: 'post'
+ });
+ t.end();
+});
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
new file mode 100644
index 00000000000000..f1d0f13c8a54d0
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - 0.4
+ - 0.6
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
new file mode 100644
index 00000000000000..ee27ba4b4412b0
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
@@ -0,0 +1,18 @@
+This software is released under the MIT license:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
new file mode 100644
index 00000000000000..408f70a1be473c
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
@@ -0,0 +1,62 @@
+concat-map
+==========
+
+Concatenative mapdashery.
+
+[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
+
+[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
+
+example
+=======
+
+``` js
+var concatMap = require('concat-map');
+var xs = [ 1, 2, 3, 4, 5, 6 ];
+var ys = concatMap(xs, function (x) {
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+});
+console.dir(ys);
+```
+
+***
+
+```
+[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
+```
+
+methods
+=======
+
+``` js
+var concatMap = require('concat-map')
+```
+
+concatMap(xs, fn)
+-----------------
+
+Return an array of concatenated elements by calling `fn(x, i)` for each element
+`x` and each index `i` in the array `xs`.
+
+When `fn(x, i)` returns an array, its result will be concatenated with the
+result array. If `fn(x, i)` returns anything else, that value will be pushed
+onto the end of the result array.
+
+install
+=======
+
+With [npm](http://npmjs.org) do:
+
+```
+npm install concat-map
+```
+
+license
+=======
+
+MIT
+
+notes
+=====
+
+This module was written while sitting high above the ground in a tree.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
new file mode 100644
index 00000000000000..33656217b61d8f
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
@@ -0,0 +1,6 @@
+var concatMap = require('../');
+var xs = [ 1, 2, 3, 4, 5, 6 ];
+var ys = concatMap(xs, function (x) {
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+});
+console.dir(ys);
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
new file mode 100644
index 00000000000000..b29a7812e5055a
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
@@ -0,0 +1,13 @@
+module.exports = function (xs, fn) {
+ var res = [];
+ for (var i = 0; i < xs.length; i++) {
+ var x = fn(xs[i], i);
+ if (isArray(x)) res.push.apply(res, x);
+ else res.push(x);
+ }
+ return res;
+};
+
+var isArray = Array.isArray || function (xs) {
+ return Object.prototype.toString.call(xs) === '[object Array]';
+};
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
new file mode 100644
index 00000000000000..177d7a5f196dcf
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
@@ -0,0 +1,111 @@
+{
+ "_args": [
+ [
+ "concat-map@0.0.1",
+ "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ],
+ [
+ "concat-map@0.0.1",
+ "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
+ ]
+ ],
+ "_from": "concat-map@0.0.1",
+ "_id": "concat-map@0.0.1",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/read-package-json/glob/minimatch/brace-expansion/concat-map",
+ "_npmUser": {
+ "email": "mail@substack.net",
+ "name": "substack"
+ },
+ "_npmVersion": "1.3.21",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "concat-map",
+ "raw": "concat-map@0.0.1",
+ "rawSpec": "0.0.1",
+ "scope": null,
+ "spec": "0.0.1",
+ "type": "version"
+ },
+ "_requiredBy": [
+ "/read-package-json/glob/minimatch/brace-expansion"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "concat-map@0.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
+ "author": {
+ "email": "mail@substack.net",
+ "name": "James Halliday",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/substack/node-concat-map/issues"
+ },
+ "dependencies": {},
+ "description": "concatenative mapdashery",
+ "devDependencies": {
+ "tape": "~2.4.0"
+ },
+ "directories": {
+ "example": "example",
+ "test": "test"
+ },
+ "dist": {
+ "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
+ "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ },
+ "homepage": "https://github.com/substack/node-concat-map",
+ "keywords": [
+ "concat",
+ "concatMap",
+ "map",
+ "functional",
+ "higher-order"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "mail@substack.net",
+ "name": "substack"
+ }
+ ],
+ "name": "concat-map",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/substack/node-concat-map.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "testling": {
+ "browsers": {
+ "chrome": [
+ 10,
+ 22
+ ],
+ "ff": [
+ 3.5,
+ 10,
+ 15
+ ],
+ "ie": [
+ 6,
+ 7,
+ 8,
+ 9
+ ],
+ "opera": [
+ 12
+ ],
+ "safari": [
+ 5.1
+ ]
+ },
+ "files": "test/*.js"
+ },
+ "version": "0.0.1"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
new file mode 100644
index 00000000000000..fdbd7022f6da17
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
@@ -0,0 +1,39 @@
+var concatMap = require('../');
+var test = require('tape');
+
+test('empty or not', function (t) {
+ var xs = [ 1, 2, 3, 4, 5, 6 ];
+ var ixes = [];
+ var ys = concatMap(xs, function (x, ix) {
+ ixes.push(ix);
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+ });
+ t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
+ t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
+ t.end();
+});
+
+test('always something', function (t) {
+ var xs = [ 'a', 'b', 'c', 'd' ];
+ var ys = concatMap(xs, function (x) {
+ return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
+ });
+ t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
+ t.end();
+});
+
+test('scalars', function (t) {
+ var xs = [ 'a', 'b', 'c', 'd' ];
+ var ys = concatMap(xs, function (x) {
+ return x === 'b' ? [ 'B', 'B', 'B' ] : x;
+ });
+ t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
+ t.end();
+});
+
+test('undefs', function (t) {
+ var xs = [ 'a', 'b', 'c', 'd' ];
+ var ys = concatMap(xs, function () {});
+ t.same(ys, [ undefined, undefined, undefined, undefined ]);
+ t.end();
+});
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
new file mode 100644
index 00000000000000..94b5f9c010285d
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
@@ -0,0 +1,106 @@
+{
+ "_args": [
+ [
+ "brace-expansion@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch"
+ ],
+ [
+ "brace-expansion@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch"
+ ]
+ ],
+ "_from": "brace-expansion@>=1.0.0 <2.0.0",
+ "_id": "brace-expansion@1.1.3",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/read-package-json/glob/minimatch/brace-expansion",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168"
+ },
+ "_npmUser": {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ },
+ "_npmVersion": "3.3.12",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "brace-expansion",
+ "raw": "brace-expansion@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/read-package-json/glob/minimatch"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "brace-expansion@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch",
+ "author": {
+ "email": "mail@juliangruber.com",
+ "name": "Julian Gruber",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/brace-expansion/issues"
+ },
+ "dependencies": {
+ "balanced-match": "^0.3.0",
+ "concat-map": "0.0.1"
+ },
+ "description": "Brace expansion as known from sh/bash",
+ "devDependencies": {
+ "tape": "4.4.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
+ "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz"
+ },
+ "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231",
+ "homepage": "https://github.com/juliangruber/brace-expansion",
+ "keywords": [],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
+ },
+ {
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
+ }
+ ],
+ "name": "brace-expansion",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/brace-expansion.git"
+ },
+ "scripts": {
+ "gentest": "bash test/generate.sh",
+ "test": "tape test/*.js"
+ },
+ "testling": {
+ "browsers": [
+ "ie/8..latest",
+ "firefox/20..latest",
+ "firefox/nightly",
+ "chrome/25..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ],
+ "files": "test/*.js"
+ },
+ "version": "1.1.3"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json
new file mode 100644
index 00000000000000..c2f6fff778e6df
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json
@@ -0,0 +1,87 @@
+{
+ "_args": [
+ [
+ "minimatch@2 || 3",
+ "/Users/rebecca/code/npm/node_modules/glob"
+ ],
+ [
+ "minimatch@2 || 3",
+ "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob"
+ ]
+ ],
+ "_from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "_id": "minimatch@3.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/read-package-json/glob/minimatch",
+ "_nodeVersion": "4.0.0",
+ "_npmUser": {
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
+ },
+ "_npmVersion": "3.3.2",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "minimatch",
+ "raw": "minimatch@2 || 3",
+ "rawSpec": "2 || 3",
+ "scope": null,
+ "spec": ">=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/read-package-json/glob"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "minimatch@2 || 3",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob",
+ "author": {
+ "email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
+ "url": "http://blog.izs.me"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/minimatch/issues"
+ },
+ "dependencies": {
+ "brace-expansion": "^1.0.0"
+ },
+ "description": "a glob matcher in javascript",
+ "devDependencies": {
+ "standard": "^3.7.2",
+ "tap": "^1.2.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83",
+ "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "minimatch.js"
+ ],
+ "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20",
+ "homepage": "https://github.com/isaacs/minimatch#readme",
+ "license": "ISC",
+ "main": "minimatch.js",
+ "maintainers": [
+ {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ }
+ ],
+ "name": "minimatch",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/minimatch.git"
+ },
+ "scripts": {
+ "posttest": "standard minimatch.js test/*.js",
+ "test": "tap test/*.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js
new file mode 100644
index 00000000000000..19f103f908ac72
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js
@@ -0,0 +1,20 @@
+'use strict';
+
+function posix(path) {
+ return path.charAt(0) === '/';
+};
+
+function win32(path) {
+ // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
+ var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
+ var result = splitDeviceRe.exec(path);
+ var device = result[1] || '';
+ var isUnc = !!device && device.charAt(1) !== ':';
+
+ // UNC paths are always absolute
+ return !!result[2] || isUnc;
+};
+
+module.exports = process.platform === 'win32' ? win32 : posix;
+module.exports.posix = posix;
+module.exports.win32 = win32;
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/license b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/license
new file mode 100644
index 00000000000000..654d0bfe943437
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
new file mode 100644
index 00000000000000..2bff7fef55bbc1
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
@@ -0,0 +1,99 @@
+{
+ "_args": [
+ [
+ "path-is-absolute@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/glob"
+ ],
+ [
+ "path-is-absolute@^1.0.0",
+ "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob"
+ ]
+ ],
+ "_from": "path-is-absolute@>=1.0.0 <2.0.0",
+ "_id": "path-is-absolute@1.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/read-package-json/glob/path-is-absolute",
+ "_nodeVersion": "0.12.0",
+ "_npmUser": {
+ "email": "sindresorhus@gmail.com",
+ "name": "sindresorhus"
+ },
+ "_npmVersion": "2.5.1",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "path-is-absolute",
+ "raw": "path-is-absolute@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/read-package-json/glob"
+ ],
+ "_shrinkwrap": null,
+ "_spec": "path-is-absolute@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json/node_modules/glob",
+ "author": {
+ "email": "sindresorhus@gmail.com",
+ "name": "Sindre Sorhus",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-is-absolute/issues"
+ },
+ "dependencies": {},
+ "description": "Node.js 0.12 path.isAbsolute() ponyfill",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912",
+ "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1",
+ "homepage": "https://github.com/sindresorhus/path-is-absolute",
+ "keywords": [
+ "path",
+ "paths",
+ "file",
+ "dir",
+ "absolute",
+ "isabsolute",
+ "is-absolute",
+ "built-in",
+ "util",
+ "utils",
+ "core",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "sindresorhus@gmail.com",
+ "name": "sindresorhus"
+ }
+ ],
+ "name": "path-is-absolute",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-is-absolute.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md
new file mode 100644
index 00000000000000..cdf94f4309a27e
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/readme.md
@@ -0,0 +1,51 @@
+# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute)
+
+> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill
+
+> Ponyfill: A polyfill that doesn't overwrite the native method
+
+
+## Install
+
+```
+$ npm install --save path-is-absolute
+```
+
+
+## Usage
+
+```js
+var pathIsAbsolute = require('path-is-absolute');
+
+// Linux
+pathIsAbsolute('/home/foo');
+//=> true
+
+// Windows
+pathIsAbsolute('C:/Users/');
+//=> true
+
+// Any OS
+pathIsAbsolute.posix('/home/foo');
+//=> true
+```
+
+
+## API
+
+See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path).
+
+### pathIsAbsolute(path)
+
+### pathIsAbsolute.posix(path)
+
+The Posix specific version.
+
+### pathIsAbsolute.win32(path)
+
+The Windows specific version.
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/package.json b/deps/npm/node_modules/read-package-json/node_modules/glob/package.json
new file mode 100644
index 00000000000000..6070250b2020d4
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/package.json
@@ -0,0 +1,98 @@
+{
+ "_args": [
+ [
+ "glob@^6.0.0",
+ "/Users/rebecca/code/npm/node_modules/read-package-json"
+ ]
+ ],
+ "_from": "glob@>=6.0.0 <7.0.0",
+ "_id": "glob@6.0.4",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/read-package-json/glob",
+ "_nodeVersion": "4.0.0",
+ "_npmUser": {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ },
+ "_npmVersion": "2.14.15",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "glob",
+ "raw": "glob@^6.0.0",
+ "rawSpec": "^6.0.0",
+ "scope": null,
+ "spec": ">=6.0.0 <7.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/read-package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
+ "_shrinkwrap": null,
+ "_spec": "glob@^6.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json",
+ "author": {
+ "email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/node-glob/issues"
+ },
+ "dependencies": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "description": "a little globber",
+ "devDependencies": {
+ "mkdirp": "0",
+ "rimraf": "^2.2.8",
+ "tap": "^5.0.0",
+ "tick": "0.0.6"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
+ "tarball": "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "glob.js",
+ "sync.js",
+ "common.js"
+ ],
+ "gitHead": "3bd419c538737e56fda7e21c21ff52ca0c198df6",
+ "homepage": "https://github.com/isaacs/node-glob#readme",
+ "license": "ISC",
+ "main": "glob.js",
+ "maintainers": [
+ {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ }
+ ],
+ "name": "glob",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-glob.git"
+ },
+ "scripts": {
+ "bench": "bash benchmark.sh",
+ "benchclean": "node benchclean.js",
+ "prepublish": "npm run benchclean",
+ "prof": "bash prof.sh && cat profile.txt",
+ "profclean": "rm -f v8.log profile.txt",
+ "test": "tap test/*.js --cov",
+ "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
+ },
+ "version": "6.0.4"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/glob/sync.js b/deps/npm/node_modules/read-package-json/node_modules/glob/sync.js
new file mode 100644
index 00000000000000..09883d2ce0c9de
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/glob/sync.js
@@ -0,0 +1,460 @@
+module.exports = globSync
+globSync.GlobSync = GlobSync
+
+var fs = require('fs')
+var minimatch = require('minimatch')
+var Minimatch = minimatch.Minimatch
+var Glob = require('./glob.js').Glob
+var util = require('util')
+var path = require('path')
+var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
+var common = require('./common.js')
+var alphasort = common.alphasort
+var alphasorti = common.alphasorti
+var setopts = common.setopts
+var ownProp = common.ownProp
+var childrenIgnored = common.childrenIgnored
+
+function globSync (pattern, options) {
+ if (typeof options === 'function' || arguments.length === 3)
+ throw new TypeError('callback provided to sync glob\n'+
+ 'See: https://github.com/isaacs/node-glob/issues/167')
+
+ return new GlobSync(pattern, options).found
+}
+
+function GlobSync (pattern, options) {
+ if (!pattern)
+ throw new Error('must provide pattern')
+
+ if (typeof options === 'function' || arguments.length === 3)
+ throw new TypeError('callback provided to sync glob\n'+
+ 'See: https://github.com/isaacs/node-glob/issues/167')
+
+ if (!(this instanceof GlobSync))
+ return new GlobSync(pattern, options)
+
+ setopts(this, pattern, options)
+
+ if (this.noprocess)
+ return this
+
+ var n = this.minimatch.set.length
+ this.matches = new Array(n)
+ for (var i = 0; i < n; i ++) {
+ this._process(this.minimatch.set[i], i, false)
+ }
+ this._finish()
+}
+
+GlobSync.prototype._finish = function () {
+ assert(this instanceof GlobSync)
+ if (this.realpath) {
+ var self = this
+ this.matches.forEach(function (matchset, index) {
+ var set = self.matches[index] = Object.create(null)
+ for (var p in matchset) {
+ try {
+ p = self._makeAbs(p)
+ var real = fs.realpathSync(p, self.realpathCache)
+ set[real] = true
+ } catch (er) {
+ if (er.syscall === 'stat')
+ set[self._makeAbs(p)] = true
+ else
+ throw er
+ }
+ }
+ })
+ }
+ common.finish(this)
+}
+
+
+GlobSync.prototype._process = function (pattern, index, inGlobStar) {
+ assert(this instanceof GlobSync)
+
+ // Get the first [n] parts of pattern that are all strings.
+ var n = 0
+ while (typeof pattern[n] === 'string') {
+ n ++
+ }
+ // now n is the index of the first one that is *not* a string.
+
+ // See if there's anything else
+ var prefix
+ switch (n) {
+ // if not, then this is rather simple
+ case pattern.length:
+ this._processSimple(pattern.join('/'), index)
+ return
+
+ case 0:
+ // pattern *starts* with some non-trivial item.
+ // going to readdir(cwd), but not include the prefix in matches.
+ prefix = null
+ break
+
+ default:
+ // pattern has some string bits in the front.
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
+ // or 'relative' like '../baz'
+ prefix = pattern.slice(0, n).join('/')
+ break
+ }
+
+ var remain = pattern.slice(n)
+
+ // get the list of entries.
+ var read
+ if (prefix === null)
+ read = '.'
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
+ if (!prefix || !isAbsolute(prefix))
+ prefix = '/' + prefix
+ read = prefix
+ } else
+ read = prefix
+
+ var abs = this._makeAbs(read)
+
+ //if ignored, skip processing
+ if (childrenIgnored(this, read))
+ return
+
+ var isGlobStar = remain[0] === minimatch.GLOBSTAR
+ if (isGlobStar)
+ this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
+ else
+ this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
+}
+
+
+GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
+ var entries = this._readdir(abs, inGlobStar)
+
+ // if the abs isn't a dir, then nothing can match!
+ if (!entries)
+ return
+
+ // It will only match dot entries if it starts with a dot, or if
+ // dot is set. Stuff like @(.foo|.bar) isn't allowed.
+ var pn = remain[0]
+ var negate = !!this.minimatch.negate
+ var rawGlob = pn._glob
+ var dotOk = this.dot || rawGlob.charAt(0) === '.'
+
+ var matchedEntries = []
+ for (var i = 0; i < entries.length; i++) {
+ var e = entries[i]
+ if (e.charAt(0) !== '.' || dotOk) {
+ var m
+ if (negate && !prefix) {
+ m = !e.match(pn)
+ } else {
+ m = e.match(pn)
+ }
+ if (m)
+ matchedEntries.push(e)
+ }
+ }
+
+ var len = matchedEntries.length
+ // If there are no matched entries, then nothing matches.
+ if (len === 0)
+ return
+
+ // if this is the last remaining pattern bit, then no need for
+ // an additional stat *unless* the user has specified mark or
+ // stat explicitly. We know they exist, since readdir returned
+ // them.
+
+ if (remain.length === 1 && !this.mark && !this.stat) {
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ if (prefix) {
+ if (prefix.slice(-1) !== '/')
+ e = prefix + '/' + e
+ else
+ e = prefix + e
+ }
+
+ if (e.charAt(0) === '/' && !this.nomount) {
+ e = path.join(this.root, e)
+ }
+ this.matches[index][e] = true
+ }
+ // This was the last one, and no stats were needed
+ return
+ }
+
+ // now test all matched entries as stand-ins for that part
+ // of the pattern.
+ remain.shift()
+ for (var i = 0; i < len; i ++) {
+ var e = matchedEntries[i]
+ var newPattern
+ if (prefix)
+ newPattern = [prefix, e]
+ else
+ newPattern = [e]
+ this._process(newPattern.concat(remain), index, inGlobStar)
+ }
+}
+
+
+GlobSync.prototype._emitMatch = function (index, e) {
+ var abs = this._makeAbs(e)
+ if (this.mark)
+ e = this._mark(e)
+
+ if (this.matches[index][e])
+ return
+
+ if (this.nodir) {
+ var c = this.cache[this._makeAbs(e)]
+ if (c === 'DIR' || Array.isArray(c))
+ return
+ }
+
+ this.matches[index][e] = true
+ if (this.stat)
+ this._stat(e)
+}
+
+
+GlobSync.prototype._readdirInGlobStar = function (abs) {
+ // follow all symlinked directories forever
+ // just proceed as if this is a non-globstar situation
+ if (this.follow)
+ return this._readdir(abs, false)
+
+ var entries
+ var lstat
+ var stat
+ try {
+ lstat = fs.lstatSync(abs)
+ } catch (er) {
+ // lstat failed, doesn't exist
+ return null
+ }
+
+ var isSym = lstat.isSymbolicLink()
+ this.symlinks[abs] = isSym
+
+ // If it's not a symlink or a dir, then it's definitely a regular file.
+ // don't bother doing a readdir in that case.
+ if (!isSym && !lstat.isDirectory())
+ this.cache[abs] = 'FILE'
+ else
+ entries = this._readdir(abs, false)
+
+ return entries
+}
+
+GlobSync.prototype._readdir = function (abs, inGlobStar) {
+ var entries
+
+ if (inGlobStar && !ownProp(this.symlinks, abs))
+ return this._readdirInGlobStar(abs)
+
+ if (ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+ if (!c || c === 'FILE')
+ return null
+
+ if (Array.isArray(c))
+ return c
+ }
+
+ try {
+ return this._readdirEntries(abs, fs.readdirSync(abs))
+ } catch (er) {
+ this._readdirError(abs, er)
+ return null
+ }
+}
+
+GlobSync.prototype._readdirEntries = function (abs, entries) {
+ // if we haven't asked to stat everything, then just
+ // assume that everything in there exists, so we can avoid
+ // having to stat it a second time.
+ if (!this.mark && !this.stat) {
+ for (var i = 0; i < entries.length; i ++) {
+ var e = entries[i]
+ if (abs === '/')
+ e = abs + e
+ else
+ e = abs + '/' + e
+ this.cache[e] = true
+ }
+ }
+
+ this.cache[abs] = entries
+
+ // mark and cache dir-ness
+ return entries
+}
+
+GlobSync.prototype._readdirError = function (f, er) {
+ // handle errors, and cache the information
+ switch (er.code) {
+ case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+ case 'ENOTDIR': // totally normal. means it *does* exist.
+ this.cache[this._makeAbs(f)] = 'FILE'
+ break
+
+ case 'ENOENT': // not terribly unusual
+ case 'ELOOP':
+ case 'ENAMETOOLONG':
+ case 'UNKNOWN':
+ this.cache[this._makeAbs(f)] = false
+ break
+
+ default: // some unusual error. Treat as failure.
+ this.cache[this._makeAbs(f)] = false
+ if (this.strict)
+ throw er
+ if (!this.silent)
+ console.error('glob error', er)
+ break
+ }
+}
+
+GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
+
+ var entries = this._readdir(abs, inGlobStar)
+
+ // no entries means not a dir, so it can never have matches
+ // foo.txt/** doesn't match foo.txt
+ if (!entries)
+ return
+
+ // test without the globstar, and with every child both below
+ // and replacing the globstar.
+ var remainWithoutGlobStar = remain.slice(1)
+ var gspref = prefix ? [ prefix ] : []
+ var noGlobStar = gspref.concat(remainWithoutGlobStar)
+
+ // the noGlobStar pattern exits the inGlobStar state
+ this._process(noGlobStar, index, false)
+
+ var len = entries.length
+ var isSym = this.symlinks[abs]
+
+ // If it's a symlink, and we're in a globstar, then stop
+ if (isSym && inGlobStar)
+ return
+
+ for (var i = 0; i < len; i++) {
+ var e = entries[i]
+ if (e.charAt(0) === '.' && !this.dot)
+ continue
+
+ // these two cases enter the inGlobStar state
+ var instead = gspref.concat(entries[i], remainWithoutGlobStar)
+ this._process(instead, index, true)
+
+ var below = gspref.concat(entries[i], remain)
+ this._process(below, index, true)
+ }
+}
+
+GlobSync.prototype._processSimple = function (prefix, index) {
+ // XXX review this. Shouldn't it be doing the mounting etc
+ // before doing stat? kinda weird?
+ var exists = this._stat(prefix)
+
+ if (!this.matches[index])
+ this.matches[index] = Object.create(null)
+
+ // If it doesn't exist, then just mark the lack of results
+ if (!exists)
+ return
+
+ if (prefix && isAbsolute(prefix) && !this.nomount) {
+ var trail = /[\/\\]$/.test(prefix)
+ if (prefix.charAt(0) === '/') {
+ prefix = path.join(this.root, prefix)
+ } else {
+ prefix = path.resolve(this.root, prefix)
+ if (trail)
+ prefix += '/'
+ }
+ }
+
+ if (process.platform === 'win32')
+ prefix = prefix.replace(/\\/g, '/')
+
+ // Mark this as a match
+ this.matches[index][prefix] = true
+}
+
+// Returns either 'DIR', 'FILE', or false
+GlobSync.prototype._stat = function (f) {
+ var abs = this._makeAbs(f)
+ var needDir = f.slice(-1) === '/'
+
+ if (f.length > this.maxLength)
+ return false
+
+ if (!this.stat && ownProp(this.cache, abs)) {
+ var c = this.cache[abs]
+
+ if (Array.isArray(c))
+ c = 'DIR'
+
+ // It exists, but maybe not how we need it
+ if (!needDir || c === 'DIR')
+ return c
+
+ if (needDir && c === 'FILE')
+ return false
+
+ // otherwise we have to stat, because maybe c=true
+ // if we know it exists, but not what it is.
+ }
+
+ var exists
+ var stat = this.statCache[abs]
+ if (!stat) {
+ var lstat
+ try {
+ lstat = fs.lstatSync(abs)
+ } catch (er) {
+ return false
+ }
+
+ if (lstat.isSymbolicLink()) {
+ try {
+ stat = fs.statSync(abs)
+ } catch (er) {
+ stat = lstat
+ }
+ } else {
+ stat = lstat
+ }
+ }
+
+ this.statCache[abs] = stat
+
+ var c = stat.isDirectory() ? 'DIR' : 'FILE'
+ this.cache[abs] = this.cache[abs] || c
+
+ if (needDir && c !== 'DIR')
+ return false
+
+ return c
+}
+
+GlobSync.prototype._mark = function (p) {
+ return common.mark(this, p)
+}
+
+GlobSync.prototype._makeAbs = function (f) {
+ return common.makeAbs(this, f)
+}
diff --git a/deps/npm/node_modules/readable-stream/.travis.yml b/deps/npm/node_modules/readable-stream/.travis.yml
index cfe1c9439388b6..1b82118460cfe4 100644
--- a/deps/npm/node_modules/readable-stream/.travis.yml
+++ b/deps/npm/node_modules/readable-stream/.travis.yml
@@ -6,6 +6,10 @@ before_install:
notifications:
email: false
matrix:
+ fast_finish: true
+ allow_failures:
+ - env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest"
+ - env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest"
include:
- node_js: '0.8'
env: TASK=test
@@ -25,24 +29,22 @@ matrix:
env: TASK=test
- node_js: 5
env: TASK=test
- - node_js: node
- env: TASK=test
- - node_js: node
- env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest"
- - node_js: node
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=android BROWSER_VERSION="4.0..latest"
+ - node_js: 5
env: TASK=browser BROWSER_NAME=ie BROWSER_VERSION="9..latest"
- - node_js: node
- env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="41..beta"
- - node_js: node
- env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="36..latest"
- - node_js: node
- env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="['6.1', '7.1', '8.2']"
- - node_js: node
- env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="['6.1', '7.1', '8.2']"
- - node_js: node
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="-3..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="-3..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest"
+ - node_js: 5
env: TASK=browser BROWSER_NAME=safari BROWSER_VERSION="5..latest"
- - node_js: node
- env: TASK=browser BROWSER_NAME=android BROWSER_VERSION="4.0..latest"
script: "npm run $TASK"
env:
global:
diff --git a/deps/npm/node_modules/readable-stream/README.md b/deps/npm/node_modules/readable-stream/README.md
index 77fafa3da15f9f..1a67c48cd031b5 100644
--- a/deps/npm/node_modules/readable-stream/README.md
+++ b/deps/npm/node_modules/readable-stream/README.md
@@ -1,6 +1,6 @@
# readable-stream
-***Node-core streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
+***Node-core v5.8.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
diff --git a/deps/npm/node_modules/readable-stream/doc/stream.markdown b/deps/npm/node_modules/readable-stream/doc/stream.markdown
index 3988c0cbd0d9c9..0bc3819e63b025 100644
--- a/deps/npm/node_modules/readable-stream/doc/stream.markdown
+++ b/deps/npm/node_modules/readable-stream/doc/stream.markdown
@@ -3,27 +3,25 @@
Stability: 2 - Stable
A stream is an abstract interface implemented by various objects in
-Node.js. For example a [request to an HTTP server][] is a stream, as is
-[stdout][]. Streams are readable, writable, or both. All streams are
-instances of [EventEmitter][]
+Node.js. For example a [request to an HTTP server][http-incoming-message] is a
+stream, as is [`process.stdout`][]. Streams are readable, writable, or both. All
+streams are instances of [`EventEmitter`][].
You can load the Stream base classes by doing `require('stream')`.
There are base classes provided for [Readable][] streams, [Writable][]
streams, [Duplex][] streams, and [Transform][] streams.
-This document is split up into 3 sections. The first explains the
-parts of the API that you need to be aware of to use streams in your
-programs. If you never implement a streaming API yourself, you can
-stop there.
+This document is split up into 3 sections:
-The second section explains the parts of the API that you need to use
-if you implement your own custom streams yourself. The API is
-designed to make this easy for you to do.
-
-The third section goes into more depth about how streams work,
-including some of the internal mechanisms and functions that you
-should probably not modify unless you definitely know what you are
-doing.
+1. The first section explains the parts of the API that you need to be
+ aware of to use streams in your programs.
+2. The second section explains the parts of the API that you need to
+ use if you implement your own custom streams yourself. The API is designed to
+ make this easy for you to do.
+3. The third section goes into more depth about how streams work,
+ including some of the internal mechanisms and functions that you
+ should probably not modify unless you definitely know what you are
+ doing.
## API for Stream Consumers
@@ -37,22 +35,22 @@ and properties depending on whether they are Readable, Writable, or
Duplex.
If a stream is both Readable and Writable, then it implements all of
-the methods and events below. So, a [Duplex][] or [Transform][] stream is
+the methods and events. So, a [Duplex][] or [Transform][] stream is
fully described by this API, though their implementation may be
somewhat different.
It is not necessary to implement Stream interfaces in order to consume
-streams in your programs. If you **are** implementing streaming
+streams in your programs. If you **are** implementing streaming
interfaces in your own program, please also refer to
-[API for Stream Implementors][] below.
+[API for Stream Implementors][].
Almost all Node.js programs, no matter how simple, use Streams in some
way. Here is an example of using Streams in an Node.js program:
-```javascript
-var http = require('http');
+```js
+const http = require('http');
-var server = http.createServer(function (req, res) {
+var server = http.createServer( (req, res) => {
// req is an http.IncomingMessage, which is a Readable Stream
// res is an http.ServerResponse, which is a Writable Stream
@@ -62,18 +60,18 @@ var server = http.createServer(function (req, res) {
req.setEncoding('utf8');
// Readable streams emit 'data' events once a listener is added
- req.on('data', function (chunk) {
+ req.on('data', (chunk) => {
body += chunk;
});
// the end event tells you that you have entire body
- req.on('end', function () {
+ req.on('end', () => {
try {
var data = JSON.parse(body);
} catch (er) {
// uh oh! bad json!
res.statusCode = 400;
- return res.end('error: ' + er.message);
+ return res.end(`error: ${er.message}`);
}
// write back something interesting to the user:
@@ -95,65 +93,66 @@ server.listen(1337);
### Class: stream.Duplex
Duplex streams are streams that implement both the [Readable][] and
-[Writable][] interfaces. See above for usage.
+[Writable][] interfaces.
Examples of Duplex streams include:
-* [tcp sockets][]
-* [zlib streams][]
-* [crypto streams][]
+* [TCP sockets][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
### Class: stream.Readable
The Readable stream interface is the abstraction for a *source* of
-data that you are reading from. In other words, data comes *out* of a
+data that you are reading from. In other words, data comes *out* of a
Readable stream.
A Readable stream will not start emitting data until you indicate that
you are ready to receive it.
Readable streams have two "modes": a **flowing mode** and a **paused
-mode**. When in flowing mode, data is read from the underlying system
-and provided to your program as fast as possible. In paused mode, you
-must explicitly call `stream.read()` to get chunks of data out.
+mode**. When in flowing mode, data is read from the underlying system
+and provided to your program as fast as possible. In paused mode, you
+must explicitly call [`stream.read()`][stream-read] to get chunks of data out.
Streams start out in paused mode.
**Note**: If no data event handlers are attached, and there are no
-[`pipe()`][] destinations, and the stream is switched into flowing
+[`stream.pipe()`][] destinations, and the stream is switched into flowing
mode, then data will be lost.
You can switch to flowing mode by doing any of the following:
-* Adding a [`'data'` event][] handler to listen for data.
-* Calling the [`resume()`][] method to explicitly open the flow.
-* Calling the [`pipe()`][] method to send the data to a [Writable][].
+* Adding a [`'data'`][] event handler to listen for data.
+* Calling the [`stream.resume()`][stream-resume] method to explicitly open the
+ flow.
+* Calling the [`stream.pipe()`][] method to send the data to a [Writable][].
You can switch back to paused mode by doing either of the following:
-* If there are no pipe destinations, by calling the [`pause()`][]
- method.
-* If there are pipe destinations, by removing any [`'data'` event][]
+* If there are no pipe destinations, by calling the
+ [`stream.pause()`][stream-pause] method.
+* If there are pipe destinations, by removing any [`'data'`][] event
handlers, and removing all pipe destinations by calling the
- [`unpipe()`][] method.
+ [`stream.unpipe()`][] method.
-Note that, for backwards compatibility reasons, removing `'data'`
-event handlers will **not** automatically pause the stream. Also, if
-there are piped destinations, then calling `pause()` will not
-guarantee that the stream will *remain* paused once those
+Note that, for backwards compatibility reasons, removing [`'data'`][]
+event handlers will **not** automatically pause the stream. Also, if
+there are piped destinations, then calling [`stream.pause()`][stream-pause] will
+not guarantee that the stream will *remain* paused once those
destinations drain and ask for more data.
Examples of readable streams include:
-* [http responses, on the client][]
-* [http requests, on the server][]
+* [HTTP responses, on the client][http-incoming-message]
+* [HTTP requests, on the server][http-incoming-message]
* [fs read streams][]
-* [zlib streams][]
-* [crypto streams][]
-* [tcp sockets][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
+* [TCP sockets][]
* [child process stdout and stderr][]
-* [process.stdin][]
+* [`process.stdin`][]
#### Event: 'close'
@@ -161,22 +160,22 @@ Emitted when the stream and any of its underlying resources (a file
descriptor, for example) have been closed. The event indicates that
no more events will be emitted, and no further computation will occur.
-Not all streams will emit the 'close' event.
+Not all streams will emit the `'close'` event.
#### Event: 'data'
-* `chunk` {Buffer | String} The chunk of data.
+* `chunk` {Buffer|String} The chunk of data.
-Attaching a `data` event listener to a stream that has not been
+Attaching a `'data'` event listener to a stream that has not been
explicitly paused will switch the stream into flowing mode. Data will
then be passed as soon as it is available.
If you just want to get all the data out of the stream as fast as
possible, this is the best way to do so.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length);
});
```
@@ -185,16 +184,17 @@ readable.on('data', function(chunk) {
This event fires when there will be no more data to read.
-Note that the `end` event **will not fire** unless the data is
-completely consumed. This can be done by switching into flowing mode,
-or by calling `read()` repeatedly until you get to the end.
+Note that the `'end'` event **will not fire** unless the data is
+completely consumed. This can be done by switching into flowing mode,
+or by calling [`stream.read()`][stream-read] repeatedly until you get to the
+end.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length);
});
-readable.on('end', function() {
+readable.on('end', () => {
console.log('there will be no more data.');
});
```
@@ -216,30 +216,30 @@ hadn't already.
```javascript
var readable = getReadableStreamSomehow();
-readable.on('readable', function() {
+readable.on('readable', () => {
// there is some data to read now
});
```
-Once the internal buffer is drained, a `readable` event will fire
+Once the internal buffer is drained, a `'readable'` event will fire
again when more data is available.
-The `readable` event is not emitted in the "flowing" mode with the
+The `'readable'` event is not emitted in the "flowing" mode with the
sole exception of the last one, on end-of-stream.
-The 'readable' event indicates that the stream has new information:
+The `'readable'` event indicates that the stream has new information:
either new data is available or the end of the stream has been reached.
-In the former case, `.read()` will return that data. In the latter case,
-`.read()` will return null. For instance, in the following example, `foo.txt`
-is an empty file:
+In the former case, [`stream.read()`][stream-read] will return that data. In the
+latter case, [`stream.read()`][stream-read] will return null. For instance, in
+the following example, `foo.txt` is an empty file:
-```javascript
-var fs = require('fs');
+```js
+const fs = require('fs');
var rr = fs.createReadStream('foo.txt');
-rr.on('readable', function() {
+rr.on('readable', () => {
console.log('readable:', rr.read());
});
-rr.on('end', function() {
+rr.on('end', () => {
console.log('end');
});
```
@@ -247,20 +247,20 @@ rr.on('end', function() {
The output of running this script is:
```
-bash-3.2$ node test.js
+$ node test.js
readable: null
end
```
#### readable.isPaused()
-* Return: `Boolean`
+* Return: {Boolean}
This method returns whether or not the `readable` has been **explicitly**
-paused by client code (using `readable.pause()` without a corresponding
-`readable.resume()`).
+paused by client code (using [`stream.pause()`][stream-pause] without a
+corresponding [`stream.resume()`][stream-resume]).
-```javascript
+```js
var readable = new stream.Readable
readable.isPaused() // === false
@@ -275,16 +275,16 @@ readable.isPaused() // === false
* Return: `this`
This method will cause a stream in flowing mode to stop emitting
-`data` events, switching out of flowing mode. Any data that becomes
+[`'data'`][] events, switching out of flowing mode. Any data that becomes
available will remain in the internal buffer.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length);
readable.pause();
console.log('there will be no more data for 1 second');
- setTimeout(function() {
+ setTimeout(() => {
console.log('now data will start flowing again');
readable.resume();
}, 1000);
@@ -293,7 +293,7 @@ readable.on('data', function(chunk) {
#### readable.pipe(destination[, options])
-* `destination` {[Writable][] Stream} The destination for writing data
+* `destination` {stream.Writable} The destination for writing data
* `options` {Object} Pipe options
* `end` {Boolean} End the writer when the reader ends. Default = `true`
@@ -303,7 +303,7 @@ the destination is not overwhelmed by a fast readable stream.
Multiple destinations can be piped to safely.
-```javascript
+```js
var readable = getReadableStreamSomehow();
var writable = fs.createWriteStream('file.txt');
// All the data from readable goes into 'file.txt'
@@ -313,7 +313,7 @@ readable.pipe(writable);
This function returns the destination stream, so you can set up pipe
chains like so:
-```javascript
+```js
var r = fs.createReadStream('file.txt');
var z = zlib.createGzip();
var w = fs.createWriteStream('file.txt.gz');
@@ -322,51 +322,51 @@ r.pipe(z).pipe(w);
For example, emulating the Unix `cat` command:
-```javascript
+```js
process.stdin.pipe(process.stdout);
```
-By default [`end()`][] is called on the destination when the source stream
-emits `end`, so that `destination` is no longer writable. Pass `{ end:
-false }` as `options` to keep the destination stream open.
+By default [`stream.end()`][stream-end] is called on the destination when the
+source stream emits [`'end'`][], so that `destination` is no longer writable.
+Pass `{ end: false }` as `options` to keep the destination stream open.
This keeps `writer` open so that "Goodbye" can be written at the
end.
-```javascript
+```js
reader.pipe(writer, { end: false });
-reader.on('end', function() {
+reader.on('end', () => {
writer.end('Goodbye\n');
});
```
-Note that `process.stderr` and `process.stdout` are never closed until
+Note that [`process.stderr`][] and [`process.stdout`][] are never closed until
the process exits, regardless of the specified options.
#### readable.read([size])
* `size` {Number} Optional argument to specify how much data to read.
-* Return {String | Buffer | null}
+* Return {String|Buffer|Null}
The `read()` method pulls some data out of the internal buffer and
-returns it. If there is no data available, then it will return
+returns it. If there is no data available, then it will return
`null`.
If you pass in a `size` argument, then it will return that many
-bytes. If `size` bytes are not available, then it will return `null`,
+bytes. If `size` bytes are not available, then it will return `null`,
unless we've ended, in which case it will return the data remaining
in the buffer.
If you do not specify a `size` argument, then it will return all the
data in the internal buffer.
-This method should only be called in paused mode. In flowing mode,
+This method should only be called in paused mode. In flowing mode,
this method is called automatically until the internal buffer is
drained.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('readable', function() {
+readable.on('readable', () => {
var chunk;
while (null !== (chunk = readable.read())) {
console.log('got %d bytes of data', chunk.length);
@@ -375,27 +375,27 @@ readable.on('readable', function() {
```
If this method returns a data chunk, then it will also trigger the
-emission of a [`'data'` event][].
+emission of a [`'data'`][] event.
-Note that calling `readable.read([size])` after the `end` event has been
-triggered will return `null`. No runtime error will be raised.
+Note that calling [`stream.read([size])`][stream-read] after the [`'end'`][]
+event has been triggered will return `null`. No runtime error will be raised.
#### readable.resume()
* Return: `this`
-This method will cause the readable stream to resume emitting `data`
+This method will cause the readable stream to resume emitting [`'data'`][]
events.
-This method will switch the stream into flowing mode. If you do *not*
+This method will switch the stream into flowing mode. If you do *not*
want to consume the data from a stream, but you *do* want to get to
-its `end` event, you can call [`readable.resume()`][] to open the flow of
-data.
+its [`'end'`][] event, you can call [`stream.resume()`][stream-resume] to open
+the flow of data.
-```javascript
+```js
var readable = getReadableStreamSomehow();
readable.resume();
-readable.on('end', function() {
+readable.on('end', () => {
console.log('got to the end, but did not read anything');
});
```
@@ -405,22 +405,25 @@ readable.on('end', function() {
* `encoding` {String} The encoding to use.
* Return: `this`
-Call this function to cause the stream to return strings of the
-specified encoding instead of Buffer objects. For example, if you do
-`readable.setEncoding('utf8')`, then the output data will be
-interpreted as UTF-8 data, and returned as strings. If you do
-`readable.setEncoding('hex')`, then the data will be encoded in
-hexadecimal string format.
+Call this function to cause the stream to return strings of the specified
+encoding instead of Buffer objects. For example, if you do
+`readable.setEncoding('utf8')`, then the output data will be interpreted as
+UTF-8 data, and returned as strings. If you do `readable.setEncoding('hex')`,
+then the data will be encoded in hexadecimal string format.
This properly handles multi-byte characters that would otherwise be
potentially mangled if you simply pulled the Buffers directly and
-called `buf.toString(encoding)` on them. If you want to read the data
+called [`buf.toString(encoding)`][] on them. If you want to read the data
as strings, always use this method.
-```javascript
+Also you can disable any encoding at all with `readable.setEncoding(null)`.
+This approach is very useful if you deal with binary data or with large
+multi-byte strings spread out over multiple chunks.
+
+```js
var readable = getReadableStreamSomehow();
readable.setEncoding('utf8');
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
assert.equal(typeof chunk, 'string');
console.log('got %d characters of string data', chunk.length);
});
@@ -428,22 +431,23 @@ readable.on('data', function(chunk) {
#### readable.unpipe([destination])
-* `destination` {[Writable][] Stream} Optional specific stream to unpipe
+* `destination` {stream.Writable} Optional specific stream to unpipe
-This method will remove the hooks set up for a previous `pipe()` call.
+This method will remove the hooks set up for a previous [`stream.pipe()`][]
+call.
If the destination is not specified, then all pipes are removed.
If the destination is specified, but no pipe is set up for it, then
this is a no-op.
-```javascript
+```js
var readable = getReadableStreamSomehow();
var writable = fs.createWriteStream('file.txt');
// All the data from readable goes into 'file.txt',
// but only for the first second
readable.pipe(writable);
-setTimeout(function() {
+setTimeout(() => {
console.log('stop writing to file.txt');
readable.unpipe(writable);
console.log('manually close the file stream');
@@ -453,25 +457,25 @@ setTimeout(function() {
#### readable.unshift(chunk)
-* `chunk` {Buffer | String} Chunk of data to unshift onto the read queue
+* `chunk` {Buffer|String} Chunk of data to unshift onto the read queue
This is useful in certain cases where a stream is being consumed by a
parser, which needs to "un-consume" some data that it has
optimistically pulled out of the source, so that the stream can be
passed on to some other party.
-Note that `stream.unshift(chunk)` cannot be called after the `end` event
+Note that `stream.unshift(chunk)` cannot be called after the [`'end'`][] event
has been triggered; a runtime error will be raised.
If you find that you must often call `stream.unshift(chunk)` in your
-programs, consider implementing a [Transform][] stream instead. (See API
-for Stream Implementors, below.)
+programs, consider implementing a [Transform][] stream instead. (See [API
+for Stream Implementors][].)
-```javascript
+```js
// Pull off a header delimited by \n\n
// use unshift() if we get too much
// Call the callback with (error, header, stream)
-var StringDecoder = require('string_decoder').StringDecoder;
+const StringDecoder = require('string_decoder').StringDecoder;
function parseHeader(stream, callback) {
stream.on('error', callback);
stream.on('readable', onReadable);
@@ -501,39 +505,41 @@ function parseHeader(stream, callback) {
}
}
```
-Note that, unlike `stream.push(chunk)`, `stream.unshift(chunk)` will not
-end the reading process by resetting the internal reading state of the
-stream. This can cause unexpected results if `unshift` is called during a
-read (i.e. from within a `_read` implementation on a custom stream). Following
-the call to `unshift` with an immediate `stream.push('')` will reset the
-reading state appropriately, however it is best to simply avoid calling
-`unshift` while in the process of performing a read.
+
+Note that, unlike [`stream.push(chunk)`][stream-push], `stream.unshift(chunk)`
+will not end the reading process by resetting the internal reading state of the
+stream. This can cause unexpected results if `unshift()` is called during a
+read (i.e. from within a [`stream._read()`][stream-_read] implementation on a
+custom stream). Following the call to `unshift()` with an immediate
+[`stream.push('')`][stream-push] will reset the reading state appropriately,
+however it is best to simply avoid calling `unshift()` while in the process of
+performing a read.
#### readable.wrap(stream)
* `stream` {Stream} An "old style" readable stream
Versions of Node.js prior to v0.10 had streams that did not implement the
-entire Streams API as it is today. (See "Compatibility" below for
+entire Streams API as it is today. (See [Compatibility][] for
more information.)
-If you are using an older Node.js library that emits `'data'` events and
-has a [`pause()`][] method that is advisory only, then you can use the
-`wrap()` method to create a [Readable][] stream that uses the old stream
-as its data source.
+If you are using an older Node.js library that emits [`'data'`][] events and
+has a [`stream.pause()`][stream-pause] method that is advisory only, then you
+can use the `wrap()` method to create a [Readable][] stream that uses the old
+stream as its data source.
You will very rarely ever need to call this function, but it exists
as a convenience for interacting with old Node.js programs and libraries.
For example:
-```javascript
-var OldReader = require('./old-api-module.js').OldReader;
-var oreader = new OldReader;
-var Readable = require('stream').Readable;
-var myReader = new Readable().wrap(oreader);
+```js
+const OldReader = require('./old-api-module.js').OldReader;
+const Readable = require('stream').Readable;
+const oreader = new OldReader;
+const myReader = new Readable().wrap(oreader);
-myReader.on('readable', function() {
+myReader.on('readable', () => {
myReader.read(); // etc.
});
```
@@ -541,13 +547,13 @@ myReader.on('readable', function() {
### Class: stream.Transform
Transform streams are [Duplex][] streams where the output is in some way
-computed from the input. They implement both the [Readable][] and
-[Writable][] interfaces. See above for usage.
+computed from the input. They implement both the [Readable][] and
+[Writable][] interfaces.
Examples of Transform streams include:
-* [zlib streams][]
-* [crypto streams][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
### Class: stream.Writable
@@ -558,22 +564,22 @@ that you are writing data *to*.
Examples of writable streams include:
-* [http requests, on the client][]
-* [http responses, on the server][]
+* [HTTP requests, on the client][]
+* [HTTP responses, on the server][]
* [fs write streams][]
-* [zlib streams][]
-* [crypto streams][]
-* [tcp sockets][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
+* [TCP sockets][]
* [child process stdin][]
-* [process.stdout][], [process.stderr][]
+* [`process.stdout`][], [`process.stderr`][]
#### Event: 'drain'
-If a [`writable.write(chunk)`][] call returns false, then the `drain`
-event will indicate when it is appropriate to begin writing more data
+If a [`stream.write(chunk)`][stream-write] call returns `false`, then the
+`'drain'` event will indicate when it is appropriate to begin writing more data
to the stream.
-```javascript
+```js
// Write the data to the supplied writable stream one million times.
// Be attentive to back-pressure.
function writeOneMillionTimes(writer, data, encoding, callback) {
@@ -603,37 +609,37 @@ function writeOneMillionTimes(writer, data, encoding, callback) {
#### Event: 'error'
-* {Error object}
+* {Error}
Emitted if there was an error when writing or piping data.
#### Event: 'finish'
-When the [`end()`][] method has been called, and all data has been flushed
-to the underlying system, this event is emitted.
+When the [`stream.end()`][stream-end] method has been called, and all data has
+been flushed to the underlying system, this event is emitted.
```javascript
var writer = getWritableStreamSomehow();
for (var i = 0; i < 100; i ++) {
- writer.write('hello, #' + i + '!\n');
+ writer.write('hello, #${i}!\n');
}
writer.end('this is the end\n');
-writer.on('finish', function() {
+writer.on('finish', () => {
console.error('all writes are now complete.');
});
```
#### Event: 'pipe'
-* `src` {[Readable][] Stream} source stream that is piping to this writable
+* `src` {stream.Readable} source stream that is piping to this writable
-This is emitted whenever the `pipe()` method is called on a readable
+This is emitted whenever the [`stream.pipe()`][] method is called on a readable
stream, adding this writable to its set of destinations.
-```javascript
+```js
var writer = getWritableStreamSomehow();
var reader = getReadableStreamSomehow();
-writer.on('pipe', function(src) {
+writer.on('pipe', (src) => {
console.error('something is piping into the writer');
assert.equal(src, reader);
});
@@ -642,15 +648,16 @@ reader.pipe(writer);
#### Event: 'unpipe'
-* `src` {[Readable][] Stream} The source stream that [unpiped][] this writable
+* `src` {[Readable][] Stream} The source stream that
+ [unpiped][`stream.unpipe()`] this writable
-This is emitted whenever the [`unpipe()`][] method is called on a
+This is emitted whenever the [`stream.unpipe()`][] method is called on a
readable stream, removing this writable from its set of destinations.
-```javascript
+```js
var writer = getWritableStreamSomehow();
var reader = getReadableStreamSomehow();
-writer.on('unpipe', function(src) {
+writer.on('unpipe', (src) => {
console.error('something has stopped piping into the writer');
assert.equal(src, reader);
});
@@ -662,20 +669,22 @@ reader.unpipe(writer);
Forces buffering of all writes.
-Buffered data will be flushed either at `.uncork()` or at `.end()` call.
+Buffered data will be flushed either at [`stream.uncork()`][] or at
+[`stream.end()`][stream-end] call.
#### writable.end([chunk][, encoding][, callback])
-* `chunk` {String | Buffer} Optional data to write
+* `chunk` {String|Buffer} Optional data to write
* `encoding` {String} The encoding, if `chunk` is a String
* `callback` {Function} Optional callback for when the stream is finished
-Call this method when no more data will be written to the stream. If
-supplied, the callback is attached as a listener on the `finish` event.
+Call this method when no more data will be written to the stream. If supplied,
+the callback is attached as a listener on the [`'finish'`][] event.
-Calling [`write()`][] after calling [`end()`][] will raise an error.
+Calling [`stream.write()`][stream-write] after calling
+[`stream.end()`][stream-end] will raise an error.
-```javascript
+```js
// write 'hello, ' and then end with 'world!'
var file = fs.createWriteStream('example.txt');
file.write('hello, ');
@@ -691,26 +700,26 @@ Sets the default encoding for a writable stream.
#### writable.uncork()
-Flush all data, buffered since `.cork()` call.
+Flush all data, buffered since [`stream.cork()`][] call.
#### writable.write(chunk[, encoding][, callback])
-* `chunk` {String | Buffer} The data to write
+* `chunk` {String|Buffer} The data to write
* `encoding` {String} The encoding, if `chunk` is a String
* `callback` {Function} Callback for when this chunk of data is flushed
-* Returns: {Boolean} True if the data was handled completely.
+* Returns: {Boolean} `true` if the data was handled completely.
This method writes some data to the underlying system, and calls the
supplied callback once the data has been fully handled.
The return value indicates if you should continue writing right now.
If the data had to be buffered internally, then it will return
-`false`. Otherwise, it will return `true`.
+`false`. Otherwise, it will return `true`.
-This return value is strictly advisory. You MAY continue to write,
-even if it returns `false`. However, writes will be buffered in
-memory, so it is best not to do this excessively. Instead, wait for
-the `drain` event before writing more data.
+This return value is strictly advisory. You MAY continue to write,
+even if it returns `false`. However, writes will be buffered in
+memory, so it is best not to do this excessively. Instead, wait for
+the [`'drain'`][] event before writing more data.
## API for Stream Implementors
@@ -719,11 +728,11 @@ the `drain` event before writing more data.
To implement any sort of stream, the pattern is the same:
-1. Extend the appropriate parent class in your own subclass. (The
- [`util.inherits`][] method is particularly helpful for this.)
+1. Extend the appropriate parent class in your own subclass. (The
+ [`util.inherits()`][] method is particularly helpful for this.)
2. Call the appropriate parent class constructor in your constructor,
to be sure that the internal mechanisms are set up properly.
-2. Implement one or more specific methods, as detailed below.
+3. Implement one or more specific methods, as detailed below.
The class to extend and the method(s) to implement depend on the sort
of stream class you are writing:
@@ -750,7 +759,7 @@ of stream class you are writing:
[Readable](#stream_class_stream_readable_1)
- [_read][]
+ [_read][stream-_read]
@@ -761,7 +770,7 @@ of stream class you are writing:
[Writable](#stream_class_stream_writable_1)
- [_write][]
, _writev
+ [_write][stream-_write]
, [_writev][stream-_writev]
@@ -772,7 +781,7 @@ of stream class you are writing:
[Duplex](#stream_class_stream_duplex_1)
- [_read][]
, [_write][]
, _writev
+ [_read][stream-_read]
, [_write][stream-_write]
, [_writev][stream-_writev]
@@ -783,45 +792,45 @@ of stream class you are writing:
[Transform](#stream_class_stream_transform_1)
- _transform
, _flush
+ [_transform][stream-_transform]
, [_flush][stream-_flush]
-In your implementation code, it is very important to never call the
-methods described in [API for Stream Consumers][] above. Otherwise, you
-can potentially cause adverse side effects in programs that consume
-your streaming interfaces.
+In your implementation code, it is very important to never call the methods
+described in [API for Stream Consumers][]. Otherwise, you can potentially cause
+adverse side effects in programs that consume your streaming interfaces.
### Class: stream.Duplex
-A "duplex" stream is one that is both Readable and Writable, such as a
-TCP socket connection.
+A "duplex" stream is one that is both Readable and Writable, such as a TCP
+socket connection.
Note that `stream.Duplex` is an abstract class designed to be extended
-with an underlying implementation of the `_read(size)` and
-[`_write(chunk, encoding, callback)`][] methods as you would with a
-Readable or Writable stream class.
+with an underlying implementation of the [`stream._read(size)`][stream-_read]
+and [`stream._write(chunk, encoding, callback)`][stream-_write] methods as you
+would with a Readable or Writable stream class.
-Since JavaScript doesn't have multiple prototypal inheritance, this
-class prototypally inherits from Readable, and then parasitically from
-Writable. It is thus up to the user to implement both the lowlevel
-`_read(n)` method as well as the lowlevel
-[`_write(chunk, encoding, callback)`][] method on extension duplex classes.
+Since JavaScript doesn't have multiple prototypal inheritance, this class
+prototypally inherits from Readable, and then parasitically from Writable. It is
+thus up to the user to implement both the low-level
+[`stream._read(n)`][stream-_read] method as well as the low-level
+[`stream._write(chunk, encoding, callback)`][stream-_write] method on extension
+duplex classes.
#### new stream.Duplex(options)
* `options` {Object} Passed to both Writable and Readable
constructors. Also has the following fields:
- * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then
+ * `allowHalfOpen` {Boolean} Default = `true`. If set to `false`, then
the stream will automatically end the readable side when the
writable side ends and vice versa.
- * `readableObjectMode` {Boolean} Default=false. Sets `objectMode`
+ * `readableObjectMode` {Boolean} Default = `false`. Sets `objectMode`
for readable side of the stream. Has no effect if `objectMode`
is `true`.
- * `writableObjectMode` {Boolean} Default=false. Sets `objectMode`
+ * `writableObjectMode` {Boolean} Default = `false`. Sets `objectMode`
for writable side of the stream. Has no effect if `objectMode`
is `true`.
@@ -832,7 +841,7 @@ initialized.
### Class: stream.PassThrough
This is a trivial implementation of a [Transform][] stream that simply
-passes the input bytes across to the output. Its purpose is mainly
+passes the input bytes across to the output. Its purpose is mainly
for examples and testing, but there are occasionally use cases where
it can come in handy as a building block for novel sorts of streams.
@@ -841,10 +850,10 @@ it can come in handy as a building block for novel sorts of streams.
`stream.Readable` is an abstract class designed to be extended with an
-underlying implementation of the [`_read(size)`][] method.
+underlying implementation of the [`stream._read(size)`][stream-_read] method.
-Please see above under [API for Stream Consumers][] for how to consume
-streams in your programs. What follows is an explanation of how to
+Please see [API for Stream Consumers][] for how to consume
+streams in your programs. What follows is an explanation of how to
implement Readable streams in your programs.
#### new stream.Readable([options])
@@ -852,12 +861,14 @@ implement Readable streams in your programs.
* `options` {Object}
* `highWaterMark` {Number} The maximum number of bytes to store in
the internal buffer before ceasing to read from the underlying
- resource. Default=16kb, or 16 for `objectMode` streams
+ resource. Default = `16384` (16kb), or `16` for `objectMode` streams
* `encoding` {String} If specified, then buffers will be decoded to
- strings using the specified encoding. Default=null
+ strings using the specified encoding. Default = `null`
* `objectMode` {Boolean} Whether this stream should behave
- as a stream of objects. Meaning that stream.read(n) returns
- a single value instead of a Buffer of size n. Default=false
+ as a stream of objects. Meaning that [`stream.read(n)`][stream-read] returns
+ a single value instead of a Buffer of size n. Default = `false`
+ * `read` {Function} Implementation for the [`stream._read()`][stream-_read]
+ method.
In classes that extend the Readable class, make sure to call the
Readable constructor so that the buffering settings can be properly
@@ -871,29 +882,31 @@ Note: **Implement this method, but do NOT call it directly.**
This method is prefixed with an underscore because it is internal to the
class that defines it and should only be called by the internal Readable
-class methods. All Readable stream implementations must provide a _read
+class methods. All Readable stream implementations must provide a \_read
method to fetch data from the underlying resource.
-When _read is called, if data is available from the resource, `_read` should
-start pushing that data into the read queue by calling `this.push(dataChunk)`.
-`_read` should continue reading from the resource and pushing data until push
-returns false, at which point it should stop reading from the resource. Only
-when _read is called again after it has stopped should it start reading
-more data from the resource and pushing that data onto the queue.
+When `_read()` is called, if data is available from the resource, the `_read()`
+implementation should start pushing that data into the read queue by calling
+[`this.push(dataChunk)`][stream-push]. `_read()` should continue reading from
+the resource and pushing data until push returns `false`, at which point it
+should stop reading from the resource. Only when `_read()` is called again after
+it has stopped should it start reading more data from the resource and pushing
+that data onto the queue.
Note: once the `_read()` method is called, it will not be called again until
-the `push` method is called.
+the [`stream.push()`][stream-push] method is called.
-The `size` argument is advisory. Implementations where a "read" is a
+The `size` argument is advisory. Implementations where a "read" is a
single call that returns data can use this to know how much data to
-fetch. Implementations where that is not relevant, such as TCP or
+fetch. Implementations where that is not relevant, such as TCP or
TLS, may ignore this argument, and simply provide data whenever it
-becomes available. There is no need, for example to "wait" until
-`size` bytes are available before calling [`stream.push(chunk)`][].
+becomes available. There is no need, for example to "wait" until
+`size` bytes are available before calling [`stream.push(chunk)`][stream-push].
#### readable.push(chunk[, encoding])
-* `chunk` {Buffer | null | String} Chunk of data to push into the read queue
+
+* `chunk` {Buffer|Null|String} Chunk of data to push into the read queue
* `encoding` {String} Encoding of String chunks. Must be a valid
Buffer encoding, such as `'utf8'` or `'ascii'`
* return {Boolean} Whether or not more pushes should be performed
@@ -906,15 +919,15 @@ into the queue for subsequent stream processors to consume. If `null` is
passed, it signals the end of the stream (EOF), after which no more data
can be written.
-The data added with `push` can be pulled out by calling the `read()` method
-when the `'readable'`event fires.
+The data added with `push()` can be pulled out by calling the
+[`stream.read()`][stream-read] method when the [`'readable'`][] event fires.
-This API is designed to be as flexible as possible. For example,
+This API is designed to be as flexible as possible. For example,
you may be wrapping a lower-level source which has some sort of
-pause/resume mechanism, and a data callback. In those cases, you
+pause/resume mechanism, and a data callback. In those cases, you
could wrap the low-level source object by doing something like this:
-```javascript
+```js
// source is an object with readStop() and readStart() methods,
// and an `ondata` member that gets called when it has data, and
// an `onend` member that gets called when the data is over.
@@ -925,18 +938,17 @@ function SourceWrapper(options) {
Readable.call(this, options);
this._source = getLowlevelSourceObject();
- var self = this;
// Every time there's data, we push it into the internal buffer.
- this._source.ondata = function(chunk) {
+ this._source.ondata = (chunk) => {
// if push() returns false, then we need to stop reading from source
- if (!self.push(chunk))
- self._source.readStop();
+ if (!this.push(chunk))
+ this._source.readStop();
};
// When the source ends, we push the EOF-signaling `null` chunk
- this._source.onend = function() {
- self.push(null);
+ this._source.onend = () => {
+ this.push(null);
};
}
@@ -951,12 +963,12 @@ SourceWrapper.prototype._read = function(size) {
-This is a basic example of a Readable stream. It emits the numerals
+This is a basic example of a Readable stream. It emits the numerals
from 1 to 1,000,000 in ascending order, and then ends.
-```javascript
-var Readable = require('stream').Readable;
-var util = require('util');
+```js
+const Readable = require('stream').Readable;
+const util = require('util');
util.inherits(Counter, Readable);
function Counter(opt) {
@@ -979,24 +991,25 @@ Counter.prototype._read = function() {
#### Example: SimpleProtocol v1 (Sub-optimal)
-This is similar to the `parseHeader` function described above, but
-implemented as a custom stream. Also, note that this implementation
-does not convert the incoming data to a string.
+This is similar to the `parseHeader` function described
+[here](#stream_readable_unshift_chunk), but implemented as a custom stream.
+Also, note that this implementation does not convert the incoming data to a
+string.
-However, this would be better implemented as a [Transform][] stream. See
-below for a better implementation.
+However, this would be better implemented as a [Transform][] stream. See
+[SimpleProtocol v2][] for a better implementation.
-```javascript
+```js
// A parser for a simple data protocol.
// The "header" is a JSON object, followed by 2 \n characters, and
// then a message body.
//
// NOTE: This can be done more simply as a Transform stream!
-// Using Readable directly for this is sub-optimal. See the
+// Using Readable directly for this is sub-optimal. See the
// alternative example below under the Transform section.
-var Readable = require('stream').Readable;
-var util = require('util');
+const Readable = require('stream').Readable;
+const util = require('util');
util.inherits(SimpleProtocol, Readable);
@@ -1012,13 +1025,13 @@ function SimpleProtocol(source, options) {
this._source = source;
var self = this;
- source.on('end', function() {
+ source.on('end', () => {
self.push(null);
});
// give it a kick whenever the source is readable
// read(0) will not consume any bytes
- source.on('readable', function() {
+ source.on('readable', () => {
self.read(0);
});
@@ -1098,19 +1111,24 @@ connected in some way to the input, such as a [zlib][] stream or a
[crypto][] stream.
There is no requirement that the output be the same size as the input,
-the same number of chunks, or arrive at the same time. For example, a
+the same number of chunks, or arrive at the same time. For example, a
Hash stream will only ever have a single chunk of output which is
-provided when the input is ended. A zlib stream will produce output
+provided when the input is ended. A zlib stream will produce output
that is either much smaller or much larger than its input.
-Rather than implement the [`_read()`][] and [`_write()`][] methods, Transform
-classes must implement the `_transform()` method, and may optionally
-also implement the `_flush()` method. (See below.)
+Rather than implement the [`stream._read()`][stream-_read] and
+[`stream._write()`][stream-_write] methods, Transform classes must implement the
+[`stream._transform()`][stream-_transform] method, and may optionally
+also implement the [`stream._flush()`][stream-_flush] method. (See below.)
#### new stream.Transform([options])
* `options` {Object} Passed to both Writable and Readable
- constructors.
+ constructors. Also has the following fields:
+ * `transform` {Function} Implementation for the
+ [`stream._transform()`][stream-_transform] method.
+ * `flush` {Function} Implementation for the [`stream._flush()`][stream-_flush]
+ method.
In classes that extend the Transform class, make sure to call the
constructor so that the buffering settings can be properly
@@ -1118,11 +1136,12 @@ initialized.
#### Events: 'finish' and 'end'
-The [`finish`][] and [`end`][] events are from the parent Writable
-and Readable classes respectively. The `finish` event is fired after
-`.end()` is called and all chunks have been processed by `_transform`,
-`end` is fired after all data has been output which is after the callback
-in `_flush` has been called.
+The [`'finish'`][] and [`'end'`][] events are from the parent Writable
+and Readable classes respectively. The `'finish'` event is fired after
+[`stream.end()`][stream-end] is called and all chunks have been processed by
+[`stream._transform()`][stream-_transform], `'end'` is fired after all data has
+been output which is after the callback in [`stream._flush()`][stream-_flush]
+has been called.
#### transform.\_flush(callback)
@@ -1134,26 +1153,26 @@ by child classes, and if so, will be called by the internal Transform
class methods only.
In some cases, your transform operation may need to emit a bit more
-data at the end of the stream. For example, a `Zlib` compression
+data at the end of the stream. For example, a `Zlib` compression
stream will store up some internal state so that it can optimally
-compress the output. At the end, however, it needs to do the best it
+compress the output. At the end, however, it needs to do the best it
can with what is left, so that the data will be complete.
-In those cases, you can implement a `_flush` method, which will be
+In those cases, you can implement a `_flush()` method, which will be
called at the very end, after all the written data is consumed, but
-before emitting `end` to signal the end of the readable side. Just
-like with `_transform`, call `transform.push(chunk)` zero or more
-times, as appropriate, and call `callback` when the flush operation is
-complete.
+before emitting [`'end'`][] to signal the end of the readable side. Just
+like with [`stream._transform()`][stream-_transform], call
+`transform.push(chunk)` zero or more times, as appropriate, and call `callback`
+when the flush operation is complete.
This method is prefixed with an underscore because it is internal to
the class that defines it, and should not be called directly by user
-programs. However, you **are** expected to override this method in
+programs. However, you **are** expected to override this method in
your own extension classes.
#### transform.\_transform(chunk, encoding, callback)
-* `chunk` {Buffer | String} The chunk to be transformed. Will **always**
+* `chunk` {Buffer|String} The chunk to be transformed. Will **always**
be a buffer unless the `decodeStrings` option was set to `false`.
* `encoding` {String} If the chunk is a string, then this is the
encoding type. If chunk is a buffer, then this is the special
@@ -1165,12 +1184,12 @@ Note: **This function MUST NOT be called directly.** It should be
implemented by child classes, and called by the internal Transform
class methods only.
-All Transform stream implementations must provide a `_transform`
+All Transform stream implementations must provide a `_transform()`
method to accept input and produce output.
-`_transform` should do whatever has to be done in this specific
+`_transform()` should do whatever has to be done in this specific
Transform class, to handle the bytes being written, and pass them off
-to the readable portion of the interface. Do asynchronous I/O,
+to the readable portion of the interface. Do asynchronous I/O,
process things, and so on.
Call `transform.push(outputChunk)` 0 or more times to generate output
@@ -1178,12 +1197,12 @@ from this input chunk, depending on how much data you want to output
as a result of this chunk.
Call the callback function only when the current chunk is completely
-consumed. Note that there may or may not be output as a result of any
+consumed. Note that there may or may not be output as a result of any
particular input chunk. If you supply a second argument to the callback
it will be passed to the push method. In other words the following are
equivalent:
-```javascript
+```js
transform.prototype._transform = function (data, encoding, callback) {
this.push(data);
callback();
@@ -1196,22 +1215,23 @@ transform.prototype._transform = function (data, encoding, callback) {
This method is prefixed with an underscore because it is internal to
the class that defines it, and should not be called directly by user
-programs. However, you **are** expected to override this method in
+programs. However, you **are** expected to override this method in
your own extension classes.
#### Example: `SimpleProtocol` parser v2
-The example above of a simple protocol parser can be implemented
-simply by using the higher level [Transform][] stream class, similar to
-the `parseHeader` and `SimpleProtocol v1` examples above.
+The example [here](#stream_example_simpleprotocol_v1_sub_optimal) of a simple
+protocol parser can be implemented simply by using the higher level
+[Transform][] stream class, similar to the `parseHeader` and `SimpleProtocol
+v1` examples.
In this example, rather than providing the input as an argument, it
would be piped into the parser, which is a more idiomatic Node.js stream
approach.
```javascript
-var util = require('util');
-var Transform = require('stream').Transform;
+const util = require('util');
+const Transform = require('stream').Transform;
util.inherits(SimpleProtocol, Transform);
function SimpleProtocol(options) {
@@ -1282,22 +1302,30 @@ SimpleProtocol.prototype._transform = function(chunk, encoding, done) {
`stream.Writable` is an abstract class designed to be extended with an
-underlying implementation of the [`_write(chunk, encoding, callback)`][] method.
+underlying implementation of the
+[`stream._write(chunk, encoding, callback)`][stream-_write] method.
-Please see above under [API for Stream Consumers][] for how to consume
-writable streams in your programs. What follows is an explanation of
+Please see [API for Stream Consumers][] for how to consume
+writable streams in your programs. What follows is an explanation of
how to implement Writable streams in your programs.
#### new stream.Writable([options])
* `options` {Object}
- * `highWaterMark` {Number} Buffer level when [`write()`][] starts
- returning false. Default=16kb, or 16 for `objectMode` streams
+ * `highWaterMark` {Number} Buffer level when
+ [`stream.write()`][stream-write] starts returning `false`. Default = `16384`
+ (16kb), or `16` for `objectMode` streams.
* `decodeStrings` {Boolean} Whether or not to decode strings into
- Buffers before passing them to [`_write()`][]. Default=true
- * `objectMode` {Boolean} Whether or not the `write(anyObj)` is
- a valid operation. If set you can write arbitrary data instead
- of only `Buffer` / `String` data. Default=false
+ Buffers before passing them to [`stream._write()`][stream-_write].
+ Default = `true`
+ * `objectMode` {Boolean} Whether or not the
+ [`stream.write(anyObj)`][stream-write] is a valid operation. If set you can
+ write arbitrary data instead of only `Buffer` / `String` data.
+ Default = `false`
+ * `write` {Function} Implementation for the
+ [`stream._write()`][stream-_write] method.
+ * `writev` {Function} Implementation for the
+ [`stream._writev()`][stream-_writev] method.
In classes that extend the Writable class, make sure to call the
constructor so that the buffering settings can be properly
@@ -1305,7 +1333,7 @@ initialized.
#### writable.\_write(chunk, encoding, callback)
-* `chunk` {Buffer | String} The chunk to be written. Will **always**
+* `chunk` {Buffer|String} The chunk to be written. Will **always**
be a buffer unless the `decodeStrings` option was set to `false`.
* `encoding` {String} If the chunk is a string, then this is the
encoding type. If chunk is a buffer, then this is the special
@@ -1313,8 +1341,9 @@ initialized.
* `callback` {Function} Call this function (optionally with an error
argument) when you are done processing the supplied chunk.
-All Writable stream implementations must provide a [`_write()`][]
-method to send data to the underlying resource.
+All Writable stream implementations must provide a
+[`stream._write()`][stream-_write] method to send data to the underlying
+resource.
Note: **This function MUST NOT be called directly.** It should be
implemented by child classes, and called by the internal Writable
@@ -1325,20 +1354,20 @@ signal that the write completed successfully or with an error.
If the `decodeStrings` flag is set in the constructor options, then
`chunk` may be a string rather than a Buffer, and `encoding` will
-indicate the sort of string that it is. This is to support
+indicate the sort of string that it is. This is to support
implementations that have an optimized handling for certain string
-data encodings. If you do not explicitly set the `decodeStrings`
+data encodings. If you do not explicitly set the `decodeStrings`
option to `false`, then you can safely ignore the `encoding` argument,
and assume that `chunk` will always be a Buffer.
This method is prefixed with an underscore because it is internal to
the class that defines it, and should not be called directly by user
-programs. However, you **are** expected to override this method in
+programs. However, you **are** expected to override this method in
your own extension classes.
#### writable.\_writev(chunks, callback)
-* `chunks` {Array} The chunks to be written. Each chunk has following
+* `chunks` {Array} The chunks to be written. Each chunk has following
format: `{ chunk: ..., encoding: ... }`.
* `callback` {Function} Call this function (optionally with an error
argument) when you are done processing the supplied chunks.
@@ -1348,7 +1377,7 @@ implemented by child classes, and called by the internal Writable
class methods only.
This function is completely optional to implement. In most cases it is
-unnecessary. If implemented, it will be called with all the chunks
+unnecessary. If implemented, it will be called with all the chunks
that are buffered in the write queue.
@@ -1356,14 +1385,16 @@ that are buffered in the write queue.
-In simple cases there is now the added benefit of being able to construct a stream without inheritance.
+In simple cases there is now the added benefit of being able to construct a
+stream without inheritance.
This can be done by passing the appropriate methods as constructor options:
Examples:
### Duplex
-```javascript
+
+```js
var duplex = new stream.Duplex({
read: function(n) {
// sets this._read under the hood
@@ -1400,7 +1431,8 @@ var duplex = new stream.Duplex({
```
### Readable
-```javascript
+
+```js
var readable = new stream.Readable({
read: function(n) {
// sets this._read under the hood
@@ -1413,7 +1445,8 @@ var readable = new stream.Readable({
```
### Transform
-```javascript
+
+```js
var transform = new stream.Transform({
transform: function(chunk, encoding, next) {
// sets this._transform under the hood
@@ -1436,7 +1469,8 @@ var transform = new stream.Transform({
```
### Writable
-```javascript
+
+```js
var writable = new stream.Writable({
write: function(chunk, encoding, next) {
// sets this._write under the hood
@@ -1474,14 +1508,14 @@ The amount of data that will potentially be buffered depends on the
`highWaterMark` option which is passed into the constructor.
Buffering in Readable streams happens when the implementation calls
-[`stream.push(chunk)`][]. If the consumer of the Stream does not call
-`stream.read()`, then the data will sit in the internal queue until it
-is consumed.
+[`stream.push(chunk)`][stream-push]. If the consumer of the Stream does not
+call [`stream.read()`][stream-read], then the data will sit in the internal
+queue until it is consumed.
Buffering in Writable streams happens when the user calls
-[`stream.write(chunk)`][] repeatedly, even when `write()` returns `false`.
+[`stream.write(chunk)`][stream-write] repeatedly, even when it returns `false`.
-The purpose of streams, especially with the `pipe()` method, is to
+The purpose of streams, especially with the [`stream.pipe()`][] method, is to
limit the buffering of data to acceptable levels, so that sources and
destinations of varying speed will not overwhelm the available memory.
@@ -1492,36 +1526,37 @@ destinations of varying speed will not overwhelm the available memory.
In versions of Node.js prior to v0.10, the Readable stream interface was
simpler, but also less powerful and less useful.
-* Rather than waiting for you to call the `read()` method, `'data'`
- events would start emitting immediately. If you needed to do some
- I/O to decide how to handle data, then you had to store the chunks
+* Rather than waiting for you to call the [`stream.read()`][stream-read] method,
+ [`'data'`][] events would start emitting immediately. If you needed to do
+ some I/O to decide how to handle data, then you had to store the chunks
in some kind of buffer so that they would not be lost.
-* The [`pause()`][] method was advisory, rather than guaranteed. This
- meant that you still had to be prepared to receive `'data'` events
- even when the stream was in a paused state.
+* The [`stream.pause()`][stream-pause] method was advisory, rather than
+ guaranteed. This meant that you still had to be prepared to receive
+ [`'data'`][] events even when the stream was in a paused state.
-In Node.js v0.10, the Readable class described below was added.
+In Node.js v0.10, the [Readable][] class was added.
For backwards compatibility with older Node.js programs, Readable streams
-switch into "flowing mode" when a `'data'` event handler is added, or
-when the [`resume()`][] method is called. The effect is that, even if
-you are not using the new `read()` method and `'readable'` event, you
-no longer have to worry about losing `'data'` chunks.
+switch into "flowing mode" when a [`'data'`][] event handler is added, or
+when the [`stream.resume()`][stream-resume] method is called. The effect is
+that, even if you are not using the new [`stream.read()`][stream-read] method
+and [`'readable'`][] event, you no longer have to worry about losing
+[`'data'`][] chunks.
-Most programs will continue to function normally. However, this
+Most programs will continue to function normally. However, this
introduces an edge case in the following conditions:
-* No [`'data'` event][] handler is added.
-* The [`resume()`][] method is never called.
+* No [`'data'`][] event handler is added.
+* The [`stream.resume()`][stream-resume] method is never called.
* The stream is not piped to any writable destination.
For example, consider the following code:
-```javascript
+```js
// WARNING! BROKEN!
-net.createServer(function(socket) {
+net.createServer((socket) => {
// we add an 'end' method, but never consume the data
- socket.on('end', function() {
+ socket.on('end', () => {
// It will never get here.
socket.end('I got your message (but didnt read it)\n');
});
@@ -1530,17 +1565,17 @@ net.createServer(function(socket) {
```
In versions of Node.js prior to v0.10, the incoming message data would be
-simply discarded. However, in Node.js v0.10 and beyond,
+simply discarded. However, in Node.js v0.10 and beyond,
the socket will remain paused forever.
-The workaround in this situation is to call the `resume()` method to
-start the flow of data:
+The workaround in this situation is to call the
+[`stream.resume()`][stream-resume] method to start the flow of data:
-```javascript
+```js
// Workaround
-net.createServer(function(socket) {
+net.createServer((socket) => {
- socket.on('end', function() {
+ socket.on('end', () => {
socket.end('I got your message (but didnt read it)\n');
});
@@ -1552,7 +1587,7 @@ net.createServer(function(socket) {
In addition to new Readable streams switching into flowing mode,
pre-v0.10 style streams can be wrapped in a Readable class using the
-`wrap()` method.
+[`stream.wrap()`][] method.
### Object Mode
@@ -1565,33 +1600,33 @@ Streams that are in **object mode** can emit generic JavaScript values
other than Buffers and Strings.
A Readable stream in object mode will always return a single item from
-a call to `stream.read(size)`, regardless of what the size argument
-is.
+a call to [`stream.read(size)`][stream-read], regardless of what the size
+argument is.
A Writable stream in object mode will always ignore the `encoding`
-argument to `stream.write(data, encoding)`.
+argument to [`stream.write(data, encoding)`][stream-write].
The special value `null` still retains its special value for object
-mode streams. That is, for object mode readable streams, `null` as a
-return value from `stream.read()` indicates that there is no more
-data, and [`stream.push(null)`][] will signal the end of stream data
+mode streams. That is, for object mode readable streams, `null` as a
+return value from [`stream.read()`][stream-read] indicates that there is no more
+data, and [`stream.push(null)`][stream-push] will signal the end of stream data
(`EOF`).
-No streams in Node.js core are object mode streams. This pattern is only
+No streams in Node.js core are object mode streams. This pattern is only
used by userland streaming libraries.
You should set `objectMode` in your stream child class constructor on
-the options object. Setting `objectMode` mid-stream is not safe.
+the options object. Setting `objectMode` mid-stream is not safe.
For Duplex streams `objectMode` can be set exclusively for readable or
writable side with `readableObjectMode` and `writableObjectMode`
respectively. These options can be used to implement parsers and
serializers with Transform streams.
-```javascript
-var util = require('util');
-var StringDecoder = require('string_decoder').StringDecoder;
-var Transform = require('stream').Transform;
+```js
+const util = require('util');
+const StringDecoder = require('string_decoder').StringDecoder;
+const Transform = require('stream').Transform;
util.inherits(JSONParseStream, Transform);
// Gets \n-delimited JSON string data, and emits the parsed objects
@@ -1646,12 +1681,12 @@ JSONParseStream.prototype._flush = function(cb) {
There are some cases where you want to trigger a refresh of the
underlying readable stream mechanisms, without actually consuming any
-data. In that case, you can call `stream.read(0)`, which will always
+data. In that case, you can call `stream.read(0)`, which will always
return null.
If the internal read buffer is below the `highWaterMark`, and the
-stream is not currently reading, then calling `read(0)` will trigger
-a low-level `_read` call.
+stream is not currently reading, then calling `stream.read(0)` will trigger
+a low-level [`stream._read()`][stream-_read] call.
There is almost never a need to do this. However, you will see some
cases in Node.js's internals where this is done, particularly in the
@@ -1660,71 +1695,66 @@ Readable stream class internals.
### `stream.push('')`
Pushing a zero-byte string or Buffer (when not in [Object mode][]) has an
-interesting side effect. Because it *is* a call to
-[`stream.push()`][], it will end the `reading` process. However, it
+interesting side effect. Because it *is* a call to
+[`stream.push()`][stream-push], it will end the `reading` process. However, it
does *not* add any data to the readable buffer, so there's nothing for
a user to consume.
Very rarely, there are cases where you have no data to provide now,
but the consumer of your stream (or, perhaps, another bit of your own
-code) will know when to check again, by calling `stream.read(0)`. In
-those cases, you *may* call `stream.push('')`.
+code) will know when to check again, by calling [`stream.read(0)`][stream-read].
+In those cases, you *may* call `stream.push('')`.
So far, the only use case for this functionality is in the
-[tls.CryptoStream][] class, which is deprecated in Node.js/io.js v1.0. If you
+[`tls.CryptoStream`][] class, which is deprecated in Node.js/io.js v1.0. If you
find that you have to use `stream.push('')`, please consider another
approach, because it almost certainly indicates that something is
horribly wrong.
-[request to an HTTP server]: https://nodejs.org/docs/v5.1.0/api/http.html#http_http_incomingmessage
-[EventEmitter]: https://nodejs.org/docs/v5.1.0/api/events.html#events_class_events_eventemitter
-[Object mode]: #stream_object_mode
-[`stream.push(chunk)`]: #stream_readable_push_chunk_encoding
-[`stream.push(null)`]: #stream_readable_push_chunk_encoding
-[`stream.push()`]: #stream_readable_push_chunk_encoding
-[`unpipe()`]: #stream_readable_unpipe_destination
-[unpiped]: #stream_readable_unpipe_destination
-[tcp sockets]: https://nodejs.org/docs/v5.1.0/api/net.html#net_class_net_socket
-[http responses, on the client]: https://nodejs.org/docs/v5.1.0/api/http.html#http_http_incomingmessage
-[http requests, on the server]: https://nodejs.org/docs/v5.1.0/api/http.html#http_http_incomingmessage
-[http requests, on the client]: https://nodejs.org/docs/v5.1.0/api/http.html#http_class_http_clientrequest
-[http responses, on the server]: https://nodejs.org/docs/v5.1.0/api/http.html#http_class_http_serverresponse
-[fs read streams]: https://nodejs.org/docs/v5.1.0/api/fs.html#fs_class_fs_readstream
-[fs write streams]: https://nodejs.org/docs/v5.1.0/api/fs.html#fs_class_fs_writestream
-[zlib streams]: zlib.html
-[zlib]: zlib.html
-[crypto streams]: crypto.html
-[crypto]: crypto.html
-[tls.CryptoStream]: https://nodejs.org/docs/v5.1.0/api/tls.html#tls_class_cryptostream
-[process.stdin]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stdin
-[stdout]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stdout
-[process.stdout]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stdout
-[process.stderr]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stderr
-[child process stdout and stderr]: https://nodejs.org/docs/v5.1.0/api/child_process.html#child_process_child_stdout
-[child process stdin]: https://nodejs.org/docs/v5.1.0/api/child_process.html#child_process_child_stdin
+[`'data'`]: #stream_event_data
+[`'drain'`]: #stream_event_drain
+[`'end'`]: #stream_event_end
+[`'finish'`]: #stream_event_finish
+[`'readable'`]: #stream_event_readable
+[`buf.toString(encoding)`]: https://nodejs.org/docs/v5.8.0/api/buffer.html#buffer_buf_tostring_encoding_start_end
+[`EventEmitter`]: https://nodejs.org/docs/v5.8.0/api/events.html#events_class_eventemitter
+[`process.stderr`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stderr
+[`process.stdin`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdin
+[`process.stdout`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdout
+[`stream.cork()`]: #stream_writable_cork
+[`stream.pipe()`]: #stream_readable_pipe_destination_options
+[`stream.uncork()`]: #stream_writable_uncork
+[`stream.unpipe()`]: #stream_readable_unpipe_destination
+[`stream.wrap()`]: #stream_readable_wrap_stream
+[`tls.CryptoStream`]: https://nodejs.org/docs/v5.8.0/api/tls.html#tls_class_cryptostream
+[`util.inherits()`]: https://nodejs.org/docs/v5.8.0/api/util.html#util_util_inherits_constructor_superconstructor
[API for Stream Consumers]: #stream_api_for_stream_consumers
[API for Stream Implementors]: #stream_api_for_stream_implementors
-[Readable]: #stream_class_stream_readable
-[Writable]: #stream_class_stream_writable
+[child process stdin]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdin
+[child process stdout and stderr]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdout
+[Compatibility]: #stream_compatibility_with_older_node_js_versions
+[crypto]: crypto.html
[Duplex]: #stream_class_stream_duplex
+[fs read streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_readstream
+[fs write streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_writestream
+[HTTP requests, on the client]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_clientrequest
+[HTTP responses, on the server]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_serverresponse
+[http-incoming-message]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_incomingmessage
+[Object mode]: #stream_object_mode
+[Readable]: #stream_class_stream_readable
+[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2
+[stream-_flush]: #stream_transform_flush_callback
+[stream-_read]: #stream_readable_read_size_1
+[stream-_transform]: #stream_transform_transform_chunk_encoding_callback
+[stream-_write]: #stream_writable_write_chunk_encoding_callback_1
+[stream-_writev]: #stream_writable_writev_chunks_callback
+[stream-end]: #stream_writable_end_chunk_encoding_callback
+[stream-pause]: #stream_readable_pause
+[stream-push]: #stream_readable_push_chunk_encoding
+[stream-read]: #stream_readable_read_size
+[stream-resume]: #stream_readable_resume
+[stream-write]: #stream_writable_write_chunk_encoding_callback
+[TCP sockets]: https://nodejs.org/docs/v5.8.0/api/net.html#net_class_net_socket
[Transform]: #stream_class_stream_transform
-[`end`]: #stream_event_end
-[`finish`]: #stream_event_finish
-[`_read(size)`]: #stream_readable_read_size_1
-[`_read()`]: #stream_readable_read_size_1
-[_read]: #stream_readable_read_size_1
-[`writable.write(chunk)`]: #stream_writable_write_chunk_encoding_callback
-[`write(chunk, encoding, callback)`]: #stream_writable_write_chunk_encoding_callback
-[`write()`]: #stream_writable_write_chunk_encoding_callback
-[`stream.write(chunk)`]: #stream_writable_write_chunk_encoding_callback
-[`_write(chunk, encoding, callback)`]: #stream_writable_write_chunk_encoding_callback_1
-[`_write()`]: #stream_writable_write_chunk_encoding_callback_1
-[_write]: #stream_writable_write_chunk_encoding_callback_1
-[`util.inherits`]: https://nodejs.org/docs/v5.1.0/api/util.html#util_util_inherits_constructor_superconstructor
-[`end()`]: #stream_writable_end_chunk_encoding_callback
-[`'data'` event]: #stream_event_data
-[`resume()`]: #stream_readable_resume
-[`readable.resume()`]: #stream_readable_resume
-[`pause()`]: #stream_readable_pause
-[`unpipe()`]: #stream_readable_unpipe_destination
-[`pipe()`]: #stream_readable_pipe_destination_options
+[Writable]: #stream_class_stream_writable
+[zlib]: zlib.html
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js b/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js
index 69558af037cd66..736693b8400fed 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js
@@ -6,22 +6,21 @@
'use strict';
/**/
+
var objectKeys = Object.keys || function (obj) {
var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
-}
+ for (var key in obj) {
+ keys.push(key);
+ }return keys;
+};
/* */
-
module.exports = Duplex;
/**/
var processNextTick = require('process-nextick-args');
/* */
-
-
/**/
var util = require('core-util-is');
util.inherits = require('inherits');
@@ -35,26 +34,21 @@ util.inherits(Duplex, Readable);
var keys = objectKeys(Writable.prototype);
for (var v = 0; v < keys.length; v++) {
var method = keys[v];
- if (!Duplex.prototype[method])
- Duplex.prototype[method] = Writable.prototype[method];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
}
function Duplex(options) {
- if (!(this instanceof Duplex))
- return new Duplex(options);
+ if (!(this instanceof Duplex)) return new Duplex(options);
Readable.call(this, options);
Writable.call(this, options);
- if (options && options.readable === false)
- this.readable = false;
+ if (options && options.readable === false) this.readable = false;
- if (options && options.writable === false)
- this.writable = false;
+ if (options && options.writable === false) this.writable = false;
this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false)
- this.allowHalfOpen = false;
+ if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
this.once('end', onend);
}
@@ -63,8 +57,7 @@ function Duplex(options) {
function onend() {
// if we allow half-open state, or if the writable side ended,
// then we're ok.
- if (this.allowHalfOpen || this._writableState.ended)
- return;
+ if (this.allowHalfOpen || this._writableState.ended) return;
// no more data can be written.
// But allow more writes to happen in this tick.
@@ -75,8 +68,8 @@ function onEndNT(self) {
self.end();
}
-function forEach (xs, f) {
+function forEach(xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
-}
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_passthrough.js b/deps/npm/node_modules/readable-stream/lib/_stream_passthrough.js
index bddfdd01537a40..d06f71f1868d77 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_passthrough.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_passthrough.js
@@ -16,12 +16,11 @@ util.inherits = require('inherits');
util.inherits(PassThrough, Transform);
function PassThrough(options) {
- if (!(this instanceof PassThrough))
- return new PassThrough(options);
+ if (!(this instanceof PassThrough)) return new PassThrough(options);
Transform.call(this, options);
}
-PassThrough.prototype._transform = function(chunk, encoding, cb) {
+PassThrough.prototype._transform = function (chunk, encoding, cb) {
cb(null, chunk);
-};
+};
\ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
index 50852aee7e6e02..54a9d5c553d69e 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
@@ -6,12 +6,10 @@ module.exports = Readable;
var processNextTick = require('process-nextick-args');
/* */
-
/**/
var isArray = require('isarray');
/* */
-
/**/
var Buffer = require('buffer').Buffer;
/* */
@@ -21,21 +19,20 @@ Readable.ReadableState = ReadableState;
var EE = require('events');
/**/
-var EElistenerCount = function(emitter, type) {
+var EElistenerCount = function (emitter, type) {
return emitter.listeners(type).length;
};
/* */
-
-
/**/
var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
/* */
var Buffer = require('buffer').Buffer;
@@ -45,11 +42,9 @@ var util = require('core-util-is');
util.inherits = require('inherits');
/**/
-
-
/**/
var debugUtil = require('util');
-var debug;
+var debug = undefined;
if (debugUtil && debugUtil.debuglog) {
debug = debugUtil.debuglog('stream');
} else {
@@ -71,17 +66,16 @@ function ReadableState(options, stream) {
// make all the buffer merging and length checks go away
this.objectMode = !!options.objectMode;
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.readableObjectMode;
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm = options.highWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
// cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
+ this.highWaterMark = ~ ~this.highWaterMark;
this.buffer = [];
this.length = 0;
@@ -103,6 +97,7 @@ function ReadableState(options, stream) {
this.needReadable = false;
this.emittedReadable = false;
this.readableListening = false;
+ this.resumeScheduled = false;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
@@ -122,8 +117,7 @@ function ReadableState(options, stream) {
this.decoder = null;
this.encoding = null;
if (options.encoding) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
this.decoder = new StringDecoder(options.encoding);
this.encoding = options.encoding;
}
@@ -133,16 +127,14 @@ var Duplex;
function Readable(options) {
Duplex = Duplex || require('./_stream_duplex');
- if (!(this instanceof Readable))
- return new Readable(options);
+ if (!(this instanceof Readable)) return new Readable(options);
this._readableState = new ReadableState(options, this);
// legacy
this.readable = true;
- if (options && typeof options.read === 'function')
- this._read = options.read;
+ if (options && typeof options.read === 'function') this._read = options.read;
Stream.call(this);
}
@@ -151,7 +143,7 @@ function Readable(options) {
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.
-Readable.prototype.push = function(chunk, encoding) {
+Readable.prototype.push = function (chunk, encoding) {
var state = this._readableState;
if (!state.objectMode && typeof chunk === 'string') {
@@ -166,12 +158,12 @@ Readable.prototype.push = function(chunk, encoding) {
};
// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function(chunk) {
+Readable.prototype.unshift = function (chunk) {
var state = this._readableState;
return readableAddChunk(this, state, chunk, '', true);
};
-Readable.prototype.isPaused = function() {
+Readable.prototype.isPaused = function () {
return this._readableState.flowing === false;
};
@@ -190,26 +182,28 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var e = new Error('stream.unshift() after end event');
stream.emit('error', e);
} else {
- if (state.decoder && !addToFront && !encoding)
+ var skipAdd;
+ if (state.decoder && !addToFront && !encoding) {
chunk = state.decoder.write(chunk);
+ skipAdd = !state.objectMode && chunk.length === 0;
+ }
- if (!addToFront)
- state.reading = false;
-
- // if we want the data now, just emit it.
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront)
- state.buffer.unshift(chunk);
- else
- state.buffer.push(chunk);
-
- if (state.needReadable)
- emitReadable(stream);
+ if (!addToFront) state.reading = false;
+
+ // Don't add to the buffer if we've decoded to an empty string chunk and
+ // we're not in object mode
+ if (!skipAdd) {
+ // if we want the data now, just emit it.
+ if (state.flowing && state.length === 0 && !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+
+ if (state.needReadable) emitReadable(stream);
+ }
}
maybeReadMore(stream, state);
@@ -221,7 +215,6 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
return needMoreData(state);
}
-
// if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes. This is to work around cases where hwm=0,
@@ -230,16 +223,12 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.
function needMoreData(state) {
- return !state.ended &&
- (state.needReadable ||
- state.length < state.highWaterMark ||
- state.length === 0);
+ return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
}
// backwards compatibility.
-Readable.prototype.setEncoding = function(enc) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
+Readable.prototype.setEncoding = function (enc) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
this._readableState.decoder = new StringDecoder(enc);
this._readableState.encoding = enc;
return this;
@@ -264,29 +253,22 @@ function computeNewHighWaterMark(n) {
}
function howMuchToRead(n, state) {
- if (state.length === 0 && state.ended)
- return 0;
+ if (state.length === 0 && state.ended) return 0;
- if (state.objectMode)
- return n === 0 ? 0 : 1;
+ if (state.objectMode) return n === 0 ? 0 : 1;
if (n === null || isNaN(n)) {
// only flow one buffer at a time
- if (state.flowing && state.buffer.length)
- return state.buffer[0].length;
- else
- return state.length;
+ if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
}
- if (n <= 0)
- return 0;
+ if (n <= 0) return 0;
// If we're asking for more than the target buffer level,
// then raise the water mark. Bump up to the next highest
// power of 2, to prevent increasing it excessively in tiny
// amounts.
- if (n > state.highWaterMark)
- state.highWaterMark = computeNewHighWaterMark(n);
+ if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
// don't have that much. return null, unless we've ended.
if (n > state.length) {
@@ -302,25 +284,19 @@ function howMuchToRead(n, state) {
}
// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function(n) {
+Readable.prototype.read = function (n) {
debug('read', n);
var state = this._readableState;
var nOrig = n;
- if (typeof n !== 'number' || n > 0)
- state.emittedReadable = false;
+ if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
// the 'readable' event and move on.
- if (n === 0 &&
- state.needReadable &&
- (state.length >= state.highWaterMark || state.ended)) {
+ if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended)
- endReadable(this);
- else
- emitReadable(this);
+ if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
return null;
}
@@ -328,8 +304,7 @@ Readable.prototype.read = function(n) {
// if we've ended, and we're now clear, then finish it up.
if (n === 0 && state.ended) {
- if (state.length === 0)
- endReadable(this);
+ if (state.length === 0) endReadable(this);
return null;
}
@@ -377,8 +352,7 @@ Readable.prototype.read = function(n) {
state.reading = true;
state.sync = true;
// if the length is currently zero, then we *need* a readable event.
- if (state.length === 0)
- state.needReadable = true;
+ if (state.length === 0) state.needReadable = true;
// call internal read method
this._read(state.highWaterMark);
state.sync = false;
@@ -386,14 +360,10 @@ Readable.prototype.read = function(n) {
// If _read pushed data synchronously, then `reading` will be false,
// and we need to re-evaluate how much data we can return to the user.
- if (doRead && !state.reading)
- n = howMuchToRead(nOrig, state);
+ if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
var ret;
- if (n > 0)
- ret = fromList(n, state);
- else
- ret = null;
+ if (n > 0) ret = fromList(n, state);else ret = null;
if (ret === null) {
state.needReadable = true;
@@ -404,32 +374,24 @@ Readable.prototype.read = function(n) {
// If we have nothing in the buffer, then we want to know
// as soon as we *do* get something into the buffer.
- if (state.length === 0 && !state.ended)
- state.needReadable = true;
+ if (state.length === 0 && !state.ended) state.needReadable = true;
// If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended && state.length === 0)
- endReadable(this);
+ if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
- if (ret !== null)
- this.emit('data', ret);
+ if (ret !== null) this.emit('data', ret);
return ret;
};
function chunkInvalid(state, chunk) {
var er = null;
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
+ if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
er = new TypeError('Invalid non-string/buffer chunk');
}
return er;
}
-
function onEofChunk(stream, state) {
if (state.ended) return;
if (state.decoder) {
@@ -454,10 +416,7 @@ function emitReadable(stream) {
if (!state.emittedReadable) {
debug('emitReadable', state.flowing);
state.emittedReadable = true;
- if (state.sync)
- processNextTick(emitReadable_, stream);
- else
- emitReadable_(stream);
+ if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
}
}
@@ -467,7 +426,6 @@ function emitReadable_(stream) {
flow(stream);
}
-
// at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data. that may have triggered
// in turn another _read(n) call, in which case reading = true if
@@ -483,15 +441,12 @@ function maybeReadMore(stream, state) {
function maybeReadMore_(stream, state) {
var len = state.length;
- while (!state.reading && !state.flowing && !state.ended &&
- state.length < state.highWaterMark) {
+ while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
debug('maybeReadMore read 0');
stream.read(0);
if (len === state.length)
// didn't get any data, stop spinning.
- break;
- else
- len = state.length;
+ break;else len = state.length;
}
state.readingMore = false;
}
@@ -500,11 +455,11 @@ function maybeReadMore_(stream, state) {
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function(n) {
+Readable.prototype._read = function (n) {
this.emit('error', new Error('not implemented'));
};
-Readable.prototype.pipe = function(dest, pipeOpts) {
+Readable.prototype.pipe = function (dest, pipeOpts) {
var src = this;
var state = this._readableState;
@@ -522,15 +477,10 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
state.pipesCount += 1;
debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
- var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
- dest !== process.stdout &&
- dest !== process.stderr;
+ var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
var endFn = doEnd ? onend : cleanup;
- if (state.endEmitted)
- processNextTick(endFn);
- else
- src.once('end', endFn);
+ if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
dest.on('unpipe', onunpipe);
function onunpipe(readable) {
@@ -572,9 +522,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
// flowing again.
// So, if this is awaiting a drain, then we just call it now.
// If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain &&
- (!dest._writableState || dest._writableState.needDrain))
- ondrain();
+ if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
}
src.on('data', ondata);
@@ -585,10 +533,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
- if (state.pipesCount === 1 &&
- state.pipes[0] === dest &&
- src.listenerCount('data') === 1 &&
- !cleanedUp) {
+ if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
debug('false write response, pause', src._readableState.awaitDrain);
src._readableState.awaitDrain++;
}
@@ -602,18 +547,11 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
debug('onerror', er);
unpipe();
dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0)
- dest.emit('error', er);
+ if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
}
// This is a brutally ugly hack to make sure that our error handler
// is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error)
- dest.on('error', onerror);
- else if (isArray(dest._events.error))
- dest._events.error.unshift(onerror);
- else
- dest._events.error = [onerror, dest._events.error];
-
+ if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
// Both close and finish should trigger unpipe, but only once.
function onclose() {
@@ -646,11 +584,10 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
};
function pipeOnDrain(src) {
- return function() {
+ return function () {
var state = src._readableState;
debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain)
- state.awaitDrain--;
+ if (state.awaitDrain) state.awaitDrain--;
if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
state.flowing = true;
flow(src);
@@ -658,29 +595,24 @@ function pipeOnDrain(src) {
};
}
-
-Readable.prototype.unpipe = function(dest) {
+Readable.prototype.unpipe = function (dest) {
var state = this._readableState;
// if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0)
- return this;
+ if (state.pipesCount === 0) return this;
// just one destination. most common case.
if (state.pipesCount === 1) {
// passed in one, but it's not the right one.
- if (dest && dest !== state.pipes)
- return this;
+ if (dest && dest !== state.pipes) return this;
- if (!dest)
- dest = state.pipes;
+ if (!dest) dest = state.pipes;
// got a match.
state.pipes = null;
state.pipesCount = 0;
state.flowing = false;
- if (dest)
- dest.emit('unpipe', this);
+ if (dest) dest.emit('unpipe', this);
return this;
}
@@ -694,20 +626,18 @@ Readable.prototype.unpipe = function(dest) {
state.pipesCount = 0;
state.flowing = false;
- for (var i = 0; i < len; i++)
- dests[i].emit('unpipe', this);
- return this;
+ for (var _i = 0; _i < len; _i++) {
+ dests[_i].emit('unpipe', this);
+ }return this;
}
// try to find the right one.
var i = indexOf(state.pipes, dest);
- if (i === -1)
- return this;
+ if (i === -1) return this;
state.pipes.splice(i, 1);
state.pipesCount -= 1;
- if (state.pipesCount === 1)
- state.pipes = state.pipes[0];
+ if (state.pipesCount === 1) state.pipes = state.pipes[0];
dest.emit('unpipe', this);
@@ -716,7 +646,7 @@ Readable.prototype.unpipe = function(dest) {
// set up data events if they are asked for
// Ensure readable listeners eventually get something
-Readable.prototype.on = function(ev, fn) {
+Readable.prototype.on = function (ev, fn) {
var res = Stream.prototype.on.call(this, ev, fn);
// If listening to data, and it has not explicitly been paused,
@@ -725,7 +655,7 @@ Readable.prototype.on = function(ev, fn) {
this.resume();
}
- if (ev === 'readable' && this.readable) {
+ if (ev === 'readable' && !this._readableState.endEmitted) {
var state = this._readableState;
if (!state.readableListening) {
state.readableListening = true;
@@ -750,7 +680,7 @@ function nReadingNextTick(self) {
// pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function() {
+Readable.prototype.resume = function () {
var state = this._readableState;
if (!state.flowing) {
debug('resume');
@@ -776,11 +706,10 @@ function resume_(stream, state) {
state.resumeScheduled = false;
stream.emit('resume');
flow(stream);
- if (state.flowing && !state.reading)
- stream.read(0);
+ if (state.flowing && !state.reading) stream.read(0);
}
-Readable.prototype.pause = function() {
+Readable.prototype.pause = function () {
debug('call pause flowing=%j', this._readableState.flowing);
if (false !== this._readableState.flowing) {
debug('pause');
@@ -803,32 +732,27 @@ function flow(stream) {
// wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function(stream) {
+Readable.prototype.wrap = function (stream) {
var state = this._readableState;
var paused = false;
var self = this;
- stream.on('end', function() {
+ stream.on('end', function () {
debug('wrapped end');
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
- if (chunk && chunk.length)
- self.push(chunk);
+ if (chunk && chunk.length) self.push(chunk);
}
self.push(null);
});
- stream.on('data', function(chunk) {
+ stream.on('data', function (chunk) {
debug('wrapped data');
- if (state.decoder)
- chunk = state.decoder.write(chunk);
+ if (state.decoder) chunk = state.decoder.write(chunk);
// don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined))
- return;
- else if (!state.objectMode && (!chunk || !chunk.length))
- return;
+ if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
var ret = self.push(chunk);
if (!ret) {
@@ -841,21 +765,23 @@ Readable.prototype.wrap = function(stream) {
// important when wrapping filters and duplexes.
for (var i in stream) {
if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function(method) { return function() {
- return stream[method].apply(stream, arguments);
- }; }(i);
+ this[i] = function (method) {
+ return function () {
+ return stream[method].apply(stream, arguments);
+ };
+ }(i);
}
}
// proxy certain important events.
var events = ['error', 'close', 'destroy', 'pause', 'resume'];
- forEach(events, function(ev) {
+ forEach(events, function (ev) {
stream.on(ev, self.emit.bind(self, ev));
});
// when we try to consume some more bytes, simply unpause the
// underlying stream.
- self._read = function(n) {
+ self._read = function (n) {
debug('wrapped _read', n);
if (paused) {
paused = false;
@@ -866,7 +792,6 @@ Readable.prototype.wrap = function(stream) {
return self;
};
-
// exposed for testing purposes only.
Readable._fromList = fromList;
@@ -880,21 +805,11 @@ function fromList(n, state) {
var ret;
// nothing in the list, definitely empty.
- if (list.length === 0)
- return null;
+ if (list.length === 0) return null;
- if (length === 0)
- ret = null;
- else if (objectMode)
- ret = list.shift();
- else if (!n || n >= length) {
+ if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
// read it all, truncate the array.
- if (stringMode)
- ret = list.join('');
- else if (list.length === 1)
- ret = list[0];
- else
- ret = Buffer.concat(list, length);
+ if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
list.length = 0;
} else {
// read just some of it.
@@ -910,25 +825,16 @@ function fromList(n, state) {
} else {
// complex case.
// we have enough to cover it, but it spans past the first buffer.
- if (stringMode)
- ret = '';
- else
- ret = new Buffer(n);
+ if (stringMode) ret = '';else ret = new Buffer(n);
var c = 0;
for (var i = 0, l = list.length; i < l && c < n; i++) {
var buf = list[0];
var cpy = Math.min(n - c, buf.length);
- if (stringMode)
- ret += buf.slice(0, cpy);
- else
- buf.copy(ret, c, 0, cpy);
+ if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
- if (cpy < buf.length)
- list[0] = buf.slice(cpy);
- else
- list.shift();
+ if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
c += cpy;
}
@@ -943,8 +849,7 @@ function endReadable(stream) {
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
- if (state.length > 0)
- throw new Error('endReadable called on non-empty stream');
+ if (state.length > 0) throw new Error('endReadable called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
@@ -961,15 +866,15 @@ function endReadableNT(state, stream) {
}
}
-function forEach (xs, f) {
+function forEach(xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}
-function indexOf (xs, x) {
+function indexOf(xs, x) {
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) return i;
}
return -1;
-}
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
index 3675d18d915610..625cdc17698059 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
@@ -53,9 +53,8 @@ util.inherits = require('inherits');
util.inherits(Transform, Duplex);
-
function TransformState(stream) {
- this.afterTransform = function(er, data) {
+ this.afterTransform = function (er, data) {
return afterTransform(stream, er, data);
};
@@ -63,6 +62,7 @@ function TransformState(stream) {
this.transforming = false;
this.writecb = null;
this.writechunk = null;
+ this.writeencoding = null;
}
function afterTransform(stream, er, data) {
@@ -71,17 +71,14 @@ function afterTransform(stream, er, data) {
var cb = ts.writecb;
- if (!cb)
- return stream.emit('error', new Error('no writecb in Transform class'));
+ if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
ts.writechunk = null;
ts.writecb = null;
- if (data !== null && data !== undefined)
- stream.push(data);
+ if (data !== null && data !== undefined) stream.push(data);
- if (cb)
- cb(er);
+ cb(er);
var rs = stream._readableState;
rs.reading = false;
@@ -90,10 +87,8 @@ function afterTransform(stream, er, data) {
}
}
-
function Transform(options) {
- if (!(this instanceof Transform))
- return new Transform(options);
+ if (!(this instanceof Transform)) return new Transform(options);
Duplex.call(this, options);
@@ -111,24 +106,19 @@ function Transform(options) {
this._readableState.sync = false;
if (options) {
- if (typeof options.transform === 'function')
- this._transform = options.transform;
+ if (typeof options.transform === 'function') this._transform = options.transform;
- if (typeof options.flush === 'function')
- this._flush = options.flush;
+ if (typeof options.flush === 'function') this._flush = options.flush;
}
- this.once('prefinish', function() {
- if (typeof this._flush === 'function')
- this._flush(function(er) {
- done(stream, er);
- });
- else
- done(stream);
+ this.once('prefinish', function () {
+ if (typeof this._flush === 'function') this._flush(function (er) {
+ done(stream, er);
+ });else done(stream);
});
}
-Transform.prototype.push = function(chunk, encoding) {
+Transform.prototype.push = function (chunk, encoding) {
this._transformState.needTransform = false;
return Duplex.prototype.push.call(this, chunk, encoding);
};
@@ -143,28 +133,25 @@ Transform.prototype.push = function(chunk, encoding) {
// Call `cb(err)` when you are done with this chunk. If you pass
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function(chunk, encoding, cb) {
+Transform.prototype._transform = function (chunk, encoding, cb) {
throw new Error('not implemented');
};
-Transform.prototype._write = function(chunk, encoding, cb) {
+Transform.prototype._write = function (chunk, encoding, cb) {
var ts = this._transformState;
ts.writecb = cb;
ts.writechunk = chunk;
ts.writeencoding = encoding;
if (!ts.transforming) {
var rs = this._readableState;
- if (ts.needTransform ||
- rs.needReadable ||
- rs.length < rs.highWaterMark)
- this._read(rs.highWaterMark);
+ if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
}
};
// Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.
-Transform.prototype._read = function(n) {
+Transform.prototype._read = function (n) {
var ts = this._transformState;
if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
@@ -177,21 +164,17 @@ Transform.prototype._read = function(n) {
}
};
-
function done(stream, er) {
- if (er)
- return stream.emit('error', er);
+ if (er) return stream.emit('error', er);
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
var ws = stream._writableState;
var ts = stream._transformState;
- if (ws.length)
- throw new Error('calling transform done when ws.length != 0');
+ if (ws.length) throw new Error('calling transform done when ws.length != 0');
- if (ts.transforming)
- throw new Error('calling transform done when still transforming');
+ if (ts.transforming) throw new Error('calling transform done when still transforming');
return stream.push(null);
-}
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
index 1fa5eb695adde6..95916c992a9507 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
@@ -10,6 +10,9 @@ module.exports = Writable;
var processNextTick = require('process-nextick-args');
/* */
+/**/
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
+/* */
/**/
var Buffer = require('buffer').Buffer;
@@ -17,29 +20,26 @@ var Buffer = require('buffer').Buffer;
Writable.WritableState = WritableState;
-
/**/
var util = require('core-util-is');
util.inherits = require('inherits');
/* */
-
/**/
var internalUtil = {
deprecate: require('util-deprecate')
};
/* */
-
-
/**/
var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
/* */
var Buffer = require('buffer').Buffer;
@@ -65,18 +65,17 @@ function WritableState(options, stream) {
// contains buffers or objects.
this.objectMode = !!options.objectMode;
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.writableObjectMode;
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm = options.highWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
// cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
+ this.highWaterMark = ~ ~this.highWaterMark;
this.needDrain = false;
// at the start of calling end()
@@ -120,7 +119,7 @@ function WritableState(options, stream) {
this.bufferProcessing = false;
// the callback that's passed to _write(chunk,cb)
- this.onwrite = function(er) {
+ this.onwrite = function (er) {
onwrite(stream, er);
};
@@ -143,6 +142,14 @@ function WritableState(options, stream) {
// True if the error was already emitted and should not be thrown again
this.errorEmitted = false;
+
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+
+ // create the two objects needed to store the corked requests
+ // they are not a linked list, as no new elements are inserted in there
+ this.corkedRequestsFree = new CorkedRequest(this);
+ this.corkedRequestsFree.next = new CorkedRequest(this);
}
WritableState.prototype.getBuffer = function writableStateGetBuffer() {
@@ -155,15 +162,15 @@ WritableState.prototype.getBuffer = function writableStateGetBuffer() {
return out;
};
-(function (){try {
-Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function() {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' +
- 'instead.')
-});
-}catch(_){}}());
-
+(function () {
+ try {
+ Object.defineProperty(WritableState.prototype, 'buffer', {
+ get: internalUtil.deprecate(function () {
+ return this.getBuffer();
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ });
+ } catch (_) {}
+})();
var Duplex;
function Writable(options) {
@@ -171,8 +178,7 @@ function Writable(options) {
// Writable ctor is applied to Duplexes, though they're not
// instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex))
- return new Writable(options);
+ if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
this._writableState = new WritableState(options, this);
@@ -180,22 +186,19 @@ function Writable(options) {
this.writable = true;
if (options) {
- if (typeof options.write === 'function')
- this._write = options.write;
+ if (typeof options.write === 'function') this._write = options.write;
- if (typeof options.writev === 'function')
- this._writev = options.writev;
+ if (typeof options.writev === 'function') this._writev = options.writev;
}
Stream.call(this);
}
// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function() {
+Writable.prototype.pipe = function () {
this.emit('error', new Error('Cannot pipe. Not readable.'));
};
-
function writeAfterEnd(stream, cb) {
var er = new Error('write after end');
// TODO: defer error events consistently everywhere, not just the cb
@@ -211,11 +214,7 @@ function writeAfterEnd(stream, cb) {
function validChunk(stream, state, chunk, cb) {
var valid = true;
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
+ if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
var er = new TypeError('Invalid non-string/buffer chunk');
stream.emit('error', er);
processNextTick(cb, er);
@@ -224,7 +223,7 @@ function validChunk(stream, state, chunk, cb) {
return valid;
}
-Writable.prototype.write = function(chunk, encoding, cb) {
+Writable.prototype.write = function (chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
@@ -233,17 +232,11 @@ Writable.prototype.write = function(chunk, encoding, cb) {
encoding = null;
}
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
- else if (!encoding)
- encoding = state.defaultEncoding;
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
- if (typeof cb !== 'function')
- cb = nop;
+ if (typeof cb !== 'function') cb = nop;
- if (state.ended)
- writeAfterEnd(this, cb);
- else if (validChunk(this, state, chunk, cb)) {
+ if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
state.pendingcb++;
ret = writeOrBuffer(this, state, chunk, encoding, cb);
}
@@ -251,42 +244,31 @@ Writable.prototype.write = function(chunk, encoding, cb) {
return ret;
};
-Writable.prototype.cork = function() {
+Writable.prototype.cork = function () {
var state = this._writableState;
state.corked++;
};
-Writable.prototype.uncork = function() {
+Writable.prototype.uncork = function () {
var state = this._writableState;
if (state.corked) {
state.corked--;
- if (!state.writing &&
- !state.corked &&
- !state.finished &&
- !state.bufferProcessing &&
- state.bufferedRequest)
- clearBuffer(this, state);
+ if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
}
};
Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
// node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string')
- encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64',
-'ucs2', 'ucs-2','utf16le', 'utf-16le', 'raw']
-.indexOf((encoding + '').toLowerCase()) > -1))
- throw new TypeError('Unknown encoding: ' + encoding);
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
this._writableState.defaultEncoding = encoding;
};
function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode &&
- state.decodeStrings !== false &&
- typeof chunk === 'string') {
+ if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
chunk = new Buffer(chunk, encoding);
}
return chunk;
@@ -298,16 +280,14 @@ function decodeChunk(state, chunk, encoding) {
function writeOrBuffer(stream, state, chunk, encoding, cb) {
chunk = decodeChunk(state, chunk, encoding);
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
var len = state.objectMode ? 1 : chunk.length;
state.length += len;
var ret = state.length < state.highWaterMark;
// we must ensure that previous needDrain will not be reset to false.
- if (!ret)
- state.needDrain = true;
+ if (!ret) state.needDrain = true;
if (state.writing || state.corked) {
var last = state.lastBufferedRequest;
@@ -317,6 +297,7 @@ function writeOrBuffer(stream, state, chunk, encoding, cb) {
} else {
state.bufferedRequest = state.lastBufferedRequest;
}
+ state.bufferedRequestCount += 1;
} else {
doWrite(stream, state, false, len, chunk, encoding, cb);
}
@@ -329,19 +310,13 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) {
state.writecb = cb;
state.writing = true;
state.sync = true;
- if (writev)
- stream._writev(chunk, state.onwrite);
- else
- stream._write(chunk, encoding, state.onwrite);
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
state.sync = false;
}
function onwriteError(stream, state, sync, er, cb) {
--state.pendingcb;
- if (sync)
- processNextTick(cb, er);
- else
- cb(er);
+ if (sync) processNextTick(cb, er);else cb(er);
stream._writableState.errorEmitted = true;
stream.emit('error', er);
@@ -361,30 +336,26 @@ function onwrite(stream, er) {
onwriteStateUpdate(state);
- if (er)
- onwriteError(stream, state, sync, er, cb);
- else {
+ if (er) onwriteError(stream, state, sync, er, cb);else {
// Check if we're actually ready to finish, but don't emit yet
var finished = needFinish(state);
- if (!finished &&
- !state.corked &&
- !state.bufferProcessing &&
- state.bufferedRequest) {
+ if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
clearBuffer(stream, state);
}
if (sync) {
- processNextTick(afterWrite, stream, state, finished, cb);
+ /**/
+ asyncWrite(afterWrite, stream, state, finished, cb);
+ /* */
} else {
- afterWrite(stream, state, finished, cb);
- }
+ afterWrite(stream, state, finished, cb);
+ }
}
}
function afterWrite(stream, state, finished, cb) {
- if (!finished)
- onwriteDrain(stream, state);
+ if (!finished) onwriteDrain(stream, state);
state.pendingcb--;
cb();
finishMaybe(stream, state);
@@ -400,7 +371,6 @@ function onwriteDrain(stream, state) {
}
}
-
// if there's something in the buffer waiting, then process it
function clearBuffer(stream, state) {
state.bufferProcessing = true;
@@ -408,26 +378,26 @@ function clearBuffer(stream, state) {
if (stream._writev && entry && entry.next) {
// Fast case, write everything using _writev()
- var buffer = [];
- var cbs = [];
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+
+ var count = 0;
while (entry) {
- cbs.push(entry.callback);
- buffer.push(entry);
+ buffer[count] = entry;
entry = entry.next;
+ count += 1;
}
- // count the one we are adding, as well.
- // TODO(isaacs) clean this up
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+
+ // doWrite is always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
state.pendingcb++;
state.lastBufferedRequest = null;
- doWrite(stream, state, true, state.length, buffer, '', function(err) {
- for (var i = 0; i < cbs.length; i++) {
- state.pendingcb--;
- cbs[i](err);
- }
- });
-
- // Clear buffer
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
} else {
// Slow case, write chunks one-by-one
while (entry) {
@@ -447,20 +417,21 @@ function clearBuffer(stream, state) {
}
}
- if (entry === null)
- state.lastBufferedRequest = null;
+ if (entry === null) state.lastBufferedRequest = null;
}
+
+ state.bufferedRequestCount = 0;
state.bufferedRequest = entry;
state.bufferProcessing = false;
}
-Writable.prototype._write = function(chunk, encoding, cb) {
+Writable.prototype._write = function (chunk, encoding, cb) {
cb(new Error('not implemented'));
};
Writable.prototype._writev = null;
-Writable.prototype.end = function(chunk, encoding, cb) {
+Writable.prototype.end = function (chunk, encoding, cb) {
var state = this._writableState;
if (typeof chunk === 'function') {
@@ -472,8 +443,7 @@ Writable.prototype.end = function(chunk, encoding, cb) {
encoding = null;
}
- if (chunk !== null && chunk !== undefined)
- this.write(chunk, encoding);
+ if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
// .end() fully uncorks
if (state.corked) {
@@ -482,17 +452,11 @@ Writable.prototype.end = function(chunk, encoding, cb) {
}
// ignore unnecessary end() calls.
- if (!state.ending && !state.finished)
- endWritable(this, state, cb);
+ if (!state.ending && !state.finished) endWritable(this, state, cb);
};
-
function needFinish(state) {
- return (state.ending &&
- state.length === 0 &&
- state.bufferedRequest === null &&
- !state.finished &&
- !state.writing);
+ return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
}
function prefinish(stream, state) {
@@ -520,10 +484,33 @@ function endWritable(stream, state, cb) {
state.ending = true;
finishMaybe(stream, state);
if (cb) {
- if (state.finished)
- processNextTick(cb);
- else
- stream.once('finish', cb);
+ if (state.finished) processNextTick(cb);else stream.once('finish', cb);
}
state.ended = true;
+ stream.writable = false;
}
+
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
+
+ this.next = null;
+ this.entry = null;
+
+ this.finish = function (err) {
+ var entry = _this.entry;
+ _this.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = _this;
+ } else {
+ state.corkedRequestsFree = _this;
+ }
+ };
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.npmignore b/deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore
similarity index 100%
rename from deps/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.npmignore
rename to deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml b/deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml
new file mode 100644
index 00000000000000..cc4dba29d959a2
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - "0.8"
+ - "0.10"
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile b/deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile
new file mode 100644
index 00000000000000..0ecc29c402c243
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile
@@ -0,0 +1,5 @@
+
+test:
+ @node_modules/.bin/tape test.js
+
+.PHONY: test
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md
index 052a62b8d7b7ae..16d2c59c6195f9 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md
@@ -3,6 +3,12 @@
`Array#isArray` for older browsers.
+[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray)
+[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray)
+
+[![browser support](https://ci.testling.com/juliangruber/isarray.png)
+](https://ci.testling.com/juliangruber/isarray)
+
## Usage
```js
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/build/build.js b/deps/npm/node_modules/readable-stream/node_modules/isarray/build/build.js
deleted file mode 100644
index e1856ef0943728..00000000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/build/build.js
+++ /dev/null
@@ -1,208 +0,0 @@
-
-/**
- * Require the given path.
- *
- * @param {String} path
- * @return {Object} exports
- * @api public
- */
-
-function require(path, parent, orig) {
- var resolved = require.resolve(path);
-
- // lookup failed
- if (null == resolved) {
- orig = orig || path;
- parent = parent || 'root';
- var err = new Error('Failed to require "' + orig + '" from "' + parent + '"');
- err.path = orig;
- err.parent = parent;
- err.require = true;
- throw err;
- }
-
- var module = require.modules[resolved];
-
- // perform real require()
- // by invoking the module's
- // registered function
- if (!module.exports) {
- module.exports = {};
- module.client = module.component = true;
- module.call(this, module.exports, require.relative(resolved), module);
- }
-
- return module.exports;
-}
-
-/**
- * Registered modules.
- */
-
-require.modules = {};
-
-/**
- * Registered aliases.
- */
-
-require.aliases = {};
-
-/**
- * Resolve `path`.
- *
- * Lookup:
- *
- * - PATH/index.js
- * - PATH.js
- * - PATH
- *
- * @param {String} path
- * @return {String} path or null
- * @api private
- */
-
-require.resolve = function(path) {
- if (path.charAt(0) === '/') path = path.slice(1);
- var index = path + '/index.js';
-
- var paths = [
- path,
- path + '.js',
- path + '.json',
- path + '/index.js',
- path + '/index.json'
- ];
-
- for (var i = 0; i < paths.length; i++) {
- var path = paths[i];
- if (require.modules.hasOwnProperty(path)) return path;
- }
-
- if (require.aliases.hasOwnProperty(index)) {
- return require.aliases[index];
- }
-};
-
-/**
- * Normalize `path` relative to the current path.
- *
- * @param {String} curr
- * @param {String} path
- * @return {String}
- * @api private
- */
-
-require.normalize = function(curr, path) {
- var segs = [];
-
- if ('.' != path.charAt(0)) return path;
-
- curr = curr.split('/');
- path = path.split('/');
-
- for (var i = 0; i < path.length; ++i) {
- if ('..' == path[i]) {
- curr.pop();
- } else if ('.' != path[i] && '' != path[i]) {
- segs.push(path[i]);
- }
- }
-
- return curr.concat(segs).join('/');
-};
-
-/**
- * Register module at `path` with callback `definition`.
- *
- * @param {String} path
- * @param {Function} definition
- * @api private
- */
-
-require.register = function(path, definition) {
- require.modules[path] = definition;
-};
-
-/**
- * Alias a module definition.
- *
- * @param {String} from
- * @param {String} to
- * @api private
- */
-
-require.alias = function(from, to) {
- if (!require.modules.hasOwnProperty(from)) {
- throw new Error('Failed to alias "' + from + '", it does not exist');
- }
- require.aliases[to] = from;
-};
-
-/**
- * Return a require function relative to the `parent` path.
- *
- * @param {String} parent
- * @return {Function}
- * @api private
- */
-
-require.relative = function(parent) {
- var p = require.normalize(parent, '..');
-
- /**
- * lastIndexOf helper.
- */
-
- function lastIndexOf(arr, obj) {
- var i = arr.length;
- while (i--) {
- if (arr[i] === obj) return i;
- }
- return -1;
- }
-
- /**
- * The relative require() itself.
- */
-
- function localRequire(path) {
- var resolved = localRequire.resolve(path);
- return require(resolved, parent, path);
- }
-
- /**
- * Resolve relative to the parent.
- */
-
- localRequire.resolve = function(path) {
- var c = path.charAt(0);
- if ('/' == c) return path.slice(1);
- if ('.' == c) return require.normalize(p, path);
-
- // resolve deps by returning
- // the dep in the nearest "deps"
- // directory
- var segs = parent.split('/');
- var i = lastIndexOf(segs, 'deps') + 1;
- if (!i) i = 0;
- path = segs.slice(0, i + 1).join('/') + '/deps/' + path;
- return path;
- };
-
- /**
- * Check if module is defined at `path`.
- */
-
- localRequire.exists = function(path) {
- return require.modules.hasOwnProperty(localRequire.resolve(path));
- };
-
- return localRequire;
-};
-require.register("isarray/index.js", function(exports, require, module){
-module.exports = Array.isArray || function (arr) {
- return Object.prototype.toString.call(arr) == '[object Array]';
-};
-
-});
-require.alias("isarray/index.js", "isarray/index.js");
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js
index 5f5ad45d46dda9..a57f63495943a0 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js
@@ -1,3 +1,5 @@
+var toString = {}.toString;
+
module.exports = Array.isArray || function (arr) {
- return Object.prototype.toString.call(arr) == '[object Array]';
+ return toString.call(arr) == '[object Array]';
};
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
index 85d3a3b5ff5594..a6ff18fbcf10ea 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
@@ -1,38 +1,37 @@
{
"_args": [
[
- "isarray@0.0.1",
- "/Users/rebecca/code/npm/node_modules/npm-registry-couchapp/node_modules/readable-stream"
- ],
- [
- "isarray@0.0.1",
+ "isarray@~1.0.0",
"/Users/rebecca/code/npm/node_modules/readable-stream"
]
],
- "_from": "isarray@0.0.1",
- "_id": "isarray@0.0.1",
+ "_from": "isarray@>=1.0.0 <1.1.0",
+ "_id": "isarray@1.0.0",
"_inCache": true,
"_installable": true,
"_location": "/readable-stream/isarray",
+ "_nodeVersion": "5.1.0",
"_npmUser": {
"email": "julian@juliangruber.com",
"name": "juliangruber"
},
- "_npmVersion": "1.2.18",
+ "_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
"name": "isarray",
- "raw": "isarray@0.0.1",
- "rawSpec": "0.0.1",
+ "raw": "isarray@~1.0.0",
+ "rawSpec": "~1.0.0",
"scope": null,
- "spec": "0.0.1",
- "type": "version"
+ "spec": ">=1.0.0 <1.1.0",
+ "type": "range"
},
"_requiredBy": [
"/readable-stream"
],
+ "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "_shasum": "bb935d48582cba168c06834957a54a3e07124f11",
"_shrinkwrap": null,
- "_spec": "isarray@0.0.1",
+ "_spec": "isarray@~1.0.0",
"_where": "/Users/rebecca/code/npm/node_modules/readable-stream",
"author": {
"email": "mail@juliangruber.com",
@@ -45,25 +44,26 @@
"dependencies": {},
"description": "Array#isArray for older browsers",
"devDependencies": {
- "tap": "*"
+ "tape": "~2.13.4"
},
"directories": {},
"dist": {
- "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf",
- "tarball": "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ "shasum": "bb935d48582cba168c06834957a54a3e07124f11",
+ "tarball": "http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
},
+ "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33",
"homepage": "https://github.com/juliangruber/isarray",
"keywords": [
- "array",
"browser",
- "isarray"
+ "isarray",
+ "array"
],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
- "name": "juliangruber",
- "email": "julian@juliangruber.com"
+ "email": "julian@juliangruber.com",
+ "name": "juliangruber"
}
],
"name": "isarray",
@@ -74,7 +74,23 @@
"url": "git://github.com/juliangruber/isarray.git"
},
"scripts": {
- "test": "tap test/*.js"
+ "test": "tape test.js"
+ },
+ "testling": {
+ "browsers": [
+ "ie/8..latest",
+ "firefox/17..latest",
+ "firefox/nightly",
+ "chrome/22..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ],
+ "files": "test.js"
},
- "version": "0.0.1"
+ "version": "1.0.0"
}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/test.js b/deps/npm/node_modules/readable-stream/node_modules/isarray/test.js
new file mode 100644
index 00000000000000..f7f7bcd19fec56
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/test.js
@@ -0,0 +1,19 @@
+var isArray = require('./');
+var test = require('tape');
+
+test('is array', function(t){
+ t.ok(isArray([]));
+ t.notOk(isArray({}));
+ t.notOk(isArray(null));
+ t.notOk(isArray(false));
+
+ var obj = {};
+ obj[0] = true;
+ t.notOk(isArray(obj));
+
+ var arr = [];
+ arr.foo = 'bar';
+ t.ok(isArray(arr));
+
+ t.end();
+});
diff --git a/deps/npm/node_modules/readable-stream/package.json b/deps/npm/node_modules/readable-stream/package.json
index 8a47aedf79a0b7..eca885b9a7dbb6 100644
--- a/deps/npm/node_modules/readable-stream/package.json
+++ b/deps/npm/node_modules/readable-stream/package.json
@@ -1,44 +1,51 @@
{
"_args": [
[
- "readable-stream@2.0.5",
+ "readable-stream@~2.0.5",
"/Users/rebecca/code/npm"
]
],
- "_from": "readable-stream@2.0.5",
- "_id": "readable-stream@2.0.5",
+ "_from": "readable-stream@>=2.0.5 <2.1.0",
+ "_id": "readable-stream@2.0.6",
"_inCache": true,
"_installable": true,
"_location": "/readable-stream",
- "_nodeVersion": "5.1.1",
+ "_nodeVersion": "5.7.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/readable-stream-2.0.6.tgz_1457893507709_0.369257491780445"
+ },
"_npmUser": {
"email": "calvin.metcalf@gmail.com",
"name": "cwmma"
},
- "_npmVersion": "3.3.12",
+ "_npmVersion": "3.6.0",
"_phantomChildren": {},
"_requested": {
"name": "readable-stream",
- "raw": "readable-stream@2.0.5",
- "rawSpec": "2.0.5",
+ "raw": "readable-stream@~2.0.5",
+ "rawSpec": "~2.0.5",
"scope": null,
- "spec": "2.0.5",
- "type": "version"
+ "spec": ">=2.0.5 <2.1.0",
+ "type": "range"
},
"_requiredBy": [
"/",
"/fs-write-stream-atomic",
"/npm-registry-client/concat-stream",
+ "/npmlog/are-we-there-yet",
"/request/bl",
"/sha",
"/standard/standard-engine/eslint/concat-stream",
+ "/standard/standard-format/esformatter/npm-run/spawn-sync/concat-stream",
"/tap",
+ "/tap/coveralls/request/bl",
"/tap/tap-parser"
],
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz",
- "_shasum": "a2426f8dcd4551c77a33f96edf2886a23c829669",
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "_shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e",
"_shrinkwrap": null,
- "_spec": "readable-stream@2.0.5",
+ "_spec": "readable-stream@~2.0.5",
"_where": "/Users/rebecca/code/npm",
"browser": {
"util": false
@@ -49,47 +56,47 @@
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
- "isarray": "0.0.1",
+ "isarray": "~1.0.0",
"process-nextick-args": "~1.0.6",
"string_decoder": "~0.10.x",
"util-deprecate": "~1.0.1"
},
- "description": "Streams3, a user-land copy of the stream library from iojs v2.x",
+ "description": "Streams3, a user-land copy of the stream library from Node.js",
"devDependencies": {
"tap": "~0.2.6",
- "tape": "~4.0.0",
- "zuul": "~3.0.0"
+ "tape": "~4.5.1",
+ "zuul": "~3.9.0"
},
"directories": {},
"dist": {
- "shasum": "a2426f8dcd4551c77a33f96edf2886a23c829669",
- "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz"
+ "shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e",
+ "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
},
- "gitHead": "a4f23d8e451267684a8160679ce16e16149fe72b",
+ "gitHead": "01fb5608a970b42c900b96746cadc13d27dd9d7e",
"homepage": "https://github.com/nodejs/readable-stream#readme",
"keywords": [
- "pipe",
"readable",
- "stream"
+ "stream",
+ "pipe"
],
"license": "MIT",
"main": "readable.js",
"maintainers": [
{
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
+ "email": "isaacs@npmjs.com",
+ "name": "isaacs"
},
{
- "name": "tootallnate",
- "email": "nathan@tootallnate.net"
+ "email": "nathan@tootallnate.net",
+ "name": "tootallnate"
},
{
- "name": "rvagg",
- "email": "rod@vagg.org"
+ "email": "rod@vagg.org",
+ "name": "rvagg"
},
{
- "name": "cwmma",
- "email": "calvin.metcalf@gmail.com"
+ "email": "calvin.metcalf@gmail.com",
+ "name": "cwmma"
}
],
"name": "readable-stream",
@@ -101,8 +108,8 @@
},
"scripts": {
"browser": "npm run write-zuul && zuul -- test/browser.js",
- "test": "tap test/parallel/*.js",
+ "test": "tap test/parallel/*.js test/ours/*.js",
"write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml"
},
- "version": "2.0.5"
+ "version": "2.0.6"
}
diff --git a/deps/npm/node_modules/request/.eslintrc b/deps/npm/node_modules/request/.eslintrc
new file mode 100644
index 00000000000000..6ebc53601d7ba5
--- /dev/null
+++ b/deps/npm/node_modules/request/.eslintrc
@@ -0,0 +1,45 @@
+{
+ "env": {
+ "node": true
+ },
+ "rules": {
+ // 2-space indentation
+ "indent": [2, 2, {"SwitchCase": 1}],
+ // Disallow semi-colons, unless needed to disambiguate statement
+ "semi": [2, "never"],
+ // Require strings to use single quotes
+ "quotes": [2, "single"],
+ // Require curly braces for all control statements
+ "curly": 2,
+ // Disallow using variables and functions before they've been defined
+ "no-use-before-define": 2,
+ // Allow any case for variable naming
+ "camelcase": 0,
+ // Disallow unused variables, except as function arguments
+ "no-unused-vars": [2, {"args":"none"}],
+ // Allow leading underscores for method names
+ // REASON: we use underscores to denote private methods
+ "no-underscore-dangle": 0,
+ // Allow multi spaces around operators since they are
+ // used for alignment. This is not consistent in the
+ // code.
+ "no-multi-spaces": 0,
+ // Style rule is: most objects use { beforeColon: false, afterColon: true }, unless aligning which uses:
+ //
+ // {
+ // beforeColon : true,
+ // afterColon : true
+ // }
+ //
+ // eslint can't handle this, so the check is disabled.
+ "key-spacing": 0,
+ // Allow shadowing vars in outer scope (needs discussion)
+ "no-shadow": 0,
+ // Use if () { }
+ // ^ space
+ "space-after-keywords": [2, "always"],
+ // Use if () { }
+ // ^ space
+ "space-before-blocks": [2, "always"]
+ }
+}
diff --git a/deps/npm/node_modules/request/node_modules/aws4/.tern-port b/deps/npm/node_modules/request/node_modules/aws4/.tern-port
new file mode 100644
index 00000000000000..7fd1b5223deb90
--- /dev/null
+++ b/deps/npm/node_modules/request/node_modules/aws4/.tern-port
@@ -0,0 +1 @@
+62638
\ No newline at end of file
diff --git a/deps/npm/node_modules/rimraf/package.json b/deps/npm/node_modules/rimraf/package.json
index 6ce45c22749a8b..ccc09c5afd7a47 100644
--- a/deps/npm/node_modules/rimraf/package.json
+++ b/deps/npm/node_modules/rimraf/package.json
@@ -1,28 +1,32 @@
{
"_args": [
[
- "rimraf@~2.5.0",
+ "rimraf@~2.5.1",
"/Users/rebecca/code/npm"
]
],
- "_from": "rimraf@>=2.5.0 <2.6.0",
- "_id": "rimraf@2.5.1",
+ "_from": "rimraf@>=2.5.1 <2.6.0",
+ "_id": "rimraf@2.5.2",
"_inCache": true,
"_installable": true,
"_location": "/rimraf",
- "_nodeVersion": "4.0.0",
+ "_nodeVersion": "5.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-6-west.internal.npmjs.com",
+ "tmp": "tmp/rimraf-2.5.2.tgz_1455346499772_0.9326622514054179"
+ },
"_npmUser": {
"email": "i@izs.me",
"name": "isaacs"
},
- "_npmVersion": "2.14.15",
+ "_npmVersion": "3.7.0",
"_phantomChildren": {},
"_requested": {
"name": "rimraf",
- "raw": "rimraf@~2.5.0",
- "rawSpec": "~2.5.0",
+ "raw": "rimraf@~2.5.1",
+ "rawSpec": "~2.5.1",
"scope": null,
- "spec": ">=2.5.0 <2.6.0",
+ "spec": ">=2.5.1 <2.6.0",
"type": "range"
},
"_requiredBy": [
@@ -32,13 +36,14 @@
"/node-gyp",
"/npm-registry-client",
"/standard/standard-engine/eslint/file-entry-cache/flat-cache/del",
+ "/tacks",
"/tap/nyc",
"/tap/nyc/spawn-wrap"
],
- "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.1.tgz",
- "_shasum": "52e1e946f3f9b9b0d5d8988ba3191aaf2a2dbd43",
+ "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz",
+ "_shasum": "62ba947fa4c0b4363839aefecd4f0fbad6059726",
"_shrinkwrap": null,
- "_spec": "rimraf@~2.5.0",
+ "_spec": "rimraf@~2.5.1",
"_where": "/Users/rebecca/code/npm",
"author": {
"email": "i@izs.me",
@@ -52,7 +57,7 @@
"url": "https://github.com/isaacs/rimraf/issues"
},
"dependencies": {
- "glob": "^6.0.1"
+ "glob": "^7.0.0"
},
"description": "A deep deletion module for node (like `rm -rf`)",
"devDependencies": {
@@ -61,8 +66,8 @@
},
"directories": {},
"dist": {
- "shasum": "52e1e946f3f9b9b0d5d8988ba3191aaf2a2dbd43",
- "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.5.1.tgz"
+ "shasum": "62ba947fa4c0b4363839aefecd4f0fbad6059726",
+ "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz"
},
"files": [
"LICENSE",
@@ -70,14 +75,14 @@
"bin.js",
"rimraf.js"
],
- "gitHead": "979f7a3aa061d2262f9e1b41c6e4afd66c71d1d5",
+ "gitHead": "f414f87021f88d004ac487eebc8d07ce6a152721",
"homepage": "https://github.com/isaacs/rimraf#readme",
"license": "ISC",
"main": "rimraf.js",
"maintainers": [
{
- "name": "isaacs",
- "email": "i@izs.me"
+ "email": "i@izs.me",
+ "name": "isaacs"
}
],
"name": "rimraf",
@@ -90,5 +95,5 @@
"scripts": {
"test": "tap test/*.js"
},
- "version": "2.5.1"
+ "version": "2.5.2"
}
diff --git a/deps/npm/node_modules/sorted-object/LICENSE.txt b/deps/npm/node_modules/sorted-object/LICENSE.txt
index a92a60b824eb52..4a323deb518f3a 100644
--- a/deps/npm/node_modules/sorted-object/LICENSE.txt
+++ b/deps/npm/node_modules/sorted-object/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright © 2014 Domenic Denicola
+Copyright © 2014–2016 Domenic Denicola
This work is free. You can redistribute it and/or modify it under the
terms of the Do What The Fuck You Want To Public License, Version 2,
diff --git a/deps/npm/node_modules/sorted-object/lib/sorted-object.js b/deps/npm/node_modules/sorted-object/lib/sorted-object.js
index 26ebd500a35710..1b3fe81a6be930 100644
--- a/deps/npm/node_modules/sorted-object/lib/sorted-object.js
+++ b/deps/npm/node_modules/sorted-object/lib/sorted-object.js
@@ -1,7 +1,7 @@
"use strict";
module.exports = function (input) {
- var output = Object.create(null);
+ var output = {};
Object.keys(input).sort().forEach(function (key) {
output[key] = input[key];
diff --git a/deps/npm/node_modules/sorted-object/package.json b/deps/npm/node_modules/sorted-object/package.json
index 9b7e338b729653..60a8356bac177b 100644
--- a/deps/npm/node_modules/sorted-object/package.json
+++ b/deps/npm/node_modules/sorted-object/package.json
@@ -1,53 +1,89 @@
{
- "name": "sorted-object",
- "description": "Returns a copy of an object with its keys sorted",
- "keywords": [
- "sort",
- "keys",
- "object"
+ "_args": [
+ [
+ "sorted-object@latest",
+ "/Users/rebecca/code/npm"
+ ]
],
- "version": "1.0.0",
+ "_from": "sorted-object@latest",
+ "_id": "sorted-object@2.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/sorted-object",
+ "_nodeVersion": "5.7.1",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/sorted-object-2.0.0.tgz_1457910693572_0.6718082851730287"
+ },
+ "_npmUser": {
+ "email": "d@domenic.me",
+ "name": "domenic"
+ },
+ "_npmVersion": "3.6.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "sorted-object",
+ "raw": "sorted-object@latest",
+ "rawSpec": "latest",
+ "scope": null,
+ "spec": "latest",
+ "type": "tag"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.0.tgz",
+ "_shasum": "1cfea981609047d8043807a490a9d99b317faf7f",
+ "_shrinkwrap": null,
+ "_spec": "sorted-object@latest",
+ "_where": "/Users/rebecca/code/npm",
"author": {
+ "email": "d@domenic.me",
"name": "Domenic Denicola",
- "email": "domenic@domenicdenicola.com",
- "url": "http://domenic.me/"
- },
- "license": "WTFPL",
- "repository": {
- "type": "git",
- "url": "git://github.com/domenic/sorted-object.git"
+ "url": "https://domenic.me/"
},
"bugs": {
- "url": "http://github.com/domenic/sorted-object/issues"
- },
- "main": "lib/sorted-object.js",
- "scripts": {
- "test": "tape test/tests.js",
- "lint": "jshint lib && jshint test"
+ "url": "https://github.com/domenic/sorted-object/issues"
},
+ "dependencies": {},
+ "description": "Returns a copy of an object with its keys sorted",
"devDependencies": {
- "jshint": "~2.4.3",
- "tape": "~2.4.2"
+ "eslint": "^2.4.0",
+ "tape": "^4.5.1"
},
- "homepage": "https://github.com/domenic/sorted-object",
- "_id": "sorted-object@1.0.0",
+ "directories": {},
"dist": {
- "shasum": "5d1f4f9c1fb2cd48965967304e212eb44cfb6d05",
- "tarball": "http://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz"
- },
- "_from": "sorted-object@>=1.0.0 <1.1.0",
- "_npmVersion": "1.3.25",
- "_npmUser": {
- "name": "domenic",
- "email": "domenic@domenicdenicola.com"
+ "shasum": "1cfea981609047d8043807a490a9d99b317faf7f",
+ "tarball": "http://registry.npmjs.org/sorted-object/-/sorted-object-2.0.0.tgz"
},
+ "files": [
+ "lib/"
+ ],
+ "gitHead": "3cbdde212c8ceef219fbb8fa7805bfc38b94aa90",
+ "homepage": "https://github.com/domenic/sorted-object#readme",
+ "keywords": [
+ "sort",
+ "keys",
+ "object"
+ ],
+ "license": "WTFPL",
+ "main": "lib/sorted-object.js",
"maintainers": [
{
- "name": "domenic",
- "email": "domenic@domenicdenicola.com"
+ "email": "domenic@domenicdenicola.com",
+ "name": "domenic"
}
],
- "directories": {},
- "_shasum": "5d1f4f9c1fb2cd48965967304e212eb44cfb6d05",
- "_resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz"
+ "name": "sorted-object",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/domenic/sorted-object.git"
+ },
+ "scripts": {
+ "lint": "eslint .",
+ "test": "tape test/tests.js"
+ },
+ "version": "2.0.0"
}
diff --git a/deps/npm/node_modules/strip-ansi/package.json b/deps/npm/node_modules/strip-ansi/package.json
index d62f0eaf03e844..9f7df7bf9abfab 100644
--- a/deps/npm/node_modules/strip-ansi/package.json
+++ b/deps/npm/node_modules/strip-ansi/package.json
@@ -1,38 +1,81 @@
{
- "name": "strip-ansi",
- "version": "3.0.0",
- "description": "Strip ANSI escape codes",
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/strip-ansi.git"
+ "_args": [
+ [
+ "strip-ansi@*",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "strip-ansi@*",
+ "_id": "strip-ansi@3.0.1",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/strip-ansi",
+ "_nodeVersion": "0.12.7",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/strip-ansi-3.0.1.tgz_1456057278183_0.28958667791448534"
},
+ "_npmUser": {
+ "email": "jappelman@xebia.com",
+ "name": "jbnicolai"
+ },
+ "_npmVersion": "2.11.3",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "strip-ansi",
+ "raw": "strip-ansi@*",
+ "rawSpec": "*",
+ "scope": null,
+ "spec": "*",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/",
+ "/columnify",
+ "/request/har-validator/chalk",
+ "/standard/standard-engine/eslint/chalk",
+ "/standard/standard-engine/eslint/inquirer",
+ "/standard/standard-engine/eslint/inquirer/string-width",
+ "/standard/standard-format/esformatter-jsx/babel-core/chalk",
+ "/tap/coveralls/request/har-validator/chalk",
+ "/tap/nyc/yargs/cliui",
+ "/tap/nyc/yargs/string-width",
+ "/tap/tap-mocha-reporter/unicode-length/chalk"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "_shrinkwrap": null,
+ "_spec": "strip-ansi@*",
+ "_where": "/Users/rebecca/code/npm",
"author": {
- "name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
+ "name": "Sindre Sorhus",
"url": "sindresorhus.com"
},
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- }
- ],
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "tarball": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ },
"engines": {
"node": ">=0.10.0"
},
- "scripts": {
- "test": "node test.js"
- },
"files": [
"index.js"
],
+ "gitHead": "8270705c704956da865623e564eba4875c3ea17f",
+ "homepage": "https://github.com/chalk/strip-ansi",
"keywords": [
"strip",
"trim",
@@ -57,20 +100,26 @@
"command-line",
"text"
],
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "devDependencies": {
- "ava": "0.0.4"
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "sindresorhus@gmail.com",
+ "name": "sindresorhus"
+ },
+ {
+ "email": "jappelman@xebia.com",
+ "name": "jbnicolai"
+ }
+ ],
+ "name": "strip-ansi",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
},
- "readme": "# strip-ansi [![Build Status](https://travis-ci.org/sindresorhus/strip-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-ansi)\n\n> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)\n\n\n## Install\n\n```\n$ npm install --save strip-ansi\n```\n\n\n## Usage\n\n```js\nvar stripAnsi = require('strip-ansi');\n\nstripAnsi('\\u001b[4mcake\\u001b[0m');\n//=> 'cake'\n```\n\n\n## Related\n\n- [strip-ansi-cli](https://github.com/sindresorhus/strip-ansi-cli) - CLI for this module\n- [has-ansi](https://github.com/sindresorhus/has-ansi) - Check if a string has ANSI escape codes\n- [ansi-regex](https://github.com/sindresorhus/ansi-regex) - Regular expression for matching ANSI escape codes\n- [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
- "readmeFilename": "readme.md",
- "bugs": {
- "url": "https://github.com/sindresorhus/strip-ansi/issues"
+ "scripts": {
+ "test": "xo && ava"
},
- "homepage": "https://github.com/sindresorhus/strip-ansi#readme",
- "_id": "strip-ansi@3.0.0",
- "_shasum": "7510b665567ca914ccb5d7e072763ac968be3724",
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz",
- "_from": "strip-ansi@3.0.0"
+ "version": "3.0.1"
}
diff --git a/deps/npm/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/strip-ansi/readme.md
index 76091512df5e46..cb7d9ff7ee403d 100644
--- a/deps/npm/node_modules/strip-ansi/readme.md
+++ b/deps/npm/node_modules/strip-ansi/readme.md
@@ -1,4 +1,4 @@
-# strip-ansi [![Build Status](https://travis-ci.org/sindresorhus/strip-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-ansi)
+# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)
> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
@@ -22,10 +22,10 @@ stripAnsi('\u001b[4mcake\u001b[0m');
## Related
-- [strip-ansi-cli](https://github.com/sindresorhus/strip-ansi-cli) - CLI for this module
-- [has-ansi](https://github.com/sindresorhus/has-ansi) - Check if a string has ANSI escape codes
-- [ansi-regex](https://github.com/sindresorhus/ansi-regex) - Regular expression for matching ANSI escape codes
-- [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right
+- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
+- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
+- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
+- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
## License
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 2b86276edb4a54..e7d5f3d78bf6da 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "3.7.3",
+ "version": "3.8.3",
"name": "npm",
"description": "a package manager for JavaScript",
"keywords": [
@@ -46,7 +46,7 @@
"fs-write-stream-atomic": "~1.0.8",
"fstream": "~1.0.8",
"fstream-npm": "~1.0.7",
- "glob": "~6.0.4",
+ "glob": "~7.0.3",
"graceful-fs": "~4.1.3",
"has-unicode": "~2.0.0",
"hosted-git-info": "~2.1.4",
@@ -56,24 +56,24 @@
"ini": "~1.3.4",
"init-package-json": "~1.9.3",
"lockfile": "~1.0.1",
- "lodash.clonedeep": "~4.1.0",
- "lodash.isarguments": "~3.0.6",
+ "lodash._baseuniq": "~4.5.0",
+ "lodash.clonedeep": "~4.3.1",
"lodash.isarray": "~4.0.0",
- "lodash.keys": "~4.0.2",
- "lodash.union": "~4.1.0",
- "lodash.uniq": "~4.1.0",
- "lodash.without": "~4.0.2",
+ "lodash.keys": "~4.0.5",
+ "lodash.union": "~4.2.0",
+ "lodash.uniq": "~4.2.0",
+ "lodash.without": "~4.1.1",
"mkdirp": "~0.5.1",
- "node-gyp": "~3.2.1",
+ "node-gyp": "~3.3.1",
"nopt": "~3.0.6",
"normalize-git-url": "~3.0.1",
"normalize-package-data": "~2.3.5",
"npm-cache-filename": "~1.0.2",
"npm-install-checks": "~3.0.0",
"npm-package-arg": "~4.1.0",
- "npm-registry-client": "~7.0.9",
+ "npm-registry-client": "~7.1.0",
"npm-user-validate": "~0.1.2",
- "npmlog": "~2.0.2",
+ "npmlog": "~2.0.3",
"once": "~1.3.3",
"opener": "~1.4.1",
"osenv": "~0.1.3",
@@ -83,15 +83,16 @@
"read-installed": "~4.0.3",
"read-package-json": "~2.0.3",
"read-package-tree": "~5.1.2",
- "readable-stream": "~2.0.5",
+ "readable-stream": "~2.0.6",
"realize-package-specifier": "~3.0.1",
"request": "~2.69.0",
"retry": "~0.9.0",
- "rimraf": "~2.5.1",
+ "rimraf": "~2.5.2",
"semver": "~5.1.0",
"sha": "~2.0.1",
"slide": "~1.1.6",
- "sorted-object": "~1.0.0",
+ "sorted-object": "~2.0.0",
+ "strip-ansi": "~3.0.1",
"tar": "~2.2.1",
"text-table": "~0.2.0",
"uid-number": "0.0.6",
@@ -140,7 +141,6 @@
"lodash._createcache",
"lodash._getnative",
"lodash.clonedeep",
- "lodash.isarguments",
"lodash.isarray",
"lodash.keys",
"lodash.restparam",
@@ -196,10 +196,11 @@
"marked-man": "~0.1.5",
"npm-registry-couchapp": "~2.6.12",
"npm-registry-mock": "~1.0.1",
- "require-inject": "~1.3.0",
+ "require-inject": "~1.3.1",
"sprintf-js": "~1.0.3",
"standard": "~5.4.1",
- "tap": "~5.4.2"
+ "tacks": "~1.0.9",
+ "tap": "~5.7.0"
},
"scripts": {
"dumpconf": "env | grep npm | sort | uniq",
@@ -207,8 +208,6 @@
"preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m \"update AUTHORS\" || true",
"tap": "tap --timeout 240",
"test": "standard && npm run test-tap",
- "test-all": "standard && npm run test-legacy && npm run test-tap",
- "test-legacy": "node ./test/run.js",
"test-tap": "npm run tap -- \"test/tap/*.js\"",
"test-node": "\"$NODE\" ./test/run.js && \"$NODE\" \"node_modules/.bin/tap\" --timeout 240 \"test/tap/*.js\""
},
diff --git a/deps/npm/scripts/changelog.js b/deps/npm/scripts/changelog.js
index ae3ba5a6a874ff..35685ffc6031b3 100644
--- a/deps/npm/scripts/changelog.js
+++ b/deps/npm/scripts/changelog.js
@@ -53,7 +53,9 @@ function print_commit (c) {
.replace(/\b#(\d+)\b/g, '[#$1](https://github.com/npm/npm/issues/$1)')
console.log(msg)
if (c.credit) {
- console.log(` ([@${c.credit}](https://github.com/${c.credit}))`)
+ c.credit.forEach(function (credit) {
+ console.log(` ([@${credit}](https://github.com/${credit}))`)
+ })
} else {
console.log(` ([@${c.author}](https://github.com/${c.author}))`)
}
@@ -80,7 +82,8 @@ function main () {
} else if (m = line.match(/^PR-URL: (.*)/)) {
commit.prurl = m[1]
} else if (m = line.match(/^Credit: @(.*)/)) {
- commit.credit = m[1]
+ if (!commit.credit) commit.credit = []
+ commit.credit.push(m[1])
} else if (m = line.match(/^Fixes: #(.*)/)) {
commit.fixes = m[1]
} else if (m = line.match(/^Reviewed-By: @(.*)/)) {
diff --git a/deps/npm/test/disabled/bundlerecurs/package.json b/deps/npm/test/disabled/bundlerecurs/package.json
deleted file mode 100644
index d870411706c048..00000000000000
--- a/deps/npm/test/disabled/bundlerecurs/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "name" : "bundletest"
-, "version" : "1.0.0"
-, "dependencies" : { "bundletest" : "*" }
-}
diff --git a/deps/npm/test/disabled/change-bin-1/bin/foo b/deps/npm/test/disabled/change-bin-1/bin/foo
deleted file mode 100644
index fb16c2b23cc059..00000000000000
--- a/deps/npm/test/disabled/change-bin-1/bin/foo
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-echo "foo"
diff --git a/deps/npm/test/disabled/change-bin-1/package.json b/deps/npm/test/disabled/change-bin-1/package.json
deleted file mode 100644
index 0d82f3afa3b59a..00000000000000
--- a/deps/npm/test/disabled/change-bin-1/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{"name":"npm-test-change-bin"
-,"version":"1.2.3"
-,"directories":{"bin":"./bin"}}
diff --git a/deps/npm/test/disabled/change-bin-2/bin/bar b/deps/npm/test/disabled/change-bin-2/bin/bar
deleted file mode 100644
index fb16c2b23cc059..00000000000000
--- a/deps/npm/test/disabled/change-bin-2/bin/bar
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-echo "foo"
diff --git a/deps/npm/test/disabled/change-bin-2/package.json b/deps/npm/test/disabled/change-bin-2/package.json
deleted file mode 100644
index 3fdc538fa2698f..00000000000000
--- a/deps/npm/test/disabled/change-bin-2/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{"name":"npm-test-change-bin"
-,"version":"2.3.4"
-,"directories":{"bin":"./bin"}}
diff --git a/deps/npm/test/disabled/failer/package.json b/deps/npm/test/disabled/failer/package.json
deleted file mode 100644
index ff596d158ba7aa..00000000000000
--- a/deps/npm/test/disabled/failer/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "name" : "npm-test-failer"
-, "version" : "9999.999.99"
-, "dependencies" : { "base64" : "*" }
-, "scripts" : { "install" : "exit 1", "test": "echo 'This is where the test output would go'; echo 'more test output'; echo 'MOAR MOAR MoAR'; exit 1" }
-}
diff --git a/deps/npm/test/disabled/fast/package.json b/deps/npm/test/disabled/fast/package.json
deleted file mode 100644
index fbf26e9b14d956..00000000000000
--- a/deps/npm/test/disabled/fast/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "name" : "fast"
-, "description" : "does nothing, and not very fast"
-, "version" : "1.2.3"
-, "scripts" :
-{ "preinstall" : "sleep 1 && echo fast 1 $(date +%s) && echo fast 2"
-, "install" : "sleep 1 && echo fast 2 $(date +%s) && echo fast 3"
-, "postinstall" : "sleep 1 && echo fast 3 $(date +%s) && echo fast 4"
-}
-}
diff --git a/deps/npm/test/disabled/package-bar/package.json b/deps/npm/test/disabled/package-bar/package.json
deleted file mode 100644
index f9a278010f6dfb..00000000000000
--- a/deps/npm/test/disabled/package-bar/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "package-bar",
- "version": "0.5.0",
- "dependencies": {
- "package-foo": "*"
- }
-}
diff --git a/deps/npm/test/disabled/package-config/package.json b/deps/npm/test/disabled/package-config/package.json
deleted file mode 100644
index 7ec97d3805375f..00000000000000
--- a/deps/npm/test/disabled/package-config/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{"name":"package-config"
-,"version":"1.2.3"
-,"config":{"foo":"bar"}
-,"scripts":{"test":"./test.js"}}
diff --git a/deps/npm/test/disabled/package-config/test.js b/deps/npm/test/disabled/package-config/test.js
deleted file mode 100755
index 386891d312167e..00000000000000
--- a/deps/npm/test/disabled/package-config/test.js
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env node
-
-var env = process.env
-var orig = require(process.env.npm_package_name + '/package.json').config
-var assert = require('assert')
-
-console.log(
- 'Before running this test, do:\n' +
- ' npm config set package-config:foo boo\n' +
- "or else it's about to fail."
-)
-assert.equal(env.npm_package_config_foo, 'boo', 'foo != boo')
-assert.equal(orig.foo, 'bar', 'original foo != bar')
-assert.equal(env['npm_config_package-config:foo'], 'boo',
- 'package-config:foo != boo')
-console.log({
- foo: env.npm_package_config_foo,
- orig_foo: orig.foo,
- 'package-config:foo': env['npm_config_package-config:foo']
-})
diff --git a/deps/npm/test/disabled/package-foo/package.json b/deps/npm/test/disabled/package-foo/package.json
deleted file mode 100644
index 31e791f646f15a..00000000000000
--- a/deps/npm/test/disabled/package-foo/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "package-foo",
- "version": "0.5.0"
-}
diff --git a/deps/npm/test/disabled/slow/package.json b/deps/npm/test/disabled/slow/package.json
deleted file mode 100644
index ba6be42fa9502b..00000000000000
--- a/deps/npm/test/disabled/slow/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "name" : "slow"
-, "description" : "just like fast, but even slower"
-, "version" : "1.2.3"
-, "scripts" :
- { "preinstall" : "sleep 1 && echo slow 1 $(date +%s) && sleep 1 && echo slow 2 $(date +%s)"
- , "install" : "sleep 1 && echo slow 2 $(date +%s) && sleep 1 && echo slow 3 $(date +%s)"
- , "postinstall" : "sleep 1 && echo slow 3 $(date +%s) && sleep 1 && echo slow 4 $(date +%s)"
- }
-}
diff --git a/deps/npm/test/fixtures/config/userconfig-with-gc b/deps/npm/test/fixtures/config/userconfig-with-gc
index 62ad80be113e5e..7268fcb3c611f9 100644
--- a/deps/npm/test/fixtures/config/userconfig-with-gc
+++ b/deps/npm/test/fixtures/config/userconfig-with-gc
@@ -1,4 +1,4 @@
-globalconfig=/Users/zkat/Documents/code/npm/test/fixtures/config/globalconfig
+globalconfig=/Users/ogd/Documents/projects/npm/npm/test/fixtures/config/globalconfig
email=i@izs.me
env-thing=asdf
init.author.name=Isaac Z. Schlueter
diff --git a/deps/npm/test/packages/npm-test-array-bin/README b/deps/npm/test/packages/npm-test-array-bin/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-array-bin/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-array-bin/bin/array-bin b/deps/npm/test/packages/npm-test-array-bin/bin/array-bin
deleted file mode 100644
index 9558516aad0c79..00000000000000
--- a/deps/npm/test/packages/npm-test-array-bin/bin/array-bin
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env node
-console.log('ok')
diff --git a/deps/npm/test/packages/npm-test-array-bin/package.json b/deps/npm/test/packages/npm-test-array-bin/package.json
deleted file mode 100644
index 45e22efc41c9e0..00000000000000
--- a/deps/npm/test/packages/npm-test-array-bin/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "name":"npm-test-array-bin"
-, "version":"1.2.5"
-, "bin": [ "bin/array-bin" ]
-, "scripts": { "test": "node test.js" } }
diff --git a/deps/npm/test/packages/npm-test-array-bin/test.js b/deps/npm/test/packages/npm-test-array-bin/test.js
deleted file mode 100644
index f7922dbc7d6e5f..00000000000000
--- a/deps/npm/test/packages/npm-test-array-bin/test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('child_process').exec('array-bin', { env: process.env },
- function (err) {
- if (err && err.code) throw new Error('exited badly with code = ' + err.code)
- }
-)
diff --git a/deps/npm/test/packages/npm-test-blerg/README b/deps/npm/test/packages/npm-test-blerg/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-blerg/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-blerg/package.json b/deps/npm/test/packages/npm-test-blerg/package.json
deleted file mode 100644
index 04e3338918716f..00000000000000
--- a/deps/npm/test/packages/npm-test-blerg/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "name":"npm-test-blerg"
-, "version" : "0.0.2"
-, "scripts" : { "test" : "node test.js" }
-, "publishConfig": {"tag": "foo"}
-}
diff --git a/deps/npm/test/packages/npm-test-blerg/test.js b/deps/npm/test/packages/npm-test-blerg/test.js
deleted file mode 100644
index cc8d2da546e5b5..00000000000000
--- a/deps/npm/test/packages/npm-test-blerg/test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var assert = require('assert')
-assert.equal(undefined, process.env.npm_config__password, 'password exposed!')
-assert.equal(undefined, process.env.npm_config__auth, 'auth exposed!')
-assert.equal(undefined, process.env.npm_config__authCrypt, 'authCrypt exposed!')
diff --git a/deps/npm/test/packages/npm-test-blerg3/README b/deps/npm/test/packages/npm-test-blerg3/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-blerg3/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-blerg3/package.json b/deps/npm/test/packages/npm-test-blerg3/package.json
deleted file mode 100644
index 87b5bbb96e54ec..00000000000000
--- a/deps/npm/test/packages/npm-test-blerg3/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "name":"npm-test-blerg3"
-, "homepage": "https://github.com/npm/npm/issues/2658"
-, "version" : "0.0.0"
-, "scripts" : { "test" : "node test.js" }
-}
diff --git a/deps/npm/test/packages/npm-test-blerg3/test.js b/deps/npm/test/packages/npm-test-blerg3/test.js
deleted file mode 100644
index cc8d2da546e5b5..00000000000000
--- a/deps/npm/test/packages/npm-test-blerg3/test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var assert = require('assert')
-assert.equal(undefined, process.env.npm_config__password, 'password exposed!')
-assert.equal(undefined, process.env.npm_config__auth, 'auth exposed!')
-assert.equal(undefined, process.env.npm_config__authCrypt, 'authCrypt exposed!')
diff --git a/deps/npm/test/packages/npm-test-bundled-git/README b/deps/npm/test/packages/npm-test-bundled-git/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-bundled-git/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-bundled-git/minimatch-expected.json b/deps/npm/test/packages/npm-test-bundled-git/minimatch-expected.json
deleted file mode 100644
index 3cb08daaa4a962..00000000000000
--- a/deps/npm/test/packages/npm-test-bundled-git/minimatch-expected.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "minimatch",
- "description": "a glob matcher in javascript",
- "version": "0.2.1",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "main": "minimatch.js",
- "scripts": {
- "test": "tap test"
- },
- "engines": {
- "node": "*"
- },
- "dependencies": {
- "lru-cache": "~1.0.5"
- },
- "devDependencies": {
- "tap": "~0.1.3"
- },
- "licenses" : [
- {
- "type" : "MIT",
- "url" : "http://github.com/isaacs/minimatch/raw/master/LICENSE"
- }
- ]
-}
diff --git a/deps/npm/test/packages/npm-test-bundled-git/package.json b/deps/npm/test/packages/npm-test-bundled-git/package.json
deleted file mode 100644
index 69e0eb7a8b2d0f..00000000000000
--- a/deps/npm/test/packages/npm-test-bundled-git/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{"name":"npm-test-bundled-git"
-,"scripts":{"test":"node test.js"}
-,"version":"1.2.5"
-,"dependencies":{"glob":"git://github.com/isaacs/node-glob.git#npm-test"}
-,"bundledDependencies":["glob"]}
diff --git a/deps/npm/test/packages/npm-test-bundled-git/test.js b/deps/npm/test/packages/npm-test-bundled-git/test.js
deleted file mode 100644
index 1901ac448d8c06..00000000000000
--- a/deps/npm/test/packages/npm-test-bundled-git/test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var a = require('./node_modules/glob/node_modules/minimatch/package.json')
-var e = require('./minimatch-expected.json')
-var assert = require('assert')
-Object.keys(e).forEach(function (key) {
- assert.deepEqual(a[key], e[key], "didn't get expected minimatch/package.json")
-})
diff --git a/deps/npm/test/packages/npm-test-dir-bin/README b/deps/npm/test/packages/npm-test-dir-bin/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-dir-bin/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-dir-bin/bin/dir-bin b/deps/npm/test/packages/npm-test-dir-bin/bin/dir-bin
deleted file mode 100644
index 9558516aad0c79..00000000000000
--- a/deps/npm/test/packages/npm-test-dir-bin/bin/dir-bin
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env node
-console.log('ok')
diff --git a/deps/npm/test/packages/npm-test-dir-bin/package.json b/deps/npm/test/packages/npm-test-dir-bin/package.json
deleted file mode 100644
index 1ea26323fdbd3f..00000000000000
--- a/deps/npm/test/packages/npm-test-dir-bin/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "name":"npm-test-dir-bin"
-, "version":"1.2.5"
-, "directories": { "bin": "./bin" }
-, "scripts": { "test": "node test.js" } }
diff --git a/deps/npm/test/packages/npm-test-dir-bin/test.js b/deps/npm/test/packages/npm-test-dir-bin/test.js
deleted file mode 100644
index 1a397061f515b6..00000000000000
--- a/deps/npm/test/packages/npm-test-dir-bin/test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('child_process').exec('dir-bin', { stdio: 'pipe', env: process.env },
- function (err) {
- if (err && err.code) throw new Error('exited badly with code = ' + err.code)
- }
-)
diff --git a/deps/npm/test/packages/npm-test-env-reader/README b/deps/npm/test/packages/npm-test-env-reader/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-env-reader/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-env-reader/package.json b/deps/npm/test/packages/npm-test-env-reader/package.json
deleted file mode 100644
index 99d7fc93070284..00000000000000
--- a/deps/npm/test/packages/npm-test-env-reader/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "name":"npm-test-env-reader"
-, "version" : "1.2.3"
-, "scripts" :
- { "install" : "node test.js"
- , "preinstall" : "node test.js"
- , "preuninstall" : "node test.js"
- , "postuninstall" : "node test.js"
- , "test" : "node test.js"
- , "stop" : "node test.js"
- , "start" : "node test.js"
- , "restart" : "node test.js"
- , "foo" : "node test.js"
- }
-}
diff --git a/deps/npm/test/packages/npm-test-env-reader/test.js b/deps/npm/test/packages/npm-test-env-reader/test.js
deleted file mode 100755
index d6cb7893a70f7a..00000000000000
--- a/deps/npm/test/packages/npm-test-env-reader/test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var envs = []
-for (var e in process.env) {
- if (e.match(/npm|^path$/i)) envs.push(e + '=' + process.env[e])
-}
-envs.sort(function (a, b) {
- return a === b ? 0 : a > b ? -1 : 1
-}).forEach(function (e) {
- console.log(e)
-})
diff --git a/deps/npm/test/packages/npm-test-files/.npmignore b/deps/npm/test/packages/npm-test-files/.npmignore
deleted file mode 100644
index c7d927d0a2fd51..00000000000000
--- a/deps/npm/test/packages/npm-test-files/.npmignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/sub/ignore1
-./sub/include2
-ignore3
-./include4
-ignoredir1
-ignoredir2/
-*.tgz
diff --git a/deps/npm/test/packages/npm-test-files/include4 b/deps/npm/test/packages/npm-test-files/include4
deleted file mode 100644
index e69de29bb2d1d6..00000000000000
diff --git a/deps/npm/test/packages/npm-test-files/package.json b/deps/npm/test/packages/npm-test-files/package.json
deleted file mode 100644
index 2afa12dc560fc0..00000000000000
--- a/deps/npm/test/packages/npm-test-files/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "name":"npm-test-files"
-, "version":"1.2.5"
-, "files":
- [ "include4"
- , "sub/include"
- , "sub/include2"
- , "sub/include4"
- , "test.sh"
- , ".npmignore" ]
-, "scripts":{"test":"bash test.sh"}}
diff --git a/deps/npm/test/packages/npm-test-files/sub/include b/deps/npm/test/packages/npm-test-files/sub/include
deleted file mode 100644
index e69de29bb2d1d6..00000000000000
diff --git a/deps/npm/test/packages/npm-test-files/sub/include2 b/deps/npm/test/packages/npm-test-files/sub/include2
deleted file mode 100644
index e69de29bb2d1d6..00000000000000
diff --git a/deps/npm/test/packages/npm-test-files/sub/include4 b/deps/npm/test/packages/npm-test-files/sub/include4
deleted file mode 100644
index d16969cd189673..00000000000000
--- a/deps/npm/test/packages/npm-test-files/sub/include4
+++ /dev/null
@@ -1 +0,0 @@
-This file should be in the package.
diff --git a/deps/npm/test/packages/npm-test-files/test.sh b/deps/npm/test/packages/npm-test-files/test.sh
deleted file mode 100644
index cdf47f211a86b8..00000000000000
--- a/deps/npm/test/packages/npm-test-files/test.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-x=`find . | grep ignore | grep -v npmignore`
-if [ "$x" != "" ]; then
- echo "ignored files included: $x"
- exit 1
-fi
-
-x=`find . | grep -v ignore | sort`
-y=".
-./include4
-./package.json
-./sub
-./sub/include
-./sub/include2
-./sub/include4
-./test.sh"
-if [ "$x" != "$y" ]; then
- echo "missing included files"
- echo "got:"
- echo "==="
- echo "$x"
- echo "==="
- echo "wanted:"
- echo "==="
- echo "$y"
- echo "==="
- exit 1
-fi
diff --git a/deps/npm/test/packages/npm-test-ignore-nested-nm/README b/deps/npm/test/packages/npm-test-ignore-nested-nm/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore-nested-nm/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-ignore-nested-nm/lib/node_modules/foo b/deps/npm/test/packages/npm-test-ignore-nested-nm/lib/node_modules/foo
deleted file mode 100644
index 2c9d06aff6f62c..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore-nested-nm/lib/node_modules/foo
+++ /dev/null
@@ -1 +0,0 @@
-I WILL NOT BE IGNORED!
diff --git a/deps/npm/test/packages/npm-test-ignore-nested-nm/package.json b/deps/npm/test/packages/npm-test-ignore-nested-nm/package.json
deleted file mode 100644
index 177dbfb01d61b7..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore-nested-nm/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{"name":"npm-test-ignore-nested-nm"
-,"version":"1.2.5"
-,"scripts":{"test":"node test.js"}}
diff --git a/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js b/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js
deleted file mode 100644
index 18a0f0b56b9ba5..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var fs = require('fs')
-fs.statSync(__dirname + '/lib/node_modules/foo')
diff --git a/deps/npm/test/packages/npm-test-ignore/.npmignore b/deps/npm/test/packages/npm-test-ignore/.npmignore
deleted file mode 100644
index c7d927d0a2fd51..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore/.npmignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/sub/ignore1
-./sub/include2
-ignore3
-./include4
-ignoredir1
-ignoredir2/
-*.tgz
diff --git a/deps/npm/test/packages/npm-test-ignore/README b/deps/npm/test/packages/npm-test-ignore/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-ignore/include4 b/deps/npm/test/packages/npm-test-ignore/include4
deleted file mode 100644
index e69de29bb2d1d6..00000000000000
diff --git a/deps/npm/test/packages/npm-test-ignore/package.json b/deps/npm/test/packages/npm-test-ignore/package.json
deleted file mode 100644
index 6d492de78063ae..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{ "name":"npm-test-ignore"
-, "version":"1.2.5"
-, "scripts":{"test":"bash test.sh"}}
diff --git a/deps/npm/test/packages/npm-test-ignore/sub/include b/deps/npm/test/packages/npm-test-ignore/sub/include
deleted file mode 100644
index e69de29bb2d1d6..00000000000000
diff --git a/deps/npm/test/packages/npm-test-ignore/sub/include2 b/deps/npm/test/packages/npm-test-ignore/sub/include2
deleted file mode 100644
index e69de29bb2d1d6..00000000000000
diff --git a/deps/npm/test/packages/npm-test-ignore/sub/include4 b/deps/npm/test/packages/npm-test-ignore/sub/include4
deleted file mode 100644
index d16969cd189673..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore/sub/include4
+++ /dev/null
@@ -1 +0,0 @@
-This file should be in the package.
diff --git a/deps/npm/test/packages/npm-test-ignore/test.sh b/deps/npm/test/packages/npm-test-ignore/test.sh
deleted file mode 100644
index 05fbaf169973bf..00000000000000
--- a/deps/npm/test/packages/npm-test-ignore/test.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-x=`find . | grep ignore | grep -v npmignore`
-if [ "$x" != "" ]; then
- echo "ignored files included: $x"
- exit 1
-fi
-
-x=`find . | grep -v ignore | sort`
-y=".
-./include4
-./package.json
-./README
-./sub
-./sub/include
-./sub/include2
-./sub/include4
-./test.sh"
-y="`echo "$y" | sort`"
-if [ "$x" != "$y" ]; then
- echo "missing included files"
- echo "got:"
- echo "==="
- echo "$x"
- echo "==="
- echo "wanted:"
- echo "==="
- echo "$y"
- echo "==="
- exit 1
-fi
diff --git a/deps/npm/test/packages/npm-test-missing-bindir/README b/deps/npm/test/packages/npm-test-missing-bindir/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-missing-bindir/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-missing-bindir/package.json b/deps/npm/test/packages/npm-test-missing-bindir/package.json
deleted file mode 100644
index 49e26742df58f0..00000000000000
--- a/deps/npm/test/packages/npm-test-missing-bindir/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "name":"npm-test-missing-bindir"
-, "version" : "0.0.0"
-, "scripts" : { "test" : "node test.js" }
-, "directories": { "bin" : "./not-found" } }
diff --git a/deps/npm/test/packages/npm-test-missing-bindir/test.js b/deps/npm/test/packages/npm-test-missing-bindir/test.js
deleted file mode 100644
index cc8d2da546e5b5..00000000000000
--- a/deps/npm/test/packages/npm-test-missing-bindir/test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var assert = require('assert')
-assert.equal(undefined, process.env.npm_config__password, 'password exposed!')
-assert.equal(undefined, process.env.npm_config__auth, 'auth exposed!')
-assert.equal(undefined, process.env.npm_config__authCrypt, 'authCrypt exposed!')
diff --git a/deps/npm/test/packages/npm-test-optional-deps/README b/deps/npm/test/packages/npm-test-optional-deps/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-optional-deps/package.json b/deps/npm/test/packages/npm-test-optional-deps/package.json
deleted file mode 100644
index 67545ca9da1391..00000000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "name": "npm-test-optional-deps"
-, "version": "1.2.5"
-, "scripts": { "test": "node test.js" }
-, "optionalDependencies":
- { "npm-test-foobarzaaakakaka": "http://example.com/"
- , "dnode": "10.999.14234"
- , "sax": "0.3.5"
- , "glob": "some invalid version 99 #! $$ x y z"
- , "npm-test-failer":"*"
- }
-}
diff --git a/deps/npm/test/packages/npm-test-optional-deps/test.js b/deps/npm/test/packages/npm-test-optional-deps/test.js
deleted file mode 100644
index b9dc2c79bbd4f5..00000000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var fs = require('fs')
-var assert = require('assert')
-var path = require('path')
-
-// sax should be the only dep that ends up installed
-
-var dir = path.resolve(__dirname, 'node_modules')
-assert.deepEqual(fs.readdirSync(dir), ['sax'])
-assert.equal(require('sax/package.json').version, '0.3.5')
diff --git a/deps/npm/test/packages/npm-test-platform-all/README b/deps/npm/test/packages/npm-test-platform-all/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-platform-all/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-platform-all/package.json b/deps/npm/test/packages/npm-test-platform-all/package.json
deleted file mode 100644
index 07624363e6e996..00000000000000
--- a/deps/npm/test/packages/npm-test-platform-all/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{"name":"npm-test-platform-all"
-,"version":"9.9.9-9"
-,"homepage":"http://www.zombo.com/"
-,"os":["darwin","linux","win32","solaris","haiku","sunos","freebsd","openbsd","netbsd"]
-,"cpu":["arm","mips","ia32","x64","sparc"]}
diff --git a/deps/npm/test/packages/npm-test-platform/README b/deps/npm/test/packages/npm-test-platform/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-platform/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-platform/package.json b/deps/npm/test/packages/npm-test-platform/package.json
deleted file mode 100644
index d6c3e09e1d9091..00000000000000
--- a/deps/npm/test/packages/npm-test-platform/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{"name":"npm-test-platform"
-,"version":"9.9.9-9"
-,"homepage":"http://www.youtube.com/watch?v=dQw4w9WgXcQ"
-,"os":["!this_is_not_a_real_os", "!neither_is_this"]
-,"cpu":["!this_is_not_a_real_cpu","!this_isnt_either"]}
diff --git a/deps/npm/test/packages/npm-test-private/README b/deps/npm/test/packages/npm-test-private/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-private/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-private/package.json b/deps/npm/test/packages/npm-test-private/package.json
deleted file mode 100644
index 3d95a37af14b45..00000000000000
--- a/deps/npm/test/packages/npm-test-private/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{"name":"npm-test-private"
-,"version":"9.9.9-9"
-,"homepage":"http://www.youtube.com/watch?v=1MLry6Cn_D4"
-,"private":"true"}
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/README b/deps/npm/test/packages/npm-test-shrinkwrap/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-shrinkwrap/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json b/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json
deleted file mode 100644
index 4f8b22d0554345..00000000000000
--- a/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "npm-test-shrinkwrap",
- "version": "0.0.0",
- "dependencies": {
- "glob": {
- "version": "3.1.5",
- "from": "git://github.com/isaacs/node-glob.git#npm-test",
- "resolved": "git://github.com/isaacs/node-glob.git#67bda227fd7a559cca5620307c7d30a6732a792f",
- "dependencies": {
- "graceful-fs": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.5.tgz",
- "dependencies": {
- "fast-list": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/fast-list/-/fast-list-1.0.2.tgz"
- }
- }
- },
- "inherits": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz"
- },
- "minimatch": {
- "version": "0.2.1",
- "dependencies": {
- "lru-cache": {
- "version": "1.0.5"
- }
- }
- }
- }
- },
- "minimatch": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.1.5.tgz",
- "dependencies": {
- "lru-cache": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.5.tgz"
- }
- }
- },
- "npm-test-single-file": {
- "version": "1.2.3",
- "resolved": "https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js"
- }
- }
-}
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/package.json b/deps/npm/test/packages/npm-test-shrinkwrap/package.json
deleted file mode 100644
index a5d446e2d11681..00000000000000
--- a/deps/npm/test/packages/npm-test-shrinkwrap/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "name": "npm-test-shrinkwrap",
- "version": "0.0.0",
- "dependencies": {
- "npm-test-single-file": "https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js",
- "glob": "git://github.com/isaacs/node-glob.git#npm-test",
- "minimatch": "~0.1.0"
- },
- "scripts": {
- "test": "node test.js"
- }
-}
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/test.js b/deps/npm/test/packages/npm-test-shrinkwrap/test.js
deleted file mode 100644
index e40ae9b65cdfc7..00000000000000
--- a/deps/npm/test/packages/npm-test-shrinkwrap/test.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var assert = require('assert')
-
-process.env.npm_config_prefix = process.cwd()
-delete process.env.npm_config_global
-delete process.env.npm_config_depth
-
-var npm = process.env.npm_execpath
-
-require('child_process').execFile(process.execPath, [npm, 'ls', '--json'],
- { stdio: 'pipe', env: process.env, cwd: process.cwd() },
- function (err, stdout, stderr) {
- if (err) throw err
-
- var actual = JSON.parse(stdout)
- var expected = require('./npm-shrinkwrap.json')
- rmFrom(actual)
- actual = actual.dependencies
- rmFrom(expected)
- expected = expected.dependencies
- console.error(JSON.stringify(actual, null, 2))
- console.error(JSON.stringify(expected, null, 2))
-
- assert.deepEqual(actual, expected)
- }
-)
-
-function rmFrom (obj) {
- for (var i in obj) {
- if (i === 'from') {
- delete obj[i]
- } else if (i === 'dependencies') {
- for (var j in obj[i]) {
- rmFrom(obj[i][j])
- }
- }
- }
-}
diff --git a/deps/npm/test/packages/npm-test-test-package/README b/deps/npm/test/packages/npm-test-test-package/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-test-package/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-test-package/package.json b/deps/npm/test/packages/npm-test-test-package/package.json
deleted file mode 100644
index c5c5aeabc1e56f..00000000000000
--- a/deps/npm/test/packages/npm-test-test-package/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "name":"npm-test-test-package"
-, "author" : "Testy McMock"
-, "version" : "1.2.3-99-b"
-, "description" : "This is a test package used for debugging. It has some random data and that's all."
-}
diff --git a/deps/npm/test/packages/npm-test-url-dep/README b/deps/npm/test/packages/npm-test-url-dep/README
deleted file mode 100644
index 8848f0786872f2..00000000000000
--- a/deps/npm/test/packages/npm-test-url-dep/README
+++ /dev/null
@@ -1 +0,0 @@
-just an npm test
diff --git a/deps/npm/test/packages/npm-test-url-dep/package.json b/deps/npm/test/packages/npm-test-url-dep/package.json
deleted file mode 100644
index f1949d8388154c..00000000000000
--- a/deps/npm/test/packages/npm-test-url-dep/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "name":"npm-test-url-dep"
-, "version" : "1.2.3"
-, "dependencies" :
- { "jsonify" : "https://github.com/substack/jsonify/tarball/master"
- , "sax": "isaacs/sax-js"
- , "canonical-host": "git://github.com/isaacs/canonical-host"
- } }
diff --git a/deps/npm/test/run.js b/deps/npm/test/run.js
deleted file mode 100644
index 24c7a31dabc992..00000000000000
--- a/deps/npm/test/run.js
+++ /dev/null
@@ -1,194 +0,0 @@
-// Everything in this file uses child processes, because we're
-// testing a command line utility.
-
-var chain = require('slide').chain
-var child_process = require('child_process')
-var path = require('path')
-var testdir = __dirname
-var fs = require('graceful-fs')
-var npmpkg = path.dirname(testdir)
-var npmcli = path.resolve(npmpkg, 'bin', 'npm-cli.js')
-
-var temp = process.env.TMPDIR ||
- process.env.TMP ||
- process.env.TEMP ||
- (process.platform === 'win32'
- ? 'c:\\windows\\temp'
- : '/tmp')
-
-temp = path.resolve(temp, 'npm-test-' + process.pid)
-
-var root = path.resolve(temp, 'root')
-var cache = path.resolve(temp, 'npm_cache')
-
-var failures = 0
-var mkdir = require('mkdirp')
-var rimraf = require('rimraf')
-
-var pathEnvSplit = process.platform === 'win32' ? ';' : ':'
-var pathEnv = process.env.PATH.split(pathEnvSplit)
-var npmPath = process.platform === 'win32' ? root : path.join(root, 'bin')
-
-pathEnv.unshift(npmPath, path.join(root, 'node_modules', '.bin'))
-
-// lastly, make sure that we get the same node that is being used to do
-// run this script. That's very important, especially when running this
-// test file from in the node source folder.
-pathEnv.unshift(path.dirname(process.execPath))
-
-// the env for all the test installs etc.
-var env = {}
-Object.keys(process.env).forEach(function (i) {
- env[i] = process.env[i]
-})
-env.npm_config_prefix = root
-env.npm_config_color = 'always'
-env.npm_config_global = 'true'
-// have to set this to false, or it'll try to test itself forever
-env.npm_config_npat = 'false'
-env.PATH = pathEnv.join(pathEnvSplit)
-env.NODE_PATH = path.join(root, 'node_modules')
-env.npm_config_cache = cache
-env.npm_config_user_agent = ''
-
-function cleanup (cb) {
- if (failures !== 0) return
- rimraf(root, function (er) {
- if (er) cb(er)
- mkdir(root, parseInt('0755', 8), cb)
- })
-}
-
-function prefix (content, pref) {
- return pref + (content.trim().split(/\r?\n/).join('\n' + pref))
-}
-
-var execCount = 0
-function exec (cmd, cwd, shouldFail, cb) {
- if (typeof shouldFail === 'function') {
- cb = shouldFail
- shouldFail = false
- }
- console.error('\n+' + cmd + (shouldFail ? ' (expect failure)' : ''))
-
- // special: replace 'node' with the current execPath,
- // and 'npm' with the thing we installed.
- var cmdShow = cmd
- var npmReplace = path.resolve(npmPath, 'npm')
- var nodeReplace = process.execPath
- if (process.platform === 'win32') {
- npmReplace = '"' + npmReplace + '"'
- nodeReplace = '"' + nodeReplace + '"'
- }
- cmd = cmd.replace(/^npm /, npmReplace + ' ')
- cmd = cmd.replace(/^node /, nodeReplace + ' ')
-
- console.error('$$$$$$ cd %s; PATH=%s %s', cwd, env.PATH, cmd)
-
- child_process.exec(cmd, {cwd: cwd, env: env}, function (er, stdout, stderr) {
- console.error('$$$$$$ after command', cmd, cwd)
- if (stdout) {
- console.error(prefix(stdout, ' 1> '))
- }
- if (stderr) {
- console.error(prefix(stderr, ' 2> '))
- }
-
- execCount++
- if (!shouldFail && !er || shouldFail && er) {
- // stdout = (''+stdout).trim()
- console.log('ok ' + execCount + ' ' + cmdShow)
- return cb()
- } else {
- console.log('not ok ' + execCount + ' ' + cmdShow)
- cb(new Error('failed ' + cmdShow))
- }
- })
-}
-
-function execChain (cmds, cb) {
- chain(cmds.map(function (args) {
- return [exec].concat(args)
- }), cb)
-}
-
-function flatten (arr) {
- return arr.reduce(function (l, r) {
- return l.concat(r)
- }, [])
-}
-
-function setup (cb) {
- cleanup(function (er) {
- if (er) return cb(er)
- exec('node \'' + npmcli + '\' install \'' + npmpkg + '\'', root, false, cb)
- })
-}
-
-function main (cb) {
- console.log('# testing in %s', temp)
- console.log('# global prefix = %s', root)
-
- failures = 0
-
- process.chdir(testdir)
- var base = path.resolve(root, path.join('lib', 'node_modules'))
-
- // get the list of packages
- var packages = fs.readdirSync(path.resolve(testdir, 'packages'))
- packages = packages.filter(function (p) {
- return p && !p.match(/^\./)
- })
-
- installAllThenTestAll()
-
- function installAllThenTestAll () {
- var packagesToRm = packages.slice(0)
- if (process.platform !== 'win32') {
- // Windows can't handle npm rm npm due to file-in-use issues.
- packagesToRm.push('npm')
- }
-
- chain(
- [
- setup,
- [exec, 'npm install ' + npmpkg, testdir],
- [execChain, packages.map(function (p) {
- return [ 'npm install packages/' + p, testdir ]
- })],
- [execChain, packages.map(function (p) {
- return [ 'npm test -ddd', path.resolve(base, p) ]
- })],
- [execChain, packagesToRm.map(function (p) {
- return [ 'npm rm ' + p, root ]
- })],
- installAndTestEach
- ],
- cb
- )
- }
-
- function installAndTestEach (cb) {
- var thingsToChain = [
- setup,
- [execChain, flatten(packages.map(function (p) {
- return [
- ['npm install packages/' + p, testdir],
- ['npm test', path.resolve(base, p)],
- ['npm rm ' + p, root]
- ]
- }))]
- ]
- if (process.platform !== 'win32') {
- // Windows can't handle npm rm npm due to file-in-use issues.
- thingsToChain.push([exec, 'npm rm npm', testdir])
- }
-
- chain(thingsToChain, cb)
- }
-}
-
-main(function (er) {
- console.log('1..' + execCount)
- if (er) throw er
-})
diff --git a/deps/npm/test/tap/bearer-token-check.js b/deps/npm/test/tap/bearer-token-check.js
new file mode 100644
index 00000000000000..8ddbec29a4cb17
--- /dev/null
+++ b/deps/npm/test/tap/bearer-token-check.js
@@ -0,0 +1,118 @@
+var resolve = require('path').resolve
+var writeFileSync = require('graceful-fs').writeFileSync
+
+var mkdirp = require('mkdirp')
+var mr = require('npm-registry-mock')
+var osenv = require('osenv')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+var toNerfDart = require('../../lib/config/nerf-dart.js')
+
+var pkg = resolve(__dirname, 'install-bearer-check')
+var outfile = resolve(pkg, '_npmrc')
+var modules = resolve(pkg, 'node_modules')
+var tarballPath = '/scoped-underscore/-/scoped-underscore-1.3.1.tgz'
+// needs to be a different hostname to verify tokens (not) being sent correctly
+var tarballURL = 'http://lvh.me:' + common.port + tarballPath
+var tarball = resolve(__dirname, '../fixtures/scoped-underscore-1.3.1.tgz')
+
+var server
+
+var EXEC_OPTS = { cwd: pkg }
+
+function mocks (server) {
+ var auth = 'Bearer 0xabad1dea'
+ server.get(tarballPath, { authorization: auth }).reply(403, {
+ error: 'token leakage',
+ reason: 'This token should not be sent.'
+ })
+ server.get(tarballPath).replyWithFile(200, tarball)
+}
+
+test('setup', function (t) {
+ mr({ port: common.port, plugin: mocks }, function (er, s) {
+ server = s
+ t.ok(s, 'set up mock registry')
+ setup()
+ t.end()
+ })
+})
+
+test('authed npm install with tarball not on registry', function (t) {
+ common.npm(
+ [
+ 'install',
+ '--loglevel', 'silent',
+ '--json',
+ '--fetch-retries', 0,
+ '--userconfig', outfile
+ ],
+ EXEC_OPTS,
+ function (err, code, stdout, stderr) {
+ t.ifError(err, 'test runner executed without error')
+ t.equal(code, 0, 'npm install exited OK')
+ t.notOk(stderr, 'no output on stderr')
+ try {
+ var results = JSON.parse(stdout)
+ } catch (ex) {
+ console.error('#', ex)
+ t.ifError(ex, 'stdout was valid JSON')
+ }
+
+ if (results) {
+ var installedversion = {
+ 'version': '1.3.1',
+ 'from': '>=1.3.1 <2',
+ 'resolved': 'http://lvh.me:1337/scoped-underscore/-/scoped-underscore-1.3.1.tgz'
+ }
+ t.isDeeply(results.dependencies['@scoped/underscore'], installedversion, '@scoped/underscore installed')
+ }
+
+ t.end()
+ }
+ )
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.end()
+})
+
+var contents = '@scoped:registry=' + common.registry + '\n' +
+ toNerfDart(common.registry) + ':_authToken=0xabad1dea\n'
+
+var json = {
+ name: 'test-package-install',
+ version: '1.0.0'
+}
+
+var shrinkwrap = {
+ name: 'test-package-install',
+ version: '1.0.0',
+ dependencies: {
+ '@scoped/underscore': {
+ resolved: tarballURL,
+ from: '>=1.3.1 <2',
+ version: '1.3.1'
+ }
+ }
+}
+
+function setup () {
+ cleanup()
+ mkdirp.sync(modules)
+ writeFileSync(resolve(pkg, 'package.json'), JSON.stringify(json, null, 2) + '\n')
+ writeFileSync(outfile, contents)
+ writeFileSync(
+ resolve(pkg, 'npm-shrinkwrap.json'),
+ JSON.stringify(shrinkwrap, null, 2) + '\n'
+ )
+}
+
+function cleanup () {
+ process.chdir(osenv.tmpdir())
+ rimraf.sync(pkg)
+}
diff --git a/deps/npm/test/tap/config-credentials.js b/deps/npm/test/tap/config-credentials.js
index c1b981d0a51312..f6f00ee0e65183 100644
--- a/deps/npm/test/tap/config-credentials.js
+++ b/deps/npm/test/tap/config-credentials.js
@@ -79,7 +79,7 @@ test('set with token', function (t) {
password: undefined,
email: undefined,
auth: undefined,
- alwaysAuth: undefined
+ alwaysAuth: false
}
t.same(conf.getCredentialsByURI(URI), expected, 'got bearer token and scope')
diff --git a/deps/npm/test/tap/config-list.js b/deps/npm/test/tap/config-list.js
new file mode 100644
index 00000000000000..1c42b64c2e52ac
--- /dev/null
+++ b/deps/npm/test/tap/config-list.js
@@ -0,0 +1,43 @@
+var fs = require('fs')
+var path = require('path')
+var test = require('tap').test
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var common = require('../common-tap.js')
+
+var pkg = path.resolve(__dirname, 'config-list')
+var opts = { cwd: pkg }
+var npmrc = path.resolve(pkg, '.npmrc')
+
+test('setup', function (t) {
+ rimraf.sync(pkg)
+ mkdirp.sync(pkg)
+ t.end()
+})
+
+test('config list includes project config', function (t) {
+ // Write per-project conf file
+ fs.writeFileSync(npmrc, 'foo=1234', 'utf8')
+
+ // Create empty package.json to indicate project root
+ fs.writeFileSync(path.resolve(pkg, 'package.json'), '{}', 'utf8')
+
+ common.npm(
+ ['config', 'list'],
+ opts,
+ function (err, code, stdout, stderr) {
+ t.ifError(err)
+ t.equal(stderr, '', 'stderr is empty')
+ var expected = '; project config ' + npmrc + '\nfoo = "1234"'
+ t.match(stdout, expected, 'contains project config')
+ t.end()
+ }
+ )
+})
+
+// TODO: test cases for other configuration types (cli, env, user, global)
+
+test('clean', function (t) {
+ rimraf.sync(pkg)
+ t.end()
+})
diff --git a/deps/npm/test/tap/files-and-ignores.js b/deps/npm/test/tap/files-and-ignores.js
new file mode 100644
index 00000000000000..02371cfe3eab78
--- /dev/null
+++ b/deps/npm/test/tap/files-and-ignores.js
@@ -0,0 +1,558 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var fs = require('graceful-fs')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-files')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-files')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+test('basic file inclusion', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ 'include',
+ 'sub/include'
+ ]
+ }),
+ include: File(''),
+ sub: Dir({ include: File('') }),
+ notincluded: File('')
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('include'), 'toplevel file included')
+ t.ok(fileExists('sub/include'), 'nested file included')
+ t.notOk(fileExists('notincluded'), 'unspecified file not included')
+ done()
+ })
+})
+
+test('basic file exclusion', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.npmignore': File(
+ 'ignore\n' +
+ 'sub/ignore\n'
+ ),
+ include: File(''),
+ ignore: File(''),
+ sub: Dir({ ignore: File('') })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('ignore'), 'toplevel file excluded')
+ t.notOk(fileExists('sub/ignore'), 'nested file excluded')
+ t.ok(fileExists('include'), 'unignored file included')
+ done()
+ })
+})
+
+test('toplevel-only and blanket ignores', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.npmignore': File(
+ './shallow1\n' +
+ '/shallow2\n' +
+ '/sub/onelevel\n' +
+ 'deep\n' +
+ ''
+ ),
+ shallow1: File(''),
+ shallow2: File(''),
+ deep: File(''),
+ sub: Dir({
+ shallow1: File(''),
+ shallow2: File(''),
+ onelevel: File(''),
+ deep: File(''),
+ sub: Dir({
+ deep: File(''),
+ onelevel: File('')
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('shallow2'), '/ file excluded')
+ t.ok(fileExists('sub/shallow1'), 'nested ./ file included')
+ t.ok(fileExists('sub/shallow2'), 'nested / file included')
+ t.ok(fileExists('sub/sub/onelevel'), 'double-nested file included')
+ t.notOk(fileExists('sub/onelevel'), 'nested / file excluded')
+ t.notOk(fileExists('deep'), 'deep file excluded')
+ t.notOk(fileExists('sub/deep'), 'nested deep file excluded')
+ t.notOk(fileExists('sub/sub/deep'), 'double-nested deep file excluded')
+ t.ok(fileExists('shallow1'), './ file included')
+ done()
+ })
+})
+
+test('.npmignore works for nested directories recursively', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.npmignore': File(
+ '/ignore\n' +
+ 'deep\n'
+ ),
+ include: File(''),
+ ignore: File(''),
+ deep: File(''),
+ sub: Dir({
+ ignore: File(''),
+ include: File(''),
+ deep: File(''),
+ sub: Dir({
+ '.npmignore': File(
+ '/ignore\n'
+ ),
+ ignore: File(''),
+ include: File(''),
+ deep: File('')
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('ignore'), 'toplevel file excluded')
+ t.ok(fileExists('include'), 'unignored file included')
+ t.ok(fileExists('sub/ignore'), 'same-name file in nested dir included')
+ t.ok(fileExists('sub/include'), 'unignored nested dir file included')
+ t.notOk(fileExists('sub/sub/ignore'), 'sub-sub-directory file excluded')
+ t.ok(fileExists('sub/sub/include'), 'sub-sube-directory file included')
+ t.notOk(fileExists('deep'), 'deep file excluded')
+ t.notOk(fileExists('sub/deep'), 'sub-dir deep file excluded')
+ t.notOk(fileExists('sub/sub/deep'), 'sub-sub-dir deep file excluded')
+ done()
+ })
+})
+
+test('.gitignore should have identical semantics', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.gitignore': File(
+ './shallow1\n' +
+ '/shallow2\n' +
+ '/sub/onelevel\n' +
+ 'deep\n' +
+ ''
+ ),
+ shallow1: File(''),
+ shallow2: File(''),
+ deep: File(''),
+ sub: Dir({
+ shallow1: File(''),
+ shallow2: File(''),
+ onelevel: File(''),
+ deep: File(''),
+ sub: Dir({
+ deep: File(''),
+ onelevel: File('')
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('shallow2'), '/ file excluded')
+ t.ok(fileExists('sub/shallow1'), 'nested ./ file included')
+ t.ok(fileExists('sub/shallow2'), 'nested / file included')
+ t.ok(fileExists('sub/sub/onelevel'), 'double-nested file included')
+ t.notOk(fileExists('sub/onelevel'), 'nested / file excluded')
+ t.notOk(fileExists('deep'), 'deep file excluded')
+ t.notOk(fileExists('sub/deep'), 'nested deep file excluded')
+ t.notOk(fileExists('sub/sub/deep'), 'double-nested deep file excluded')
+ t.ok(fileExists('shallow1'), './ file included')
+ done()
+ })
+})
+
+test('.npmignore should always be overridden by files array', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ 'include',
+ 'sub'
+ ]
+ }),
+ '.npmignore': File(
+ 'include\n' +
+ 'ignore\n' +
+ 'sub/included\n'
+ ),
+ include: File(''),
+ ignore: File(''),
+ sub: Dir({
+ include: File('')
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('ignore'), 'toplevel file excluded')
+ t.ok(fileExists('include'), 'unignored file included')
+ t.ok(fileExists('sub/include'), 'nested file included')
+ done()
+ })
+})
+
+test('.gitignore supported for ignores', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.gitignore': File(
+ 'ignore\n' +
+ 'sub/ignore\n'
+ ),
+ include: File(''),
+ ignore: File(''),
+ sub: Dir({ ignore: File('') })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('ignore'), 'toplevel file excluded')
+ t.notOk(fileExists('sub/ignore'), 'nested file excluded')
+ t.ok(fileExists('include'), 'unignored file included')
+ done()
+ })
+})
+
+test('.npmignore completely overrides .gitignore', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.npmignore': File(
+ 'ignore\n' +
+ 'sub/ignore\n'
+ ),
+ '.gitignore': File(
+ 'include\n' +
+ 'sub/include\n' +
+ 'extra\n'
+ ),
+ include: File(''),
+ sub: Dir({ include: File('') }),
+ extra: File('')
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('include'), 'gitignored toplevel file included')
+ t.ok(fileExists('extra'), 'gitignored extra toplevel file included')
+ t.ok(fileExists('sub/include'), 'gitignored nested file included')
+ t.notOk(fileExists('ignore'), 'toplevel file excluded')
+ t.notOk(fileExists('sub/ignore'), 'nested file excluded')
+ done()
+ })
+})
+
+test('files array overrides .npmignore', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ 'include',
+ 'sub/include'
+ ]
+ }),
+ '.npmignore': File(
+ 'include\n' +
+ 'sub/include\n'
+ ),
+ include: File(''),
+ sub: Dir({ include: File('') })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('include'), 'toplevel file included')
+ t.ok(fileExists('sub/include'), 'nested file included')
+ done()
+ })
+})
+
+test('includes files regardless of emptiness', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ 'full',
+ 'empty'
+ ]
+ }),
+ full: File('This file has contents~'),
+ empty: File('')
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('full'), 'contentful file included')
+ t.ok(fileExists('empty'), 'empty file included')
+ done()
+ })
+})
+
+test('.npmignore itself gets included', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ '.npmignore'
+ ]
+ }),
+ '.npmignore': File('')
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('.npmignore'), '.npmignore included')
+ done()
+ })
+})
+
+test('include default files when missing files spec', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ 'index.js': File(''),
+ foo: File(''),
+ node_modules: Dir({foo: Dir({bar: File('')})})
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('index.js'), 'index.js included')
+ t.ok(fileExists('foo'), 'foo included')
+ t.notOk(fileExists('node_modules'), 'node_modules not included')
+ done()
+ })
+})
+
+test('include main file', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ main: 'foo.js',
+ files: []
+ }),
+ 'index.js': File(''),
+ 'foo.js': File('')
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('foo.js'), 'foo.js included because of main')
+ t.notOk(fileExists('index.js'), 'index.js not included')
+ done()
+ })
+})
+
+test('certain files ignored unconditionally', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ '.git',
+ '.svn',
+ 'CVS',
+ '.hg',
+ '.lock-wscript',
+ '.wafpickle-0',
+ '.wafpickle-5',
+ '.wafpickle-50',
+ 'build/config.gypi',
+ 'npm-debug.log',
+ '.npmrc',
+ '.foo.swp',
+ '.DS_Store',
+ '._ohno'
+ ]
+ }),
+ '.git': Dir({foo: File('')}),
+ '.svn': Dir({foo: File('')}),
+ 'CVS': Dir({foo: File('')}),
+ '.hg': Dir({foo: File('')}),
+ '.lock-wscript': File(''),
+ '.wafpickle-0': File(''),
+ '.wafpickle-5': File(''),
+ '.wafpickle-50': File(''),
+ 'build': Dir({'config.gypi': File('')}),
+ 'npm-debug.log': File(''),
+ '.npmrc': File(''),
+ '.foo.swp': File(''),
+ '.DS_Store': Dir({foo: File('')}),
+ '._ohno': File(''),
+ '._ohnoes': Dir({noes: File('')})
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.notOk(fileExists('.git'), '.git not included')
+ t.notOk(fileExists('.svn'), '.svn not included')
+ t.notOk(fileExists('CVS'), 'CVS not included')
+ t.notOk(fileExists('.hg'), '.hg not included')
+ t.notOk(fileExists('.lock-wscript'), '.lock-wscript not included')
+ t.notOk(fileExists('.wafpickle-0'), '.wafpickle-0 not included')
+ t.notOk(fileExists('.wafpickle-5'), '.wafpickle-5 not included')
+ t.notOk(fileExists('.wafpickle-50'), '.wafpickle-50 not included')
+ t.notOk(fileExists('build/config.gypi'), 'build/config.gypi not included')
+ t.notOk(fileExists('npm-debug.log'), 'npm-debug.log not included')
+ t.notOk(fileExists('.npmrc'), '.npmrc not included')
+ t.notOk(fileExists('.foo.swp'), '.foo.swp not included')
+ t.notOk(fileExists('.DS_Store'), '.DS_Store not included')
+ t.notOk(fileExists('._ohno'), '._ohno not included')
+ t.notOk(fileExists('._ohnoes'), '._ohnoes not included')
+ done()
+ })
+})
+
+test('certain files included unconditionally', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5'
+ }),
+ '.npmignore': File(
+ 'package.json',
+ 'README',
+ 'Readme',
+ 'readme.md',
+ 'readme.randomext',
+ 'changelog',
+ 'CHAngelog',
+ 'ChangeLOG.txt',
+ 'license',
+ 'licence',
+ 'LICENSE',
+ 'LICENCE'
+ ),
+ 'README': File(''),
+ 'Readme': File(''),
+ 'readme.md': File(''),
+ 'readme.randomext': File(''),
+ 'changelog': File(''),
+ 'CHAngelog': File(''),
+ 'ChangeLOG.txt': File(''),
+ 'license': File(''),
+ 'licence': File(''),
+ 'LICENSE': File(''),
+ 'LICENCE': File('')
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('package.json'), 'package.json included')
+ t.ok(fileExists('README'), 'README included')
+ t.ok(fileExists('Readme'), 'Readme included')
+ t.ok(fileExists('readme.md'), 'readme.md included')
+ t.ok(fileExists('readme.randomext'), 'readme.randomext included')
+ t.ok(fileExists('changelog'), 'changelog included')
+ t.ok(fileExists('CHAngelog'), 'CHAngelog included')
+ t.ok(fileExists('ChangeLOG.txt'), 'ChangeLOG.txt included')
+ t.ok(fileExists('license'), 'license included')
+ t.ok(fileExists('licence'), 'licence included')
+ t.ok(fileExists('LICENSE'), 'LICENSE included')
+ t.ok(fileExists('LICENCE'), 'LICENCE included')
+ done()
+ })
+})
+
+test('folder-based inclusion works', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'package.json': File({
+ name: 'npm-test-files',
+ version: '1.2.5',
+ files: [
+ 'sub1/sub',
+ 'sub2'
+ ]
+ }),
+ sub1: Dir({
+ sub: Dir({
+ include1: File(''),
+ include2: File('')
+ }),
+ ignored: File('')
+ }),
+ sub2: Dir({
+ include1: File(''),
+ include2: File(''),
+ empty: Dir({})
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ t.ok(fileExists('sub1/sub/include1'), 'nested dir included')
+ t.ok(fileExists('sub1/sub/include2'), 'nested dir included')
+ t.notOk(fileExists('sub1/ignored'), 'unspecified file not included')
+
+ t.ok(fileExists('sub2/include1'), 'dir contents included')
+ t.ok(fileExists('sub2/include2'), 'dir contents included')
+ t.notOk(fileExists('sub2/empty'), 'empty dir not included')
+
+ done()
+ })
+})
+
+function fileExists (file) {
+ try {
+ return !!fs.statSync(path.resolve(installedpath, file))
+ } catch (_) {
+ return false
+ }
+}
+
+function withFixture (t, fixture, tester) {
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code) {
+ if (err) throw err
+ t.is(code, 0, 'install went ok')
+ tester(removeAndDone)
+ }
+ function removeAndDone (err) {
+ if (err) throw err
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+ t.done()
+ }
+}
diff --git a/deps/npm/test/tap/install-cli-production-nosave.js b/deps/npm/test/tap/install-cli-production-nosave.js
new file mode 100644
index 00000000000000..cf69ad3fae05db
--- /dev/null
+++ b/deps/npm/test/tap/install-cli-production-nosave.js
@@ -0,0 +1,69 @@
+var fs = require('fs')
+var path = require('path')
+
+var mkdirp = require('mkdirp')
+var mr = require('npm-registry-mock')
+var osenv = require('osenv')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+var server
+
+var pkg = path.join(__dirname, 'install-cli-production-nosave')
+
+var EXEC_OPTS = { cwd: pkg }
+
+var PACKAGE_JSON1 = {
+ name: 'install-cli-production-nosave',
+ version: '0.0.1',
+ dependencies: {
+ }
+}
+
+test('setup', function (t) {
+ setup()
+ mr({ port: common.port }, function (er, s) {
+ t.ifError(er, 'started mock registry')
+ server = s
+ t.end()
+ })
+})
+
+test('install --production without --save exits successfully', function (t) {
+ common.npm(
+ [
+ '--registry', common.registry,
+ '--loglevel', 'silent',
+ 'install', '--production', 'underscore'
+ ],
+ EXEC_OPTS,
+ function (err, code) {
+ t.ifError(err, 'npm install ran without issue')
+ t.notOk(code, 'npm install exited with code 0')
+ t.end()
+ }
+ )
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.end()
+})
+
+function cleanup () {
+ process.chdir(osenv.tmpdir())
+ rimraf.sync(pkg)
+}
+
+function setup () {
+ cleanup()
+ mkdirp.sync(path.resolve(pkg, 'node_modules'))
+ fs.writeFileSync(
+ path.join(pkg, 'package.json'),
+ JSON.stringify(PACKAGE_JSON1, null, 2)
+ )
+
+ process.chdir(pkg)
+}
diff --git a/deps/npm/test/tap/install-report-just-installed.js b/deps/npm/test/tap/install-report-just-installed.js
new file mode 100644
index 00000000000000..fb3bc65dbdbe44
--- /dev/null
+++ b/deps/npm/test/tap/install-report-just-installed.js
@@ -0,0 +1,76 @@
+'use strict'
+var path = require('path')
+var test = require('tap').test
+var Tacks = require('tacks')
+var Dir = Tacks.Dir
+var File = Tacks.File
+var common = require('../common-tap.js')
+
+var testdir = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixture = new Tacks(Dir({
+ node_modules: Dir({
+ a: Dir({
+ 'package.json': File({
+ name: 'a',
+ version: '1.0.0',
+ dependencies: {
+ b: '1.0.0'
+ }
+ }),
+ node_modules: Dir({
+ b: Dir({
+ 'package.json': File({
+ name: 'b',
+ version: '1.0.0'
+ })
+ })
+ })
+ })
+ }),
+ 'b-src': Dir({
+ 'package.json': File({
+ name: 'b',
+ version: '1.0.0'
+ })
+ })
+}))
+
+function setup () {
+ cleanup()
+ fixture.create(testdir)
+}
+
+function cleanup () {
+ fixture.remove(testdir)
+}
+
+test('setup', function (t) {
+ setup()
+ t.end()
+})
+
+test('install-report', function (t) {
+ common.npm(['install', '--json', 'b-src'], {cwd: testdir}, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'installed successfully')
+ t.is(stderr, '', 'no warnings')
+ try {
+ var report = JSON.parse(stdout)
+ t.pass('stdout was json')
+ } catch (ex) {
+ t.fail('stdout was json')
+ console.error(ex)
+ t.skip(2)
+ return t.end()
+ }
+ var depNames = Object.keys(report.dependencies)
+ t.is(depNames.length, 1, 'one dependency reported as installed')
+ t.ok(report.dependencies.b, 'that dependency was `b`')
+ t.end()
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})
diff --git a/deps/npm/test/tap/legacy-array-bin.js b/deps/npm/test/tap/legacy-array-bin.js
new file mode 100644
index 00000000000000..3e421ee23e3ff0
--- /dev/null
+++ b/deps/npm/test/tap/legacy-array-bin.js
@@ -0,0 +1,80 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-array-bin')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-array-bin')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+var fixture = new Tacks(
+ Dir({
+ bin: Dir({
+ 'array-bin': File(
+ '#!/usr/bin/env node\n' +
+ "console.log('test ran ok')\n"
+ )
+ }),
+ 'package.json': File({
+ name: 'npm-test-array-bin',
+ version: '1.2.5',
+ bin: [
+ 'bin/array-bin'
+ ],
+ scripts: {
+ test: 'node test.js'
+ }
+ }),
+ 'test.js': File(
+ "require('child_process').exec('array-bin', { env: process.env },\n" +
+ ' function (err, stdout, stderr) {\n' +
+ " if (err && err.code) throw new Error('exited badly with code = ' + err.code)\n" +
+ ' console.log(stdout)\n' +
+ ' console.error(stderr)\n' +
+ ' }\n' +
+ ')\n'
+ )
+ })
+)
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+test('array-bin', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'install went ok')
+ t.equal(stderr, '', 'no error output')
+ common.npm(['test'], {cwd: installedpath}, testCheckAndRemove)
+ }
+ function testCheckAndRemove (err, code, stdout, stderr) {
+ t.ifError(err, 'npm test on array bin')
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr.trim(), '', 'no error output')
+ t.match(stdout, /test ran ok/, 'child script ran properly')
+ common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
+ }
+ function removeCheckAndDone (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'remove went ok')
+ t.done()
+ }
+})
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-bundled-git.js b/deps/npm/test/tap/legacy-bundled-git.js
new file mode 100644
index 00000000000000..355f9467c151fb
--- /dev/null
+++ b/deps/npm/test/tap/legacy-bundled-git.js
@@ -0,0 +1,103 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-bundled-git')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-bundled-git')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var minimatchExpected = {
+ name: 'minimatch',
+ description: 'a glob matcher in javascript',
+ version: '0.2.1',
+ repository: {
+ type: 'git',
+ url: 'git://github.com/isaacs/minimatch.git'
+ },
+ main: 'minimatch.js',
+ scripts: {
+ test: 'tap test'
+ },
+ engines: {
+ node: '*'
+ },
+ dependencies: {
+ 'lru-cache': '~1.0.5'
+ },
+ devDependencies: {
+ tap: '~0.1.3'
+ },
+ licenses: [
+ {
+ type: 'MIT',
+ url: 'http://github.com/isaacs/minimatch/raw/master/LICENSE'
+ }
+ ]
+}
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-bundled-git',
+ scripts: {
+ test: 'node test.js'
+ },
+ version: '1.2.5',
+ dependencies: {
+ glob: 'git://github.com/isaacs/node-glob.git#npm-test'
+ },
+ bundledDependencies: [
+ 'glob'
+ ]
+ })
+ })
+)
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+test('bundled-git', function (t) {
+ common.npm(['install', '--global-style', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'install went ok')
+
+ var actual = require(path.resolve(installedpath, 'node_modules/glob/node_modules/minimatch/package.json'))
+ Object.keys(minimatchExpected).forEach(function (key) {
+ t.isDeeply(actual[key], minimatchExpected[key], key + ' set to the right value')
+ })
+
+ common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
+ }
+ function removeCheckAndDone (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'remove went ok')
+ t.done()
+ }
+})
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-dir-bin.js b/deps/npm/test/tap/legacy-dir-bin.js
new file mode 100644
index 00000000000000..e9e6bdfe1320f6
--- /dev/null
+++ b/deps/npm/test/tap/legacy-dir-bin.js
@@ -0,0 +1,79 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-dir-bin')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-dir-bin')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+var fixture = new Tacks(
+ Dir({
+ bin: Dir({
+ 'dir-bin': File(
+ '#!/usr/bin/env node\n' +
+ "console.log('test ran ok')\n"
+ )
+ }),
+ 'package.json': File({
+ name: 'npm-test-dir-bin',
+ version: '1.2.5',
+ directories: {
+ bin: './bin'
+ },
+ scripts: {
+ test: 'node test.js'
+ }
+ }),
+ 'test.js': File(
+ "require('child_process').exec('dir-bin', { env: process.env },\n" +
+ ' function (err, stdout, stderr) {\n' +
+ " if (err && err.code) throw new Error('exited badly with code = ' + err.code)\n" +
+ ' console.log(stdout)\n' +
+ ' console.error(stderr)\n' +
+ ' }\n' +
+ ')\n'
+ )
+ })
+)
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+test('dir-bin', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'install went ok')
+ common.npm(['test'], {cwd: installedpath}, testCheckAndRemove)
+ }
+ function testCheckAndRemove (err, code, stdout, stderr) {
+ t.ifError(err, 'npm test on array bin')
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr.trim(), '', 'no error output')
+ t.match(stdout, /test ran ok/, 'child script ran properly')
+ common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
+ }
+ function removeCheckAndDone (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'remove went ok')
+ t.done()
+ }
+})
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-ignore-nested-nm.js b/deps/npm/test/tap/legacy-ignore-nested-nm.js
new file mode 100644
index 00000000000000..095c41efa146ba
--- /dev/null
+++ b/deps/npm/test/tap/legacy-ignore-nested-nm.js
@@ -0,0 +1,64 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-ignore-nested-nm')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-ignore-nested-nm')
+var fs = require('graceful-fs')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fileData = 'I WILL NOT BE IGNORED!\n'
+var fixture = new Tacks(
+ Dir({
+ lib: Dir({
+ node_modules: Dir({
+ foo: File(fileData)
+ })
+ }),
+ 'package.json': File({
+ name: 'npm-test-ignore-nested-nm',
+ version: '1.2.5'
+ })
+ })
+)
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+test('ignore-nested-nm', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'install went ok')
+ var foopath = path.resolve(installedpath, 'lib/node_modules/foo')
+ fs.readFile(foopath, function (err, data) {
+ t.ifError(err, 'file read successfully')
+ t.equal(data.toString(), fileData)
+ common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
+ })
+ }
+ function removeCheckAndDone (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'remove went ok')
+ t.done()
+ }
+})
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-missing-bindir.js b/deps/npm/test/tap/legacy-missing-bindir.js
new file mode 100644
index 00000000000000..a55703bebdb7cc
--- /dev/null
+++ b/deps/npm/test/tap/legacy-missing-bindir.js
@@ -0,0 +1,82 @@
+'use strict'
+var path = require('path')
+var fs = require('fs')
+var test = require('tap').test
+var common = require('../common-tap.js')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-missing-bindir')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-missing-bindir')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-missing-bindir',
+ version: '0.0.0',
+ directories: {
+ bin: './not-found'
+ }
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+function installedExists (filename) {
+ try {
+ fs.statSync(path.resolve(installedpath, filename))
+ return true
+ } catch (ex) {
+ console.log(ex)
+ return false
+ }
+}
+
+test('missing-bindir', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ if (stderr) console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'install went ok')
+ t.is(installedExists('README'), true, 'README')
+ t.is(installedExists('package.json'), true, 'package.json')
+ common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
+ }
+
+ function removeCheckAndDone (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'remove went ok')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-no-auth-leak.js b/deps/npm/test/tap/legacy-no-auth-leak.js
new file mode 100644
index 00000000000000..f837239250222b
--- /dev/null
+++ b/deps/npm/test/tap/legacy-no-auth-leak.js
@@ -0,0 +1,75 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-no-auth-leak',
+ version: '0.0.0',
+ scripts: {
+ test: 'node test.js'
+ }
+ }),
+ '.npmrc': File(
+ 'auth=abc',
+ 'authCrypt=def',
+ 'password=xyz',
+ '//registry.npmjs.org/:_authToken=nopenope'
+ ),
+ 'test.js': File(
+ 'var authTokenKeys = Object.keys(process.env)\n' +
+ ' .filter(function (key) { return /authToken/.test(key) })\n' +
+ 'console.log(JSON.stringify({\n' +
+ ' password: process.env.npm_config__password || null,\n' +
+ ' auth: process.env.npm_config__auth || null,\n' +
+ ' authCrypt: process.env.npm_config__authCrypt || null ,\n' +
+ ' authToken: authTokenKeys && process.env[authTokenKeys[0]] || null\n' +
+ '}))'
+ )
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('no-auth-leak', function (t) {
+ common.npm(['test'], {cwd: basepath}, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'test ran ok')
+ if (stderr) console.log(stderr)
+ var matchResult = /^[^{]*(\{(?:.|\n)*\})[^}]*$/
+ t.like(stdout, matchResult, 'got results with a JSON chunk in them')
+ var stripped = stdout.replace(matchResult, '$1')
+ var result = JSON.parse(stripped)
+ t.is(result.password, null, 'password')
+ t.is(result.auth, null, 'auth')
+ t.is(result.authCrypt, null, 'authCrypt')
+ t.is(result.authToken, null, 'authToken')
+ t.end()
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(basepath)
+}
+
+function cleanup () {
+ fixture.remove(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-npm-self-install.js b/deps/npm/test/tap/legacy-npm-self-install.js
new file mode 100644
index 00000000000000..313c0594935a0d
--- /dev/null
+++ b/deps/npm/test/tap/legacy-npm-self-install.js
@@ -0,0 +1,107 @@
+'use strict'
+var test = require('tap').test
+var fs = require('graceful-fs')
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var osenv = require('osenv')
+var npmpath = path.resolve(__dirname, '../..')
+var basepath = path.resolve(osenv.tmpdir(), path.basename(__filename, '.js'))
+var globalpath = path.resolve(basepath, 'global')
+var extend = Object.assign || require('util')._extend
+var isWin32 = process.platform === 'win32'
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+var tarball
+
+test('build-tarball', function (t) {
+ common.npm(['pack'], {cwd: npmpath, stdio: ['ignore', 'pipe', process.stderr]}, function (err, code, stdout) {
+ if (err) throw err
+ t.is(code, 0, 'pack went ok')
+ tarball = path.resolve(npmpath, stdout.trim().replace(/^(?:.|\n)*(?:^|\n)(.*?[.]tgz)$/, '$1'))
+ t.match(tarball, /[.]tgz$/, 'got a tarball')
+ t.done()
+ })
+})
+
+function exists () {
+ try {
+ fs.statSync(path.resolve.apply(null, arguments))
+ return true
+ } catch (ex) {
+ return false
+ }
+}
+
+test('npm-self-install', function (t) {
+ if (!tarball) return t.done()
+
+ var env = extend({}, process.env)
+ var pathsep = isWin32 ? ';' : ':'
+ env.npm_config_prefix = globalpath
+ env.npm_config_global = 'true'
+ env.npm_config_npat = 'false'
+ env.NODE_PATH = null
+ env.npm_config_user_agent = null
+ env.npm_config_color = 'always'
+ env.npm_config_progress = 'always'
+ var PATH = env.PATH.split(pathsep)
+ var binpath = isWin32 ? globalpath : path.join(globalpath, 'bin')
+ var cmdname = isWin32 ? 'npm.cmd' : 'npm'
+ PATH.unshift(binpath)
+ env.PATH = PATH.join(pathsep)
+
+ var opts = {cwd: basepath, env: env, stdio: ['ignore', 'ignore', process.stderr]}
+
+ common.npm(['install', '--ignore-scripts', tarball], opts, installCheckAndTest)
+ function installCheckAndTest (err, code) {
+ if (err) throw err
+ t.is(code, 0, 'install went ok')
+ t.is(exists(binpath, cmdname), true, 'binary was installed')
+ t.is(exists(globalpath, 'lib', 'node_modules', 'npm'), true, 'module path exists')
+ common.npm(['ls', '--json', '--depth=0'], {cwd: basepath, env: env}, lsCheckAndRemove)
+ }
+ function lsCheckAndRemove (err, code, stdout, stderr) {
+ t.ifError(err, 'npm test on array bin')
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr.trim(), '', 'no error output')
+ var installed = JSON.parse(stdout.trim())
+ t.is(Object.keys(installed.dependencies).length, 1, 'one thing installed')
+ t.is(path.resolve(globalpath, installed.dependencies.npm.from), tarball, 'and it was our npm tarball')
+ common.npm(['rm', 'npm'], {cwd: basepath, env: env, stdio: 'inherit'}, removeCheck)
+ }
+ function removeCheck (err, code) {
+ if (err) throw err
+ t.is(code, 0, 'remove went ok')
+ common.npm(['ls', '--json', '--depth=0'], {cwd: basepath, env: env}, andDone)
+ }
+ function andDone (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'remove went ok')
+ t.equal(stderr.trim(), '', 'no error output')
+ var installed = JSON.parse(stdout.trim())
+ t.ok(!installed.dependencies || installed.dependencies.length === 0, 'nothing left')
+ t.is(exists(binpath, cmdname), false, 'binary was removed')
+ t.is(exists(globalpath, 'lib', 'node_modules', 'npm'), false, 'module was entirely removed')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ mkdirp.sync(globalpath)
+}
+
+function cleanup () {
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-optional-deps.js b/deps/npm/test/tap/legacy-optional-deps.js
new file mode 100644
index 00000000000000..80ad7cc47eea6c
--- /dev/null
+++ b/deps/npm/test/tap/legacy-optional-deps.js
@@ -0,0 +1,79 @@
+'use strict'
+var path = require('path')
+var fs = require('fs')
+var test = require('tap').test
+var common = require('../common-tap.js')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var mr = require('npm-registry-mock')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-optional-deps')
+var modulepath = path.resolve(basepath, 'node_modules')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-optional-deps',
+ version: '1.2.5',
+ optionalDependencies: {
+ 'npm-test-foobarzaaakakaka': 'http://example.com/',
+ async: '10.999.14234',
+ mkdirp: '0.3.5',
+ optimist: 'some invalid version 99 #! $$ x y z',
+ 'npm-test-failer': '*'
+ }
+ })
+ })
+)
+
+var server
+
+test('setup', function (t) {
+ setup()
+ mr({port: common.port}, function (err, s) {
+ if (err) throw err
+ server = s
+ t.done()
+ })
+})
+
+test('optional-deps', function (t) {
+ server.get('/npm-test-failer').reply(404, {error: 'nope'})
+
+ var opts = ['--registry=' + common.registry, '--timeout=100']
+ common.npm(opts.concat(['install', fixturepath]), {cwd: basepath}, installCheckAndTest)
+
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ if (stderr) console.error(stderr)
+ server.done()
+ t.is(code, 0, 'install went ok')
+ var dir = fs.readdirSync(modulepath).sort()
+ t.isDeeply(dir, ['mkdirp', 'npm-test-optional-deps'], 'only one optional dep should be there')
+ t.is(require(path.resolve(modulepath, 'mkdirp', 'package.json')).version, '0.3.5', 'mkdirp version right')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ server.close()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-platform-all.js b/deps/npm/test/tap/legacy-platform-all.js
new file mode 100644
index 00000000000000..2bfb19a45782bd
--- /dev/null
+++ b/deps/npm/test/tap/legacy-platform-all.js
@@ -0,0 +1,73 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-platform-all')
+var modulepath = path.resolve(basepath, 'node_modules')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-platform-all',
+ version: '9.9.9-9',
+ homepage: 'http://www.zombo.com/',
+ os: [
+ 'darwin',
+ 'linux',
+ 'win32',
+ 'solaris',
+ 'haiku',
+ 'sunos',
+ 'freebsd',
+ 'openbsd',
+ 'netbsd'
+ ],
+ cpu: [
+ 'arm',
+ 'mips',
+ 'ia32',
+ 'x64',
+ 'sparc'
+ ]
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('platform-all', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(stderr, '', 'no error messages')
+ t.is(code, 0, 'install went ok')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-platform.js b/deps/npm/test/tap/legacy-platform.js
new file mode 100644
index 00000000000000..4e94148b213097
--- /dev/null
+++ b/deps/npm/test/tap/legacy-platform.js
@@ -0,0 +1,64 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-platform')
+var modulepath = path.resolve(basepath, 'node_modules')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-platform',
+ version: '9.9.9-9',
+ homepage: 'http://www.youtube.com/watch?v=dQw4w9WgXcQ',
+ os: [
+ '!this_is_not_a_real_os',
+ '!neither_is_this'
+ ],
+ cpu: [
+ '!this_is_not_a_real_cpu',
+ '!this_isnt_either'
+ ]
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('platform', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ t.is(code, 0, 'install went ok')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-private.js b/deps/npm/test/tap/legacy-private.js
new file mode 100644
index 00000000000000..5e7817bf6a13a7
--- /dev/null
+++ b/deps/npm/test/tap/legacy-private.js
@@ -0,0 +1,58 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-private')
+var modulepath = path.resolve(basepath, 'node_modules')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-private',
+ version: '9.9.9-9',
+ homepage: 'http://www.youtube.com/watch?v=1MLry6Cn_D4',
+ private: 'true'
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('private', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'install went ok')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-shrinkwrap.js b/deps/npm/test/tap/legacy-shrinkwrap.js
new file mode 100644
index 00000000000000..6f5303037707a0
--- /dev/null
+++ b/deps/npm/test/tap/legacy-shrinkwrap.js
@@ -0,0 +1,132 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'npm-shrinkwrap.json': File({
+ name: 'npm-test-shrinkwrap',
+ version: '0.0.0',
+ dependencies: {
+ glob: {
+ version: '3.1.5',
+ from: 'git://github.com/isaacs/node-glob.git#npm-test',
+ resolved: 'git://github.com/isaacs/node-glob.git#67bda227fd7a559cca5620307c7d30a6732a792f',
+ dependencies: {
+ 'graceful-fs': {
+ version: '1.1.5',
+ resolved: 'https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.5.tgz',
+ dependencies: {
+ 'fast-list': {
+ version: '1.0.2',
+ resolved: 'https://registry.npmjs.org/fast-list/-/fast-list-1.0.2.tgz'
+ }
+ }
+ },
+ inherits: {
+ version: '1.0.0',
+ resolved: 'https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz'
+ },
+ minimatch: {
+ version: '0.2.1',
+ dependencies: {
+ 'lru-cache': {
+ version: '1.0.5'
+ }
+ }
+ }
+ }
+ },
+ minimatch: {
+ version: '0.1.5',
+ resolved: 'https://registry.npmjs.org/minimatch/-/minimatch-0.1.5.tgz',
+ dependencies: {
+ 'lru-cache': {
+ version: '1.0.5',
+ resolved: 'https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.5.tgz'
+ }
+ }
+ },
+ 'npm-test-single-file': {
+ version: '1.2.3',
+ resolved: 'https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js'
+ }
+ }
+ }),
+ 'package.json': File({
+ author: 'Isaac Z. Schlueter (http://blog.izs.me/)',
+ name: 'npm-test-shrinkwrap',
+ version: '0.0.0',
+ dependencies: {
+ 'npm-test-single-file': 'https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js',
+ glob: 'git://github.com/isaacs/node-glob.git#npm-test',
+ minimatch: '~0.1.0'
+ },
+ scripts: {
+ test: 'node test.js'
+ }
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('shrinkwrap', function (t) {
+ common.npm(['install'], {cwd: basepath}, installCheckAndTest)
+
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ t.is(code, 0, 'install went ok')
+
+ common.npm(['ls', '--json'], {cwd: basepath}, verifyLsMatchesShrinkwrap)
+ }
+
+ function verifyLsMatchesShrinkwrap (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ t.is(code, 0, 'ls went ok')
+ var actual = JSON.parse(stdout)
+ var expected = require(path.resolve(basepath, 'npm-shrinkwrap.json'))
+ // from is expected to vary
+ t.isDeeply(rmFrom(actual), rmFrom(expected))
+ t.done()
+ }
+
+ function rmFrom (obj) {
+ for (var i in obj) {
+ if (i === 'from') {
+ delete obj[i]
+ } else if (i === 'dependencies') {
+ for (var j in obj[i]) {
+ rmFrom(obj[i][j])
+ }
+ }
+ }
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(basepath)
+}
+
+function cleanup () {
+ fixture.remove(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-test-package.js b/deps/npm/test/tap/legacy-test-package.js
new file mode 100644
index 00000000000000..b0cbaa01a5cb62
--- /dev/null
+++ b/deps/npm/test/tap/legacy-test-package.js
@@ -0,0 +1,76 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-test-package')
+var modulepath = path.resolve(basepath, 'node_modules')
+var installedpath = path.resolve(modulepath, 'npm-test-test-package')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-test-package',
+ author: 'Testy McMock',
+ version: '1.2.3-99-b',
+ description: "This is a test package used for debugging. It has some random data and that's all."
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('test-package', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'install went ok')
+ common.npm(['test'], {cwd: installedpath}, testCheckAndRemove)
+ }
+
+ function testCheckAndRemove (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'npm test w/o test is ok')
+ common.npm(['rm', fixturepath], {cwd: basepath}, removeCheckAndDone)
+ }
+
+ function removeCheckAndDone (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'remove went ok')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/legacy-url-dep.js b/deps/npm/test/tap/legacy-url-dep.js
new file mode 100644
index 00000000000000..9807d6916a4e44
--- /dev/null
+++ b/deps/npm/test/tap/legacy-url-dep.js
@@ -0,0 +1,61 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-url-dep')
+var modulepath = path.resolve(basepath, 'node_modules')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'package.json': File({
+ name: 'npm-test-url-dep',
+ version: '1.2.3',
+ dependencies: {
+ jsonify: 'https://github.com/substack/jsonify/tarball/master',
+ sax: 'isaacs/sax-js',
+ 'canonical-host': 'git://github.com/isaacs/canonical-host'
+ }
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('url-dep', function (t) {
+ common.npm(['install', fixturepath], {cwd: basepath}, installCheckAndTest)
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ console.log(stdout)
+ t.is(code, 0, 'install went ok')
+ t.done()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(fixturepath)
+ mkdirp.sync(modulepath)
+}
+
+function cleanup () {
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+}
diff --git a/deps/npm/test/tap/lifecycle-signal.js b/deps/npm/test/tap/lifecycle-signal.js
index e28caf72f8948b..4c41a9e98af19d 100644
--- a/deps/npm/test/tap/lifecycle-signal.js
+++ b/deps/npm/test/tap/lifecycle-signal.js
@@ -16,7 +16,8 @@ var json = {
name: 'lifecycle-signal',
version: '1.2.5',
scripts: {
- preinstall: 'node -e "process.kill(process.pid,\'SIGSEGV\')"'
+ preinstall: 'node -e "process.kill(process.pid,\'SIGSEGV\')"',
+ forever: 'node -e "console.error(process.pid);setInterval(function(){},1000)"'
}
}
@@ -46,6 +47,31 @@ test('lifecycle signal abort', function (t) {
})
})
+test('lifecycle propagate signal term to child', function (t) {
+ // windows does not use lifecycle signals, abort
+ if (process.platform === 'win32' || process.env.TRAVIS) return t.end()
+
+ var innerChildPid
+ var child = spawn(npm, ['run', 'forever'], {
+ cwd: pkg
+ })
+ child.stderr.on('data', function (data) {
+ innerChildPid = Number.parseInt(data.toString(), 10)
+ t.doesNotThrow(function () {
+ process.kill(innerChildPid, 0) // inner child should be running
+ })
+ child.kill() // send SIGTERM to npm
+ })
+ child.on('exit', function (code, signal) {
+ t.equal(code, null)
+ t.equal(signal, 'SIGTERM')
+ t.throws(function () {
+ process.kill(innerChildPid, 0) // SIGTERM should have reached inner child
+ })
+ t.end()
+ })
+})
+
test('cleanup', function (t) {
cleanup()
t.end()
diff --git a/deps/npm/test/tap/logout-scoped.js b/deps/npm/test/tap/logout-scoped.js
new file mode 100644
index 00000000000000..1323a4d32e76a7
--- /dev/null
+++ b/deps/npm/test/tap/logout-scoped.js
@@ -0,0 +1,70 @@
+var fs = require('fs')
+var path = require('path')
+
+var mkdirp = require('mkdirp')
+var mr = require('npm-registry-mock')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+
+var pkg = path.resolve(__dirname, 'logout')
+var outfile = path.join(pkg, '_npmrc')
+var opts = { cwd: pkg }
+
+var contents = function () {/*
+foo=boo
+@bar:registry=http://localhost:1337
+//localhost:1337/:_authToken=glarb
+*/}.toString().split('\n').slice(1, -1).join('\n')
+
+function mocks (server) {
+ server.delete('/-/user/token/glarb')
+ .reply(200, {})
+}
+
+test('setup', function (t) {
+ cleanup()
+ setup()
+ t.end()
+})
+
+test('npm logout', function (t) {
+ mr({ port: common.port, plugin: mocks }, function (err, s) {
+ if (err) throw err
+
+ common.npm(
+ [
+ 'logout',
+ '--registry', common.registry,
+ '--scope', '@bar',
+ '--loglevel', 'silent',
+ '--userconfig', outfile
+ ],
+ opts,
+ function (err, code) {
+ t.ifError(err, 'no error output')
+ t.notOk(code, 'exited OK')
+
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.equal(config, 'foo=boo\n', 'creds gone')
+ s.close()
+ t.end()
+ }
+ )
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})
+
+function setup () {
+ mkdirp.sync(pkg)
+ fs.writeFileSync(outfile, contents)
+}
+
+function cleanup () {
+ rimraf.sync(pkg)
+}
diff --git a/deps/npm/test/tap/ls-depth-cli.js b/deps/npm/test/tap/ls-depth-cli.js
index 760681427c6be1..87eafced2c084c 100644
--- a/deps/npm/test/tap/ls-depth-cli.js
+++ b/deps/npm/test/tap/ls-depth-cli.js
@@ -159,6 +159,50 @@ test('npm ls --depth=Infinity --json', function (t) {
)
})
+test('npm ls --depth=0 --parseable --long', function (t) {
+ common.npm(
+ ['ls', '--depth=0', '--parseable', '--long'],
+ EXEC_OPTS,
+ function (er, c, out) {
+ t.ifError(er, 'npm ls ran without issue')
+ t.equal(c, 0, 'ls ran without raising error code')
+ t.has(
+ out,
+ /.*test-package-with-one-dep@0\.0\.0/,
+ 'output contains test-package-with-one-dep'
+ )
+ t.doesNotHave(
+ out,
+ /.*test-package@0\.0\.0/,
+ 'output not contains test-package'
+ )
+ t.end()
+ }
+ )
+})
+
+test('npm ls --depth=1 --parseable --long', function (t) {
+ common.npm(
+ ['ls', '--depth=1', '--parseable', '--long'],
+ EXEC_OPTS,
+ function (er, c, out) {
+ t.ifError(er, 'npm ls ran without issue')
+ t.equal(c, 0, 'ls ran without raising error code')
+ t.has(
+ out,
+ /.*test-package-with-one-dep@0\.0\.0/,
+ 'output contains test-package-with-one-dep'
+ )
+ t.has(
+ out,
+ /.*test-package@0\.0\.0/,
+ 'output not contains test-package'
+ )
+ t.end()
+ }
+ )
+})
+
test('cleanup', function (t) {
cleanup()
t.end()
diff --git a/deps/npm/test/tap/ls-production-and-dev.js b/deps/npm/test/tap/ls-production-and-dev.js
index e9bae3de792f16..80d67ea5e55ecf 100644
--- a/deps/npm/test/tap/ls-production-and-dev.js
+++ b/deps/npm/test/tap/ls-production-and-dev.js
@@ -17,10 +17,12 @@ var json = {
name: 'ls-env',
version: '0.0.0',
dependencies: {
- 'test-package-with-one-dep': '0.0.0'
+ 'test-package-with-one-dep': '0.0.0',
+ 'test-repo-url-ssh': '0.0.1'
},
devDependencies: {
- 'test-package-with-one-dep': '0.0.0'
+ 'test-package-with-one-dep': '0.0.0',
+ 'test-repo-url-https': '0.0.1'
}
}
@@ -57,6 +59,16 @@ test('npm ls --dev', function (t) {
/test-package-with-one-dep@0\.0\.0/,
'output contains test-package-with-one-dep@0.0.0'
)
+ t.has(
+ stdout,
+ /test-repo-url-https@0\.0\.1/,
+ 'output contains test-repo-url-https@0.0.1'
+ )
+ t.doesNotHave(
+ stdout,
+ /test-repo-url-ssh@0\.0\.1/,
+ 'output does NOT contain test-repo-url-ssh@0.0.1'
+ )
t.end()
})
})
@@ -96,6 +108,16 @@ test('npm ls --production', function (t) {
/test-package-with-one-dep@0\.0\.0/,
'output contains test-package-with-one-dep@0.0.0'
)
+ t.has(
+ stdout,
+ /test-repo-url-ssh@0\.0\.1/,
+ 'output contains test-repo-url-ssh@0.0.1'
+ )
+ t.doesNotHave(
+ stdout,
+ /test-repo-url-https@0\.0\.1/,
+ 'output does NOT contain test-repo-url-https@0.0.1'
+ )
t.end()
})
})
diff --git a/deps/npm/test/tap/map-to-registry.js b/deps/npm/test/tap/map-to-registry.js
index 9f6673b92c0d6c..d9677bd7e0fceb 100644
--- a/deps/npm/test/tap/map-to-registry.js
+++ b/deps/npm/test/tap/map-to-registry.js
@@ -48,7 +48,7 @@ test('mapRegistryToURI', function (t) {
password: undefined,
email: undefined,
auth: undefined,
- alwaysAuth: undefined
+ alwaysAuth: false
})
t.equal(registry, 'http://reg.npm/design/-/rewrite/')
})
@@ -66,7 +66,7 @@ test('mapRegistryToURI', function (t) {
password: undefined,
email: undefined,
auth: undefined,
- alwaysAuth: undefined
+ alwaysAuth: false
})
t.equal(registry, 'http://reg.npm/-/rewrite/')
})
@@ -84,8 +84,83 @@ test('mapRegistryToURI', function (t) {
password: undefined,
email: undefined,
auth: undefined,
- alwaysAuth: undefined
+ alwaysAuth: false
})
t.equal(registry, 'http://reg.npm/design/-/rewrite/relative/')
})
})
+
+test('mapToRegistry token scoping', function (t) {
+ npm.config.set('scope', '')
+ npm.config.set('registry', 'https://reg.npm/')
+ npm.config.set('//reg.npm/:_authToken', 'r-token')
+
+ t.test('pass token to registry host', function (t) {
+ mapRegistry(
+ 'https://reg.npm/packages/e/easy-1.0.0.tgz',
+ npm.config,
+ function (er, uri, auth, registry) {
+ t.ifError(er, 'mapRegistryToURI worked')
+ t.equal(uri, 'https://reg.npm/packages/e/easy-1.0.0.tgz')
+ t.deepEqual(auth, {
+ scope: '//reg.npm/',
+ token: 'r-token',
+ username: undefined,
+ password: undefined,
+ email: undefined,
+ auth: undefined,
+ alwaysAuth: false
+ })
+ t.equal(registry, 'https://reg.npm/')
+ }
+ )
+ t.end()
+ })
+
+ t.test("don't pass token to non-registry host", function (t) {
+ mapRegistry(
+ 'https://butts.lol/packages/e/easy-1.0.0.tgz',
+ npm.config,
+ function (er, uri, auth, registry) {
+ t.ifError(er, 'mapRegistryToURI worked')
+ t.equal(uri, 'https://butts.lol/packages/e/easy-1.0.0.tgz')
+ t.deepEqual(auth, {
+ scope: '//reg.npm/',
+ token: undefined,
+ username: undefined,
+ password: undefined,
+ email: undefined,
+ auth: undefined,
+ alwaysAuth: false
+ })
+ t.equal(registry, 'https://reg.npm/')
+ }
+ )
+ t.end()
+ })
+
+ t.test('pass token to non-registry host with always-auth', function (t) {
+ npm.config.set('always-auth', true)
+ mapRegistry(
+ 'https://butts.lol/packages/e/easy-1.0.0.tgz',
+ npm.config,
+ function (er, uri, auth, registry) {
+ t.ifError(er, 'mapRegistryToURI worked')
+ t.equal(uri, 'https://butts.lol/packages/e/easy-1.0.0.tgz')
+ t.deepEqual(auth, {
+ scope: '//reg.npm/',
+ token: 'r-token',
+ username: undefined,
+ password: undefined,
+ email: undefined,
+ auth: undefined,
+ alwaysAuth: true
+ })
+ t.equal(registry, 'https://reg.npm/')
+ }
+ )
+ t.end()
+ })
+
+ t.end()
+})
diff --git a/deps/npm/test/tap/progress-config.js b/deps/npm/test/tap/progress-config.js
index 4b6f806dd3fccb..acddc0d07b9137 100644
--- a/deps/npm/test/tap/progress-config.js
+++ b/deps/npm/test/tap/progress-config.js
@@ -11,6 +11,10 @@ var requireInject = require('require-inject')
// Make sure existing environment vars don't muck up the test
process.env = {}
+function hasOnlyAscii (s) {
+ return /^[\000-\177]*$/.test(s)
+}
+
test('disabled', function (t) {
t.plan(1)
var npm = requireInject('../../lib/npm.js', {})
@@ -54,3 +58,23 @@ test('default-ci', function (t) {
delete global.process.env.CI
})
})
+
+test('unicode-true', function (t) {
+ t.plan(6)
+ var npm = requireInject('../../lib/npm.js', {})
+ npm.load({unicode: true}, function () {
+ Object.keys(log.gauge.theme).forEach(function (key) {
+ t.notOk(hasOnlyAscii(log.gauge.theme[key]), 'only unicode')
+ })
+ })
+})
+
+test('unicode-false', function (t) {
+ t.plan(6)
+ var npm = requireInject('../../lib/npm.js', {})
+ npm.load({unicode: false}, function () {
+ Object.keys(log.gauge.theme).forEach(function (key) {
+ t.ok(hasOnlyAscii(log.gauge.theme[key]), 'only ASCII')
+ })
+ })
+})
diff --git a/deps/npm/test/tap/run-script.js b/deps/npm/test/tap/run-script.js
index d7087693df7c44..3892337cee9f76 100644
--- a/deps/npm/test/tap/run-script.js
+++ b/deps/npm/test/tap/run-script.js
@@ -25,8 +25,13 @@ var fullyPopulated = {
'prewith-both': 'node -e "console.log(process.argv[1] || \'pre\')"',
'with-both': 'node -e "console.log(process.argv[1] || \'main\')"',
'postwith-both': 'node -e "console.log(process.argv[1] || \'post\')"',
- 'stop': 'node -e "console.log(process.argv[1] || \'stop\')"'
- }
+ 'stop': 'node -e "console.log(process.argv[1] || \'stop\')"',
+ 'env-vars': 'node -e "console.log(process.env.run_script_foo_var)"',
+ 'npm-env-vars': 'node -e "console.log(process.env.npm_run_script_foo_var)"',
+ 'package-env-vars': 'node -e "console.log(process.env.run_script_foo_var)"',
+ 'prefixed-package-env-vars': 'node -e "console.log(process.env.npm_package_run_script_foo_var)"'
+ },
+ 'run_script_foo_var': 'run_script_test_foo_val'
}
var lifecycleOnly = {
@@ -180,6 +185,64 @@ test('npm run-script nonexistent-script with --if-present flag', function (t) {
})
})
+test('npm run-script env vars accessible', function (t) {
+ process.env.run_script_foo_var = 'run_script_test_foo_val'
+ common.npm(['run-script', 'env-vars'], {
+ cwd: pkg
+ }, function (err, code, stdout, stderr) {
+ t.ifError(err, 'ran run-script without crashing')
+ t.equal(code, 0, 'exited normally')
+ t.equal(stderr, '', 'no error output')
+ t.match(stdout,
+ new RegExp(process.env.run_script_foo_var),
+ 'script had env access')
+ t.end()
+ })
+})
+
+test('npm run-script package.json vars injected', function (t) {
+ common.npm(['run-script', 'package-env-vars'], {
+ cwd: pkg
+ }, function (err, code, stdout, stderr) {
+ t.ifError(err, 'ran run-script without crashing')
+ t.equal(code, 0, 'exited normally')
+ t.equal(stderr, '', 'no error output')
+ t.match(stdout,
+ new RegExp(fullyPopulated.run_script_foo_var),
+ 'script injected package.json value')
+ t.end()
+ })
+})
+
+test('npm run-script package.json vars injected with prefix', function (t) {
+ common.npm(['run-script', 'prefixed-package-env-vars'], {
+ cwd: pkg
+ }, function (err, code, stdout, stderr) {
+ t.ifError(err, 'ran run-script without crashing')
+ t.equal(code, 0, 'exited normally')
+ t.equal(stderr, '', 'no error output')
+ t.match(stdout,
+ new RegExp(fullyPopulated.run_script_foo_var),
+ 'script injected npm_package-prefixed package.json value')
+ t.end()
+ })
+})
+
+test('npm run-script env vars stripped npm-prefixed', function (t) {
+ process.env.npm_run_script_foo_var = 'run_script_test_foo_val'
+ common.npm(['run-script', 'npm-env-vars'], {
+ cwd: pkg
+ }, function (err, code, stdout, stderr) {
+ t.ifError(err, 'ran run-script without crashing')
+ t.equal(code, 0, 'exited normally')
+ t.equal(stderr, '', 'no error output')
+ t.notMatch(stdout,
+ new RegExp(process.env.npm_run_script_foo_var),
+ 'script stripped npm-prefixed env var')
+ t.end()
+ })
+})
+
test('npm run-script no-params (lifecycle only)', function (t) {
var expected = [
'Lifecycle scripts included in scripted:',
diff --git a/deps/npm/test/tap/shrinkwrap-scoped-auth.js b/deps/npm/test/tap/shrinkwrap-scoped-auth.js
index 8fe0d1e23e2816..63fd08cb07165f 100644
--- a/deps/npm/test/tap/shrinkwrap-scoped-auth.js
+++ b/deps/npm/test/tap/shrinkwrap-scoped-auth.js
@@ -50,7 +50,6 @@ test('authed npm install with shrinkwrapped scoped package', function (t) {
],
EXEC_OPTS,
function (err, code, stdout, stderr) {
- console.error(stderr)
t.ifError(err, 'test runner executed without error')
t.equal(code, 0, 'npm install exited OK')
t.notOk(stderr, 'no output on stderr')
diff --git a/deps/npm/test/tap/update-symlink.js b/deps/npm/test/tap/update-symlink.js
new file mode 100644
index 00000000000000..1447fde628a945
--- /dev/null
+++ b/deps/npm/test/tap/update-symlink.js
@@ -0,0 +1,91 @@
+var fs = require('graceful-fs')
+var path = require('path')
+var osenv = require('osenv')
+var mkdirp = require('mkdirp')
+var mr = require('npm-registry-mock')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+
+var pkg = path.resolve(__dirname, 'update-symlink')
+var originalLog
+
+var fakeRoot = path.join(__dirname, 'fakeRoot')
+var OPTS = {
+ env: {
+ 'npm_config_prefix': fakeRoot
+ }
+}
+
+var jsonLocal = {
+ name: 'my-local-package',
+ description: 'fixture',
+ version: '1.0.0',
+ dependencies: {
+ 'async': '*',
+ 'underscore': '*'
+ }
+}
+
+test('setup', function (t) {
+ cleanup()
+ originalLog = console.log
+ mkdirp.sync(pkg)
+ common.npm(['install', '-g', 'underscore@1.3.1'], OPTS, function (err, c, out) {
+ t.ifError(err, 'global install did not error')
+ process.chdir(pkg)
+ fs.writeFileSync(
+ path.join(pkg, 'package.json'),
+ JSON.stringify(jsonLocal, null, 2)
+ )
+ common.npm(['link', 'underscore'], OPTS, function (err, c, out) {
+ t.ifError(err, 'link did not error')
+ common.npm(['install', 'async@0.2.9'], OPTS, function (err, c, out) {
+ t.ifError(err, 'local install did not error')
+ common.npm(['ls'], OPTS, function (err, c, out, stderr) {
+ t.ifError(err)
+ t.equal(c, 0)
+ t.equal(stderr, '', 'got expected stderr')
+ t.has(out, /async@0.2.9/, 'installed ok')
+ t.has(out, /underscore@1.3.1/, 'creates local link ok')
+ t.end()
+ })
+ })
+ })
+ })
+})
+
+test('when update is called linked packages should be excluded', function (t) {
+ console.log = function () {}
+ mr({ port: common.port }, function (er, s) {
+ common.npm(['update'], OPTS, function (err, c, out, stderr) {
+ t.ifError(err)
+ t.has(out, /async@1.5.2/, 'updated ok')
+ t.doesNotHave(stderr, /ERR!/, 'no errors in stderr')
+ s.close()
+ t.end()
+ })
+ })
+})
+
+test('cleanup', function (t) {
+ common.npm(['rm', 'underscore', 'async'], OPTS, function (err, code) {
+ t.ifError(err, 'npm removed the linked package without error')
+ t.equal(code, 0, 'cleanup in local ok')
+ process.chdir(osenv.tmpdir())
+ common.npm(['rm', '-g', 'underscore'], OPTS, function (err, code) {
+ t.ifError(err, 'npm removed the global package without error')
+ t.equal(code, 0, 'cleanup in global ok')
+
+ console.log = originalLog
+ cleanup()
+ t.end()
+ })
+ })
+})
+
+function cleanup () {
+ rimraf.sync(pkg)
+ rimraf.sync(fakeRoot)
+}
diff --git a/deps/npm/test/tap/view.js b/deps/npm/test/tap/view.js
index f54fe93a18aa4a..8c5c901ab2381f 100644
--- a/deps/npm/test/tap/view.js
+++ b/deps/npm/test/tap/view.js
@@ -153,7 +153,7 @@ test('npm view .@', function (t) {
})
})
-test('npm view .@ --json', function (t) {
+test('npm view .@ version --json', function (t) {
process.chdir(t2dir)
mr({ port: common.port, plugin: plugin }, function (er, s) {
common.npm([
@@ -172,6 +172,58 @@ test('npm view .@ --json', function (t) {
})
})
+test('npm view . --json author name version', function (t) {
+ process.chdir(t2dir)
+ mr({ port: common.port, plugin: plugin }, function (er, s) {
+ common.npm([
+ 'view',
+ '.',
+ 'author',
+ 'name',
+ 'version',
+ '--json',
+ '--registry=' + common.registry
+ ], { cwd: t2dir }, function (err, code, stdout) {
+ var expected = JSON.stringify({
+ author: 'Evan Lucas ',
+ name: 'test-repo-url-https',
+ version: '0.0.1'
+ }, null, 2)
+ t.ifError(err, 'view command finished successfully')
+ t.equal(code, 0, 'exit ok')
+ t.equal(stdout.trim(), expected, 'should print ' + expected)
+ s.close()
+ t.end()
+ })
+ })
+})
+
+test('npm view .@ --json author name version', function (t) {
+ process.chdir(t2dir)
+ mr({ port: common.port, plugin: plugin }, function (er, s) {
+ common.npm([
+ 'view',
+ '.@0.0.0',
+ 'author',
+ 'name',
+ 'version',
+ '--json',
+ '--registry=' + common.registry
+ ], { cwd: t2dir }, function (err, code, stdout) {
+ var expected = JSON.stringify({
+ author: 'Evan Lucas ',
+ name: 'test-repo-url-https',
+ version: '0.0.0'
+ }, null, 2)
+ t.ifError(err, 'view command finished successfully')
+ t.equal(code, 0, 'exit ok')
+ t.equal(stdout.trim(), expected, 'should print ' + expected)
+ s.close()
+ t.end()
+ })
+ })
+})
+
test('npm view ', function (t) {
mr({ port: common.port, plugin: plugin }, function (er, s) {
common.npm([
diff --git a/deps/npm/test/update-test.sh b/deps/npm/test/update-test.sh
deleted file mode 100755
index f72c90dd98efc4..00000000000000
--- a/deps/npm/test/update-test.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-
-SELF_PATH="$0"
-if [ "${SELF_PATH:0:1}" != "." ] && [ "${SELF_PATH:0:1}" != "/" ]; then
- SELF_PATH=./"$SELF_PATH"
-fi
-SELF_PATH=$( cd -P -- "$(dirname -- "$SELF_PATH")" \
- && pwd -P \
- ) && SELF_PATH=$SELF_PATH/$(basename -- "$0")
-
-# resolve symlinks
-while [ -h "$SELF_PATH" ]; do
- DIR=$(dirname -- "$SELF_PATH")
- SYM=$(readlink -- "$SELF_PATH")
- SELF_PATH=$( cd -- "$DIR" \
- && cd -- $(dirname -- "$SYM") \
- && pwd \
- )/$(basename -- "$SYM")
-done
-DIR=$( dirname -- "$SELF_PATH" )
-
-export npm_config_root=$DIR/root
-export npm_config_binroot=$DIR/bin
-
-rm -rf $DIR/{root,bin}
-mkdir -p $DIR/root
-mkdir -p $DIR/bin
-npm ls installed 2>/dev/null | grep -v npm | awk '{print $1}' | xargs npm rm &>/dev/null
-npm install \
- base64@1.0.0 \
- eyes@0.1.1 \
- vows@0.2.5 \
- websocket-server@1.0.5 &>/dev/null
-npm install ./test/packages/blerg &>/dev/null
-npm install vows@0.3.0 &>/dev/null
-
-echo ""
-echo "##"
-echo "## starting update"
-echo "##"
-echo ""
-
-npm update
-
-echo ""
-echo "##"
-echo "## update done, all should be 'latest'"
-echo "##"
-echo ""
-
-list=$( npm ls installed remote 2>/dev/null )
-echo "$list"
-notlatest=$( echo "$list" | grep -v latest )
-if [ "$notlatest" != "" ]; then
- echo "Failed: not latest"
- echo $notlatest
-else
- echo "ok"
-fi