diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index a37a68bd7c96..c12eb8fbc2c6 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,3 +1,105 @@ +### v3.3.12 (2015-11-02): + +Hi, a little hot-fix release for a bug introduced in 3.3.11. The ENOENT fix +last week ([`f0e2088`](https://github.com/npm/npm/commit/f0e2088)) broke +upgrades of modules that have bundled dependencies (like `npm`, augh!) + +* [`aedf7cf`](https://github.com/npm/npm/commit/aedf7cf) + [#10192](//github.com/npm/npm/pull/10192) + If a bundled module is going to be replacing a module that's currently on + disk (for instance, when you upgrade a module that includes bundled + dependencies) we want to select the version from the bundle in preference + over the one that was there previously. + ([@iarna](https://github.com/iarna)) + +### v3.3.11 (2015-10-29): + +This is a dependency update week, so that means no PRs from our lovely +users. Look for those next week. As it happens, the dependencies updated +were just devdeps, so nothing for you all to worry about. + +But the bug fixes, oh geez, I tracked down some really long standing stuff +this week!! The headliner is those intermittent `ENOENT` errors that no one +could reproduce consistently? I think they're nailed! But also pretty +important, the bug where `hapi` would install w/ a dep missing? Squashed! + +#### EEEEEEENOENT + +* [`f0e2088`](https://github.com/npm/npm/commit/f0e2088) + [#10026](https://github.com/npm/npm/issues/10026) + Eliminate some, if not many, of the EONENT errors `npm@3` has seen over + the past few months. This was happening when npm would, in its own mind, + correct a bundled dependency, due to a `package.json` specifying an + incompatible version. Then, when npm extracted the bundled version, what + was on disk didn't match its mind and… well, when it tried to act on what + was in its mind, we got an `ENOENT` because it didn't actually exist on + disk. + ([@iarna](https://github.com/iarna)) + +#### PARTIAL SHRINKWRAPS, NO LONGER A BAD DAY + +* [`712fd9c`](https://github.com/npm/npm/commit/712fd9c) + [#10153](https://github.com/npm/npm/pull/10153) + Imagine that you have a module, let's call it `fun-time`, and it depends + on two dependencies, `need-fun@1` and `need-time`. Further, `need-time` + requires `need-fun@2`. So after install the logical tree will look like + this: + + ``` + fun-time + ├── need-fun@1 + └── need-time + └── need-fun@2 + ``` + + Now, the `fun-time` author also distributes a shrinkwrap, but it only includes + the `need-fun@1` in it. + + Resolving dependencies would look something like this: + + 1. Require `need-fun@1`: Use version from shrinkwrap (ignoring version) + 2. Require `need-time`: User version in package.json + 1. Require `need-fun@2`: Use version from shrinkwrap, which oh hey, is + already installed at the top level, so no further action is needed. + + Which results in this tree: + + ``` + fun-time + ├── need-fun@1 + └── need-time + ``` + + We're ignoring the version check on things specified in the shrinkwrap + so that you can override the version that will be installed. This is + because you may want to use a different version than is specified + by your dependencies' dependencies' `package.json` files. + + To fix this, we now only allow overrides of a dependency version when + that dependency is a child (in the tree) of the thing that requires it. + This means that when we're looking for `need-fun@2` we'll see `need-fun@1` + and reject it because, although it's from a shrinkwrap, it's parent is + `fun-time` and the package doing the requiring is `need-time`. + + ([@iarna](https://github.com/iarna)) + +#### STRING `package.bin` AND NON-NPMJS REGISTRIES + +* [`3de1463`](https://github.com/npm/npm/commit/3de1463) + [#9187](https://github.com/npm/npm/issues/9187) + If you were using a module with the `bin` field in your `package.json` set + to a string on a non-npmjs registry then npm would crash, due to the our + expectation that the `bin` field would be an object. We now pass all + `package.json` data through a routine that normalizes the format, + including the `bin` field. (This is the same routine that your + `package.json` is passed through when read off of disk or sent to the + registry for publication.) Doing this also ensures that older modules on + npm's own registry will be treated exactly the same as new ones. (In the + past we weren't always super careful about scrubbing `package.json` data + on publish. And even when we were, those rules have subtly changed over + time.) + ([@iarna](https://github.com/iarna)) + ### v3.3.10 (2015-10-22): Hey you all! Welcome to a busy bug fix and PR week. We've got changes diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html index e5c8288d6bb2..7d191393d4cc 100644 --- a/deps/npm/html/doc/README.html +++ b/deps/npm/html/doc/README.html @@ -140,7 +140,7 @@
If you have a complaint about a package in the public npm registry, and cannot resolve it with the package owner, please email -support@npmjs.com and explain the situation.
+support@npmjs.com and explain the situation.Any data published to The npm Registry (including user account information) may be removed or modified at the sole discretion of the npm server administrators.
@@ -183,5 +183,5 @@npm ls promzard in npm's source tree will show:
-npm@3.3.10 /path/to/npm
+npm@3.3.12 /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 3f2962a73389..69513a8d7bc1 100644
--- a/deps/npm/html/doc/cli/npm-outdated.html
+++ b/deps/npm/html/doc/cli/npm-outdated.html
@@ -67,5 +67,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html
index 896c36ef3fdc..99c485c7d9ee 100644
--- a/deps/npm/html/doc/cli/npm-owner.html
+++ b/deps/npm/html/doc/cli/npm-owner.html
@@ -49,5 +49,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html
index 33866136f16b..b35b2c40f885 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 1bdcbae66000..c5a8fb663be6 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 f011cd8cdede..9111d20c76f9 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 bea2e1dcb828..43010bc3c243 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 6111db07add5..c2d8b0815aa0 100644
--- a/deps/npm/html/doc/cli/npm-publish.html
+++ b/deps/npm/html/doc/cli/npm-publish.html
@@ -68,5 +68,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html
index c27b9386ab5c..9fdabf574788 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 b2b723baf08b..bf94fde6a53b 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 05763c00ede1..eb7bf47c5af7 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 293f363ff1c3..eaf93c0ac61c 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 9aaf6d9282a2..487c086adc72 100644
--- a/deps/npm/html/doc/cli/npm-run-script.html
+++ b/deps/npm/html/doc/cli/npm-run-script.html
@@ -58,5 +58,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html
index 3aaabac7efef..6c31f1b60c19 100644
--- a/deps/npm/html/doc/cli/npm-search.html
+++ b/deps/npm/html/doc/cli/npm-search.html
@@ -49,5 +49,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html
index 80d619900cc7..ab72eb0d71a5 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 912b5c9c9219..be7f542964a7 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 d10998a7bbdd..eac253ff8ecd 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 67541cf105ab..410364f5fa14 100644
--- a/deps/npm/html/doc/cli/npm-start.html
+++ b/deps/npm/html/doc/cli/npm-start.html
@@ -34,5 +34,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html
index 272b1671ae91..2c99d6646559 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 a1a8fae758f1..1bbecd6c694b 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 be30e097d476..dab0a0e1d129 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 6b14474fe31f..206de736c581 100644
--- a/deps/npm/html/doc/cli/npm-test.html
+++ b/deps/npm/html/doc/cli/npm-test.html
@@ -37,5 +37,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html
index 3d27d4c34446..93fe4810f2a8 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 cdc95a6d8857..da50613ed6c6 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 9b943b8a9440..fe4e3c178f21 100644
--- a/deps/npm/html/doc/cli/npm-update.html
+++ b/deps/npm/html/doc/cli/npm-update.html
@@ -120,5 +120,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html
index df22f0ac08b1..bc3cf3b5d642 100644
--- a/deps/npm/html/doc/cli/npm-version.html
+++ b/deps/npm/html/doc/cli/npm-version.html
@@ -99,5 +99,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html
index a39eb98aa0f7..965b3504e262 100644
--- a/deps/npm/html/doc/cli/npm-view.html
+++ b/deps/npm/html/doc/cli/npm-view.html
@@ -83,5 +83,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html
index 4461b9e5f97c..1b954c864b7b 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 56647fa02911..b43ccda47f7d 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.3.10
+3.3.12
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
@@ -110,7 +110,7 @@
CONTRIBUTIONS
the issues list or ask on the mailing list.
BUGS
When you find issues, please report them:
@@ -118,7 +118,7 @@ BUGS
web:
https://github.com/npm/npm/issues
email:
-npm-@googlegroups.com
+npm-@googlegroups.com
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 +128,7 @@ AUTHOR
Isaac Z. Schlueter ::
isaacs ::
@izs ::
-i@izs.me
+i@izs.me
SEE ALSO
- npm-help(1)
@@ -154,5 +154,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html
index b6573644add3..a4e67332769d 100644
--- a/deps/npm/html/doc/files/npm-folders.html
+++ b/deps/npm/html/doc/files/npm-folders.html
@@ -184,5 +184,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html
index b6573644add3..a4e67332769d 100644
--- a/deps/npm/html/doc/files/npm-global.html
+++ b/deps/npm/html/doc/files/npm-global.html
@@ -184,5 +184,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html
index b901f73b494d..92d14ba6c56b 100644
--- a/deps/npm/html/doc/files/npm-json.html
+++ b/deps/npm/html/doc/files/npm-json.html
@@ -559,5 +559,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html
index 998d5fd7dd1b..dc50a18c8174 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 b901f73b494d..92d14ba6c56b 100644
--- a/deps/npm/html/doc/files/package.json.html
+++ b/deps/npm/html/doc/files/package.json.html
@@ -559,5 +559,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html
index 9c48c201830f..36fcbe74c35f 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 5c0b11b268b8..757272863d74 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 c9be4343205b..74b3c7bfc65c 100644
--- a/deps/npm/html/doc/misc/npm-config.html
+++ b/deps/npm/html/doc/misc/npm-config.html
@@ -829,5 +829,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html
index 937665692508..3da7d9162186 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 16683231e1f6..0962b39b5a99 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-faq.html b/deps/npm/html/doc/misc/npm-faq.html
index fa5ec1cfc8ff..fa0cc22eff9c 100644
--- a/deps/npm/html/doc/misc/npm-faq.html
+++ b/deps/npm/html/doc/misc/npm-faq.html
@@ -237,7 +237,7 @@ I get ECONNREFUSED a lot. What'
To check if the registry is down, open up
https://registry.npmjs.org/ in a web browser. This will also tell
you if you are just unable to access the internet for some reason.
-If the registry IS down, let us know by emailing support@npmjs.com
+
If the registry IS down, let us know by emailing support@npmjs.com
or posting an issue at https://github.com/npm/npm/issues. If it's
down for the world (and not just on your local network) then we're
probably already being pinged about it.
@@ -308,5 +308,5 @@ SEE ALSO
-
+
diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html
new file mode 100644
index 000000000000..ae0950efd7eb
--- /dev/null
+++ b/deps/npm/html/doc/misc/npm-index.html
@@ -0,0 +1,165 @@
+
+
+ npm-index
+
+
+
+
+
+
+
+
+npm-index
Index of all npm documentation
+README
+a JavaScript package manager
+Command Line Documentation
+Using npm on the command line
+npm(1)
+javascript package manager
+npm-access(1)
+Set access level on published packages
+npm-adduser(1)
+Add a registry user account
+npm-bin(1)
+Display npm bin folder
+npm-bugs(1)
+Bugs for a package in a web browser maybe
+npm-build(1)
+Build a package
+npm-bundle(1)
+REMOVED
+npm-cache(1)
+Manipulates packages cache
+npm-completion(1)
+Tab Completion for npm
+npm-config(1)
+Manage the npm configuration files
+npm-dedupe(1)
+Reduce duplication
+npm-deprecate(1)
+Deprecate a version of a package
+npm-dist-tag(1)
+Modify package distribution tags
+npm-docs(1)
+Docs for a package in a web browser maybe
+npm-edit(1)
+Edit an installed package
+npm-explore(1)
+Browse an installed package
+npm-help-search(1)
+Search npm help documentation
+npm-help(1)
+Get help on npm
+npm-init(1)
+Interactively create a package.json file
+npm-install(1)
+Install a package
+npm-link(1)
+Symlink a package folder
+npm-logout(1)
+Log out of the registry
+npm-ls(1)
+List installed packages
+npm-outdated(1)
+Check for outdated packages
+npm-owner(1)
+Manage package owners
+npm-pack(1)
+Create a tarball from a package
+npm-ping(1)
+Ping npm registry
+npm-prefix(1)
+Display prefix
+npm-prune(1)
+Remove extraneous packages
+npm-publish(1)
+Publish a package
+npm-rebuild(1)
+Rebuild a package
+npm-repo(1)
+Open package repository page in the browser
+npm-restart(1)
+Restart a package
+npm-root(1)
+Display npm root
+npm-run-script(1)
+Run arbitrary package scripts
+npm-search(1)
+Search for packages
+npm-shrinkwrap(1)
+Lock down dependency versions
+npm-star(1)
+Mark your favorite packages
+npm-stars(1)
+View packages marked as favorites
+npm-start(1)
+Start a package
+npm-stop(1)
+Stop a package
+npm-tag(1)
+Tag a published version
+npm-team(1)
+Manage organization teams and team memberships
+npm-test(1)
+Test a package
+npm-uninstall(1)
+Remove a package
+npm-unpublish(1)
+Remove a package from the registry
+npm-update(1)
+Update a package
+npm-version(1)
+Bump a package version
+npm-view(1)
+View registry info
+npm-whoami(1)
+Display npm username
+API Documentation
+Using npm in your Node programs
+Files
+File system structures npm uses
+npm-folders(5)
+Folder Structures Used by npm
+npmrc(5)
+The npm config files
+package.json(5)
+Specifics of npm's package.json handling
+Misc
+Various other bits and bobs
+npm-coding-style(7)
+npm's "funny" coding style
+npm-config(7)
+More than you probably want to know about npm configuration
+npm-developers(7)
+Developer Guide
+npm-disputes(7)
+Handling Module Name Disputes
+npm-faq(7)
+Frequently Asked Questions
+npm-index(7)
+Index of all npm documentation
+npm-orgs(7)
+Working with Teams & Orgs
+npm-registry(7)
+The JavaScript Package Registry
+npm-scope(7)
+Scoped packages
+npm-scripts(7)
+How npm handles the "scripts" field
+removing-npm(7)
+Cleaning the Slate
+semver(7)
+The semantic versioner for npm
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/deps/npm/html/doc/misc/npm-orgs.html b/deps/npm/html/doc/misc/npm-orgs.html
index 286435bafe92..a42a4863f814 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 3c14be6e209f..9068310aef20 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 d5bab8230926..2aac1b177dd8 100644
--- a/deps/npm/html/doc/misc/npm-scope.html
+++ b/deps/npm/html/doc/misc/npm-scope.html
@@ -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 2fd860cf6352..ed50c1caf8a9 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 a1c7885b8162..90e345a4a299 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 f87b8e0a0e00..c73b0534f681 100644
--- a/deps/npm/html/doc/misc/semver.html
+++ b/deps/npm/html/doc/misc/semver.html
@@ -282,5 +282,5 @@ Ranges
-
+
diff --git a/deps/npm/lib/fetch-package-metadata.js b/deps/npm/lib/fetch-package-metadata.js
index 103ed2fc6af2..9e62cacd9141 100644
--- a/deps/npm/lib/fetch-package-metadata.js
+++ b/deps/npm/lib/fetch-package-metadata.js
@@ -15,6 +15,7 @@ var rimraf = require('rimraf')
var clone = require('lodash.clonedeep')
var validate = require('aproba')
var unpipe = require('unpipe')
+var normalizePackageData = require('normalize-package-data')
var npm = require('./npm.js')
var mapToRegistry = require('./utils/map-to-registry.js')
@@ -68,6 +69,15 @@ module.exports = function fetchPackageMetadata (spec, where, tracker, done) {
pkg._where = where
if (!pkg._args) pkg._args = []
pkg._args.push([pkg._spec, pkg._where])
+ // non-npm registries can and will return unnormalized data, plus
+ // even the npm registry may have package data normalized with older
+ // normalization rules. This ensures we get package data in a consistent,
+ // stable format.
+ try {
+ normalizePackageData(pkg)
+ } catch (ex) {
+ // don't care
+ }
}
logAndFinish(er, pkg)
}
diff --git a/deps/npm/lib/install/action/finalize.js b/deps/npm/lib/install/action/finalize.js
index 62e21cc47db8..08e9c149c463 100644
--- a/deps/npm/lib/install/action/finalize.js
+++ b/deps/npm/lib/install/action/finalize.js
@@ -4,7 +4,23 @@ var rimraf = require('rimraf')
var fs = require('graceful-fs')
var mkdirp = require('mkdirp')
var asyncMap = require('slide').asyncMap
-var andIgnoreErrors = require('../and-ignore-errors.js')
+var iferr = require('iferr')
+
+function getTree (pkg) {
+ while (pkg.parent) pkg = pkg.parent
+ return pkg
+}
+
+function warn (pkg, code, msg) {
+ var tree = getTree(pkg)
+ var err = new Error(msg)
+ err.code = code
+ tree.warnings.push(err)
+}
+
+function pathToShortname (modpath) {
+ return modpath.replace(/node_modules[/]/g, '').replace(/[/]/g, ' > ')
+}
module.exports = function (top, buildpath, pkg, log, next) {
log.silly('finalize', pkg.path)
@@ -59,15 +75,26 @@ module.exports = function (top, buildpath, pkg, log, next) {
function moveModules (mkdirEr, files) {
if (mkdirEr) return next(mkdirEr)
asyncMap(files, function (file, done) {
+ // `from` wins over `to`, because if `from` was there it's because the
+ // module installer wanted it to be there. By contrast, `to` is just
+ // whatever was bundled in this module. And the intentions of npm's
+ // installer should always beat out random module contents.
var from = path.join(delpath, 'node_modules', file)
var to = path.join(pkg.path, 'node_modules', file)
- // we ignore errors here, because they can legitimately happen, for instance,
- // bundled modules will be in both node_modules folders
- fs.rename(from, to, andIgnoreErrors(done))
+ fs.stat(to, function (er, info) {
+ if (er) return fs.rename(from, to, done)
+
+ var shortname = pathToShortname(path.relative(getTree(pkg).path, to))
+ warn(pkg, 'EBUNDLEOVERRIDE', 'Replacing bundled ' + shortname + ' with new installed version')
+ rimraf(to, iferr(done, function () {
+ fs.rename(from, to, done)
+ }))
+ })
}, cleanup)
}
- function cleanup () {
+ function cleanup (moveEr) {
+ if (moveEr) return next(moveEr)
rimraf(delpath, afterCleanup)
}
diff --git a/deps/npm/lib/install/deps.js b/deps/npm/lib/install/deps.js
index d2486419fc14..3afe8af012f7 100644
--- a/deps/npm/lib/install/deps.js
+++ b/deps/npm/lib/install/deps.js
@@ -38,11 +38,11 @@ function isDep (tree, child) {
var name = moduleName(child)
var requested = isProdDep(tree, name)
var matches
- if (requested) matches = doesChildVersionMatch(child, requested)
+ if (requested) matches = doesChildVersionMatch(child, requested, tree)
if (matches) return matches
requested = isDevDep(tree, name)
if (!requested) return
- return doesChildVersionMatch(child, requested)
+ return doesChildVersionMatch(child, requested, tree)
}
function isDevDep (tree, name) {
@@ -61,10 +61,10 @@ function isProdDep (tree, name) {
var registryTypes = { range: true, version: true }
-function doesChildVersionMatch (child, requested) {
+function doesChildVersionMatch (child, requested, requestor) {
// we always consider deps provided by a shrinkwrap as "correct" or else
// we'll subvert them if they're intentionally "invalid"
- if (child.fromShrinkwrap) return true
+ if (child.parent === requestor && child.fromShrinkwrap) return true
// ranges of * ALWAYS count as a match, because when downloading we allow
// prereleases to match * if there are ONLY prereleases
if (requested.spec === '*') return true
@@ -515,13 +515,14 @@ function validateAllPeerDeps (tree, onInvalid, seen) {
// Determine if a module requirement is already met by the tree at or above
// our current location in the tree.
-var findRequirement = exports.findRequirement = function (tree, name, requested) {
- validate('OSO', arguments)
+var findRequirement = exports.findRequirement = function (tree, name, requested, requestor) {
+ validate('OSO', [tree, name, requested])
+ if (!requestor) requestor = tree
var nameMatch = function (child) {
return moduleName(child) === name && child.parent && !child.removed
}
var versionMatch = function (child) {
- return doesChildVersionMatch(child, requested)
+ return doesChildVersionMatch(child, requested, requestor)
}
if (nameMatch(tree)) {
// this *is* the module, but it doesn't match the version, so a
@@ -538,7 +539,7 @@ var findRequirement = exports.findRequirement = function (tree, name, requested)
return null
}
if (!tree.parent) return null
- return findRequirement(tree.parent, name, requested)
+ return findRequirement(tree.parent, name, requested, requestor)
}
// Find the highest level in the tree that we can install this module in.
@@ -554,10 +555,11 @@ var earliestInstallable = exports.earliestInstallable = function (requiredBy, tr
// If any of the children of this tree have conflicting
// binaries then we need to decline to install this package here.
- var binaryMatches = tree.children.some(function (child) {
+ var binaryMatches = typeof pkg.bin === 'object' && tree.children.some(function (child) {
if (child.removed) return false
- return Object.keys(child.package.bin || {}).some(function (bin) {
- return pkg.bin && pkg.bin[bin]
+ if (typeof child.package.bin !== 'object') return false
+ return Object.keys(child.package.bin).some(function (bin) {
+ return pkg.bin[bin]
})
})
if (binaryMatches) return null
diff --git a/deps/npm/lib/install/diff-trees.js b/deps/npm/lib/install/diff-trees.js
index 9e9d6c448600..59567bf3193b 100644
--- a/deps/npm/lib/install/diff-trees.js
+++ b/deps/npm/lib/install/diff-trees.js
@@ -132,6 +132,7 @@ function diffTrees (oldTree, newTree) {
requiredByAllLinked(pkg)
if (pkg.fromBundle) {
if (npm.config.get('rebuild-bundle')) differences.push(['rebuild', pkg])
+ if (pkg.oldPkg) differences.push(['remove', pkg])
} else if (pkg.oldPkg) {
if (!pkg.directlyRequested && pkgAreEquiv(pkg.oldPkg.package, pkg.package)) return
if (!pkg.isInLink && (isLink(pkg.oldPkg) || isLink(pkg))) {
diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1
index d3a7274bd8cd..ea9e7b1c078d 100644
--- a/deps/npm/man/man1/npm-README.1
+++ b/deps/npm/man/man1/npm-README.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "October 2015" "" ""
+.TH "NPM" "1" "November 2015" "" ""
.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 925f3a139985..f1b8bc0e316d 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" "October 2015" "" ""
+.TH "NPM\-ACCESS" "1" "November 2015" "" ""
.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 bea5f3722cff..f96eae96bce3 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" "October 2015" "" ""
+.TH "NPM\-ADDUSER" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-adduser\fR \- Add a registry user account
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1
index c629415eb883..42b2b17d140f 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" "October 2015" "" ""
+.TH "NPM\-BIN" "1" "November 2015" "" ""
.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 9f4626a411cf..0d0bf21688ab 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" "October 2015" "" ""
+.TH "NPM\-BUGS" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1
index 7528f1a21cfe..1bac97e926e4 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" "October 2015" "" ""
+.TH "NPM\-BUILD" "1" "November 2015" "" ""
.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 0e6d0817bfda..fa54e083415a 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" "October 2015" "" ""
+.TH "NPM\-BUNDLE" "1" "November 2015" "" ""
.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 ff3e7c8058b9..c4bca767c449 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" "October 2015" "" ""
+.TH "NPM\-CACHE" "1" "November 2015" "" ""
.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 0f3b1abf2e76..ba8d7dd802fe 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" "October 2015" "" ""
+.TH "NPM\-COMPLETION" "1" "November 2015" "" ""
.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 d6369755a113..f3030154303c 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" "October 2015" "" ""
+.TH "NPM\-CONFIG" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1
index 0c965e957a9b..145e27dd4910 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" "October 2015" "" ""
+.TH "NPM\-DEDUPE" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-dedupe\fR \- Reduce duplication
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1
index df8c342953c8..a3992ac1bb64 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" "October 2015" "" ""
+.TH "NPM\-DEPRECATE" "1" "November 2015" "" ""
.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 9d7742d81084..8b30e986a4f7 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" "October 2015" "" ""
+.TH "NPM\-DIST\-TAG" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-dist-tag\fR \- Modify package distribution tags
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1
index 74b258d7373b..d6690800c465 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" "October 2015" "" ""
+.TH "NPM\-DOCS" "1" "November 2015" "" ""
.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 8cb4ea635e80..dd757fe87817 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" "October 2015" "" ""
+.TH "NPM\-EDIT" "1" "November 2015" "" ""
.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 4b1471748110..797c84d737bd 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" "October 2015" "" ""
+.TH "NPM\-EXPLORE" "1" "November 2015" "" ""
.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 8d6f8e42e66b..88654a1da3ad 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" "October 2015" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search npm help documentation
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1
index 2f6d09c66553..8022867ef46a 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" "October 2015" "" ""
+.TH "NPM\-HELP" "1" "November 2015" "" ""
.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 56da738cb8d5..8c6bf0397482 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" "October 2015" "" ""
+.TH "NPM\-INIT" "1" "November 2015" "" ""
.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
new file mode 100644
index 000000000000..e2edecfc03a3
--- /dev/null
+++ b/deps/npm/man/man1/npm-install-test.1
@@ -0,0 +1,32 @@
+.TH "NPM" "" "November 2015" "" ""
+.SH "NAME"
+\fBnpm\fR
+.SH SYNOPSIS
+.P
+.RS 2
+.nf
+npm install\-test (with no args, in package dir)
+npm install\-test [<@scope>/]
+npm install\-test [<@scope>/]@
+npm install\-test [<@scope>/]@
+npm install\-test [<@scope>/]@
+npm install\-test
+npm install\-test
+npm install\-test
+
+alias: npm it
+common options: [\-\-save|\-\-save\-dev|\-\-save\-optional] [\-\-save\-exact] [\-\-dry\-run]
+.fi
+.RE
+.SH DESCRIPTION
+.P
+This command runs an \fBnpm install\fP followed immediately by an \fBnpm test\fP\|\. It
+takes exactly the same arguments as \fBnpm install\fP\|\.
+.SH SEE ALSO
+.RS 0
+.IP \(bu 2
+npm help install
+.IP \(bu 2
+npm help test
+
+.RE
diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1
index 536b9f3c66b4..9219b7a024ce 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" "October 2015" "" ""
+.TH "NPM\-INSTALL" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-install\fR \- Install a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1
index 78c3b75a8e9c..9d0ea8f47c5f 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" "October 2015" "" ""
+.TH "NPM\-LINK" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1
index d7a840c5dd36..c194188ad64b 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" "October 2015" "" ""
+.TH "NPM\-LOGOUT" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-logout\fR \- Log out of the registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1
index 20bf3f57597b..10dea4438642 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" "October 2015" "" ""
+.TH "NPM\-LS" "1" "November 2015" "" ""
.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.3.10 /path/to/npm
+npm@3.3.12 /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 493e7a9f2140..b7ba130cb5e4 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" "October 2015" "" ""
+.TH "NPM\-OUTDATED" "1" "November 2015" "" ""
.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 009121d4eb59..1ce148d3fade 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" "October 2015" "" ""
+.TH "NPM\-OWNER" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1
index 0ece00cf1f28..9bb591cdfe82 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" "October 2015" "" ""
+.TH "NPM\-PACK" "1" "November 2015" "" ""
.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 af69ba3a7842..4d2b9a78bf0f 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" "October 2015" "" ""
+.TH "NPM\-PING" "1" "November 2015" "" ""
.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 9ce37848d97d..c6ea5f6fdfa7 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" "October 2015" "" ""
+.TH "NPM\-PREFIX" "1" "November 2015" "" ""
.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 051acaab50a1..22c831d338dc 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" "October 2015" "" ""
+.TH "NPM\-PRUNE" "1" "November 2015" "" ""
.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 4421c8f45dbc..cd249e4fe926 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" "October 2015" "" ""
+.TH "NPM\-PUBLISH" "1" "November 2015" "" ""
.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 03d16889aa54..e850fa647fcf 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" "October 2015" "" ""
+.TH "NPM\-REBUILD" "1" "November 2015" "" ""
.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 fe4418e7e5db..7ee7d95f8f78 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" "October 2015" "" ""
+.TH "NPM\-REPO" "1" "November 2015" "" ""
.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 31e61af29de8..0bc7541ccf80 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" "October 2015" "" ""
+.TH "NPM\-RESTART" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-rm.1 b/deps/npm/man/man1/npm-rm.1
new file mode 100644
index 000000000000..ec0271980a4b
--- /dev/null
+++ b/deps/npm/man/man1/npm-rm.1
@@ -0,0 +1,33 @@
+.TH "NPM\-RM" "1" "October 2015" "" ""
+.SH "NAME"
+\fBnpm-rm\fR \- Remove a package
+.SH SYNOPSIS
+.P
+.RS 2
+.nf
+npm rm
+npm r
+npm uninstall
+npm un
+.fi
+.RE
+.SH DESCRIPTION
+.P
+This uninstalls a package, completely removing everything npm installed
+on its behalf\.
+.SH SEE ALSO
+.RS 0
+.IP \(bu 2
+npm help prune
+.IP \(bu 2
+npm help install
+.IP \(bu 2
+npm help 5 folders
+.IP \(bu 2
+npm help config
+.IP \(bu 2
+npm help 7 config
+.IP \(bu 2
+npm help 5 npmrc
+
+.RE
diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1
index 6c42d89965e4..bacb6ffb7de9 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" "October 2015" "" ""
+.TH "NPM\-ROOT" "1" "November 2015" "" ""
.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 08a675a31117..ded6145a1f34 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" "October 2015" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "November 2015" "" ""
.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 87ad71ad5fd0..6307a345aa3a 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" "October 2015" "" ""
+.TH "NPM\-SEARCH" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1
index d8a6049dbd4e..39784dfe6f63 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" "October 2015" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "November 2015" "" ""
.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 fabbfba56e29..e12124fd5d3d 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" "October 2015" "" ""
+.TH "NPM\-STAR" "1" "November 2015" "" ""
.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 f8c7b21410f5..c80a0f8a3ea5 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" "October 2015" "" ""
+.TH "NPM\-STARS" "1" "November 2015" "" ""
.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 eb5f7b8aeac5..9f027a9ffb9a 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" "October 2015" "" ""
+.TH "NPM\-START" "1" "November 2015" "" ""
.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 8e2510625533..044bbc066ac9 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" "October 2015" "" ""
+.TH "NPM\-STOP" "1" "November 2015" "" ""
.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 4d63d7168da6..e70976e80077 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" "October 2015" "" ""
+.TH "NPM\-TAG" "1" "November 2015" "" ""
.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 0e6efae707d7..69f03d6df160 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" "October 2015" "" ""
+.TH "NPM\-TEAM" "1" "November 2015" "" ""
.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 08720089a620..c36e7f42adee 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" "October 2015" "" ""
+.TH "NPM\-TEST" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1
index 0a6e0640fb4e..6bac5b55d0bb 100644
--- a/deps/npm/man/man1/npm-uninstall.1
+++ b/deps/npm/man/man1/npm-uninstall.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RM" "1" "October 2015" "" ""
+.TH "NPM\-RM" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-rm\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 9d3236baa299..daa61e3a293e 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" "October 2015" "" ""
+.TH "NPM\-UNPUBLISH" "1" "November 2015" "" ""
.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 b700378245c1..62b3adc4afcd 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" "October 2015" "" ""
+.TH "NPM\-UPDATE" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1
index abd22a5e5fd7..f799cd911158 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" "October 2015" "" ""
+.TH "NPM\-VERSION" "1" "November 2015" "" ""
.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 75caecf28e25..9e3e44ff538a 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" "October 2015" "" ""
+.TH "NPM\-VIEW" "1" "November 2015" "" ""
.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 1bb605e285cf..d356fe402373 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" "October 2015" "" ""
+.TH "NPM\-WHOAMI" "1" "November 2015" "" ""
.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 c2df4eb71981..16c974e0edf9 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "October 2015" "" ""
+.TH "NPM" "1" "November 2015" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SH SYNOPSIS
@@ -10,7 +10,7 @@ npm [args]
.RE
.SH VERSION
.P
-3.3.10
+3.3.12
.SH DESCRIPTION
.P
npm is the package manager for the Node JavaScript platform\. It puts
diff --git a/deps/npm/man/man5/npm-folders.5 b/deps/npm/man/man5/npm-folders.5
index bdc08bb2db50..e52857ec548c 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" "October 2015" "" ""
+.TH "NPM\-FOLDERS" "5" "November 2015" "" ""
.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 bdc08bb2db50..e52857ec548c 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" "October 2015" "" ""
+.TH "NPM\-FOLDERS" "5" "November 2015" "" ""
.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 e110187fce73..ed8bd82a9fdb 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" "October 2015" "" ""
+.TH "PACKAGE\.JSON" "5" "November 2015" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5
index 3c00980f3ac3..ed6ee372d336 100644
--- a/deps/npm/man/man5/npmrc.5
+++ b/deps/npm/man/man5/npmrc.5
@@ -1,4 +1,4 @@
-.TH "NPMRC" "5" "October 2015" "" ""
+.TH "NPMRC" "5" "November 2015" "" ""
.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 e110187fce73..ed8bd82a9fdb 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" "October 2015" "" ""
+.TH "PACKAGE\.JSON" "5" "November 2015" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-coding-style.7 b/deps/npm/man/man7/npm-coding-style.7
index b9bf4dbcfb58..839806a670a4 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" "October 2015" "" ""
+.TH "NPM\-CODING\-STYLE" "7" "November 2015" "" ""
.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 bff35612e7d1..c0d3b2c1373b 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" "October 2015" "" ""
+.TH "NPM\-CONFIG" "7" "November 2015" "" ""
.SH "NAME"
\fBnpm-config\fR \- More than you probably want to know about npm configuration
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-developers.7 b/deps/npm/man/man7/npm-developers.7
index 80c6e6e8aba3..703fac404cad 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" "October 2015" "" ""
+.TH "NPM\-DEVELOPERS" "7" "November 2015" "" ""
.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 6deead895a42..ae17206bcc6d 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" "October 2015" "" ""
+.TH "NPM\-DISPUTES" "7" "November 2015" "" ""
.SH "NAME"
\fBnpm-disputes\fR \- Handling Module Name Disputes
.SH SYNOPSIS
diff --git a/deps/npm/man/man7/npm-faq.7 b/deps/npm/man/man7/npm-faq.7
index f41fdf621d46..98f7f0ac0451 100644
--- a/deps/npm/man/man7/npm-faq.7
+++ b/deps/npm/man/man7/npm-faq.7
@@ -1,4 +1,4 @@
-.TH "NPM\-FAQ" "7" "October 2015" "" ""
+.TH "NPM\-FAQ" "7" "November 2015" "" ""
.SH "NAME"
\fBnpm-faq\fR \- Frequently Asked Questions
.SH Where can I find these docs in HTML?
diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7
index b9e193195f8c..c147e7132356 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" "October 2015" "" ""
+.TH "NPM\-INDEX" "7" "November 2015" "" ""
.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 1167bcdbed97..503a6f35b007 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" "October 2015" "" ""
+.TH "NPM\-ORGS" "7" "November 2015" "" ""
.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 5cfd79c4a7b6..3013d956234c 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" "October 2015" "" ""
+.TH "NPM\-REGISTRY" "7" "November 2015" "" ""
.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 2a166acdbacf..deadca7ba3a2 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" "October 2015" "" ""
+.TH "NPM\-SCOPE" "7" "November 2015" "" ""
.SH "NAME"
\fBnpm-scope\fR \- Scoped packages
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-scripts.7 b/deps/npm/man/man7/npm-scripts.7
index 3cb4e75cd1a8..a2fe4b952d08 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" "October 2015" "" ""
+.TH "NPM\-SCRIPTS" "7" "November 2015" "" ""
.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 f0324607cf2f..e26cab123819 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" "October 2015" "" ""
+.TH "NPM\-REMOVAL" "1" "November 2015" "" ""
.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 db93d201df8c..be2e6f0779c6 100644
--- a/deps/npm/man/man7/semver.7
+++ b/deps/npm/man/man7/semver.7
@@ -1,4 +1,4 @@
-.TH "SEMVER" "7" "October 2015" "" ""
+.TH "SEMVER" "7" "November 2015" "" ""
.SH "NAME"
\fBsemver\fR \- The semantic versioner for npm
.SH Usage
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 41374571cd78..c797942c25f9 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "3.3.10",
+ "version": "3.3.12",
"name": "npm",
"description": "a package manager for JavaScript",
"keywords": [
@@ -187,14 +187,14 @@
"deep-equal": "~1.0.1",
"marked": "~0.3.5",
"marked-man": "~0.1.5",
- "nock": "~2.15.0",
+ "nock": "~2.17.0",
"npm-registry-couchapp": "~2.6.11",
"npm-registry-mock": "~1.0.1",
"readable-stream": "~2.0.2",
"require-inject": "~1.2.1",
"sprintf-js": "~1.0.3",
"standard": "~5.3.1",
- "tap": "~2.1.1"
+ "tap": "~2.2.0"
},
"scripts": {
"dumpconf": "env | grep npm | sort | uniq",
diff --git a/deps/npm/test/tap/bugs.js b/deps/npm/test/tap/bugs.js
index dd2c87e2c6b1..090c2b9cb21a 100644
--- a/deps/npm/test/tap/bugs.js
+++ b/deps/npm/test/tap/bugs.js
@@ -120,7 +120,7 @@ test('npm bugs test-repo-url-http - non-github (http://)', function (t) {
})
})
-test('npm bugs test-repo-url-https - non-github (https://)', function (t) {
+test('npm bugs test-repo-url-https - gitlab (https://)', function (t) {
mr({ port: common.port }, function (er, s) {
common.npm(
[
@@ -136,7 +136,7 @@ test('npm bugs test-repo-url-https - non-github (https://)', function (t) {
t.equal(code, 0, 'exit ok')
var res = fs.readFileSync(outFile, 'ascii')
s.close()
- t.equal(res, 'https://www.npmjs.org/package/test-repo-url-https\n')
+ t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-https/issues\n')
rimraf.sync(outFile)
t.end()
}
@@ -144,7 +144,7 @@ test('npm bugs test-repo-url-https - non-github (https://)', function (t) {
})
})
-test('npm bugs test-repo-url-ssh - non-github (ssh://)', function (t) {
+test('npm bugs test-repo-url-ssh - gitlab (ssh://)', function (t) {
mr({ port: common.port }, function (er, s) {
common.npm(
[
@@ -160,7 +160,7 @@ test('npm bugs test-repo-url-ssh - non-github (ssh://)', function (t) {
t.equal(code, 0, 'exit ok')
var res = fs.readFileSync(outFile, 'ascii')
s.close()
- t.equal(res, 'https://www.npmjs.org/package/test-repo-url-ssh\n')
+ t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-ssh/issues\n')
rimraf.sync(outFile)
t.end()
}
diff --git a/deps/npm/test/tap/override-bundled.js b/deps/npm/test/tap/override-bundled.js
new file mode 100644
index 000000000000..deed57771e19
--- /dev/null
+++ b/deps/npm/test/tap/override-bundled.js
@@ -0,0 +1,106 @@
+'use strict'
+var test = require('tap').test
+var fs = require('fs')
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+var path = require('path')
+var common = require('../common-tap.js')
+
+var testdir = path.resolve(__dirname, path.basename(__filename, '.js'))
+var testjson = {
+ dependencies: {'top-test': 'file:top-test/'}
+}
+
+var testmod = path.resolve(testdir, 'top-test')
+var testmodjson = {
+ name: 'top-test',
+ version: '1.0.0',
+ dependencies: {
+ 'bundle-update': 'file:bundle-update/',
+ 'bundle-keep': 'file:bundle-keep/'
+ },
+ bundledDependencies: ['bundle-update', 'bundle-keep']
+}
+
+var bundleupdatesrc = path.resolve(testmod, 'bundle-update')
+var bundleupdateNEW = path.resolve(bundleupdatesrc, 'NEW')
+var bundleupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'top-test', 'node_modules', 'bundle-update', 'NEW')
+var bundleupdatebad = path.resolve(testmod, 'node_modules', 'bundle-update')
+var bundlekeepsrc = path.resolve(testmod, 'bundle-keep')
+var bundlekeep = path.resolve(testmod, 'node_modules', 'bundle-keep')
+var bundlekeepOLD = path.resolve(bundlekeep, 'OLD')
+var bundlekeepOLDpostinstall = path.resolve(testdir, 'node_modules', 'top-test', 'node_modules', 'bundle-keep', 'OLD')
+var bundlejson = {
+ name: 'bundle-update',
+ version: '1.0.0'
+}
+var bundlekeepjson = {
+ name: 'bundle-keep',
+ _requested: {
+ rawSpec: 'file:bundle-keep/'
+ }
+}
+
+function writepjs (dir, content) {
+ fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify(content, null, 2))
+}
+
+function setup () {
+ mkdirp.sync(testdir)
+ writepjs(testdir, testjson)
+ mkdirp.sync(testmod)
+ writepjs(testmod, testmodjson)
+ mkdirp.sync(bundleupdatesrc)
+ writepjs(bundleupdatesrc, bundlejson)
+ fs.writeFileSync(bundleupdateNEW, '')
+ mkdirp.sync(bundleupdatebad)
+ writepjs(bundleupdatebad, bundlejson)
+ mkdirp.sync(bundlekeepsrc)
+ writepjs(bundlekeepsrc, bundlekeepjson)
+ mkdirp.sync(bundlekeep)
+ writepjs(bundlekeep, bundlekeepjson)
+ fs.writeFileSync(bundlekeepOLD, '')
+}
+
+function cleanup () {
+ rimraf.sync(testdir)
+}
+
+test('setup', function (t) {
+ cleanup()
+ setup()
+ t.end()
+})
+
+test('bundled', function (t) {
+ common.npm(['install', '--loglevel=warn'], {cwd: testdir}, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.plan(5)
+ t.is(code, 0, 'npm itself completed ok')
+
+ // This tests that after the install we have a freshly installed version
+ // of `bundle-update` (in alignment with the package.json), instead of the
+ // version that was bundled with `top-test`.
+ // If npm doesn't do this, and selects the bundled version, things go very
+ // wrong because npm thinks it has a different module (with different
+ // metadata) installed in that location and will go off and try to do
+ // _things_ to it. Things like chmod in particular, which in turn results
+ // in the dreaded ENOENT errors.
+ t.like(stderr, /EPACKAGEJSON override-bundled/, "didn't stomp on other warnings")
+ t.like(stderr, /EBUNDLEOVERRIDE/, 'included warning about bundled dep')
+ fs.stat(bundleupdateNEWpostinstall, function (missing) {
+ t.ok(!missing, 'package.json overrode bundle')
+ })
+
+ // Relatedly, when upgrading, if a bundled module is replacing an existing
+ // module we want to choose the bundled version, not the version we're replacing.
+ fs.stat(bundlekeepOLDpostinstall, function (missing) {
+ t.ok(!missing, 'package.json overrode bundle')
+ })
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})
diff --git a/deps/npm/test/tap/shrinkwrap-version-match.js b/deps/npm/test/tap/shrinkwrap-version-match.js
new file mode 100644
index 000000000000..cb4e92550490
--- /dev/null
+++ b/deps/npm/test/tap/shrinkwrap-version-match.js
@@ -0,0 +1,120 @@
+'use strict'
+var test = require('tap').test
+var fs = require('fs')
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+var path = require('path')
+var common = require('../common-tap.js')
+
+var testdir = path.resolve(__dirname, path.basename(__filename, '.js'))
+var modAdir = path.resolve(testdir, 'modA')
+var modB1dir = path.resolve(testdir, 'modB@1')
+var modB2dir = path.resolve(testdir, 'modB@2')
+var modCdir = path.resolve(testdir, 'modC')
+var testjson = {
+ dependencies: {
+ modA: 'file://' + modAdir,
+ modC: 'file://' + modCdir
+ }
+}
+var testshrinkwrap = {
+ dependencies: {
+ modA: {
+ version: '1.0.0',
+ from: 'modA',
+ resolved: 'file://' + modAdir
+ },
+ modB: {
+ version: '1.0.0',
+ from: 'modB@1',
+ resolved: 'file://' + modB1dir
+ }
+ }
+}
+var modAjson = {
+ name: 'modA',
+ version: '1.0.0',
+ dependencies: {
+ 'modB': 'file://' + modB1dir
+ }
+}
+var modCjson = {
+ name: 'modC',
+ version: '1.0.0',
+ dependencies: {
+ 'modB': 'file://' + modB2dir
+ }
+}
+var modB1json = {
+ name: 'modB',
+ version: '1.0.0'
+}
+var modB2json = {
+ name: 'modB',
+ version: '2.0.0'
+}
+
+function writepjson (dir, content) {
+ writejson(dir, 'package.json', content)
+}
+function writejson (dir, file, content) {
+ writefile(dir, file, JSON.stringify(content, null, 2))
+}
+function writefile (dir, file, content) {
+ fs.writeFileSync(path.join(dir, file), content)
+}
+
+function setup () {
+ mkdirp.sync(testdir)
+ writepjson(testdir, testjson)
+ writejson(testdir, 'npm-shrinkwrap.json', testshrinkwrap)
+ mkdirp.sync(modAdir)
+ writepjson(modAdir, modAjson)
+ mkdirp.sync(modB1dir)
+ writepjson(modB1dir, modB1json)
+ writefile(modB1dir, 'B1', '')
+ mkdirp.sync(modB2dir)
+ writepjson(modB2dir, modB2json)
+ writefile(modB2dir, 'B2', '')
+ mkdirp.sync(modCdir)
+ writepjson(modCdir, modCjson)
+}
+
+function cleanup () {
+ rimraf.sync(testdir)
+}
+
+test('setup', function (t) {
+ cleanup()
+ setup()
+ t.end()
+})
+
+// Shrinkwraps need to let you override dependency versions specified in
+// package.json files. Indeed, this was already supported, but it was a bit
+// to keen on this. Previously, if you had a dep in your shrinkwrap then
+// anything that required that dependency would count as a match, regardless
+// of version.
+
+// This test ensures that the broad matching is not done when the matched
+// module is not a direct child of the module doing the requiring.
+
+test('bundled', function (t) {
+ common.npm(['install'], {cwd: testdir}, function (err, code, out, stderr) {
+ t.is(err, null, 'No fatal errors running npm')
+ t.is(code, 0, 'npm itself completed ok')
+ // Specifically, if B2 exists (or the modB directory under modC at all)
+ // that means modC was given its own copy of modB. Without the patch
+ // that went with this test, it wouldn't have been installed because npm
+ // would have consider modB@1 to have fulfilled modC's requirement.
+ fs.stat(path.join(testdir, 'node_modules', 'modC', 'node_modules', 'modB', 'B2'), function (missing) {
+ t.ok(!missing, 'modC got the right version of modB')
+ t.end()
+ })
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})
diff --git a/deps/npm/test/tap/version-no-package.js b/deps/npm/test/tap/version-no-package.js
index 755f99317e6e..e4eeda0eebda 100644
--- a/deps/npm/test/tap/version-no-package.js
+++ b/deps/npm/test/tap/version-no-package.js
@@ -25,9 +25,8 @@ test('npm version in a prefix with no package.json', function (t) {
t.doesNotThrow(function () {
var metadata = JSON.parse(stdout)
t.equal(metadata.node, process.versions.node, 'node versions match')
-
- t.end()
}, 'able to reconstitute version object from stdout')
+ t.end()
}
)
})