summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorForrest L Norvell <forrest@npmjs.com>2015-01-23 06:56:30 -0800
committerBen Noordhuis <info@bnoordhuis.nl>2015-01-23 23:19:27 +0100
commitf5b35dbda45c466eda888a4451591c66e8671faf (patch)
treefe89dd3e105a3693bd0776c678813dadae21065d
parentf3fed5193caaac151acd555a7523068ee269801c (diff)
downloadnode-new-f5b35dbda45c466eda888a4451591c66e8671faf.tar.gz
deps: upgrade npm to 2.3.0
* Windows improvements: no more uid is undefined errors, use `%COMSPEC%` when set in preference to hardcoded `cmd`, improved handling of Git remotes. * Add caching based on Last-Modified / If-Modified-Since headers in addition to Etag-based cache validation. PR-URL: https://github.com/iojs/io.js/pull/573 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
-rw-r--r--deps/npm/CHANGELOG.md60
-rw-r--r--deps/npm/doc/cli/npm-view.md2
-rw-r--r--deps/npm/doc/files/package.json.md8
-rw-r--r--deps/npm/doc/misc/npm-config.md2
-rw-r--r--deps/npm/html/doc/README.html4
-rw-r--r--deps/npm/html/doc/api/npm-bin.html2
-rw-r--r--deps/npm/html/doc/api/npm-bugs.html2
-rw-r--r--deps/npm/html/doc/api/npm-cache.html2
-rw-r--r--deps/npm/html/doc/api/npm-commands.html2
-rw-r--r--deps/npm/html/doc/api/npm-config.html2
-rw-r--r--deps/npm/html/doc/api/npm-deprecate.html2
-rw-r--r--deps/npm/html/doc/api/npm-docs.html2
-rw-r--r--deps/npm/html/doc/api/npm-edit.html2
-rw-r--r--deps/npm/html/doc/api/npm-explore.html2
-rw-r--r--deps/npm/html/doc/api/npm-help-search.html2
-rw-r--r--deps/npm/html/doc/api/npm-init.html2
-rw-r--r--deps/npm/html/doc/api/npm-install.html2
-rw-r--r--deps/npm/html/doc/api/npm-link.html2
-rw-r--r--deps/npm/html/doc/api/npm-load.html2
-rw-r--r--deps/npm/html/doc/api/npm-ls.html2
-rw-r--r--deps/npm/html/doc/api/npm-outdated.html2
-rw-r--r--deps/npm/html/doc/api/npm-owner.html2
-rw-r--r--deps/npm/html/doc/api/npm-pack.html2
-rw-r--r--deps/npm/html/doc/api/npm-prefix.html2
-rw-r--r--deps/npm/html/doc/api/npm-prune.html2
-rw-r--r--deps/npm/html/doc/api/npm-publish.html2
-rw-r--r--deps/npm/html/doc/api/npm-rebuild.html2
-rw-r--r--deps/npm/html/doc/api/npm-repo.html2
-rw-r--r--deps/npm/html/doc/api/npm-restart.html2
-rw-r--r--deps/npm/html/doc/api/npm-root.html2
-rw-r--r--deps/npm/html/doc/api/npm-run-script.html2
-rw-r--r--deps/npm/html/doc/api/npm-search.html2
-rw-r--r--deps/npm/html/doc/api/npm-shrinkwrap.html2
-rw-r--r--deps/npm/html/doc/api/npm-start.html2
-rw-r--r--deps/npm/html/doc/api/npm-stop.html2
-rw-r--r--deps/npm/html/doc/api/npm-tag.html2
-rw-r--r--deps/npm/html/doc/api/npm-test.html2
-rw-r--r--deps/npm/html/doc/api/npm-uninstall.html2
-rw-r--r--deps/npm/html/doc/api/npm-unpublish.html2
-rw-r--r--deps/npm/html/doc/api/npm-update.html2
-rw-r--r--deps/npm/html/doc/api/npm-version.html2
-rw-r--r--deps/npm/html/doc/api/npm-view.html2
-rw-r--r--deps/npm/html/doc/api/npm-whoami.html2
-rw-r--r--deps/npm/html/doc/api/npm.html4
-rw-r--r--deps/npm/html/doc/cli/npm-adduser.html2
-rw-r--r--deps/npm/html/doc/cli/npm-bin.html2
-rw-r--r--deps/npm/html/doc/cli/npm-bugs.html2
-rw-r--r--deps/npm/html/doc/cli/npm-build.html2
-rw-r--r--deps/npm/html/doc/cli/npm-bundle.html2
-rw-r--r--deps/npm/html/doc/cli/npm-cache.html2
-rw-r--r--deps/npm/html/doc/cli/npm-completion.html2
-rw-r--r--deps/npm/html/doc/cli/npm-config.html2
-rw-r--r--deps/npm/html/doc/cli/npm-dedupe.html2
-rw-r--r--deps/npm/html/doc/cli/npm-deprecate.html2
-rw-r--r--deps/npm/html/doc/cli/npm-docs.html2
-rw-r--r--deps/npm/html/doc/cli/npm-edit.html2
-rw-r--r--deps/npm/html/doc/cli/npm-explore.html2
-rw-r--r--deps/npm/html/doc/cli/npm-help-search.html2
-rw-r--r--deps/npm/html/doc/cli/npm-help.html2
-rw-r--r--deps/npm/html/doc/cli/npm-init.html2
-rw-r--r--deps/npm/html/doc/cli/npm-install.html2
-rw-r--r--deps/npm/html/doc/cli/npm-link.html2
-rw-r--r--deps/npm/html/doc/cli/npm-ls.html4
-rw-r--r--deps/npm/html/doc/cli/npm-outdated.html2
-rw-r--r--deps/npm/html/doc/cli/npm-owner.html2
-rw-r--r--deps/npm/html/doc/cli/npm-pack.html2
-rw-r--r--deps/npm/html/doc/cli/npm-prefix.html2
-rw-r--r--deps/npm/html/doc/cli/npm-prune.html2
-rw-r--r--deps/npm/html/doc/cli/npm-publish.html2
-rw-r--r--deps/npm/html/doc/cli/npm-rebuild.html2
-rw-r--r--deps/npm/html/doc/cli/npm-repo.html2
-rw-r--r--deps/npm/html/doc/cli/npm-restart.html2
-rw-r--r--deps/npm/html/doc/cli/npm-rm.html2
-rw-r--r--deps/npm/html/doc/cli/npm-root.html2
-rw-r--r--deps/npm/html/doc/cli/npm-run-script.html2
-rw-r--r--deps/npm/html/doc/cli/npm-search.html2
-rw-r--r--deps/npm/html/doc/cli/npm-shrinkwrap.html2
-rw-r--r--deps/npm/html/doc/cli/npm-star.html2
-rw-r--r--deps/npm/html/doc/cli/npm-stars.html2
-rw-r--r--deps/npm/html/doc/cli/npm-start.html2
-rw-r--r--deps/npm/html/doc/cli/npm-stop.html2
-rw-r--r--deps/npm/html/doc/cli/npm-tag.html2
-rw-r--r--deps/npm/html/doc/cli/npm-test.html2
-rw-r--r--deps/npm/html/doc/cli/npm-uninstall.html2
-rw-r--r--deps/npm/html/doc/cli/npm-unpublish.html2
-rw-r--r--deps/npm/html/doc/cli/npm-update.html2
-rw-r--r--deps/npm/html/doc/cli/npm-version.html2
-rw-r--r--deps/npm/html/doc/cli/npm-view.html4
-rw-r--r--deps/npm/html/doc/cli/npm-whoami.html2
-rw-r--r--deps/npm/html/doc/cli/npm.html10
-rw-r--r--deps/npm/html/doc/files/npm-folders.html2
-rw-r--r--deps/npm/html/doc/files/npm-global.html2
-rw-r--r--deps/npm/html/doc/files/npm-json.html10
-rw-r--r--deps/npm/html/doc/files/npmrc.html2
-rw-r--r--deps/npm/html/doc/files/package.json.html10
-rw-r--r--deps/npm/html/doc/index.html2
-rw-r--r--deps/npm/html/doc/misc/npm-coding-style.html2
-rw-r--r--deps/npm/html/doc/misc/npm-config.html4
-rw-r--r--deps/npm/html/doc/misc/npm-developers.html2
-rw-r--r--deps/npm/html/doc/misc/npm-disputes.html8
-rw-r--r--deps/npm/html/doc/misc/npm-faq.html4
-rw-r--r--deps/npm/html/doc/misc/npm-index.html2
-rw-r--r--deps/npm/html/doc/misc/npm-registry.html2
-rw-r--r--deps/npm/html/doc/misc/npm-scope.html2
-rw-r--r--deps/npm/html/doc/misc/npm-scripts.html2
-rw-r--r--deps/npm/html/doc/misc/removing-npm.html2
-rw-r--r--deps/npm/html/doc/misc/semver.html2
-rw-r--r--deps/npm/html/partial/doc/README.html2
-rw-r--r--deps/npm/html/partial/doc/api/npm.html2
-rw-r--r--deps/npm/html/partial/doc/cli/npm-ls.html2
-rw-r--r--deps/npm/html/partial/doc/cli/npm-view.html2
-rw-r--r--deps/npm/html/partial/doc/cli/npm.html8
-rw-r--r--deps/npm/html/partial/doc/files/npm-json.html8
-rw-r--r--deps/npm/html/partial/doc/files/package.json.html8
-rw-r--r--deps/npm/html/partial/doc/misc/npm-config.html2
-rw-r--r--deps/npm/html/partial/doc/misc/npm-disputes.html6
-rw-r--r--deps/npm/html/partial/doc/misc/npm-faq.html2
-rw-r--r--deps/npm/lib/cache/add-remote-git.js69
-rw-r--r--deps/npm/lib/cache/caching-client.js24
-rw-r--r--deps/npm/lib/cache/get-stat.js14
-rw-r--r--deps/npm/lib/config.js6
-rw-r--r--deps/npm/lib/config/core.js12
-rw-r--r--deps/npm/lib/config/defaults.js28
-rw-r--r--deps/npm/lib/utils/lifecycle.js20
-rw-r--r--deps/npm/lib/utils/umask.js17
-rw-r--r--deps/npm/lib/whoami.js16
-rw-r--r--deps/npm/man/man1/npm-ls.12
-rw-r--r--deps/npm/man/man1/npm-view.12
-rw-r--r--deps/npm/man/man1/npm.12
-rw-r--r--deps/npm/man/man3/npm.32
-rw-r--r--deps/npm/man/man5/npm-json.58
-rw-r--r--deps/npm/man/man5/package.json.58
-rw-r--r--deps/npm/man/man7/npm-config.72
-rw-r--r--deps/npm/node_modules/glob/README.md4
-rw-r--r--deps/npm/node_modules/glob/glob.js123
-rw-r--r--deps/npm/node_modules/glob/package.json23
-rw-r--r--deps/npm/node_modules/glob/sync.js73
-rw-r--r--deps/npm/node_modules/node-gyp/addon.gypi2
-rw-r--r--deps/npm/node_modules/node-gyp/lib/build.js8
-rw-r--r--deps/npm/node_modules/node-gyp/lib/install.js43
-rw-r--r--deps/npm/node_modules/npm-registry-client/README.md3
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/initialize.js9
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/request.js10
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/star.js58
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/whoami.js4
-rw-r--r--deps/npm/node_modules/npm-registry-client/package.json13
-rw-r--r--deps/npm/node_modules/npm-registry-client/test/lib/server.js2
-rw-r--r--deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js27
-rw-r--r--deps/npm/node_modules/npm-registry-client/test/request.js25
-rw-r--r--deps/npm/node_modules/npm-registry-client/test/star.js98
-rw-r--r--deps/npm/node_modules/umask/.npmignore28
-rw-r--r--deps/npm/node_modules/umask/ChangeLog8
-rw-r--r--deps/npm/node_modules/umask/LICENSE21
-rw-r--r--deps/npm/node_modules/umask/README.md78
-rw-r--r--deps/npm/node_modules/umask/index.js76
-rw-r--r--deps/npm/node_modules/umask/package.json53
-rw-r--r--deps/npm/node_modules/umask/test/simple.js166
-rw-r--r--deps/npm/package.json12
-rw-r--r--deps/npm/test/tap/add-remote-git-fake-windows.js28
-rw-r--r--deps/npm/test/tap/add-remote-git.js31
-rw-r--r--deps/npm/test/tap/lifecycle-path.js6
-rw-r--r--deps/npm/test/tap/umask-lifecycle.js52
-rw-r--r--deps/npm/test/tap/whoami.js2
163 files changed, 1197 insertions, 483 deletions
diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md
index a6576de6fd..b73d83ac70 100644
--- a/deps/npm/CHANGELOG.md
+++ b/deps/npm/CHANGELOG.md
@@ -1,3 +1,63 @@
+### v2.3.0 (2015-01-15):
+
+#### REGISTRY 2: OH MY STARS! WHO AM I?
+
+* [`e662a60`](https://github.com/npm/npm/commit/e662a60e2f9a542effd8e72279d4622fe514415e)
+ The new `whoami` endpoint might not return a value.
+ ([@othiym23](https://github.com/othiym23))
+* [`c2cccd4`](https://github.com/npm/npm/commit/c2cccd4bbc65885239ed646eb510155f7b8af13d)
+ `npm-registry-client@5.0.0`: Includes the following fine changes
+ ([@othiym23](https://github.com/othiym23)):
+ * [`ba6b73e`](https://github.com/npm/npm-registry-client/commit/ba6b73e351027246c228622014e4441412409bad)
+ [#92](https://github.com/npm/npm-registry-client/issues/92) BREAKING CHANGE:
+ Move `/whoami` endpoint out of the package namespace (to `/-/whoami`).
+ ([@othiym23](https://github.com/othiym23))
+ * [`3b174b7`](https://github.com/npm/npm-registry-client/commit/3b174b75c0c9ea77e298e6bb664fb499824ecc7c)
+ [#93](https://github.com/npm/npm-registry-client/issues/93) Registries based
+ on token-based auth can now offer starring.
+ ([@bcoe](https://github.com/bcoe))
+ * [`4701a29`](https://github.com/npm/npm-registry-client/commit/4701a29bcda41bc14aa91f361dd0d576e24677d7)
+ Fix HTTP[S] connection keep-alive on Node 0.11 / io.js 1.0.
+ ([@fengmk2](https://github.com/fengmk2))
+
+#### BETTER REGISTRY METADATA CACHING
+
+* [`98e1e10`](https://github.com/npm/npm/commit/98e1e1080df1f2cab16ed68035603950ea3d2d48)
+ [#6791](https://github.com/npm/npm/issues/6791) Add caching based on
+ Last-Modified / If-Modified-Since headers. Includes this
+ `npm-registry-client@5.0.0` change ([@lxe](https://github.com/lxe)):
+ * [`07bc335`](https://github.com/npm/npm-registry-client/commit/07bc33502b93554cd7539bfcce37d6e2d5404cd0)
+ [#86](https://github.com/npm/npm-registry-client/issues/86) Add Last-Modified
+ / If-Modified-Since cache header handling. ([@lxe](https://github.com/lxe))
+
+#### HOW MUCH IS THAT WINDOWS IN THE DOGGY?
+
+* [`706d49a`](https://github.com/npm/npm/commit/706d49ab45521360fce1a68779b8de899015d8c2)
+ [#7107](https://github.com/npm/npm/issues/7107) `getCacheStat` passes a stub
+ stat on Windows. ([@rmg](https://github.com/rmg))
+* [`5fce278`](https://github.com/npm/npm/commit/5fce278a688a1cb79183e012bde40b089c2e97a4)
+ [#5267](https://github.com/npm/npm/issues/5267) Use `%COMSPEC%` when set on
+ Windows. ([@edmorley](https://github.com/edmorley))
+* [`cc2e099`](https://github.com/npm/npm/commit/cc2e09912ce2f91567c485422e4e797c4deb9842)
+ [#7083](https://github.com/npm/npm/issues/7083) Ensure Git cache prefix
+ exists before repo clone on Windows.
+ ([@othiym23](https://github.com/othiym23))
+
+#### THRILLING BUG FIXES
+
+* [`c6fb430`](https://github.com/npm/npm/commit/c6fb430e55672b3caf87d25cbd2aeeebc449e2f2)
+ [#4197](https://github.com/npm/npm/issues/4197) Report `umask` as a 0-padded
+ octal literal. ([@smikes](https://github.com/smikes))
+* [`209713e`](https://github.com/npm/npm/commit/209713ebd4b77da11ce27d90c3346f78d760ba52)
+ [#4197](https://github.com/npm/npm/issues/4197) `umask@1.1.0`: Properly
+ handle `umask`s (i.e. not decimal numbers).
+ ([@smikes](https://github.com/smikes))
+* [`9eac0a1`](https://github.com/npm/npm/commit/9eac0a14488c5979ebde4c17881c8cd74f395069)
+ Make the example for bin links non-destructive.
+ ([@KevinSheedy](https://github.com/KevinSheedy))
+* [`6338bcf`](https://github.com/npm/npm/commit/6338bcfcd9cd1b0cc48b051dae764dc436ab5332)
+ `glob@4.3.5`: " -> ', for some reason. ([@isaacs](https://github.com/isaacs))
+
### v2.2.0 (2015-01-08):
* [`88c531d`](https://github.com/npm/npm/commit/88c531d1c0b3aced8f2a09632db01b5635e7226a)
diff --git a/deps/npm/doc/cli/npm-view.md b/deps/npm/doc/cli/npm-view.md
index 8f52a85a92..683ed09f46 100644
--- a/deps/npm/doc/cli/npm-view.md
+++ b/deps/npm/doc/cli/npm-view.md
@@ -24,7 +24,7 @@ For example, to show the dependencies of the `ronn` package at version
npm view ronn@0.3.5 dependencies
-You can view child field by separating them with a period.
+You can view child fields by separating them with a period.
To view the git repository URL for the latest version of npm, you could
do this:
diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md
index 00939cbf49..1a54ec06b3 100644
--- a/deps/npm/doc/files/package.json.md
+++ b/deps/npm/doc/files/package.json.md
@@ -154,12 +154,12 @@ command name to local file name. On install, npm will symlink that file into
installs.
-For example, npm has this:
+For example, myapp could have this:
- { "bin" : { "npm" : "./cli.js" } }
+ { "bin" : { "myapp" : "./cli.js" } }
-So, when you install npm, it'll create a symlink from the `cli.js` script to
-`/usr/local/bin/npm`.
+So, when you install myapp, it'll create a symlink from the `cli.js` script to
+`/usr/local/bin/myapp`.
If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string. For example:
diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md
index fc6201e667..7aaaffb8d6 100644
--- a/deps/npm/doc/misc/npm-config.md
+++ b/deps/npm/doc/misc/npm-config.md
@@ -829,7 +829,7 @@ The location of user-level configuration settings.
### umask
* Default: 022
-* Type: Octal numeric string
+* Type: Octal numeric string in range 0000..0777 (0..511)
The "umask" value to use when setting the file creation mode on files
and folders.
diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html
index 2738adcd74..a9953056c9 100644
--- a/deps/npm/html/doc/README.html
+++ b/deps/npm/html/doc/README.html
@@ -126,7 +126,7 @@ specific purpose, or lack of malice in any given npm package.</p>
<p>If you have a complaint about a package in the public npm registry,
and cannot <a href="https://docs.npmjs.com/misc/disputes">resolve it with the package
owner</a>, please email
-<a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#111;&#x3a;&#115;&#117;&#x70;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#111;&#x6d;">&#115;&#117;&#x70;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#111;&#x6d;</a> and explain the situation.</p>
+<a href="&#109;&#x61;&#105;&#x6c;&#x74;&#x6f;&#58;&#115;&#x75;&#112;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#99;&#111;&#x6d;">&#115;&#x75;&#112;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#99;&#111;&#x6d;</a> and explain the situation.</p>
<p>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.</p>
@@ -169,5 +169,5 @@ will no doubt tell you to put the output in a gist or email.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.2.0</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-bin.html b/deps/npm/html/doc/api/npm-bin.html
index 971bb13611..d1b9fb5bca 100644
--- a/deps/npm/html/doc/api/npm-bin.html
+++ b/deps/npm/html/doc/api/npm-bin.html
@@ -28,5 +28,5 @@ to the <code>npm.bin</code> property.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bin &mdash; npm@2.2.0</p>
+<p id="footer">npm-bin &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-bugs.html b/deps/npm/html/doc/api/npm-bugs.html
index e34204f8a6..a7f3c3e4ad 100644
--- a/deps/npm/html/doc/api/npm-bugs.html
+++ b/deps/npm/html/doc/api/npm-bugs.html
@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bugs &mdash; npm@2.2.0</p>
+<p id="footer">npm-bugs &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-cache.html b/deps/npm/html/doc/api/npm-cache.html
index 65e5d0d399..952856f869 100644
--- a/deps/npm/html/doc/api/npm-cache.html
+++ b/deps/npm/html/doc/api/npm-cache.html
@@ -42,5 +42,5 @@ incrementation.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-cache &mdash; npm@2.2.0</p>
+<p id="footer">npm-cache &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-commands.html b/deps/npm/html/doc/api/npm-commands.html
index 36e2ab9a03..16292985c8 100644
--- a/deps/npm/html/doc/api/npm-commands.html
+++ b/deps/npm/html/doc/api/npm-commands.html
@@ -36,5 +36,5 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-commands &mdash; npm@2.2.0</p>
+<p id="footer">npm-commands &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-config.html b/deps/npm/html/doc/api/npm-config.html
index 7ee80e63e3..758eef37ac 100644
--- a/deps/npm/html/doc/api/npm-config.html
+++ b/deps/npm/html/doc/api/npm-config.html
@@ -57,5 +57,5 @@ functions instead.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-config &mdash; npm@2.2.0</p>
+<p id="footer">npm-config &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-deprecate.html b/deps/npm/html/doc/api/npm-deprecate.html
index 8799f10ffd..eb965608ef 100644
--- a/deps/npm/html/doc/api/npm-deprecate.html
+++ b/deps/npm/html/doc/api/npm-deprecate.html
@@ -47,5 +47,5 @@ a deprecation warning to all who attempt to install it.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-deprecate &mdash; npm@2.2.0</p>
+<p id="footer">npm-deprecate &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-docs.html b/deps/npm/html/doc/api/npm-docs.html
index e13998e46f..25fa5167f4 100644
--- a/deps/npm/html/doc/api/npm-docs.html
+++ b/deps/npm/html/doc/api/npm-docs.html
@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-docs &mdash; npm@2.2.0</p>
+<p id="footer">npm-docs &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-edit.html b/deps/npm/html/doc/api/npm-edit.html
index 9779d1743d..f7e777d86d 100644
--- a/deps/npm/html/doc/api/npm-edit.html
+++ b/deps/npm/html/doc/api/npm-edit.html
@@ -36,5 +36,5 @@ and how this is used.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-edit &mdash; npm@2.2.0</p>
+<p id="footer">npm-edit &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-explore.html b/deps/npm/html/doc/api/npm-explore.html
index 4b7d88cc94..fb8b36e1b2 100644
--- a/deps/npm/html/doc/api/npm-explore.html
+++ b/deps/npm/html/doc/api/npm-explore.html
@@ -31,5 +31,5 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-explore &mdash; npm@2.2.0</p>
+<p id="footer">npm-explore &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-help-search.html b/deps/npm/html/doc/api/npm-help-search.html
index 7311b1d5d5..3612ae521f 100644
--- a/deps/npm/html/doc/api/npm-help-search.html
+++ b/deps/npm/html/doc/api/npm-help-search.html
@@ -44,5 +44,5 @@ Name of the file that matched</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-help-search &mdash; npm@2.2.0</p>
+<p id="footer">npm-help-search &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-init.html b/deps/npm/html/doc/api/npm-init.html
index 8ae0adaebb..dc32dfdbe5 100644
--- a/deps/npm/html/doc/api/npm-init.html
+++ b/deps/npm/html/doc/api/npm-init.html
@@ -39,5 +39,5 @@ then go ahead and use this programmatically.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-init &mdash; npm@2.2.0</p>
+<p id="footer">npm-init &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-install.html b/deps/npm/html/doc/api/npm-install.html
index dc3cb69c74..ef095d462c 100644
--- a/deps/npm/html/doc/api/npm-install.html
+++ b/deps/npm/html/doc/api/npm-install.html
@@ -32,5 +32,5 @@ installed or when an error has been encountered.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-install &mdash; npm@2.2.0</p>
+<p id="footer">npm-install &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-link.html b/deps/npm/html/doc/api/npm-link.html
index 81831911df..7a80c5297d 100644
--- a/deps/npm/html/doc/api/npm-link.html
+++ b/deps/npm/html/doc/api/npm-link.html
@@ -42,5 +42,5 @@ the package in the current working directory</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-link &mdash; npm@2.2.0</p>
+<p id="footer">npm-link &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-load.html b/deps/npm/html/doc/api/npm-load.html
index 3dd0d472df..3882694cf0 100644
--- a/deps/npm/html/doc/api/npm-load.html
+++ b/deps/npm/html/doc/api/npm-load.html
@@ -37,5 +37,5 @@ config object.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-load &mdash; npm@2.2.0</p>
+<p id="footer">npm-load &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-ls.html b/deps/npm/html/doc/api/npm-ls.html
index 7c533218f6..8b0bc0c6fb 100644
--- a/deps/npm/html/doc/api/npm-ls.html
+++ b/deps/npm/html/doc/api/npm-ls.html
@@ -63,5 +63,5 @@ dependency will only be output once.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-ls &mdash; npm@2.2.0</p>
+<p id="footer">npm-ls &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-outdated.html b/deps/npm/html/doc/api/npm-outdated.html
index 2511656267..eeff9318d0 100644
--- a/deps/npm/html/doc/api/npm-outdated.html
+++ b/deps/npm/html/doc/api/npm-outdated.html
@@ -28,5 +28,5 @@ currently outdated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-outdated &mdash; npm@2.2.0</p>
+<p id="footer">npm-outdated &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-owner.html b/deps/npm/html/doc/api/npm-owner.html
index 35070f867e..6fff137875 100644
--- a/deps/npm/html/doc/api/npm-owner.html
+++ b/deps/npm/html/doc/api/npm-owner.html
@@ -47,5 +47,5 @@ that is not implemented at this time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-owner &mdash; npm@2.2.0</p>
+<p id="footer">npm-owner &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-pack.html b/deps/npm/html/doc/api/npm-pack.html
index c506967a88..13a1ed8f5d 100644
--- a/deps/npm/html/doc/api/npm-pack.html
+++ b/deps/npm/html/doc/api/npm-pack.html
@@ -33,5 +33,5 @@ overwritten the second time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-pack &mdash; npm@2.2.0</p>
+<p id="footer">npm-pack &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-prefix.html b/deps/npm/html/doc/api/npm-prefix.html
index 19d5abc291..22398c50df 100644
--- a/deps/npm/html/doc/api/npm-prefix.html
+++ b/deps/npm/html/doc/api/npm-prefix.html
@@ -29,5 +29,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-prefix &mdash; npm@2.2.0</p>
+<p id="footer">npm-prefix &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-prune.html b/deps/npm/html/doc/api/npm-prune.html
index c528d1f1b7..6ee9e7d59f 100644
--- a/deps/npm/html/doc/api/npm-prune.html
+++ b/deps/npm/html/doc/api/npm-prune.html
@@ -30,5 +30,5 @@ package&#39;s dependencies list.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-prune &mdash; npm@2.2.0</p>
+<p id="footer">npm-prune &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-publish.html b/deps/npm/html/doc/api/npm-publish.html
index 96338745ca..dccedcab6c 100644
--- a/deps/npm/html/doc/api/npm-publish.html
+++ b/deps/npm/html/doc/api/npm-publish.html
@@ -46,5 +46,5 @@ the registry. Overwrites when the &quot;force&quot; environment variable is set
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-publish &mdash; npm@2.2.0</p>
+<p id="footer">npm-publish &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-rebuild.html b/deps/npm/html/doc/api/npm-rebuild.html
index 9ff291a324..1203b177a2 100644
--- a/deps/npm/html/doc/api/npm-rebuild.html
+++ b/deps/npm/html/doc/api/npm-rebuild.html
@@ -30,5 +30,5 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-rebuild &mdash; npm@2.2.0</p>
+<p id="footer">npm-rebuild &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-repo.html b/deps/npm/html/doc/api/npm-repo.html
index 0f4436b8c3..718f55aae6 100644
--- a/deps/npm/html/doc/api/npm-repo.html
+++ b/deps/npm/html/doc/api/npm-repo.html
@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-repo &mdash; npm@2.2.0</p>
+<p id="footer">npm-repo &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-restart.html b/deps/npm/html/doc/api/npm-restart.html
index aade48106a..e3c90034fe 100644
--- a/deps/npm/html/doc/api/npm-restart.html
+++ b/deps/npm/html/doc/api/npm-restart.html
@@ -52,5 +52,5 @@ behavior will be accompanied by an increase in major version number</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-restart &mdash; npm@2.2.0</p>
+<p id="footer">npm-restart &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-root.html b/deps/npm/html/doc/api/npm-root.html
index ebdede871e..5231b853fd 100644
--- a/deps/npm/html/doc/api/npm-root.html
+++ b/deps/npm/html/doc/api/npm-root.html
@@ -29,5 +29,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-root &mdash; npm@2.2.0</p>
+<p id="footer">npm-root &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-run-script.html b/deps/npm/html/doc/api/npm-run-script.html
index aed1a1f9d1..c9877f4012 100644
--- a/deps/npm/html/doc/api/npm-run-script.html
+++ b/deps/npm/html/doc/api/npm-run-script.html
@@ -41,5 +41,5 @@ assumed to be the command to run. All other elements are ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-run-script &mdash; npm@2.2.0</p>
+<p id="footer">npm-run-script &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-search.html b/deps/npm/html/doc/api/npm-search.html
index 7faf23b649..8d116367ae 100644
--- a/deps/npm/html/doc/api/npm-search.html
+++ b/deps/npm/html/doc/api/npm-search.html
@@ -53,5 +53,5 @@ like).</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-search &mdash; npm@2.2.0</p>
+<p id="footer">npm-search &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-shrinkwrap.html b/deps/npm/html/doc/api/npm-shrinkwrap.html
index 5da80e161c..08aec3538c 100644
--- a/deps/npm/html/doc/api/npm-shrinkwrap.html
+++ b/deps/npm/html/doc/api/npm-shrinkwrap.html
@@ -33,5 +33,5 @@ been saved.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-shrinkwrap &mdash; npm@2.2.0</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-start.html b/deps/npm/html/doc/api/npm-start.html
index 5af05b1f1e..74e8271a54 100644
--- a/deps/npm/html/doc/api/npm-start.html
+++ b/deps/npm/html/doc/api/npm-start.html
@@ -28,5 +28,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-start &mdash; npm@2.2.0</p>
+<p id="footer">npm-start &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-stop.html b/deps/npm/html/doc/api/npm-stop.html
index fe29ac2a50..018b57ea3b 100644
--- a/deps/npm/html/doc/api/npm-stop.html
+++ b/deps/npm/html/doc/api/npm-stop.html
@@ -28,5 +28,5 @@ in the <code>packages</code> parameter.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-stop &mdash; npm@2.2.0</p>
+<p id="footer">npm-stop &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-tag.html b/deps/npm/html/doc/api/npm-tag.html
index 454329e630..bc145f5f05 100644
--- a/deps/npm/html/doc/api/npm-tag.html
+++ b/deps/npm/html/doc/api/npm-tag.html
@@ -36,5 +36,5 @@ used. For more information about how to set this config, check
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-tag &mdash; npm@2.2.0</p>
+<p id="footer">npm-tag &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-test.html b/deps/npm/html/doc/api/npm-test.html
index ecb1f949b2..b799e3a7ff 100644
--- a/deps/npm/html/doc/api/npm-test.html
+++ b/deps/npm/html/doc/api/npm-test.html
@@ -30,5 +30,5 @@ in the <code>packages</code> parameter.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-test &mdash; npm@2.2.0</p>
+<p id="footer">npm-test &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-uninstall.html b/deps/npm/html/doc/api/npm-uninstall.html
index 97baf3e8e9..51720cc7d8 100644
--- a/deps/npm/html/doc/api/npm-uninstall.html
+++ b/deps/npm/html/doc/api/npm-uninstall.html
@@ -30,5 +30,5 @@ uninstalled or when an error has been encountered.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-uninstall &mdash; npm@2.2.0</p>
+<p id="footer">npm-uninstall &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-unpublish.html b/deps/npm/html/doc/api/npm-unpublish.html
index 8e8d3e4186..004ca7ed7f 100644
--- a/deps/npm/html/doc/api/npm-unpublish.html
+++ b/deps/npm/html/doc/api/npm-unpublish.html
@@ -33,5 +33,5 @@ the root package entry is removed from the registry entirely.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-unpublish &mdash; npm@2.2.0</p>
+<p id="footer">npm-unpublish &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-update.html b/deps/npm/html/doc/api/npm-update.html
index 60a56e336c..5feecc4b46 100644
--- a/deps/npm/html/doc/api/npm-update.html
+++ b/deps/npm/html/doc/api/npm-update.html
@@ -27,5 +27,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-update &mdash; npm@2.2.0</p>
+<p id="footer">npm-update &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-version.html b/deps/npm/html/doc/api/npm-version.html
index 07f17f8491..cdd410a14c 100644
--- a/deps/npm/html/doc/api/npm-version.html
+++ b/deps/npm/html/doc/api/npm-version.html
@@ -32,5 +32,5 @@ not have exactly one element. The only element should be a version number.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-version &mdash; npm@2.2.0</p>
+<p id="footer">npm-version &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-view.html b/deps/npm/html/doc/api/npm-view.html
index 13b73d5463..627f9e65f0 100644
--- a/deps/npm/html/doc/api/npm-view.html
+++ b/deps/npm/html/doc/api/npm-view.html
@@ -81,5 +81,5 @@ the field name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-view &mdash; npm@2.2.0</p>
+<p id="footer">npm-view &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm-whoami.html b/deps/npm/html/doc/api/npm-whoami.html
index f15772c49b..c381923cd8 100644
--- a/deps/npm/html/doc/api/npm-whoami.html
+++ b/deps/npm/html/doc/api/npm-whoami.html
@@ -29,5 +29,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-whoami &mdash; npm@2.2.0</p>
+<p id="footer">npm-whoami &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/api/npm.html b/deps/npm/html/doc/api/npm.html
index 3e9e8cd7aa..ef985922c6 100644
--- a/deps/npm/html/doc/api/npm.html
+++ b/deps/npm/html/doc/api/npm.html
@@ -23,7 +23,7 @@ npm.load([configObject, ]function (er, npm) {
npm.commands.install([&quot;package&quot;], cb)
})
</code></pre><h2 id="version">VERSION</h2>
-<p>2.2.0</p>
+<p>2.3.0</p>
<h2 id="description">DESCRIPTION</h2>
<p>This is the API documentation for npm.
To find documentation of the command line
@@ -109,5 +109,5 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm &mdash; npm@2.2.0</p>
+<p id="footer">npm &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html
index 73c55a20f5..541ad0c41f 100644
--- a/deps/npm/html/doc/cli/npm-adduser.html
+++ b/deps/npm/html/doc/cli/npm-adduser.html
@@ -68,5 +68,5 @@ precedence over any global configuration.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-adduser &mdash; npm@2.2.0</p>
+<p id="footer">npm-adduser &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html
index 9fb28248be..0f61d5c0be 100644
--- a/deps/npm/html/doc/cli/npm-bin.html
+++ b/deps/npm/html/doc/cli/npm-bin.html
@@ -35,5 +35,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bin &mdash; npm@2.2.0</p>
+<p id="footer">npm-bin &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html
index 46e1bb7142..ccb59fe063 100644
--- a/deps/npm/html/doc/cli/npm-bugs.html
+++ b/deps/npm/html/doc/cli/npm-bugs.html
@@ -54,5 +54,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bugs &mdash; npm@2.2.0</p>
+<p id="footer">npm-bugs &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html
index 321af44288..a32234b9f7 100644
--- a/deps/npm/html/doc/cli/npm-build.html
+++ b/deps/npm/html/doc/cli/npm-build.html
@@ -38,5 +38,5 @@ A folder containing a <code>package.json</code> file in its root.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-build &mdash; npm@2.2.0</p>
+<p id="footer">npm-build &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html
index 49c06b8927..2aec65af8a 100644
--- a/deps/npm/html/doc/cli/npm-bundle.html
+++ b/deps/npm/html/doc/cli/npm-bundle.html
@@ -31,5 +31,5 @@ install packages into the local space.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bundle &mdash; npm@2.2.0</p>
+<p id="footer">npm-bundle &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html
index e08fdc1570..d0d392a29c 100644
--- a/deps/npm/html/doc/cli/npm-cache.html
+++ b/deps/npm/html/doc/cli/npm-cache.html
@@ -81,5 +81,5 @@ they do not make an HTTP request to the registry.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-cache &mdash; npm@2.2.0</p>
+<p id="footer">npm-cache &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html
index 49e16489c6..69da1503e4 100644
--- a/deps/npm/html/doc/cli/npm-completion.html
+++ b/deps/npm/html/doc/cli/npm-completion.html
@@ -42,5 +42,5 @@ completions based on the arguments.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-completion &mdash; npm@2.2.0</p>
+<p id="footer">npm-completion &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html
index a35e60beef..7521a212a8 100644
--- a/deps/npm/html/doc/cli/npm-config.html
+++ b/deps/npm/html/doc/cli/npm-config.html
@@ -66,5 +66,5 @@ global config.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-config &mdash; npm@2.2.0</p>
+<p id="footer">npm-config &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html
index 85b74cb783..2ea5f3de96 100644
--- a/deps/npm/html/doc/cli/npm-dedupe.html
+++ b/deps/npm/html/doc/cli/npm-dedupe.html
@@ -63,5 +63,5 @@ versions.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-dedupe &mdash; npm@2.2.0</p>
+<p id="footer">npm-dedupe &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html
index ccbd233052..886ddd1696 100644
--- a/deps/npm/html/doc/cli/npm-deprecate.html
+++ b/deps/npm/html/doc/cli/npm-deprecate.html
@@ -38,5 +38,5 @@ something like this:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-deprecate &mdash; npm@2.2.0</p>
+<p id="footer">npm-deprecate &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-docs.html b/deps/npm/html/doc/cli/npm-docs.html
index 53e8f77c8c..0721663da0 100644
--- a/deps/npm/html/doc/cli/npm-docs.html
+++ b/deps/npm/html/doc/cli/npm-docs.html
@@ -56,5 +56,5 @@ the current folder and use the <code>name</code> property.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-docs &mdash; npm@2.2.0</p>
+<p id="footer">npm-docs &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html
index 6fc2b6cb99..6a068adb15 100644
--- a/deps/npm/html/doc/cli/npm-edit.html
+++ b/deps/npm/html/doc/cli/npm-edit.html
@@ -49,5 +49,5 @@ or <code>&quot;notepad&quot;</code> on Windows.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-edit &mdash; npm@2.2.0</p>
+<p id="footer">npm-edit &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html
index d8b1c3345f..38e79ce0d6 100644
--- a/deps/npm/html/doc/cli/npm-explore.html
+++ b/deps/npm/html/doc/cli/npm-explore.html
@@ -49,5 +49,5 @@ Windows</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-explore &mdash; npm@2.2.0</p>
+<p id="footer">npm-explore &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html
index 47ae3dd884..3584c29b88 100644
--- a/deps/npm/html/doc/cli/npm-help-search.html
+++ b/deps/npm/html/doc/cli/npm-help-search.html
@@ -46,5 +46,5 @@ where the terms were found in the documentation.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-help-search &mdash; npm@2.2.0</p>
+<p id="footer">npm-help-search &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html
index ad398fd1cb..eb463a8cd9 100644
--- a/deps/npm/html/doc/cli/npm-help.html
+++ b/deps/npm/html/doc/cli/npm-help.html
@@ -52,5 +52,5 @@ matches are equivalent to specifying a topic name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-help &mdash; npm@2.2.0</p>
+<p id="footer">npm-help &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html
index 8d1573a907..c0586d97b7 100644
--- a/deps/npm/html/doc/cli/npm-init.html
+++ b/deps/npm/html/doc/cli/npm-init.html
@@ -40,5 +40,5 @@ defaults and not prompt you for any options.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-init &mdash; npm@2.2.0</p>
+<p id="footer">npm-init &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html
index 4ecf983b60..6a7f9dd7dd 100644
--- a/deps/npm/html/doc/cli/npm-install.html
+++ b/deps/npm/html/doc/cli/npm-install.html
@@ -239,5 +239,5 @@ affects a real use-case, it will be investigated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-install &mdash; npm@2.2.0</p>
+<p id="footer">npm-install &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html
index 605250dff9..b783736d32 100644
--- a/deps/npm/html/doc/cli/npm-link.html
+++ b/deps/npm/html/doc/cli/npm-link.html
@@ -71,5 +71,5 @@ include that scope, e.g.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-link &mdash; npm@2.2.0</p>
+<p id="footer">npm-link &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html
index 9e339765c7..d4d80cfdaa 100644
--- a/deps/npm/html/doc/cli/npm-ls.html
+++ b/deps/npm/html/doc/cli/npm-ls.html
@@ -22,7 +22,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@2.2.0 /path/to/npm
+<pre><code>npm@2.3.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
</code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
@@ -85,5 +85,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-ls &mdash; npm@2.2.0</p>
+<p id="footer">npm-ls &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html
index 097040ae33..81552873ad 100644
--- a/deps/npm/html/doc/cli/npm-outdated.html
+++ b/deps/npm/html/doc/cli/npm-outdated.html
@@ -67,5 +67,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-outdated &mdash; npm@2.2.0</p>
+<p id="footer">npm-outdated &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html
index 8f525c08e5..ed9bcafcb9 100644
--- a/deps/npm/html/doc/cli/npm-owner.html
+++ b/deps/npm/html/doc/cli/npm-owner.html
@@ -49,5 +49,5 @@ that is not implemented at this time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-owner &mdash; npm@2.2.0</p>
+<p id="footer">npm-owner &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html
index dc24a7fb4d..c5ebe07989 100644
--- a/deps/npm/html/doc/cli/npm-pack.html
+++ b/deps/npm/html/doc/cli/npm-pack.html
@@ -41,5 +41,5 @@ overwritten the second time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-pack &mdash; npm@2.2.0</p>
+<p id="footer">npm-pack &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html
index 03b2137713..f3926644ed 100644
--- a/deps/npm/html/doc/cli/npm-prefix.html
+++ b/deps/npm/html/doc/cli/npm-prefix.html
@@ -38,5 +38,5 @@ to contain a package.json file unless <code>-g</code> is also specified.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-prefix &mdash; npm@2.2.0</p>
+<p id="footer">npm-prefix &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html
index 98c757a453..03b306dad3 100644
--- a/deps/npm/html/doc/cli/npm-prune.html
+++ b/deps/npm/html/doc/cli/npm-prune.html
@@ -39,5 +39,5 @@ packages specified in your <code>devDependencies</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-prune &mdash; npm@2.2.0</p>
+<p id="footer">npm-prune &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html
index f5d7adfaa4..6dc61da658 100644
--- a/deps/npm/html/doc/cli/npm-publish.html
+++ b/deps/npm/html/doc/cli/npm-publish.html
@@ -59,5 +59,5 @@ it is removed with <a href="../cli/npm-unpublish.html"><a href="../cli/npm-unpub
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-publish &mdash; npm@2.2.0</p>
+<p id="footer">npm-publish &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html
index e1a3ca6e98..27252fcbba 100644
--- a/deps/npm/html/doc/cli/npm-rebuild.html
+++ b/deps/npm/html/doc/cli/npm-rebuild.html
@@ -38,5 +38,5 @@ the new binary.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-rebuild &mdash; npm@2.2.0</p>
+<p id="footer">npm-rebuild &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html
index 050c1f624d..2ac34d35d4 100644
--- a/deps/npm/html/doc/cli/npm-repo.html
+++ b/deps/npm/html/doc/cli/npm-repo.html
@@ -42,5 +42,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-repo &mdash; npm@2.2.0</p>
+<p id="footer">npm-repo &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html
index 37deabf887..e107a541c0 100644
--- a/deps/npm/html/doc/cli/npm-restart.html
+++ b/deps/npm/html/doc/cli/npm-restart.html
@@ -53,5 +53,5 @@ behavior will be accompanied by an increase in major version number</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-restart &mdash; npm@2.2.0</p>
+<p id="footer">npm-restart &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-rm.html b/deps/npm/html/doc/cli/npm-rm.html
index 845da11c61..617de0c681 100644
--- a/deps/npm/html/doc/cli/npm-rm.html
+++ b/deps/npm/html/doc/cli/npm-rm.html
@@ -39,5 +39,5 @@ on its behalf.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-rm &mdash; npm@2.2.0</p>
+<p id="footer">npm-rm &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html
index 044a914531..08adcec8e1 100644
--- a/deps/npm/html/doc/cli/npm-root.html
+++ b/deps/npm/html/doc/cli/npm-root.html
@@ -35,5 +35,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-root &mdash; npm@2.2.0</p>
+<p id="footer">npm-root &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html
index 69f93318c4..508e04025a 100644
--- a/deps/npm/html/doc/cli/npm-run-script.html
+++ b/deps/npm/html/doc/cli/npm-run-script.html
@@ -50,5 +50,5 @@ and not to any pre or post script.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-run-script &mdash; npm@2.2.0</p>
+<p id="footer">npm-run-script &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html
index f2943cca9f..7b613de6b3 100644
--- a/deps/npm/html/doc/cli/npm-search.html
+++ b/deps/npm/html/doc/cli/npm-search.html
@@ -49,5 +49,5 @@ fall on multiple lines.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-search &mdash; npm@2.2.0</p>
+<p id="footer">npm-search &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html
index 3d6fb470b3..2495eeb3aa 100644
--- a/deps/npm/html/doc/cli/npm-shrinkwrap.html
+++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html
@@ -164,5 +164,5 @@ contents rather than versions.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-shrinkwrap &mdash; npm@2.2.0</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html
index ceb9bcf0b5..ae434f6e40 100644
--- a/deps/npm/html/doc/cli/npm-star.html
+++ b/deps/npm/html/doc/cli/npm-star.html
@@ -36,5 +36,5 @@ a vaguely positive way to show that you care.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-star &mdash; npm@2.2.0</p>
+<p id="footer">npm-star &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html
index ee5cf6ed57..6ec03a5099 100644
--- a/deps/npm/html/doc/cli/npm-stars.html
+++ b/deps/npm/html/doc/cli/npm-stars.html
@@ -37,5 +37,5 @@ you will most certainly enjoy this command.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-stars &mdash; npm@2.2.0</p>
+<p id="footer">npm-stars &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html
index c9ed7fc39e..eedbd240c2 100644
--- a/deps/npm/html/doc/cli/npm-start.html
+++ b/deps/npm/html/doc/cli/npm-start.html
@@ -34,5 +34,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-start &mdash; npm@2.2.0</p>
+<p id="footer">npm-start &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html
index c1f54ba8f7..610da60698 100644
--- a/deps/npm/html/doc/cli/npm-stop.html
+++ b/deps/npm/html/doc/cli/npm-stop.html
@@ -34,5 +34,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-stop &mdash; npm@2.2.0</p>
+<p id="footer">npm-stop &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-tag.html b/deps/npm/html/doc/cli/npm-tag.html
index d3540dae31..57757dfa79 100644
--- a/deps/npm/html/doc/cli/npm-tag.html
+++ b/deps/npm/html/doc/cli/npm-tag.html
@@ -61,5 +61,5 @@ that do not begin with a number or the letter <code>v</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-tag &mdash; npm@2.2.0</p>
+<p id="footer">npm-tag &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html
index 754e7a91a1..e7eacf8890 100644
--- a/deps/npm/html/doc/cli/npm-test.html
+++ b/deps/npm/html/doc/cli/npm-test.html
@@ -37,5 +37,5 @@ true.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-test &mdash; npm@2.2.0</p>
+<p id="footer">npm-test &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html
index b7a7426ea8..a0799b36b1 100644
--- a/deps/npm/html/doc/cli/npm-uninstall.html
+++ b/deps/npm/html/doc/cli/npm-uninstall.html
@@ -57,5 +57,5 @@ npm uninstall dtrace-provider --save-optional
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-uninstall &mdash; npm@2.2.0</p>
+<p id="footer">npm-uninstall &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html
index 3c4df5efe3..a277055b1f 100644
--- a/deps/npm/html/doc/cli/npm-unpublish.html
+++ b/deps/npm/html/doc/cli/npm-unpublish.html
@@ -47,5 +47,5 @@ package again, a new version number must be used.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-unpublish &mdash; npm@2.2.0</p>
+<p id="footer">npm-unpublish &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html
index 72f508aab3..d1e66aa812 100644
--- a/deps/npm/html/doc/cli/npm-update.html
+++ b/deps/npm/html/doc/cli/npm-update.html
@@ -42,5 +42,5 @@ or local) will be updated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-update &mdash; npm@2.2.0</p>
+<p id="footer">npm-update &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html
index a9a40f7366..dfb537a74d 100644
--- a/deps/npm/html/doc/cli/npm-version.html
+++ b/deps/npm/html/doc/cli/npm-version.html
@@ -55,5 +55,5 @@ Enter passphrase:
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-version &mdash; npm@2.2.0</p>
+<p id="footer">npm-version &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html
index aee2ff19a6..8c54064ce5 100644
--- a/deps/npm/html/doc/cli/npm-view.html
+++ b/deps/npm/html/doc/cli/npm-view.html
@@ -24,7 +24,7 @@ this:</p>
For example, to show the dependencies of the <code>ronn</code> package at version
0.3.5, you could do the following:</p>
<pre><code>npm view ronn@0.3.5 dependencies
-</code></pre><p>You can view child field by separating them with a period.
+</code></pre><p>You can view child fields by separating them with a period.
To view the git repository URL for the latest version of npm, you could
do this:</p>
<pre><code>npm view npm repository.url
@@ -82,5 +82,5 @@ the field name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-view &mdash; npm@2.2.0</p>
+<p id="footer">npm-view &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html
index d6b6425c0a..fbd5544e95 100644
--- a/deps/npm/html/doc/cli/npm-whoami.html
+++ b/deps/npm/html/doc/cli/npm-whoami.html
@@ -33,5 +33,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-whoami &mdash; npm@2.2.0</p>
+<p id="footer">npm-whoami &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html
index 64f8d3f554..f561c7eb82 100644
--- a/deps/npm/html/doc/cli/npm.html
+++ b/deps/npm/html/doc/cli/npm.html
@@ -13,7 +13,7 @@
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm &lt;command&gt; [args]
</code></pre><h2 id="version">VERSION</h2>
-<p>2.2.0</p>
+<p>2.3.0</p>
<h2 id="description">DESCRIPTION</h2>
<p>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 @@ easily by doing <code>npm view npm contributors</code>.</p>
the issues list or ask on the mailing list.</p>
<ul>
<li><a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
-<li><a href="&#x6d;&#97;&#105;&#x6c;&#116;&#x6f;&#x3a;&#110;&#x70;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#x2e;&#x63;&#111;&#x6d;">&#110;&#x70;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#x2e;&#x63;&#111;&#x6d;</a></li>
+<li><a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#x3a;&#x6e;&#112;&#109;&#45;&#64;&#x67;&#x6f;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#x6f;&#117;&#x70;&#115;&#x2e;&#99;&#111;&#x6d;">&#x6e;&#112;&#109;&#45;&#64;&#x67;&#x6f;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#x6f;&#117;&#x70;&#115;&#x2e;&#99;&#111;&#x6d;</a></li>
</ul>
<h2 id="bugs">BUGS</h2>
<p>When you find issues, please report them:</p>
@@ -118,7 +118,7 @@ the issues list or ask on the mailing list.</p>
<li>web:
<a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
<li>email:
-<a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#x3a;&#110;&#x70;&#109;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#112;&#x73;&#x2e;&#99;&#111;&#109;">&#110;&#x70;&#109;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#112;&#x73;&#x2e;&#99;&#111;&#109;</a></li>
+<a href="&#x6d;&#97;&#105;&#x6c;&#116;&#x6f;&#58;&#x6e;&#x70;&#x6d;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#x6c;&#x65;&#x67;&#x72;&#111;&#117;&#112;&#115;&#46;&#99;&#x6f;&#109;">&#x6e;&#x70;&#x6d;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#x6c;&#x65;&#x67;&#x72;&#111;&#117;&#112;&#115;&#46;&#99;&#x6f;&#109;</a></li>
</ul>
<p>Be sure to include <em>all</em> of the output from the npm command that didn&#39;t work
as expected. The <code>npm-debug.log</code> file is also helpful to provide.</p>
@@ -128,7 +128,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
<a href="https://github.com/isaacs/">isaacs</a> ::
<a href="http://twitter.com/izs">@izs</a> ::
-<a href="&#x6d;&#x61;&#x69;&#108;&#x74;&#111;&#58;&#x69;&#x40;&#105;&#x7a;&#x73;&#46;&#109;&#101;">&#x69;&#x40;&#105;&#x7a;&#x73;&#46;&#109;&#101;</a></p>
+<a href="&#109;&#x61;&#105;&#x6c;&#x74;&#111;&#58;&#105;&#64;&#x69;&#x7a;&#x73;&#46;&#x6d;&#101;">&#105;&#64;&#x69;&#x7a;&#x73;&#46;&#x6d;&#101;</a></p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-help.html"><a href="../cli/npm-help.html">npm-help(1)</a></a></li>
@@ -154,5 +154,5 @@ will no doubt tell you to put the output in a gist or email.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm &mdash; npm@2.2.0</p>
+<p id="footer">npm &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html
index 78a6ac6662..67b03a2b02 100644
--- a/deps/npm/html/doc/files/npm-folders.html
+++ b/deps/npm/html/doc/files/npm-folders.html
@@ -184,5 +184,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html"><a hr
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-folders &mdash; npm@2.2.0</p>
+<p id="footer">npm-folders &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html
index 20d5413a48..2155a83a48 100644
--- a/deps/npm/html/doc/files/npm-global.html
+++ b/deps/npm/html/doc/files/npm-global.html
@@ -184,5 +184,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html"><a hr
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-global &mdash; npm@2.2.0</p>
+<p id="footer">npm-global &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html
index ebfecab01c..aa279fe371 100644
--- a/deps/npm/html/doc/files/npm-json.html
+++ b/deps/npm/html/doc/files/npm-json.html
@@ -115,10 +115,10 @@ feature to install the &quot;npm&quot; executable.)</p>
command name to local file name. On install, npm will symlink that file into
<code>prefix/bin</code> for global installs, or <code>./node_modules/.bin/</code> for local
installs.</p>
-<p>For example, npm has this:</p>
-<pre><code>{ &quot;bin&quot; : { &quot;npm&quot; : &quot;./cli.js&quot; } }
-</code></pre><p>So, when you install npm, it&#39;ll create a symlink from the <code>cli.js</code> script to
-<code>/usr/local/bin/npm</code>.</p>
+<p>For example, myapp could have this:</p>
+<pre><code>{ &quot;bin&quot; : { &quot;myapp&quot; : &quot;./cli.js&quot; } }
+</code></pre><p>So, when you install myapp, it&#39;ll create a symlink from the <code>cli.js</code> script to
+<code>/usr/local/bin/myapp</code>.</p>
<p>If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string. For example:</p>
<pre><code>{ &quot;name&quot;: &quot;my-program&quot;
@@ -488,5 +488,5 @@ ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-json &mdash; npm@2.2.0</p>
+<p id="footer">npm-json &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html
index 4ee352e536..976a6404f1 100644
--- a/deps/npm/html/doc/files/npmrc.html
+++ b/deps/npm/html/doc/files/npmrc.html
@@ -77,5 +77,5 @@ manner.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npmrc &mdash; npm@2.2.0</p>
+<p id="footer">npmrc &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html
index ff1f7cff21..c4c175dd0d 100644
--- a/deps/npm/html/doc/files/package.json.html
+++ b/deps/npm/html/doc/files/package.json.html
@@ -115,10 +115,10 @@ feature to install the &quot;npm&quot; executable.)</p>
command name to local file name. On install, npm will symlink that file into
<code>prefix/bin</code> for global installs, or <code>./node_modules/.bin/</code> for local
installs.</p>
-<p>For example, npm has this:</p>
-<pre><code>{ &quot;bin&quot; : { &quot;npm&quot; : &quot;./cli.js&quot; } }
-</code></pre><p>So, when you install npm, it&#39;ll create a symlink from the <code>cli.js</code> script to
-<code>/usr/local/bin/npm</code>.</p>
+<p>For example, myapp could have this:</p>
+<pre><code>{ &quot;bin&quot; : { &quot;myapp&quot; : &quot;./cli.js&quot; } }
+</code></pre><p>So, when you install myapp, it&#39;ll create a symlink from the <code>cli.js</code> script to
+<code>/usr/local/bin/myapp</code>.</p>
<p>If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string. For example:</p>
<pre><code>{ &quot;name&quot;: &quot;my-program&quot;
@@ -488,5 +488,5 @@ ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">package.json &mdash; npm@2.2.0</p>
+<p id="footer">package.json &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html
index 97d5862263..e10541d7a4 100644
--- a/deps/npm/html/doc/index.html
+++ b/deps/npm/html/doc/index.html
@@ -230,5 +230,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">index &mdash; npm@2.2.0</p>
+<p id="footer">index &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html
index 04925d5e2d..f792436194 100644
--- a/deps/npm/html/doc/misc/npm-coding-style.html
+++ b/deps/npm/html/doc/misc/npm-coding-style.html
@@ -147,5 +147,5 @@ set to anything.&quot;</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-coding-style &mdash; npm@2.2.0</p>
+<p id="footer">npm-coding-style &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html
index f3e89cf43f..337d982293 100644
--- a/deps/npm/html/doc/misc/npm-config.html
+++ b/deps/npm/html/doc/misc/npm-config.html
@@ -711,7 +711,7 @@ instead of complete help when doing <code><a href="../cli/npm-help.html"><a href
<h3 id="umask">umask</h3>
<ul>
<li>Default: 022</li>
-<li>Type: Octal numeric string</li>
+<li>Type: Octal numeric string in range 0000..0777 (0..511)</li>
</ul>
<p>The &quot;umask&quot; value to use when setting the file creation mode on files
and folders.</p>
@@ -767,5 +767,5 @@ exit successfully.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-config &mdash; npm@2.2.0</p>
+<p id="footer">npm-config &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html
index 42f1006373..1ef6966b78 100644
--- a/deps/npm/html/doc/misc/npm-developers.html
+++ b/deps/npm/html/doc/misc/npm-developers.html
@@ -189,5 +189,5 @@ from a fresh checkout.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-developers &mdash; npm@2.2.0</p>
+<p id="footer">npm-developers &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html
index 68f9271ca7..ea48218f53 100644
--- a/deps/npm/html/doc/misc/npm-disputes.html
+++ b/deps/npm/html/doc/misc/npm-disputes.html
@@ -13,7 +13,7 @@
<h2 id="synopsis">SYNOPSIS</h2>
<ol>
<li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
-<li>Email the author, CC <a href="&#x6d;&#97;&#x69;&#108;&#116;&#x6f;&#58;&#x73;&#117;&#x70;&#x70;&#x6f;&#114;&#116;&#64;&#x6e;&#112;&#x6d;&#106;&#x73;&#x2e;&#x63;&#111;&#109;">&#x73;&#117;&#x70;&#x70;&#x6f;&#114;&#116;&#64;&#x6e;&#112;&#x6d;&#106;&#x73;&#x2e;&#x63;&#111;&#109;</a></li>
+<li>Email the author, CC <a href="&#109;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#115;&#117;&#x70;&#x70;&#x6f;&#x72;&#116;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;">&#115;&#117;&#x70;&#x70;&#x6f;&#x72;&#116;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;</a></li>
<li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
</ol>
<p>Don&#39;t squat on package names. Publish code or move out of the way.</p>
@@ -51,12 +51,12 @@ Joe&#39;s appropriate course of action in each case is the same.</p>
owner (Bob).</li>
<li>Joe emails Bob, explaining the situation <strong>as respectfully as
possible</strong>, and what he would like to do with the module name. He
-adds the npm support staff <a href="&#109;&#x61;&#105;&#108;&#116;&#x6f;&#x3a;&#115;&#x75;&#112;&#x70;&#111;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#99;&#x6f;&#x6d;">&#115;&#x75;&#112;&#x70;&#111;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#99;&#x6f;&#x6d;</a> to the CC list of
+adds the npm support staff <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#109;&#x6a;&#x73;&#46;&#x63;&#111;&#x6d;">&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#109;&#x6a;&#x73;&#46;&#x63;&#111;&#x6d;</a> to the CC list of
the email. Mention in the email that Bob can run <code>npm owner add
joe foo</code> to add Joe as an owner of the <code>foo</code> package.</li>
<li>After a reasonable amount of time, if Bob has not responded, or if
Bob and Joe can&#39;t come to any sort of resolution, email support
-<a href="&#x6d;&#97;&#105;&#108;&#x74;&#x6f;&#x3a;&#115;&#117;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#99;&#x6f;&#109;">&#115;&#117;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#99;&#x6f;&#109;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is
+<a href="&#109;&#97;&#105;&#108;&#116;&#x6f;&#58;&#115;&#x75;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#99;&#111;&#x6d;">&#115;&#x75;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#99;&#111;&#x6d;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is
usually at least 4 weeks, but extra time is allowed around common
holidays.)</li>
</ol>
@@ -112,5 +112,5 @@ things into it.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-disputes &mdash; npm@2.2.0</p>
+<p id="footer">npm-disputes &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-faq.html b/deps/npm/html/doc/misc/npm-faq.html
index 01caec95a6..0372168e1e 100644
--- a/deps/npm/html/doc/misc/npm-faq.html
+++ b/deps/npm/html/doc/misc/npm-faq.html
@@ -236,7 +236,7 @@ that has a package.json in its root, or a git url.
<p>To check if the registry is down, open up
<a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a> in a web browser. This will also tell
you if you are just unable to access the internet for some reason.</p>
-<p>If the registry IS down, let us know by emailing <a href="&#x6d;&#97;&#105;&#x6c;&#x74;&#111;&#x3a;&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#x6f;&#109;">&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#x6f;&#109;</a>
+<p>If the registry IS down, let us know by emailing <a href="&#x6d;&#97;&#x69;&#x6c;&#116;&#x6f;&#58;&#115;&#x75;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;">&#115;&#x75;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;</a>
or posting an issue at <a href="https://github.com/npm/npm/issues">https://github.com/npm/npm/issues</a>. If it&#39;s
down for the world (and not just on your local network) then we&#39;re
probably already being pinged about it.</p>
@@ -307,5 +307,5 @@ good folks at <a href="http://www.npmjs.com">npm, Inc.</a></p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-faq &mdash; npm@2.2.0</p>
+<p id="footer">npm-faq &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html
index 4f6fd59228..7faca1768f 100644
--- a/deps/npm/html/doc/misc/npm-index.html
+++ b/deps/npm/html/doc/misc/npm-index.html
@@ -230,5 +230,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-index &mdash; npm@2.2.0</p>
+<p id="footer">npm-index &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html
index 4730dff297..84972d7676 100644
--- a/deps/npm/html/doc/misc/npm-registry.html
+++ b/deps/npm/html/doc/misc/npm-registry.html
@@ -70,5 +70,5 @@ effectively implement the entire CouchDB API anyway.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-registry &mdash; npm@2.2.0</p>
+<p id="footer">npm-registry &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-scope.html b/deps/npm/html/doc/misc/npm-scope.html
index ffb364a06a..7acbeabed4 100644
--- a/deps/npm/html/doc/misc/npm-scope.html
+++ b/deps/npm/html/doc/misc/npm-scope.html
@@ -78,5 +78,5 @@ that registry instead.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-scope &mdash; npm@2.2.0</p>
+<p id="footer">npm-scope &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html
index 3210818e40..b25a69d36e 100644
--- a/deps/npm/html/doc/misc/npm-scripts.html
+++ b/deps/npm/html/doc/misc/npm-scripts.html
@@ -216,5 +216,5 @@ the user will sudo the npm command in question.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-scripts &mdash; npm@2.2.0</p>
+<p id="footer">npm-scripts &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html
index aad4b522d4..034c4b639c 100644
--- a/deps/npm/html/doc/misc/removing-npm.html
+++ b/deps/npm/html/doc/misc/removing-npm.html
@@ -57,5 +57,5 @@ modules. To track those down, you can do the following:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">removing-npm &mdash; npm@2.2.0</p>
+<p id="footer">removing-npm &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html
index 98de492fd7..a3832b091f 100644
--- a/deps/npm/html/doc/misc/semver.html
+++ b/deps/npm/html/doc/misc/semver.html
@@ -279,5 +279,5 @@ range, use the <code>satisfies(version, range)</code> function.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">semver &mdash; npm@2.2.0</p>
+<p id="footer">semver &mdash; npm@2.3.0</p>
diff --git a/deps/npm/html/partial/doc/README.html b/deps/npm/html/partial/doc/README.html
index 182dbb18bd..3aaea64eb1 100644
--- a/deps/npm/html/partial/doc/README.html
+++ b/deps/npm/html/partial/doc/README.html
@@ -115,7 +115,7 @@ specific purpose, or lack of malice in any given npm package.</p>
<p>If you have a complaint about a package in the public npm registry,
and cannot <a href="https://docs.npmjs.com/misc/disputes">resolve it with the package
owner</a>, please email
-<a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#111;&#x3a;&#115;&#117;&#x70;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#111;&#x6d;">&#115;&#117;&#x70;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#111;&#x6d;</a> and explain the situation.</p>
+<a href="&#109;&#x61;&#105;&#x6c;&#x74;&#x6f;&#58;&#115;&#x75;&#112;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#99;&#111;&#x6d;">&#115;&#x75;&#112;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#99;&#111;&#x6d;</a> and explain the situation.</p>
<p>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.</p>
diff --git a/deps/npm/html/partial/doc/api/npm.html b/deps/npm/html/partial/doc/api/npm.html
index 52e80b12ba..1ca51d38da 100644
--- a/deps/npm/html/partial/doc/api/npm.html
+++ b/deps/npm/html/partial/doc/api/npm.html
@@ -12,7 +12,7 @@ npm.load([configObject, ]function (er, npm) {
npm.commands.install([&quot;package&quot;], cb)
})
</code></pre><h2 id="version">VERSION</h2>
-<p>2.2.0</p>
+<p>2.3.0</p>
<h2 id="description">DESCRIPTION</h2>
<p>This is the API documentation for npm.
To find documentation of the command line
diff --git a/deps/npm/html/partial/doc/cli/npm-ls.html b/deps/npm/html/partial/doc/cli/npm-ls.html
index bfbb8f8c50..788a0d2adb 100644
--- a/deps/npm/html/partial/doc/cli/npm-ls.html
+++ b/deps/npm/html/partial/doc/cli/npm-ls.html
@@ -11,7 +11,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@2.2.0 /path/to/npm
+<pre><code>npm@2.3.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
</code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
diff --git a/deps/npm/html/partial/doc/cli/npm-view.html b/deps/npm/html/partial/doc/cli/npm-view.html
index a5b38518fb..dcd41693e7 100644
--- a/deps/npm/html/partial/doc/cli/npm-view.html
+++ b/deps/npm/html/partial/doc/cli/npm-view.html
@@ -13,7 +13,7 @@ this:</p>
For example, to show the dependencies of the <code>ronn</code> package at version
0.3.5, you could do the following:</p>
<pre><code>npm view ronn@0.3.5 dependencies
-</code></pre><p>You can view child field by separating them with a period.
+</code></pre><p>You can view child fields by separating them with a period.
To view the git repository URL for the latest version of npm, you could
do this:</p>
<pre><code>npm view npm repository.url
diff --git a/deps/npm/html/partial/doc/cli/npm.html b/deps/npm/html/partial/doc/cli/npm.html
index 7f7892ec62..9410dfdea1 100644
--- a/deps/npm/html/partial/doc/cli/npm.html
+++ b/deps/npm/html/partial/doc/cli/npm.html
@@ -2,7 +2,7 @@
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm &lt;command&gt; [args]
</code></pre><h2 id="version">VERSION</h2>
-<p>2.2.0</p>
+<p>2.3.0</p>
<h2 id="description">DESCRIPTION</h2>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
@@ -99,7 +99,7 @@ easily by doing <code>npm view npm contributors</code>.</p>
the issues list or ask on the mailing list.</p>
<ul>
<li><a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
-<li><a href="&#x6d;&#97;&#105;&#x6c;&#116;&#x6f;&#x3a;&#110;&#x70;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#x2e;&#x63;&#111;&#x6d;">&#110;&#x70;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#x2e;&#x63;&#111;&#x6d;</a></li>
+<li><a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#x3a;&#x6e;&#112;&#109;&#45;&#64;&#x67;&#x6f;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#x6f;&#117;&#x70;&#115;&#x2e;&#99;&#111;&#x6d;">&#x6e;&#112;&#109;&#45;&#64;&#x67;&#x6f;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#x6f;&#117;&#x70;&#115;&#x2e;&#99;&#111;&#x6d;</a></li>
</ul>
<h2 id="bugs">BUGS</h2>
<p>When you find issues, please report them:</p>
@@ -107,7 +107,7 @@ the issues list or ask on the mailing list.</p>
<li>web:
<a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
<li>email:
-<a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#x3a;&#110;&#x70;&#109;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#112;&#x73;&#x2e;&#99;&#111;&#109;">&#110;&#x70;&#109;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#112;&#x73;&#x2e;&#99;&#111;&#109;</a></li>
+<a href="&#x6d;&#97;&#105;&#x6c;&#116;&#x6f;&#58;&#x6e;&#x70;&#x6d;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#x6c;&#x65;&#x67;&#x72;&#111;&#117;&#112;&#115;&#46;&#99;&#x6f;&#109;">&#x6e;&#x70;&#x6d;&#45;&#x40;&#103;&#111;&#x6f;&#x67;&#x6c;&#x65;&#x67;&#x72;&#111;&#117;&#112;&#115;&#46;&#99;&#x6f;&#109;</a></li>
</ul>
<p>Be sure to include <em>all</em> of the output from the npm command that didn&#39;t work
as expected. The <code>npm-debug.log</code> file is also helpful to provide.</p>
@@ -117,7 +117,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
<a href="https://github.com/isaacs/">isaacs</a> ::
<a href="http://twitter.com/izs">@izs</a> ::
-<a href="&#x6d;&#x61;&#x69;&#108;&#x74;&#111;&#58;&#x69;&#x40;&#105;&#x7a;&#x73;&#46;&#109;&#101;">&#x69;&#x40;&#105;&#x7a;&#x73;&#46;&#109;&#101;</a></p>
+<a href="&#109;&#x61;&#105;&#x6c;&#x74;&#111;&#58;&#105;&#64;&#x69;&#x7a;&#x73;&#46;&#x6d;&#101;">&#105;&#64;&#x69;&#x7a;&#x73;&#46;&#x6d;&#101;</a></p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-help.html">npm-help(1)</a></li>
diff --git a/deps/npm/html/partial/doc/files/npm-json.html b/deps/npm/html/partial/doc/files/npm-json.html
index 31e4979b87..95f26c6eeb 100644
--- a/deps/npm/html/partial/doc/files/npm-json.html
+++ b/deps/npm/html/partial/doc/files/npm-json.html
@@ -104,10 +104,10 @@ feature to install the &quot;npm&quot; executable.)</p>
command name to local file name. On install, npm will symlink that file into
<code>prefix/bin</code> for global installs, or <code>./node_modules/.bin/</code> for local
installs.</p>
-<p>For example, npm has this:</p>
-<pre><code>{ &quot;bin&quot; : { &quot;npm&quot; : &quot;./cli.js&quot; } }
-</code></pre><p>So, when you install npm, it&#39;ll create a symlink from the <code>cli.js</code> script to
-<code>/usr/local/bin/npm</code>.</p>
+<p>For example, myapp could have this:</p>
+<pre><code>{ &quot;bin&quot; : { &quot;myapp&quot; : &quot;./cli.js&quot; } }
+</code></pre><p>So, when you install myapp, it&#39;ll create a symlink from the <code>cli.js</code> script to
+<code>/usr/local/bin/myapp</code>.</p>
<p>If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string. For example:</p>
<pre><code>{ &quot;name&quot;: &quot;my-program&quot;
diff --git a/deps/npm/html/partial/doc/files/package.json.html b/deps/npm/html/partial/doc/files/package.json.html
index 31e4979b87..95f26c6eeb 100644
--- a/deps/npm/html/partial/doc/files/package.json.html
+++ b/deps/npm/html/partial/doc/files/package.json.html
@@ -104,10 +104,10 @@ feature to install the &quot;npm&quot; executable.)</p>
command name to local file name. On install, npm will symlink that file into
<code>prefix/bin</code> for global installs, or <code>./node_modules/.bin/</code> for local
installs.</p>
-<p>For example, npm has this:</p>
-<pre><code>{ &quot;bin&quot; : { &quot;npm&quot; : &quot;./cli.js&quot; } }
-</code></pre><p>So, when you install npm, it&#39;ll create a symlink from the <code>cli.js</code> script to
-<code>/usr/local/bin/npm</code>.</p>
+<p>For example, myapp could have this:</p>
+<pre><code>{ &quot;bin&quot; : { &quot;myapp&quot; : &quot;./cli.js&quot; } }
+</code></pre><p>So, when you install myapp, it&#39;ll create a symlink from the <code>cli.js</code> script to
+<code>/usr/local/bin/myapp</code>.</p>
<p>If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string. For example:</p>
<pre><code>{ &quot;name&quot;: &quot;my-program&quot;
diff --git a/deps/npm/html/partial/doc/misc/npm-config.html b/deps/npm/html/partial/doc/misc/npm-config.html
index d9b9dfdbe0..1dcbc237cc 100644
--- a/deps/npm/html/partial/doc/misc/npm-config.html
+++ b/deps/npm/html/partial/doc/misc/npm-config.html
@@ -700,7 +700,7 @@ instead of complete help when doing <code><a href="../cli/npm-help.html">npm-hel
<h3 id="umask">umask</h3>
<ul>
<li>Default: 022</li>
-<li>Type: Octal numeric string</li>
+<li>Type: Octal numeric string in range 0000..0777 (0..511)</li>
</ul>
<p>The &quot;umask&quot; value to use when setting the file creation mode on files
and folders.</p>
diff --git a/deps/npm/html/partial/doc/misc/npm-disputes.html b/deps/npm/html/partial/doc/misc/npm-disputes.html
index 1cc7ca38ae..ab322741a7 100644
--- a/deps/npm/html/partial/doc/misc/npm-disputes.html
+++ b/deps/npm/html/partial/doc/misc/npm-disputes.html
@@ -2,7 +2,7 @@
<h2 id="synopsis">SYNOPSIS</h2>
<ol>
<li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
-<li>Email the author, CC <a href="&#x6d;&#97;&#x69;&#108;&#116;&#x6f;&#58;&#x73;&#117;&#x70;&#x70;&#x6f;&#114;&#116;&#64;&#x6e;&#112;&#x6d;&#106;&#x73;&#x2e;&#x63;&#111;&#109;">&#x73;&#117;&#x70;&#x70;&#x6f;&#114;&#116;&#64;&#x6e;&#112;&#x6d;&#106;&#x73;&#x2e;&#x63;&#111;&#109;</a></li>
+<li>Email the author, CC <a href="&#109;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#115;&#117;&#x70;&#x70;&#x6f;&#x72;&#116;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;">&#115;&#117;&#x70;&#x70;&#x6f;&#x72;&#116;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;</a></li>
<li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
</ol>
<p>Don&#39;t squat on package names. Publish code or move out of the way.</p>
@@ -40,12 +40,12 @@ Joe&#39;s appropriate course of action in each case is the same.</p>
owner (Bob).</li>
<li>Joe emails Bob, explaining the situation <strong>as respectfully as
possible</strong>, and what he would like to do with the module name. He
-adds the npm support staff <a href="&#109;&#x61;&#105;&#108;&#116;&#x6f;&#x3a;&#115;&#x75;&#112;&#x70;&#111;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#99;&#x6f;&#x6d;">&#115;&#x75;&#112;&#x70;&#111;&#114;&#116;&#x40;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#99;&#x6f;&#x6d;</a> to the CC list of
+adds the npm support staff <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#109;&#x6a;&#x73;&#46;&#x63;&#111;&#x6d;">&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#109;&#x6a;&#x73;&#46;&#x63;&#111;&#x6d;</a> to the CC list of
the email. Mention in the email that Bob can run <code>npm owner add
joe foo</code> to add Joe as an owner of the <code>foo</code> package.</li>
<li>After a reasonable amount of time, if Bob has not responded, or if
Bob and Joe can&#39;t come to any sort of resolution, email support
-<a href="&#x6d;&#97;&#105;&#108;&#x74;&#x6f;&#x3a;&#115;&#117;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#99;&#x6f;&#109;">&#115;&#117;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#99;&#x6f;&#109;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is
+<a href="&#109;&#97;&#105;&#108;&#116;&#x6f;&#58;&#115;&#x75;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#99;&#111;&#x6d;">&#115;&#x75;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#99;&#111;&#x6d;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is
usually at least 4 weeks, but extra time is allowed around common
holidays.)</li>
</ol>
diff --git a/deps/npm/html/partial/doc/misc/npm-faq.html b/deps/npm/html/partial/doc/misc/npm-faq.html
index 5b935102cd..a015b73831 100644
--- a/deps/npm/html/partial/doc/misc/npm-faq.html
+++ b/deps/npm/html/partial/doc/misc/npm-faq.html
@@ -225,7 +225,7 @@ that has a package.json in its root, or a git url.
<p>To check if the registry is down, open up
<a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a> in a web browser. This will also tell
you if you are just unable to access the internet for some reason.</p>
-<p>If the registry IS down, let us know by emailing <a href="&#x6d;&#97;&#105;&#x6c;&#x74;&#111;&#x3a;&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#x6f;&#109;">&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#116;&#x40;&#110;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#x6f;&#109;</a>
+<p>If the registry IS down, let us know by emailing <a href="&#x6d;&#97;&#x69;&#x6c;&#116;&#x6f;&#58;&#115;&#x75;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;">&#115;&#x75;&#x70;&#112;&#111;&#114;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;</a>
or posting an issue at <a href="https://github.com/npm/npm/issues">https://github.com/npm/npm/issues</a>. If it&#39;s
down for the world (and not just on your local network) then we&#39;re
probably already being pinged about it.</p>
diff --git a/deps/npm/lib/cache/add-remote-git.js b/deps/npm/lib/cache/add-remote-git.js
index 1ad925eec3..c829a4fe6d 100644
--- a/deps/npm/lib/cache/add-remote-git.js
+++ b/deps/npm/lib/cache/add-remote-git.js
@@ -14,6 +14,7 @@ var mkdir = require("mkdirp")
, addLocal = require("./add-local.js")
, realizePackageSpecifier = require("realize-package-specifier")
, normalizeGitUrl = require("normalize-git-url")
+ , randomBytes = require("crypto").pseudoRandomBytes // only need uniqueness
var remotes = path.resolve(npm.config.get("cache"), "_git-remotes")
var templates = path.join(remotes, "_templates")
@@ -211,11 +212,23 @@ function resolveHead (p, u, co, origUrl, cb) {
* this has to be two steps.
*/
function cache (p, u, treeish, resolved, cb) {
- var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random(), treeish)
- git.whichAndExec(
- [ "clone", p, tmp ],
- { cwd : p, env : gitEnv() },
- function (er, stdout, stderr) {
+ // generate a unique filename
+ randomBytes(6, function (er, random) {
+ if (er) return cb(er)
+
+ var tmp = path.join(
+ npm.tmp,
+ "git-cache-"+random.toString("hex"),
+ treeish
+ )
+
+ mkdir(tmp, function (er) {
+ if (er) return cb(er)
+
+ git.whichAndExec(["clone", p, tmp], { cwd : p, env : gitEnv() }, clone)
+ })
+
+ function clone (er, stdout, stderr) {
stdout = (stdout + "\n" + stderr).trim()
if (er) {
log.error("Failed to clone "+resolved+" from "+u, stderr)
@@ -224,34 +237,32 @@ function cache (p, u, treeish, resolved, cb) {
log.verbose("git clone", "from", p)
log.verbose("git clone", stdout)
- git.whichAndExec(
- [ "checkout", treeish ],
- { cwd : tmp, env : gitEnv() },
- function (er, stdout, stderr) {
- stdout = (stdout + "\n" + stderr).trim()
- if (er) {
- log.error("Failed to check out "+treeish, stderr)
- return cb(er)
- }
- log.verbose("git checkout", stdout)
+ git.whichAndExec(["checkout", treeish], { cwd : tmp, env : gitEnv() }, checkout)
+ }
- realizePackageSpecifier(tmp, function (er, spec) {
- if (er) {
- log.error("Failed to map", tmp, "to a package specifier")
- return cb(er)
- }
+ function checkout (er, stdout, stderr) {
+ stdout = (stdout + "\n" + stderr).trim()
+ if (er) {
+ log.error("Failed to check out "+treeish, stderr)
+ return cb(er)
+ }
+ log.verbose("git checkout", stdout)
- // https://github.com/npm/npm/issues/6400
- // ensure pack logic is applied
- addLocal(spec, null, function (er, data) {
- if (data) data._resolved = resolved
- cb(er, data)
- })
- })
+ realizePackageSpecifier(tmp, function (er, spec) {
+ if (er) {
+ log.error("Failed to map", tmp, "to a package specifier")
+ return cb(er)
}
- )
+
+ // https://github.com/npm/npm/issues/6400
+ // ensure pack logic is applied
+ addLocal(spec, null, function (er, data) {
+ if (data) data._resolved = resolved
+ cb(er, data)
+ })
+ })
}
- )
+ })
}
var gitEnv_
diff --git a/deps/npm/lib/cache/caching-client.js b/deps/npm/lib/cache/caching-client.js
index d81e6f53d6..459a236f55 100644
--- a/deps/npm/lib/cache/caching-client.js
+++ b/deps/npm/lib/cache/caching-client.js
@@ -37,9 +37,9 @@ CachingRegistryClient.prototype._invalidatingRequest = function (uri, params, cb
var invalidated = client._mapToCache(uri)
// invalidate cache
//
- // This is irrelevant for commands that do etag caching, but ls and
- // view also have a timed cache, so this keeps the user from thinking
- // that it didn't work when it did.
+ // This is irrelevant for commands that do etag / last-modified caching,
+ // but ls and view also have a timed cache, so this keeps the user from
+ // thinking that it didn't work when it did.
// Note that failure is an acceptable option here, since the only
// result will be a stale cache for some helper commands.
client.log.verbose("request", "invalidating", invalidated, "on", method)
@@ -99,6 +99,7 @@ function get_ (uri, cachePath, params, cb) {
, data = params.data
, stat = params.stat
, etag
+ , lastModified
timeout = Math.min(timeout, npm.config.get("cache-max") || 0)
timeout = Math.max(timeout, npm.config.get("cache-min") || -Infinity)
@@ -110,17 +111,20 @@ function get_ (uri, cachePath, params, cb) {
if (data) {
if (data._etag) etag = data._etag
+ if (data._lastModified) lastModified = data._lastModified
if (stat && timeout && timeout > 0) {
if ((Date.now() - stat.mtime.getTime())/1000 < timeout) {
log.verbose("get", uri, "not expired, no request")
delete data._etag
+ delete data._lastModified
return cb(null, data, JSON.stringify(data), { statusCode : 304 })
}
if (staleOk) {
log.verbose("get", uri, "staleOk, background update")
delete data._etag
+ delete data._lastModified
process.nextTick(
cb.bind(null, null, data, JSON.stringify(data), { statusCode : 304 } )
)
@@ -130,9 +134,10 @@ function get_ (uri, cachePath, params, cb) {
}
var options = {
- etag : etag,
- follow : params.follow,
- auth : params.auth
+ etag : etag,
+ lastModified : lastModified,
+ follow : params.follow,
+ auth : params.auth
}
this.request(uri, options, function (er, remoteData, raw, response) {
// if we get an error talking to the registry, but we have it
@@ -144,9 +149,9 @@ function get_ (uri, cachePath, params, cb) {
if (response) {
log.silly("get", "cb", [response.statusCode, response.headers])
- if (response.statusCode === 304 && etag) {
+ if (response.statusCode === 304 && (etag || lastModified)) {
remoteData = data
- log.verbose("etag", uri+" from cache")
+ log.verbose(etag ? "etag" : "lastModified", uri+" from cache")
}
}
@@ -160,6 +165,7 @@ function get_ (uri, cachePath, params, cb) {
// just give the write the old college try. if it fails, whatever.
function saved () {
delete data._etag
+ delete data._lastModified
cb(er, data, raw, response)
}
@@ -169,7 +175,7 @@ function get_ (uri, cachePath, params, cb) {
if (er) return saved()
writeFile(cachePath, JSON.stringify(data), function (er) {
- if (er || st.uid === null || st.gid === null) return saved()
+ if (er) return saved()
chownr(made || cachePath, st.uid, st.gid, saved)
})
diff --git a/deps/npm/lib/cache/get-stat.js b/deps/npm/lib/cache/get-stat.js
index 45b60ce793..98f95ad6ae 100644
--- a/deps/npm/lib/cache/get-stat.js
+++ b/deps/npm/lib/cache/get-stat.js
@@ -22,11 +22,18 @@ module.exports = function getCacheStat (cb) {
function makeCacheDir (cb) {
cb = inflight("makeCacheDir", cb)
- if (!cb) return log.verbose("getCacheStat", "cache creation already in flight; waiting")
+ if (!cb) {
+ return log.verbose(
+ "getCacheStat",
+ "cache creation already in flight; waiting"
+ )
+ }
log.verbose("getCacheStat", "cache creation not in flight; initializing")
if (!process.getuid) return mkdir(npm.cache, function (er) {
- return cb(er, {})
+ log.verbose("makeCacheDir", "UID & GID are irrelevant on", process.platform)
+ cacheStat = { uid : 0, gid : 0 }
+ return cb(er, cacheStat)
})
var uid = +process.getuid()
@@ -36,8 +43,9 @@ function makeCacheDir (cb) {
if (process.env.SUDO_UID) uid = +process.env.SUDO_UID
if (process.env.SUDO_GID) gid = +process.env.SUDO_GID
}
+
if (uid !== 0 || !process.env.HOME) {
- cacheStat = {uid: uid, gid: gid}
+ cacheStat = { uid : uid, gid : gid }
return mkdir(npm.cache, afterMkdir)
}
diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js
index d2a6a89f69..c79cdc5b8b 100644
--- a/deps/npm/lib/config.js
+++ b/deps/npm/lib/config.js
@@ -18,6 +18,7 @@ var log = require("npmlog")
, ini = require("ini")
, editor = require("editor")
, os = require("os")
+ , umask = require("./utils/umask")
config.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
@@ -132,6 +133,7 @@ function set (key, val, cb) {
val = val.trim()
log.info("config", "set %j %j", key, val)
var where = npm.config.get("global") ? "global" : "user"
+ if (key.match(/umask/)) val = umask.fromString(val)
npm.config.set(key, val, where)
npm.config.save(where, cb)
}
@@ -141,7 +143,9 @@ function get (key, cb) {
if (!public(key)) {
return cb(new Error("---sekretz---"))
}
- console.log(npm.config.get(key))
+ var val = npm.config.get(key)
+ if (key.match(/umask/)) val = umask.toString(val)
+ console.log(val)
cb()
}
diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js
index 6c6112532f..59f7cf5568 100644
--- a/deps/npm/lib/config/core.js
+++ b/deps/npm/lib/config/core.js
@@ -8,8 +8,9 @@ var fs = require("fs")
var path = require("path")
var nopt = require("nopt")
var ini = require("ini")
-var Octal = configDefs.Octal
+var Umask = configDefs.Umask
var mkdirp = require("mkdirp")
+var umask = require("../utils/umask")
exports.load = load
exports.Conf = Conf
@@ -362,8 +363,8 @@ function parseField (f, k) {
var isPath = -1 !== typeList.indexOf(path)
var isBool = -1 !== typeList.indexOf(Boolean)
var isString = -1 !== typeList.indexOf(String)
- var isOctal = -1 !== typeList.indexOf(Octal)
- var isNumber = isOctal || (-1 !== typeList.indexOf(Number))
+ var isUmask = -1 !== typeList.indexOf(Umask)
+ var isNumber = -1 !== typeList.indexOf(Number)
f = (""+f).trim()
@@ -396,8 +397,11 @@ function parseField (f, k) {
f = path.resolve(f)
}
+ if (isUmask)
+ f = umask.fromString(f)
+
if (isNumber && !isNaN(f))
- f = isOctal ? parseInt(f, 8) : +f
+ f = +f
return f
}
diff --git a/deps/npm/lib/config/defaults.js b/deps/npm/lib/config/defaults.js
index febd1049ed..3d99ab86fa 100644
--- a/deps/npm/lib/config/defaults.js
+++ b/deps/npm/lib/config/defaults.js
@@ -9,6 +9,7 @@ var path = require("path")
, nopt = require("nopt")
, os = require("os")
, osenv = require("osenv")
+ , umask = require("../utils/umask")
var log
try {
@@ -20,19 +21,10 @@ try {
} }
}
-exports.Octal = Octal
-function Octal () {}
-function validateOctal (data, k, val) {
- // must be either an integer or an octal string.
- if (typeof val === "number") {
- data[k] = val
- return true
- }
-
- if (typeof val === "string") {
- if (val.charAt(0) !== "0" || isNaN(val)) return false
- data[k] = parseInt(val, 8).toString(8)
- }
+exports.Umask = Umask
+function Umask () {}
+function validateUmask (data, k, val) {
+ return umask.validate (data, k, val)
}
function validateSemver (data, k, val) {
@@ -52,8 +44,8 @@ function validateStream (data, k, val) {
}
nopt.typeDefs.semver = { type: semver, validate: validateSemver }
-nopt.typeDefs.Octal = { type: Octal, validate: validateOctal }
nopt.typeDefs.Stream = { type: Stream, validate: validateStream }
+nopt.typeDefs.Umask = { type: Umask, validate: validateUmask }
// Don't let --tag=1.2.3 ever be a thing
var tag = {}
@@ -71,8 +63,8 @@ nopt.invalidHandler = function (k, val, type) {
case tag:
log.warn("invalid config", "Tag must not be a SemVer range")
break
- case Octal:
- log.warn("invalid config", "Must be octal number, starting with 0")
+ case Umask:
+ log.warn("invalid config", "Must be umask, octal number in range 0000..0777")
break
case url:
log.warn("invalid config", "Must be a full url with 'http://'")
@@ -224,7 +216,7 @@ Object.defineProperty(exports, "defaults", {get: function () {
, usage : false
, user : process.platform === "win32" ? 0 : "nobody"
, userconfig : path.resolve(home, ".npmrc")
- , umask: process.umask ? process.umask() : parseInt("022", 8)
+ , umask: process.umask ? process.umask() : umask.fromString("022")
, version : false
, versions : false
, viewer: process.platform === "win32" ? "browser" : "man"
@@ -322,7 +314,7 @@ exports.types =
, usage : Boolean
, user : [Number, String]
, userconfig : path
- , umask: Octal
+ , umask: Umask
, version : Boolean
, versions : Boolean
, viewer: String
diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js
index ccee756308..299fa56988 100644
--- a/deps/npm/lib/utils/lifecycle.js
+++ b/deps/npm/lib/utils/lifecycle.js
@@ -3,14 +3,15 @@ exports.cmd = cmd
exports.makeEnv = makeEnv
var log = require("npmlog")
- , spawn = require("./spawn")
- , npm = require("../npm.js")
- , path = require("path")
- , fs = require("graceful-fs")
- , chain = require("slide").chain
- , Stream = require("stream").Stream
- , PATH = "PATH"
- , uidNumber = require("uid-number")
+var spawn = require("./spawn")
+var npm = require("../npm.js")
+var path = require("path")
+var fs = require("graceful-fs")
+var chain = require("slide").chain
+var Stream = require("stream").Stream
+var PATH = "PATH"
+var uidNumber = require("uid-number")
+var umask = require("./umask")
// windows calls it's path "Path" usually, but this is not guaranteed.
if (process.platform === "win32") {
@@ -198,7 +199,7 @@ function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) {
var shFlag = "-c"
if (process.platform === "win32") {
- sh = "cmd"
+ sh = process.env.comspec || "cmd"
shFlag = "/c"
conf.windowsVerbatimArguments = true
}
@@ -316,6 +317,7 @@ function makeEnv (data, prefix, env) {
}
var value = npm.config.get(i)
if (value instanceof Stream || Array.isArray(value)) return
+ if (i.match(/umask/)) value = umask.toString(value)
if (!value) value = ""
else if (typeof value === "number") value = "" + value
else if (typeof value !== "string") value = JSON.stringify(value)
diff --git a/deps/npm/lib/utils/umask.js b/deps/npm/lib/utils/umask.js
new file mode 100644
index 0000000000..6ccb4a1194
--- /dev/null
+++ b/deps/npm/lib/utils/umask.js
@@ -0,0 +1,17 @@
+var umask = require("umask")
+var npmlog = require("npmlog")
+var _fromString = umask.fromString
+
+module.exports = umask
+
+// fromString with logging callback
+umask.fromString = function (val) {
+ _fromString(val, function (err, result) {
+ if (err) {
+ npmlog.warn("invalid umask", err.message)
+ }
+ val = result
+ })
+
+ return val
+}
diff --git a/deps/npm/lib/whoami.js b/deps/npm/lib/whoami.js
index 121c4336ae..42cede1b82 100644
--- a/deps/npm/lib/whoami.js
+++ b/deps/npm/lib/whoami.js
@@ -14,6 +14,14 @@ function whoami (args, silent, cb) {
var registry = npm.config.get("registry")
if (!registry) return cb(new Error("no default registry set"))
+ function noUser () {
+ // At this point, if they have a credentials object, it doesn't have a
+ // token or auth in it. Probably just the default registry.
+ var msg = "Not authed. Run 'npm adduser'"
+ if (!silent) console.log(msg)
+ cb(null, msg)
+ }
+
var auth = npm.config.getCredentialsByURI(registry)
if (auth) {
if (auth.username) {
@@ -23,6 +31,7 @@ function whoami (args, silent, cb) {
else if (auth.token) {
return npm.registry.whoami(registry, { auth : auth }, function (er, username) {
if (er) return cb(er)
+ if (!username) return noUser()
if (!silent) console.log(username)
cb(null, username)
@@ -30,10 +39,5 @@ function whoami (args, silent, cb) {
}
}
- // At this point, if they have a credentials object, it doesn't
- // have a token or auth in it. Probably just the default
- // registry.
- var msg = "Not authed. Run 'npm adduser'"
- if (!silent) console.log(msg)
- process.nextTick(cb.bind(this, null, msg))
+ process.nextTick(noUser)
}
diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1
index 569a2adc22..bbdc916666 100644
--- a/deps/npm/man/man1/npm-ls.1
+++ b/deps/npm/man/man1/npm-ls.1
@@ -23,7 +23,7 @@ For example, running \fBnpm ls promzard\fR in npm's source tree will show:
.P
.RS 2
.nf
-npm@2.2.0 /path/to/npm
+npm@2.3.0 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.fi
diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1
index 2a279d2a79..0eb7f31185 100644
--- a/deps/npm/man/man1/npm-view.1
+++ b/deps/npm/man/man1/npm-view.1
@@ -35,7 +35,7 @@ npm view ronn@0\.3\.5 dependencies
.fi
.RE
.P
-You can view child field by separating them with a period\.
+You can view child fields by separating them with a period\.
To view the git repository URL for the latest version of npm, you could
do this:
.P
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index 6f6b18416e..7b4465aa29 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -10,7 +10,7 @@ npm <command> [args]
.RE
.SH VERSION
.P
-2.2.0
+2.3.0
.SH DESCRIPTION
.P
npm is the package manager for the Node JavaScript platform\. It puts
diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3
index 5f89ff7a36..1bd3f3890f 100644
--- a/deps/npm/man/man3/npm.3
+++ b/deps/npm/man/man3/npm.3
@@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) {
.RE
.SH VERSION
.P
-2.2.0
+2.3.0
.SH DESCRIPTION
.P
This is the API documentation for npm\.
diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5
index 113153f082..d54eaddbe1 100644
--- a/deps/npm/man/man5/npm-json.5
+++ b/deps/npm/man/man5/npm-json.5
@@ -164,16 +164,16 @@ command name to local file name\. On install, npm will symlink that file into
\fBprefix/bin\fR for global installs, or \fB\|\./node_modules/\.bin/\fR for local
installs\.
.P
-For example, npm has this:
+For example, myapp could have this:
.P
.RS 2
.nf
-{ "bin" : { "npm" : "\./cli\.js" } }
+{ "bin" : { "myapp" : "\./cli\.js" } }
.fi
.RE
.P
-So, when you install npm, it'll create a symlink from the \fBcli\.js\fR script to
-\fB/usr/local/bin/npm\fR\|\.
+So, when you install myapp, it'll create a symlink from the \fBcli\.js\fR script to
+\fB/usr/local/bin/myapp\fR\|\.
.P
If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string\. For example:
diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5
index 113153f082..d54eaddbe1 100644
--- a/deps/npm/man/man5/package.json.5
+++ b/deps/npm/man/man5/package.json.5
@@ -164,16 +164,16 @@ command name to local file name\. On install, npm will symlink that file into
\fBprefix/bin\fR for global installs, or \fB\|\./node_modules/\.bin/\fR for local
installs\.
.P
-For example, npm has this:
+For example, myapp could have this:
.P
.RS 2
.nf
-{ "bin" : { "npm" : "\./cli\.js" } }
+{ "bin" : { "myapp" : "\./cli\.js" } }
.fi
.RE
.P
-So, when you install npm, it'll create a symlink from the \fBcli\.js\fR script to
-\fB/usr/local/bin/npm\fR\|\.
+So, when you install myapp, it'll create a symlink from the \fBcli\.js\fR script to
+\fB/usr/local/bin/myapp\fR\|\.
.P
If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string\. For example:
diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7
index d561e07473..b76ec439c5 100644
--- a/deps/npm/man/man7/npm-config.7
+++ b/deps/npm/man/man7/npm-config.7
@@ -1141,7 +1141,7 @@ The location of user\-level configuration settings\.
.IP \(bu 2
Default: 022
.IP \(bu 2
-Type: Octal numeric string
+Type: Octal numeric string in range 0000\.\.0777 (0\.\.511)
.RE
.P
diff --git a/deps/npm/node_modules/glob/README.md b/deps/npm/node_modules/glob/README.md
index d72bdccbe0..e479ae29e3 100644
--- a/deps/npm/node_modules/glob/README.md
+++ b/deps/npm/node_modules/glob/README.md
@@ -249,10 +249,6 @@ filesystem.
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).
-* `nocase` Perform a case-insensitive match. Note that
- case-insensitive filesystems will sometimes result in glob returning
- results that are case-insensitively matched anyway, since readdir
- and stat will not raise an error.
* `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,
diff --git a/deps/npm/node_modules/glob/glob.js b/deps/npm/node_modules/glob/glob.js
index 8c99078218..7401e0b7e9 100644
--- a/deps/npm/node_modules/glob/glob.js
+++ b/deps/npm/node_modules/glob/glob.js
@@ -40,26 +40,27 @@
module.exports = glob
-var fs = require("fs")
-var minimatch = require("minimatch")
+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 globSync = require("./sync.js")
-var common = require("./common.js")
+var inherits = require('inherits')
+var EE = require('events').EventEmitter
+var path = require('path')
+var assert = require('assert')
+var globSync = require('./sync.js')
+var common = require('./common.js')
var alphasort = common.alphasort
+var alphasorti = common.alphasorti
var isAbsolute = common.isAbsolute
var setopts = common.setopts
var ownProp = common.ownProp
-var inflight = require("inflight")
-var util = require("util")
+var inflight = require('inflight')
+var util = require('util')
-var once = require("once")
+var once = require('once')
function glob (pattern, options, cb) {
- if (typeof options === "function") cb = options, options = {}
+ if (typeof options === 'function') cb = options, options = {}
if (!options) options = {}
if (options.sync) {
@@ -97,7 +98,7 @@ glob.hasMagic = function (pattern, options_) {
glob.Glob = Glob
inherits(Glob, EE)
function Glob (pattern, options, cb) {
- if (typeof options === "function") {
+ if (typeof options === 'function') {
cb = options
options = null
}
@@ -122,10 +123,10 @@ function Glob (pattern, options, cb) {
// Keep them as a list so we can fill in when nonull is set.
this.matches = new Array(n)
- if (typeof cb === "function") {
+ if (typeof cb === 'function') {
cb = once(cb)
- this.on("error", cb)
- this.on("end", function (matches) {
+ this.on('error', cb)
+ this.on('end', function (matches) {
cb(null, matches)
})
}
@@ -163,7 +164,7 @@ Glob.prototype._finish = function () {
//console.error('FINISH', this.matches)
common.finish(this)
- this.emit("end", this.found)
+ this.emit('end', this.found)
}
Glob.prototype._mark = function (p) {
@@ -176,19 +177,19 @@ Glob.prototype._makeAbs = function (f) {
Glob.prototype.abort = function () {
this.aborted = true
- this.emit("abort")
+ this.emit('abort')
}
Glob.prototype.pause = function () {
if (!this.paused) {
this.paused = true
- this.emit("pause")
+ this.emit('pause')
}
}
Glob.prototype.resume = function () {
if (this.paused) {
- this.emit("resume")
+ this.emit('resume')
this.paused = false
if (this._emitQueue.length) {
var eq = this._emitQueue.slice(0)
@@ -223,11 +224,11 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
return
}
- //console.error("PROCESS %d", this._processing, pattern)
+ //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") {
+ while (typeof pattern[n] === 'string') {
n ++
}
// now n is the index of the first one that is *not* a string.
@@ -248,9 +249,9 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
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("/")
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
+ // or 'relative' like '../baz'
+ prefix = pattern.slice(0, n).join('/')
break
}
@@ -259,10 +260,10 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
// get the list of entries.
var read
if (prefix === null)
- read = "."
- else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
+ read = '.'
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
if (!prefix || !isAbsolute(prefix))
- prefix = "/" + prefix
+ prefix = '/' + prefix
read = prefix
} else
read = prefix
@@ -295,12 +296,12 @@ Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, in
var pn = remain[0]
var negate = !!this.minimatch.negate
var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === "."
+ 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) {
+ if (e.charAt(0) !== '.' || dotOk) {
var m
if (negate && !prefix) {
m = !e.match(pn)
@@ -331,13 +332,13 @@ Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, in
for (var i = 0; i < len; i ++) {
var e = matchedEntries[i]
if (prefix) {
- if (prefix !== "/")
- e = prefix + "/" + e
+ if (prefix !== '/')
+ e = prefix + '/' + e
else
e = prefix + e
}
- if (e.charAt(0) === "/" && !this.nomount) {
+ if (e.charAt(0) === '/' && !this.nomount) {
e = path.join(this.root, e)
}
this._emitMatch(index, e)
@@ -353,8 +354,8 @@ Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, in
var e = matchedEntries[i]
var newPattern
if (prefix) {
- if (prefix !== "/")
- e = prefix + "/" + e
+ if (prefix !== '/')
+ e = prefix + '/' + e
else
e = prefix + e
}
@@ -381,12 +382,12 @@ Glob.prototype._emitMatch = function (index, e) {
this.matches[index][e] = true
if (!this.stat && !this.mark)
- return this.emit("match", e)
+ return this.emit('match', e)
var self = this
this._stat(this._makeAbs(e), function (er, c, st) {
- self.emit("stat", e, st)
- self.emit("match", e)
+ self.emit('stat', e, st)
+ self.emit('match', e)
})
}
}
@@ -395,7 +396,7 @@ Glob.prototype._readdirInGlobStar = function (abs, cb) {
if (this.aborted)
return
- var lstatkey = "lstat\0" + abs
+ var lstatkey = 'lstat\0' + abs
var self = this
var lstatcb = inflight(lstatkey, lstatcb_)
@@ -423,11 +424,11 @@ Glob.prototype._readdir = function (abs, inGlobStar, cb) {
if (this.aborted)
return
- cb = inflight("readdir\0"+abs+"\0"+inGlobStar, cb)
+ cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
if (!cb)
return
- //console.error("RD %j %j", +inGlobStar, abs)
+ //console.error('RD %j %j', +inGlobStar, abs)
if (inGlobStar && !ownProp(this.symlinks, abs))
return this._readdirInGlobStar(abs, cb)
@@ -449,7 +450,7 @@ function readdirCb (self, abs, cb) {
if (er)
self._readdirError(abs, er, cb)
else
- self._readdirEntries(abs, entries.sort(alphasort), cb)
+ self._readdirEntries(abs, entries, cb)
}
}
@@ -463,10 +464,10 @@ Glob.prototype._readdirEntries = function (abs, entries, cb) {
if (!this.mark && !this.stat) {
for (var i = 0; i < entries.length; i ++) {
var e = entries[i]
- if (abs === "/")
+ if (abs === '/')
e = abs + e
else
- e = abs + "/" + e
+ e = abs + '/' + e
this.cache[e] = true
}
}
@@ -481,21 +482,21 @@ Glob.prototype._readdirError = function (f, er, cb) {
// handle errors, and cache the information
switch (er.code) {
- case "ENOTDIR": // totally normal. means it *does* exist.
+ case 'ENOTDIR': // totally normal. means it *does* exist.
this.cache[f] = 'FILE'
break
- case "ENOENT": // not terribly unusual
- case "ELOOP":
- case "ENAMETOOLONG":
- case "UNKNOWN":
+ case 'ENOENT': // not terribly unusual
+ case 'ELOOP':
+ case 'ENAMETOOLONG':
+ case 'UNKNOWN':
this.cache[f] = false
break
default: // some unusual error. Treat as failure.
this.cache[f] = false
- if (this.strict) return this.emit("error", er)
- if (!this.silent) console.error("glob error", er)
+ if (this.strict) return this.emit('error', er)
+ if (!this.silent) console.error('glob error', er)
break
}
return cb()
@@ -510,7 +511,7 @@ Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, in
Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
- //console.error("pgs2", prefix, remain[0], entries)
+ //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
@@ -535,7 +536,7 @@ Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, i
for (var i = 0; i < len; i++) {
var e = entries[i]
- if (e.charAt(0) === "." && !this.dot)
+ if (e.charAt(0) === '.' && !this.dot)
continue
// these two cases enter the inGlobStar state
@@ -559,7 +560,7 @@ Glob.prototype._processSimple = function (prefix, index, cb) {
}
Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
- //console.error("ps2", prefix, exists)
+ //console.error('ps2', prefix, exists)
if (!this.matches[index])
this.matches[index] = Object.create(null)
@@ -570,7 +571,7 @@ Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
if (prefix && isAbsolute(prefix) && !this.nomount) {
var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === "/") {
+ if (prefix.charAt(0) === '/') {
prefix = path.join(this.root, prefix)
} else {
prefix = path.resolve(this.root, prefix)
@@ -579,8 +580,8 @@ Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
}
}
- if (process.platform === "win32")
- prefix = prefix.replace(/\\/g, "/")
+ if (process.platform === 'win32')
+ prefix = prefix.replace(/\\/g, '/')
// Mark this as a match
this._emitMatch(index, prefix)
@@ -590,7 +591,7 @@ Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
// Returns either 'DIR', 'FILE', or false
Glob.prototype._stat = function (f, cb) {
var abs = f
- if (f.charAt(0) === "/")
+ if (f.charAt(0) === '/')
abs = path.join(this.root, f)
else if (this.changedCwd)
abs = path.resolve(this.cwd, f)
@@ -606,7 +607,7 @@ Glob.prototype._stat = function (f, cb) {
c = 'DIR'
// It exists, but not how we need it
- if (abs.slice(-1) === "/" && c !== 'DIR')
+ if (abs.slice(-1) === '/' && c !== 'DIR')
return cb()
return cb(null, c)
@@ -622,7 +623,7 @@ Glob.prototype._stat = function (f, cb) {
}
var self = this
- var statcb = inflight("stat\0" + abs, statcb_)
+ var statcb = inflight('stat\0' + abs, statcb_)
if (statcb)
fs.stat(abs, statcb)
@@ -639,7 +640,7 @@ Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
this.statCache[abs] = stat
- if (abs.slice(-1) === "/" && !stat.isDirectory())
+ if (abs.slice(-1) === '/' && !stat.isDirectory())
return cb(null, false, stat)
var c = stat.isDirectory() ? 'DIR' : 'FILE'
diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json
index 214a260458..5b782d625e 100644
--- a/deps/npm/node_modules/glob/package.json
+++ b/deps/npm/node_modules/glob/package.json
@@ -6,7 +6,7 @@
},
"name": "glob",
"description": "a little globber",
- "version": "4.3.2",
+ "version": "4.3.5",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/node-glob.git"
@@ -29,7 +29,7 @@
"devDependencies": {
"mkdirp": "0",
"rimraf": "^2.2.8",
- "tap": "~0.4.0",
+ "tap": "^0.5.0",
"tick": "0.0.6"
},
"scripts": {
@@ -42,16 +42,16 @@
"benchclean": "bash benchclean.sh"
},
"license": "ISC",
- "gitHead": "941d53c8ab6216f43a6f5e8e01245364ba90cfe9",
+ "gitHead": "9de4cb6bfeb9c8458cf188fe91447b99bf8f3cfd",
"bugs": {
"url": "https://github.com/isaacs/node-glob/issues"
},
"homepage": "https://github.com/isaacs/node-glob",
- "_id": "glob@4.3.2",
- "_shasum": "351ec7dafc29256b253ad86cd6b48c5a3404b76d",
- "_from": "glob@>=4.3.2 <4.4.0",
- "_npmVersion": "2.1.14",
- "_nodeVersion": "0.10.33",
+ "_id": "glob@4.3.5",
+ "_shasum": "80fbb08ca540f238acce5d11d1e9bc41e75173d3",
+ "_from": "glob@>=4.3.5 <4.4.0",
+ "_npmVersion": "2.2.0",
+ "_nodeVersion": "0.10.35",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
@@ -63,10 +63,9 @@
}
],
"dist": {
- "shasum": "351ec7dafc29256b253ad86cd6b48c5a3404b76d",
- "tarball": "http://registry.npmjs.org/glob/-/glob-4.3.2.tgz"
+ "shasum": "80fbb08ca540f238acce5d11d1e9bc41e75173d3",
+ "tarball": "http://registry.npmjs.org/glob/-/glob-4.3.5.tgz"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/glob/-/glob-4.3.2.tgz",
- "readme": "ERROR: No README data found!"
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz"
}
diff --git a/deps/npm/node_modules/glob/sync.js b/deps/npm/node_modules/glob/sync.js
index a7f9f52daf..f981055af9 100644
--- a/deps/npm/node_modules/glob/sync.js
+++ b/deps/npm/node_modules/glob/sync.js
@@ -1,15 +1,16 @@
module.exports = globSync
globSync.GlobSync = GlobSync
-var fs = require("fs")
-var minimatch = require("minimatch")
+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 common = require("./common.js")
+var Glob = require('./glob.js').Glob
+var util = require('util')
+var path = require('path')
+var assert = require('assert')
+var common = require('./common.js')
var alphasort = common.alphasort
+var alphasorti = common.alphasorti
var isAbsolute = common.isAbsolute
var setopts = common.setopts
var ownProp = common.ownProp
@@ -23,7 +24,7 @@ function globSync (pattern, options) {
function GlobSync (pattern, options) {
if (!pattern)
- throw new Error("must provide pattern")
+ throw new Error('must provide pattern')
if (typeof options === 'function' || arguments.length === 3)
throw new TypeError('callback provided to sync glob')
@@ -55,7 +56,7 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) {
// Get the first [n] parts of pattern that are all strings.
var n = 0
- while (typeof pattern[n] === "string") {
+ while (typeof pattern[n] === 'string') {
n ++
}
// now n is the index of the first one that is *not* a string.
@@ -76,9 +77,9 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) {
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("/")
+ // whatever it starts with, whether that's 'absolute' like /foo/bar,
+ // or 'relative' like '../baz'
+ prefix = pattern.slice(0, n).join('/')
break
}
@@ -87,10 +88,10 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) {
// get the list of entries.
var read
if (prefix === null)
- read = "."
- else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
+ read = '.'
+ else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
if (!prefix || !isAbsolute(prefix))
- prefix = "/" + prefix
+ prefix = '/' + prefix
read = prefix
} else
read = prefix
@@ -116,12 +117,12 @@ GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index,
var pn = remain[0]
var negate = !!this.minimatch.negate
var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === "."
+ 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) {
+ if (e.charAt(0) !== '.' || dotOk) {
var m
if (negate && !prefix) {
m = !e.match(pn)
@@ -150,13 +151,13 @@ GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index,
for (var i = 0; i < len; i ++) {
var e = matchedEntries[i]
if (prefix) {
- if (prefix.slice(-1) !== "/")
- e = prefix + "/" + e
+ if (prefix.slice(-1) !== '/')
+ e = prefix + '/' + e
else
e = prefix + e
}
- if (e.charAt(0) === "/" && !this.nomount) {
+ if (e.charAt(0) === '/' && !this.nomount) {
e = path.join(this.root, e)
}
this.matches[index][e] = true
@@ -235,7 +236,7 @@ GlobSync.prototype._readdir = function (abs, inGlobStar) {
}
try {
- return this._readdirEntries(abs, fs.readdirSync(abs).sort(alphasort))
+ return this._readdirEntries(abs, fs.readdirSync(abs))
} catch (er) {
this._readdirError(abs, er)
return null
@@ -249,10 +250,10 @@ GlobSync.prototype._readdirEntries = function (abs, entries) {
if (!this.mark && !this.stat) {
for (var i = 0; i < entries.length; i ++) {
var e = entries[i]
- if (abs === "/")
+ if (abs === '/')
e = abs + e
else
- e = abs + "/" + e
+ e = abs + '/' + e
this.cache[e] = true
}
}
@@ -266,21 +267,21 @@ GlobSync.prototype._readdirEntries = function (abs, entries) {
GlobSync.prototype._readdirError = function (f, er) {
// handle errors, and cache the information
switch (er.code) {
- case "ENOTDIR": // totally normal. means it *does* exist.
+ case 'ENOTDIR': // totally normal. means it *does* exist.
this.cache[f] = 'FILE'
break
- case "ENOENT": // not terribly unusual
- case "ELOOP":
- case "ENAMETOOLONG":
- case "UNKNOWN":
+ case 'ENOENT': // not terribly unusual
+ case 'ELOOP':
+ case 'ENAMETOOLONG':
+ case 'UNKNOWN':
this.cache[f] = false
break
default: // some unusual error. Treat as failure.
this.cache[f] = false
if (this.strict) throw er
- if (!this.silent) console.error("glob error", er)
+ if (!this.silent) console.error('glob error', er)
break
}
}
@@ -312,7 +313,7 @@ GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index
for (var i = 0; i < len; i++) {
var e = entries[i]
- if (e.charAt(0) === "." && !this.dot)
+ if (e.charAt(0) === '.' && !this.dot)
continue
// these two cases enter the inGlobStar state
@@ -338,7 +339,7 @@ GlobSync.prototype._processSimple = function (prefix, index) {
if (prefix && isAbsolute(prefix) && !this.nomount) {
var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === "/") {
+ if (prefix.charAt(0) === '/') {
prefix = path.join(this.root, prefix)
} else {
prefix = path.resolve(this.root, prefix)
@@ -347,8 +348,8 @@ GlobSync.prototype._processSimple = function (prefix, index) {
}
}
- if (process.platform === "win32")
- prefix = prefix.replace(/\\/g, "/")
+ if (process.platform === 'win32')
+ prefix = prefix.replace(/\\/g, '/')
// Mark this as a match
this.matches[index][prefix] = true
@@ -357,7 +358,7 @@ GlobSync.prototype._processSimple = function (prefix, index) {
// Returns either 'DIR', 'FILE', or false
GlobSync.prototype._stat = function (f) {
var abs = f
- if (f.charAt(0) === "/")
+ if (f.charAt(0) === '/')
abs = path.join(this.root, f)
else if (this.changedCwd)
abs = path.resolve(this.cwd, f)
@@ -373,7 +374,7 @@ GlobSync.prototype._stat = function (f) {
c = 'DIR'
// It exists, but not how we need it
- if (abs.slice(-1) === "/" && c !== 'DIR')
+ if (abs.slice(-1) === '/' && c !== 'DIR')
return false
return c
@@ -391,7 +392,7 @@ GlobSync.prototype._stat = function (f) {
this.statCache[abs] = stat
- if (abs.slice(-1) === "/" && !stat.isDirectory())
+ if (abs.slice(-1) === '/' && !stat.isDirectory())
return false
var c = stat.isDirectory() ? 'DIR' : 'FILE'
diff --git a/deps/npm/node_modules/node-gyp/addon.gypi b/deps/npm/node_modules/node-gyp/addon.gypi
index 63fefe3d16..0b81fab202 100644
--- a/deps/npm/node_modules/node-gyp/addon.gypi
+++ b/deps/npm/node_modules/node-gyp/addon.gypi
@@ -42,7 +42,7 @@
'-luuid.lib',
'-lodbc32.lib',
'-lDelayImp.lib',
- '-l"<(node_root_dir)/$(ConfigurationName)/iojs.lib"'
+ '-l"<(node_root_dir)/$(ConfigurationName)/node.lib"'
],
# warning C4251: 'node::ObjectWrap::handle_' : class 'v8::Persistent<T>'
# needs to have dll-interface to be used by clients of class 'node::ObjectWrap'
diff --git a/deps/npm/node_modules/node-gyp/lib/build.js b/deps/npm/node_modules/node-gyp/lib/build.js
index 3d3c58785f..f3605902e9 100644
--- a/deps/npm/node_modules/node-gyp/lib/build.js
+++ b/deps/npm/node_modules/node-gyp/lib/build.js
@@ -173,7 +173,7 @@ function build (gyp, argv, callback) {
}
/**
- * Copies the iojs.lib file for the current target architecture into the
+ * Copies the node.lib file for the current target architecture into the
* current proper dev dir location.
*/
@@ -181,15 +181,15 @@ function build (gyp, argv, callback) {
if (!win || !copyDevLib) return doBuild()
var buildDir = path.resolve(nodeDir, buildType)
- , archNodeLibPath = path.resolve(nodeDir, arch, 'iojs.lib')
- , buildNodeLibPath = path.resolve(buildDir, 'iojs.lib')
+ , archNodeLibPath = path.resolve(nodeDir, arch, 'node.lib')
+ , buildNodeLibPath = path.resolve(buildDir, 'node.lib')
mkdirp(buildDir, function (err, isNew) {
if (err) return callback(err)
log.verbose('"' + buildType + '" dir needed to be created?', isNew)
var rs = fs.createReadStream(archNodeLibPath)
, ws = fs.createWriteStream(buildNodeLibPath)
- log.verbose('copying "iojs.lib" for ' + arch, buildNodeLibPath)
+ log.verbose('copying "node.lib" for ' + arch, buildNodeLibPath)
rs.pipe(ws)
rs.on('error', callback)
ws.on('error', callback)
diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js
index 378fbfae47..6f72e6a93d 100644
--- a/deps/npm/node_modules/node-gyp/lib/install.js
+++ b/deps/npm/node_modules/node-gyp/lib/install.js
@@ -39,7 +39,7 @@ function install (gyp, argv, callback) {
}
}
- var distUrl = gyp.opts['dist-url'] || gyp.opts.disturl || 'https://iojs.org/dist'
+ var distUrl = gyp.opts['dist-url'] || gyp.opts.disturl || 'http://nodejs.org/dist'
// Determine which node dev files version we are installing
@@ -185,7 +185,7 @@ function install (gyp, argv, callback) {
// now download the node tarball
var tarPath = gyp.opts['tarball']
- var tarballUrl = tarPath ? tarPath : distUrl + '/v' + version + '/iojs-v' + version + '.tar.gz'
+ var tarballUrl = tarPath ? tarPath : distUrl + '/v' + version + '/node-v' + version + '.tar.gz'
, badDownload = false
, extractCount = 0
, gunzip = zlib.createGunzip()
@@ -267,7 +267,7 @@ function install (gyp, argv, callback) {
var async = 0
if (win) {
- // need to download iojs.lib
+ // need to download node.lib
async++
downloadNodeLib(deref)
}
@@ -295,8 +295,7 @@ function install (gyp, argv, callback) {
// check content shasums
for (var k in contentShasums) {
log.verbose('validating download checksum for ' + k, '(%s == %s)', contentShasums[k], expectShasums[k])
- // TODO(piscisaureus) re-enable checksum verification when the correct files are in place.
- if (false || contentShasums[k] !== expectShasums[k]) {
+ if (contentShasums[k] !== expectShasums[k]) {
cb(new Error(k + ' local checksum ' + contentShasums[k] + ' not match remote ' + expectShasums[k]))
return
}
@@ -344,36 +343,36 @@ function install (gyp, argv, callback) {
}
function downloadNodeLib (done) {
- log.verbose('on Windows; need to download `iojs.lib`...')
+ log.verbose('on Windows; need to download `node.lib`...')
var dir32 = path.resolve(devDir, 'ia32')
, dir64 = path.resolve(devDir, 'x64')
- , nodeLibPath32 = path.resolve(dir32, 'iojs.lib')
- , nodeLibPath64 = path.resolve(dir64, 'iojs.lib')
- , nodeLibUrl32 = distUrl + '/v' + version + '/win-x86/iojs.lib'
- , nodeLibUrl64 = distUrl + '/v' + version + '/win-x64/iojs.lib'
+ , nodeLibPath32 = path.resolve(dir32, 'node.lib')
+ , nodeLibPath64 = path.resolve(dir64, 'node.lib')
+ , nodeLibUrl32 = distUrl + '/v' + version + '/node.lib'
+ , nodeLibUrl64 = distUrl + '/v' + version + '/x64/node.lib'
- log.verbose('32-bit iojs.lib dir', dir32)
- log.verbose('64-bit iojs.lib dir', dir64)
- log.verbose('`iojs.lib` 32-bit url', nodeLibUrl32)
- log.verbose('`iojs.lib` 64-bit url', nodeLibUrl64)
+ log.verbose('32-bit node.lib dir', dir32)
+ log.verbose('64-bit node.lib dir', dir64)
+ log.verbose('`node.lib` 32-bit url', nodeLibUrl32)
+ log.verbose('`node.lib` 64-bit url', nodeLibUrl64)
var async = 2
mkdir(dir32, function (err) {
if (err) return done(err)
- log.verbose('streaming 32-bit iojs.lib to:', nodeLibPath32)
+ log.verbose('streaming 32-bit node.lib to:', nodeLibPath32)
var req = download(nodeLibUrl32)
if (!req) return
req.on('error', done)
req.on('response', function (res) {
if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading 32-bit iojs.lib'))
+ done(new Error(res.statusCode + ' status code downloading 32-bit node.lib'))
return
}
getContentSha(res, function (_, checksum) {
- contentShasums['win-x86/iojs.lib'] = checksum
- log.verbose('content checksum', 'win-x86/iojs.lib', checksum)
+ contentShasums['node.lib'] = checksum
+ log.verbose('content checksum', 'node.lib', checksum)
})
var ws = fs.createWriteStream(nodeLibPath32)
@@ -386,20 +385,20 @@ function install (gyp, argv, callback) {
})
mkdir(dir64, function (err) {
if (err) return done(err)
- log.verbose('streaming 64-bit iojs.lib to:', nodeLibPath64)
+ log.verbose('streaming 64-bit node.lib to:', nodeLibPath64)
var req = download(nodeLibUrl64)
if (!req) return
req.on('error', done)
req.on('response', function (res) {
if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading 64-bit iojs.lib'))
+ done(new Error(res.statusCode + ' status code downloading 64-bit node.lib'))
return
}
getContentSha(res, function (_, checksum) {
- contentShasums['win-x64/iojs.lib'] = checksum
- log.verbose('content checksum', 'win-x64/iojs.lib', checksum)
+ contentShasums['x64/node.lib'] = checksum
+ log.verbose('content checksum', 'x64/node.lib', checksum)
})
var ws = fs.createWriteStream(nodeLibPath64)
diff --git a/deps/npm/node_modules/npm-registry-client/README.md b/deps/npm/node_modules/npm-registry-client/README.md
index 182552aebf..a35c483117 100644
--- a/deps/npm/node_modules/npm-registry-client/README.md
+++ b/deps/npm/node_modules/npm-registry-client/README.md
@@ -93,7 +93,7 @@ Deprecate a version of a package in the registry.
* `cb` {Function}
Fetches data from the registry via a GET request, saving it in the cache folder
-with the ETag.
+with the ETag or the "Last Modified" timestamp.
### client.publish(uri, params, cb)
@@ -182,6 +182,7 @@ caching logic directly.
that are not Buffers or Streams are encoded as JSON. Optional – body
only used for write operations.
* `etag` {String} The cached ETag. Optional.
+ * `lastModified` {String} The cached Last-Modified timestamp. Optional.
* `follow` {Boolean} Follow 302/301 responses. Optional (default: true).
* `auth` {Credentials} Optional.
* `cb` {Function}
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 727625e74f..bd5a4caae3 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/initialize.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/initialize.js
@@ -1,7 +1,12 @@
var crypto = require("crypto")
+var HttpAgent = require("http").Agent
+var HttpsAgent = require("https").Agent
var pkg = require("../package.json")
+var httpAgent = new HttpAgent({ keepAlive : true })
+var httpsAgent = new HttpsAgent({ keepAlive : true })
+
module.exports = initialize
function initialize (uri, method, accept, headers) {
@@ -24,11 +29,13 @@ function initialize (uri, method, accept, headers) {
// request will not pay attention to the NOPROXY environment variable if a
// config value named proxy is passed in, even if it's set to null.
var proxy
- if (uri.protocol === "https") {
+ if (uri.protocol === "https:") {
proxy = this.config.proxy.https
+ opts.agent = httpsAgent
}
else {
proxy = this.config.proxy.http
+ opts.agent = httpAgent
}
if (typeof proxy === "string") opts.proxy = proxy
diff --git a/deps/npm/node_modules/npm-registry-client/lib/request.js b/deps/npm/node_modules/npm-registry-client/lib/request.js
index ec39cc25d8..fa969ac223 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/request.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/request.js
@@ -121,6 +121,11 @@ function makeRequest (uri, params, cb_) {
headers[params.method === "GET" ? "if-none-match" : "if-match"] = params.etag
}
+ if (params.lastModified && params.method === "GET") {
+ this.log.verbose("lastModified", params.lastModified)
+ headers["if-modified-since"] = params.lastModified;
+ }
+
// figure out wth body is
if (params.body) {
if (Buffer.isBuffer(params.body)) {
@@ -139,6 +144,7 @@ function makeRequest (uri, params, cb_) {
}
else {
delete params.body._etag
+ delete params.body._lastModified
opts.json = params.body
}
}
@@ -220,6 +226,10 @@ function requestDone (method, where, cb) {
parsed._etag = response.headers.etag
}
+ if (parsed && response.headers['last-modified']) {
+ parsed._lastModified = response.headers['last-modified']
+ }
+
// for the search endpoint, the "error" property can be an object
if (parsed && parsed.error && typeof parsed.error !== "object" ||
response.statusCode >= 400) {
diff --git a/deps/npm/node_modules/npm-registry-client/lib/star.js b/deps/npm/node_modules/npm-registry-client/lib/star.js
index aa707e1592..87c5b67c4f 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/star.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/star.js
@@ -11,38 +11,42 @@ function star (uri, params, cb) {
var auth = params.auth
assert(auth && typeof auth === "object", "must pass auth to star")
- if (auth.token) {
- return cb(new Error("This operation is unsupported for token-based auth"))
- }
- else if (!(auth.username && auth.password)) {
- return cb(new Error("Must be logged in to star/unstar packages"))
+ if (!(auth.token || (auth.password && auth.username && auth.email))) {
+ var er = new Error("Must be logged in to star/unstar packages")
+ er.code = "ENEEDAUTH"
+ return cb(er)
}
var client = this
this.request(uri+"?write=true", { auth : auth }, function (er, fullData) {
if (er) return cb(er)
- fullData = {
- _id : fullData._id,
- _rev : fullData._rev,
- users : fullData.users || {}
- }
-
- if (starred) {
- client.log.info("starring", fullData._id)
- fullData.users[auth.username] = true
- client.log.verbose("starring", fullData)
- } else {
- delete fullData.users[auth.username]
- client.log.info("unstarring", fullData._id)
- client.log.verbose("unstarring", fullData)
- }
-
- var options = {
- method : "PUT",
- body : fullData,
- auth : auth
- }
- return client.request(uri, options, cb)
+ client.whoami(uri, params, function (er, username) {
+ if (er) return cb(er)
+
+ var data = {
+ _id : fullData._id,
+ _rev : fullData._rev,
+ users : fullData.users || {}
+ }
+
+ if (starred) {
+ client.log.info("starring", data._id)
+ data.users[username] = true
+ client.log.verbose("starring", data)
+ }
+ else {
+ delete data.users[username]
+ client.log.info("unstarring", data._id)
+ client.log.verbose("unstarring", data)
+ }
+
+ var options = {
+ method : "PUT",
+ body : data,
+ auth : auth
+ }
+ return client.request(uri, options, cb)
+ })
})
}
diff --git a/deps/npm/node_modules/npm-registry-client/lib/whoami.js b/deps/npm/node_modules/npm-registry-client/lib/whoami.js
index 684ce7bfbf..4c099ebec6 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/whoami.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/whoami.js
@@ -11,7 +11,9 @@ function whoami (uri, params, cb) {
var auth = params.auth
assert(auth && typeof auth === "object", "must pass auth to whoami")
- this.request(url.resolve(uri, "whoami"), { auth : auth }, function (er, userdata) {
+ if (auth.username) return process.nextTick(cb.bind(this, null, auth.username))
+
+ this.request(url.resolve(uri, "-/whoami"), { auth : auth }, function (er, userdata) {
if (er) return cb(er)
cb(null, userdata.username)
diff --git a/deps/npm/node_modules/npm-registry-client/package.json b/deps/npm/node_modules/npm-registry-client/package.json
index e98b732f7f..9d4178c572 100644
--- a/deps/npm/node_modules/npm-registry-client/package.json
+++ b/deps/npm/node_modules/npm-registry-client/package.json
@@ -6,7 +6,7 @@
},
"name": "npm-registry-client",
"description": "Client for the npm registry",
- "version": "4.0.5",
+ "version": "5.0.0",
"repository": {
"url": "git://github.com/isaacs/npm-registry-client"
},
@@ -30,20 +30,21 @@
},
"devDependencies": {
"negotiator": "^0.4.9",
+ "nock": "^0.56.0",
"tap": ""
},
"optionalDependencies": {
"npmlog": ""
},
"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 = \"npm://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.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.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.\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 * `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 * `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} Cerficate 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",
+ "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 = \"npm://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.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.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 * `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} Cerficate 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": "33bd08aa65bb26ba1b956d2f119b5e952f4d3141",
+ "gitHead": "b22f38992087e57f263c269dcd52ff290565d401",
"bugs": {
"url": "https://github.com/isaacs/npm-registry-client/issues"
},
"homepage": "https://github.com/isaacs/npm-registry-client",
- "_id": "npm-registry-client@4.0.5",
- "_shasum": "27d37ca0c7bbd5df14f4ae35223a4d588dd4fea6",
- "_from": "npm-registry-client@>=4.0.5 <4.1.0"
+ "_id": "npm-registry-client@5.0.0",
+ "_shasum": "0425db2fc3dcd322e74fe95029d2c49a41e4b6cf",
+ "_from": "npm-registry-client@>=5.0.0 <5.1.0"
}
diff --git a/deps/npm/node_modules/npm-registry-client/test/lib/server.js b/deps/npm/node_modules/npm-registry-client/test/lib/server.js
index 37cfae0417..775f7548cf 100644
--- a/deps/npm/node_modules/npm-registry-client/test/lib/server.js
+++ b/deps/npm/node_modules/npm-registry-client/test/lib/server.js
@@ -27,7 +27,7 @@ function handler (req, res) {
if (!k) throw Error('unexpected request: ' + req.method + ' ' + req.url)
var fn = server._expect[k].shift()
- if (!fn) throw Error('unexpected request' + req.method + ' ' + req.url)
+ if (!fn) throw Error('unexpected request: ' + req.method + ' ' + req.url)
var remain = (Object.keys(server._expect).reduce(function (s, k) {
diff --git a/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js b/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js
index 4463de9a74..497a6b8c0d 100644
--- a/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js
+++ b/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js
@@ -11,12 +11,12 @@ var client = common.freshClient({
}
})
-var TEST_URL = "http://localhost:1337/some-package-gzip/1.2.3"
+var TEST_URL = common.registry+"/some-package-gzip/1.2.3"
var pkg = {
- _id: "some-package-gzip@1.2.3",
- name: "some-package-gzip",
- version: "1.2.3"
+ _id : "some-package-gzip@1.2.3",
+ name : "some-package-gzip",
+ version : "1.2.3"
}
zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) {
@@ -32,21 +32,24 @@ zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) {
client.get(TEST_URL, {}, function (er, data) {
if (er) throw er
- t.deepEqual(data, pkg)
+ t.deepEqual(data, pkg, "some-package-gzip version 1.2.3")
t.end()
})
})
tap.test("request wrong gzip package content", function (t) {
- server.expect("GET", "/some-package-gzip-error/1.2.3", function (req, res) {
- res.statusCode = 200
- res.setHeader("Content-Encoding", "gzip")
- res.setHeader("Content-Type", "application/json")
- res.end(new Buffer("wrong gzip content"))
- })
+ // will retry 3 times
+ for (var i = 0; i < 3; i++) {
+ server.expect("GET", "/some-package-gzip-error/1.2.3", function (req, res) {
+ res.statusCode = 200
+ res.setHeader("Content-Encoding", "gzip")
+ res.setHeader("Content-Type", "application/json")
+ res.end(new Buffer("wrong gzip content"))
+ })
+ }
client.get(TEST_URL, {}, function (er) {
- t.ok(er)
+ t.ok(er, "ungzip error")
t.end()
})
})
diff --git a/deps/npm/node_modules/npm-registry-client/test/request.js b/deps/npm/node_modules/npm-registry-client/test/request.js
index 799a626eae..cdc4b75f54 100644
--- a/deps/npm/node_modules/npm-registry-client/test/request.js
+++ b/deps/npm/node_modules/npm-registry-client/test/request.js
@@ -81,7 +81,7 @@ test("request call contract", function (t) {
})
test("run request through its paces", function (t) {
- t.plan(24)
+ t.plan(27)
server.expect("/request-defaults", function (req, res) {
t.equal(req.method, "GET", "uses GET by default")
@@ -94,6 +94,14 @@ test("run request through its paces", function (t) {
}))
})
+ server.expect("/last-modified", function (req, res) {
+ t.equal(req.headers["if-modified-since"], "test-last-modified",
+ "got test if-modified-since")
+
+ res.statusCode = 200
+ res.json({ fetched : "last-modified" })
+ })
+
server.expect("/etag", function (req, res) {
t.equal(req.headers["if-none-match"], "test-etag", "got test etag")
@@ -159,9 +167,20 @@ test("run request through its paces", function (t) {
})
var defaults = {}
- client.request(common.registry+"/request-defaults", defaults, function (er, data) {
+ client.request(
+ common.registry+"/request-defaults",
+ defaults,
+ function (er, data, raw, response) {
+ t.ifError(er, "call worked")
+ t.deepEquals(data, { fetched : "defaults" }, "confirmed defaults work")
+ t.equal(response.headers.connection, "keep-alive", "keep-alive set")
+ }
+ )
+
+ var lastModified = { lastModified : "test-last-modified" }
+ client.request(common.registry+"/last-modified", lastModified, function (er, data) {
t.ifError(er, "call worked")
- t.deepEquals(data, { fetched : "defaults" }, "confirmed defaults work")
+ t.deepEquals(data, { fetched : "last-modified" }, "last-modified request sent")
})
var etagged = { etag : "test-etag" }
diff --git a/deps/npm/node_modules/npm-registry-client/test/star.js b/deps/npm/node_modules/npm-registry-client/test/star.js
index 1a8576f854..0d899ee500 100644
--- a/deps/npm/node_modules/npm-registry-client/test/star.js
+++ b/deps/npm/node_modules/npm-registry-client/test/star.js
@@ -1,9 +1,9 @@
var test = require("tap").test
-
var server = require("./lib/server.js")
var common = require("./lib/common.js")
var client = common.freshClient()
var cache = require("./fixtures/underscore/cache.json")
+var nock = require("nock")
function nop () {}
@@ -19,7 +19,7 @@ var AUTH = {
}
var PARAMS = {
starred : STARRED,
- auth : AUTH
+ auth : AUTH
}
test("star call contract", function (t) {
@@ -58,22 +58,6 @@ test("star call contract", function (t) {
"params must include auth"
)
- t.test("token auth disallowed in star", function (t) {
- var params = {
- auth : {
- token : "lol"
- }
- }
- client.star(URI, params, function (err) {
- t.equal(
- err && err.message,
- "This operation is unsupported for token-based auth",
- "star doesn't support token-based auth"
- )
- t.end()
- })
- })
-
t.end()
})
@@ -96,7 +80,7 @@ test("star a package", function (t) {
req.on("end", function () {
var updated = JSON.parse(b)
- var already = [
+ var already = [
"vesln", "mvolkmann", "lancehunt", "mikl", "linus", "vasc", "bat",
"dmalam", "mbrevoort", "danielr", "rsimoes", "thlorenz"
]
@@ -110,7 +94,7 @@ test("star a package", function (t) {
t.ok(updated.users[USERNAME], "user is in the starred list")
res.statusCode = 201
- res.json({starred:true})
+ res.json({ starred : true })
})
})
@@ -118,10 +102,80 @@ test("star a package", function (t) {
starred : STARRED,
auth : AUTH
}
- client.star("http://localhost:1337/underscore", params, function (error, data) {
- t.ifError(error, "no errors")
+
+ client.star("http://localhost:1337/underscore", params, function (er, data) {
+ t.ifError(er, "no errors")
t.ok(data.starred, "was starred")
t.end()
})
})
+
+test("if password auth, only sets authorization on put", function (t) {
+ var starGet = nock("http://localhost:1010")
+ .get("/underscore?write=true")
+ .reply(200, {})
+
+ var starPut = nock("http://localhost:1010", {
+ reqheaders : {
+ authorization : "Basic " + new Buffer(AUTH.username+":"+
+ AUTH.password).toString("base64")
+ }
+ })
+ .put("/underscore")
+ .reply(200)
+
+ var params = {
+ starred : STARRED,
+ auth : AUTH
+ }
+
+ client.star("http://localhost:1010/underscore", params, function (er) {
+ t.ifError(er, "starred without issues")
+ starGet.done()
+ starPut.done()
+ t.end()
+ })
+})
+
+test("if token auth, sets bearer on get and put", function (t) {
+ var starGet = nock("http://localhost:1010", {
+ reqheaders : {
+ authorization : "Bearer foo"
+ }
+ })
+ .get("/underscore?write=true")
+ .reply(200, {})
+
+ var getUser = nock("http://localhost:1010", {
+ reqheaders : {
+ authorization : "Bearer foo"
+ }
+ })
+ .get("/-/whoami")
+ .reply(200, {
+ username : "bcoe"
+ })
+
+ var starPut = nock("http://localhost:1010", {
+ reqheaders : {
+ authorization : "Bearer foo"
+ }
+ })
+ .put("/underscore")
+ .reply(200)
+
+ var params = {
+ starred : STARRED,
+ auth : {
+ token : "foo"
+ }
+ }
+ client.star("http://localhost:1010/underscore", params, function (er) {
+ t.ifError(er, "starred without error")
+ starGet.done()
+ starPut.done()
+ getUser.done()
+ t.end()
+ })
+})
diff --git a/deps/npm/node_modules/umask/.npmignore b/deps/npm/node_modules/umask/.npmignore
new file mode 100644
index 0000000000..59d842baa8
--- /dev/null
+++ b/deps/npm/node_modules/umask/.npmignore
@@ -0,0 +1,28 @@
+# 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
diff --git a/deps/npm/node_modules/umask/ChangeLog b/deps/npm/node_modules/umask/ChangeLog
new file mode 100644
index 0000000000..59ea54d15d
--- /dev/null
+++ b/deps/npm/node_modules/umask/ChangeLog
@@ -0,0 +1,8 @@
+2015-01-15 Sam Mikes <smikes@cubane.com>
+
+ * index.js: (convert_fromString) accept decimal strings provided they
+ don't begin with '0'
+
+2015-01-14 Sam Mikes <smikes@cubane.com>
+
+ * index.js: initial rev
diff --git a/deps/npm/node_modules/umask/LICENSE b/deps/npm/node_modules/umask/LICENSE
new file mode 100644
index 0000000000..c3d2eb3550
--- /dev/null
+++ b/deps/npm/node_modules/umask/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Sam Mikes
+
+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/umask/README.md b/deps/npm/node_modules/umask/README.md
new file mode 100644
index 0000000000..80009ae709
--- /dev/null
+++ b/deps/npm/node_modules/umask/README.md
@@ -0,0 +1,78 @@
+# umask
+
+Convert umask from string &lt;-> number.
+
+## Installation & Use
+
+```
+$ npm install -S umask
+
+var umask = require('umask');
+
+console.log(umask.toString(18)); // 0022
+
+console.log(umask.fromString('0777')) // 511
+```
+
+## API
+
+### `toString( val )`
+
+Converts `val` to a 0-padded octal string. `val` is assumed to be a
+Number in the correct range (0..511)
+
+### `fromString( val, [cb] )`
+
+Converts `val` to a Number that can be used as a umask. `val` can
+be of the following forms:
+
+ * String containing octal number (leading 0)
+ * String containing decimal number
+ * Number
+
+In all cases above, the value obtained is then converted to an integer and
+checked against the legal `umask` range 0..511
+
+`fromString` can be used as a simple converter, with no error feedback, by
+omitting the optional callback argument `cb`:
+
+```
+ var mask = umask.fromString(val);
+
+ // mask is now the umask descibed by val or
+ // the default, 0022 (18 dec)
+```
+
+The callback arguments are `(err, val)` where `err` is either `null` or an
+Error object and `val` is either the converted umask or the default umask, `0022`.
+
+```
+ umask.fromString(val, function (err, val) {
+ if (err) {
+ console.error("invalid umask: " + err.message)
+ }
+
+ /* do something with val */
+ });
+```
+
+The callback, if provided, is always called **synchronously**.
+
+### `validate( data, k, val )`
+
+This is a validation function of the form expected by `nopt`. If
+`val` is a valid umask, the function returns true and sets `data[k]`.
+If `val` is not a valid umask, the function returns false.
+
+The `validate` function is stricter than `fromString`: it only accepts
+Number or octal String values, and the String value must begin with `0`.
+The `validate` function does **not** accept Strings containing decimal
+numbers.
+
+# Maintainer
+
+Sam Mikes <smikes@cubane.com>
+
+# License
+
+MIT \ No newline at end of file
diff --git a/deps/npm/node_modules/umask/index.js b/deps/npm/node_modules/umask/index.js
new file mode 100644
index 0000000000..724544c072
--- /dev/null
+++ b/deps/npm/node_modules/umask/index.js
@@ -0,0 +1,76 @@
+'use strict';
+
+var util = require("util");
+
+function toString(val) {
+ val = val.toString(8);
+ while (val.length < 4) {
+ val = "0" + val;
+ }
+ return val;
+}
+
+var defaultUmask = 18; // 0022;
+var defaultUmaskString = toString(defaultUmask);
+
+function validate(data, k, val) {
+ // must be either an integer or an octal string.
+ if (typeof val === "number" && !isNaN(val)) {
+ data[k] = val;
+ return true;
+ }
+
+ if (typeof val === "string") {
+ if (val.charAt(0) !== "0") {
+ return false;
+ }
+ data[k] = parseInt(val, 8);
+ return true;
+ }
+
+ return false;
+}
+
+function convert_fromString(val, cb) {
+ if (typeof val === "string") {
+ // check for octal string first
+ if (val.charAt(0) === '0' && /^[0-7]+$/.test(val)) {
+ val = parseInt(val, 8);
+ } else if (val.charAt(0) !== '0' && /^[0-9]+$/.test(val)) {
+ // legacy support for decimal strings
+ val = parseInt(val, 10);
+ } else {
+ return cb(new Error(util.format("Expected octal string, got %j, defaulting to %j",
+ val, defaultUmaskString)),
+ defaultUmask);
+ }
+ } else if (typeof val !== "number") {
+ return cb(new Error(util.format("Expected number or octal string, got %j, defaulting to %j",
+ val, defaultUmaskString)),
+ defaultUmask);
+ }
+
+ val = Math.floor(val);
+
+ if ((val < 0) || (val > 511)) {
+ return cb(new Error(util.format("Must be in range 0..511 (0000..0777), got %j", val)),
+ defaultUmask);
+ }
+
+ cb(null, val);
+}
+
+function fromString(val, cb) {
+
+ // synchronous callback, no zalgo
+ convert_fromString(val, cb || function (err, result) {
+ /*jslint unparam:true*/
+ val = result;
+ });
+
+ return val;
+}
+
+exports.toString = toString;
+exports.fromString = fromString;
+exports.validate = validate;
diff --git a/deps/npm/node_modules/umask/package.json b/deps/npm/node_modules/umask/package.json
new file mode 100644
index 0000000000..ed84e346f1
--- /dev/null
+++ b/deps/npm/node_modules/umask/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "umask",
+ "version": "1.1.0",
+ "description": "convert umask from string <-> number",
+ "main": "index.js",
+ "scripts": {
+ "test": "lab -ct 100",
+ "lint": "jslint --terse --latest *.js test/*.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/smikes/umask.git"
+ },
+ "keywords": [
+ "umask"
+ ],
+ "author": {
+ "name": "Sam Mikes",
+ "email": "smikes@cubane.com"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/smikes/umask/issues"
+ },
+ "homepage": "https://github.com/smikes/umask",
+ "devDependencies": {
+ "code": "^1.2.1",
+ "jslint": "^0.7.2",
+ "lab": "^5.2.0"
+ },
+ "gitHead": "63d821e4d0b06ef9a4b727c5fbe5976e9534d76e",
+ "_id": "umask@1.1.0",
+ "_shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d",
+ "_from": "umask@>=1.1.0 <1.2.0",
+ "_npmVersion": "2.2.0",
+ "_nodeVersion": "0.10.35",
+ "_npmUser": {
+ "name": "smikes",
+ "email": "smikes@cubane.com"
+ },
+ "maintainers": [
+ {
+ "name": "smikes",
+ "email": "smikes@cubane.com"
+ }
+ ],
+ "dist": {
+ "shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d",
+ "tarball": "http://registry.npmjs.org/umask/-/umask-1.1.0.tgz"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz"
+}
diff --git a/deps/npm/node_modules/umask/test/simple.js b/deps/npm/node_modules/umask/test/simple.js
new file mode 100644
index 0000000000..8f29ae745a
--- /dev/null
+++ b/deps/npm/node_modules/umask/test/simple.js
@@ -0,0 +1,166 @@
+'use strict';
+
+var umask = require('..');
+
+var Code = require('code');
+var Lab = require('lab');
+var lab = Lab.script();
+exports.lab = lab;
+
+var describe = lab.describe;
+var it = lab.it;
+var expect = Code.expect;
+
+describe('validates umask', function () {
+ // signature of validator: validate(obj, key, val)
+ // store valid value in obj[key]
+ // return false if invalid
+
+ it('accepts numbers', function (done) {
+ var o = {},
+ result = false;
+
+ result = umask.validate(o, 'umask', 0);
+ expect(result).to.equal(true);
+ expect(o.umask).to.equal(0);
+
+ result = umask.validate(o, 'umask', 511);
+ expect(result).to.equal(true);
+ expect(o.umask).to.equal(511);
+ done();
+ });
+
+ it('accepts strings', function (done) {
+ var o = {},
+ result;
+
+ result = umask.validate(o, 'umask', "0");
+ expect(result).to.equal(true);
+ expect(o.umask).to.equal(0);
+
+ result = umask.validate(o, 'umask', "0777");
+ expect(result).to.equal(true);
+ expect(o.umask).to.equal(511);
+
+ done();
+ });
+
+ it('rejects other types', function (done) {
+ expect(umask.validate(undefined, undefined, false)).to.equal(false);
+ expect(umask.validate(undefined, undefined, {})).to.equal(false);
+
+ done();
+ });
+
+ it('rejects non-octalish strings', function (done) {
+ expect(umask.validate(undefined, undefined, "1")).to.equal(false);
+
+ done();
+ });
+
+ it('rejects NaN strings', function (done) {
+ expect(umask.validate(undefined, undefined, NaN)).to.equal(false);
+
+ done();
+ });
+});
+
+describe('umask to string', function () {
+ it("converts umask to string", function (done) {
+ expect(umask.toString(0)).to.equal("0000");
+ expect(umask.toString(1)).to.equal("0001");
+ expect(umask.toString(7)).to.equal("0007");
+ expect(umask.toString(8)).to.equal("0010");
+ expect(umask.toString(511)).to.equal("0777");
+ expect(umask.toString(18)).to.equal("0022");
+ expect(umask.toString(16)).to.equal("0020");
+ done();
+ });
+});
+
+describe('umask from string', function () {
+ it('converts valid values', function (done) {
+ expect(umask.fromString("0000")).to.equal(0);
+ expect(umask.fromString("0")).to.equal(0);
+ expect(umask.fromString("0777")).to.equal(511);
+ expect(umask.fromString("0024")).to.equal(20);
+
+ expect(umask.fromString(0)).to.equal(0);
+ expect(umask.fromString(20)).to.equal(20);
+ expect(umask.fromString(21)).to.equal(21);
+ expect(umask.fromString(511)).to.equal(511);
+
+ done();
+ });
+
+ it('converts valid values', function (done) {
+ expect(umask.fromString("0000")).to.equal(0);
+ expect(umask.fromString("0")).to.equal(0);
+ expect(umask.fromString("010")).to.equal(8);
+ expect(umask.fromString("0777")).to.equal(511);
+ expect(umask.fromString("0024")).to.equal(20);
+
+ expect(umask.fromString("8")).to.equal(8);
+ expect(umask.fromString("9")).to.equal(9);
+ expect(umask.fromString("18")).to.equal(18);
+ expect(umask.fromString("16")).to.equal(16);
+
+ expect(umask.fromString(0)).to.equal(0);
+ expect(umask.fromString(20)).to.equal(20);
+ expect(umask.fromString(21)).to.equal(21);
+ expect(umask.fromString(511)).to.equal(511);
+
+ expect(umask.fromString(0.1)).to.equal(0);
+ expect(umask.fromString(511.1)).to.equal(511);
+
+ done();
+ });
+
+ it('errors on empty string', function (done) {
+ umask.fromString("", function (err, val) {
+ expect(err.message).to.equal('Expected octal string, got "", defaulting to "0022"');
+ expect(val).to.equal(18);
+ done();
+ });
+ });
+
+ it('errors on invalid octal string', function (done) {
+ umask.fromString("099", function (err, val) {
+ expect(err.message).to.equal('Expected octal string, got "099", defaulting to "0022"');
+ expect(val).to.equal(18);
+ done();
+ });
+ });
+
+ it('errors when non-string, non-number (boolean)', function (done) {
+ umask.fromString(false, function (err, val) {
+ expect(err.message).to.equal('Expected number or octal string, got false, defaulting to "0022"');
+ expect(val).to.equal(18);
+ done();
+ });
+ });
+
+ it('errors when non-string, non-number (object)', function (done) {
+ umask.fromString({}, function (err, val) {
+ expect(err.message).to.equal('Expected number or octal string, got {}, defaulting to "0022"');
+ expect(val).to.equal(18);
+ done();
+ });
+ });
+
+ it('errors when out of range (<0)', function (done) {
+ umask.fromString(-1, function (err, val) {
+ expect(err.message).to.equal('Must be in range 0..511 (0000..0777), got -1');
+ expect(val).to.equal(18);
+ done();
+ });
+ });
+
+ it('errors when out of range (>511)', function (done) {
+ umask.fromString(512, function (err, val) {
+ expect(err.message).to.equal('Must be in range 0..511 (0000..0777), got 512');
+ expect(val).to.equal(18);
+ done();
+ });
+ });
+});
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 191268f7e9..9717becdce 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "2.2.0",
+ "version": "2.3.0",
"name": "npm",
"description": "A package manager for node",
"keywords": [
@@ -53,7 +53,7 @@
"fstream-npm": "~1.0.1",
"github-url-from-git": "~1.4.0",
"github-url-from-username-repo": "~1.0.2",
- "glob": "~4.3.2",
+ "glob": "~4.3.5",
"graceful-fs": "~3.0.5",
"inflight": "~1.0.4",
"inherits": "~2.0.1",
@@ -70,7 +70,7 @@
"npm-cache-filename": "~1.0.1",
"npm-install-checks": "~1.0.5",
"npm-package-arg": "~2.1.3",
- "npm-registry-client": "~4.0.5",
+ "npm-registry-client": "~5.0.0",
"npm-user-validate": "~0.1.1",
"npmlog": "~0.1.1",
"once": "~1.3.1",
@@ -92,6 +92,7 @@
"tar": "~1.0.3",
"text-table": "~0.2.0",
"uid-number": "0.0.6",
+ "umask": "~1.1.0",
"which": "~1.0.8",
"wrappy": "~1.0.1",
"write-file-atomic": "~1.1.0"
@@ -158,6 +159,7 @@
"tar",
"text-table",
"uid-number",
+ "umask",
"which",
"wrappy",
"write-file-atomic"
@@ -165,11 +167,11 @@
"devDependencies": {
"marked": "~0.3.2",
"marked-man": "~0.1.4",
- "nock": "~0.52.4",
+ "nock": "~0.57.0",
"npm-registry-couchapp": "~2.6.2",
"npm-registry-mock": "~0.6.3",
"require-inject": "~1.1.0",
- "tap": "~0.4.12"
+ "tap": "~0.5.0"
},
"scripts": {
"test-legacy": "node ./test/run.js",
diff --git a/deps/npm/test/tap/add-remote-git-fake-windows.js b/deps/npm/test/tap/add-remote-git-fake-windows.js
index 75ebf1da20..5de7cff7d0 100644
--- a/deps/npm/test/tap/add-remote-git-fake-windows.js
+++ b/deps/npm/test/tap/add-remote-git-fake-windows.js
@@ -14,6 +14,7 @@ var pkg = resolve(__dirname, "add-remote-git")
var repo = resolve(__dirname, "add-remote-git-repo")
var daemon
+var daemonPID
var git
test("setup", function (t) {
@@ -21,7 +22,10 @@ test("setup", function (t) {
setup(function (er, r) {
t.ifError(er, "git started up successfully")
- if (!er) daemon = r[r.length - 1]
+ if (!er) {
+ daemon = r[r.length - 2]
+ daemonPID = r[r.length - 1]
+ }
t.end()
})
@@ -45,19 +49,19 @@ test("clean", function (t) {
cleanup()
t.end()
})
- daemon.kill("SIGINT")
+ process.kill(daemonPID)
})
var pjParent = JSON.stringify({
- name : "parent",
- version : "1.2.3",
+ name : "parent",
+ version : "1.2.3",
dependencies : {
"child" : "git://localhost:1234/child.git"
}
}, null, 2) + "\n"
var pjChild = JSON.stringify({
- name : "child",
+ name : "child",
version : "1.0.3"
}, null, 2) + "\n"
@@ -81,19 +85,27 @@ function setup (cb) {
var d = git.spawn(
[
"daemon",
+ "--verbose",
"--listen=localhost",
"--export-all",
"--base-path=.",
"--port=1234"
],
{
- cwd : pkg,
- env : process.env,
+ cwd : pkg,
+ env : process.env,
stdio : ["pipe", "pipe", "pipe"]
}
)
+ d.stderr.on("data", childFinder)
- cb(null, d)
+ function childFinder (c) {
+ var cpid = c.toString().match(/^\[(\d+)\]/)
+ if (cpid[1]) {
+ this.removeListener("data", childFinder)
+ cb(null, [d, cpid[1]])
+ }
+ }
}
var opts = {
diff --git a/deps/npm/test/tap/add-remote-git.js b/deps/npm/test/tap/add-remote-git.js
index 13fbc8c34d..325ac2ed3d 100644
--- a/deps/npm/test/tap/add-remote-git.js
+++ b/deps/npm/test/tap/add-remote-git.js
@@ -14,6 +14,7 @@ var pkg = resolve(__dirname, "add-remote-git")
var repo = resolve(__dirname, "add-remote-git-repo")
var daemon
+var daemonPID
var git
test("setup", function (t) {
@@ -21,14 +22,16 @@ test("setup", function (t) {
setup(function (er, r) {
t.ifError(er, "git started up successfully")
- if (!er) daemon = r[r.length - 1]
+ if (!er) {
+ daemon = r[r.length - 2]
+ daemonPID = r[r.length - 1]
+ }
t.end()
})
})
-test("install from repo on 'OS X'", function (t) {
- process.platform = "darwin"
+test("install from repo", function (t) {
process.chdir(pkg)
npm.commands.install(".", [], function (er) {
t.ifError(er, "npm installed via git")
@@ -42,19 +45,19 @@ test("clean", function (t) {
cleanup()
t.end()
})
- daemon.kill("SIGINT")
+ process.kill(daemonPID)
})
var pjParent = JSON.stringify({
- name : "parent",
- version : "1.2.3",
+ name : "parent",
+ version : "1.2.3",
dependencies : {
"child" : "git://localhost:1234/child.git"
}
}, null, 2) + "\n"
var pjChild = JSON.stringify({
- name : "child",
+ name : "child",
version : "1.0.3"
}, null, 2) + "\n"
@@ -74,19 +77,27 @@ function setup (cb) {
var d = git.spawn(
[
"daemon",
+ "--verbose",
"--listen=localhost",
"--export-all",
"--base-path=.",
"--port=1234"
],
{
- cwd : pkg,
- env : process.env,
+ cwd : pkg,
+ env : process.env,
stdio : ["pipe", "pipe", "pipe"]
}
)
+ d.stderr.on("data", childFinder)
- cb(null, d)
+ function childFinder (c) {
+ var cpid = c.toString().match(/^\[(\d+)\]/)
+ if (cpid[1]) {
+ this.removeListener("data", childFinder)
+ cb(null, [d, cpid[1]])
+ }
+ }
}
var opts = {
diff --git a/deps/npm/test/tap/lifecycle-path.js b/deps/npm/test/tap/lifecycle-path.js
index cf4bbdc99c..dc05a15dcb 100644
--- a/deps/npm/test/tap/lifecycle-path.js
+++ b/deps/npm/test/tap/lifecycle-path.js
@@ -6,11 +6,13 @@ var pkg = path.resolve(__dirname, "lifecycle-path")
var fs = require("fs")
var link = path.resolve(pkg, "node-bin")
-// Without the path to the shell, nothing works usually.
var PATH
if (process.platform === "win32") {
- PATH = "C:\\Windows\\system32;C:\\Windows"
+ // On Windows the 'comspec' environment variable is used,
+ // so cmd.exe does not need to be on the path.
+ PATH = "C:\\foo\\bar"
} else {
+ // On non-Windows, without the path to the shell, nothing usually works.
PATH = "/bin:/usr/bin"
}
diff --git a/deps/npm/test/tap/umask-lifecycle.js b/deps/npm/test/tap/umask-lifecycle.js
new file mode 100644
index 0000000000..a40eae44be
--- /dev/null
+++ b/deps/npm/test/tap/umask-lifecycle.js
@@ -0,0 +1,52 @@
+var path = require("path")
+var test = require("tap").test
+var fs = require("fs")
+var rimraf = require("rimraf")
+var mkdirp = require("mkdirp")
+var common = require("../common-tap.js")
+
+var pkg = path.resolve(__dirname, "umask-lifecycle")
+var pj = JSON.stringify({
+ name:"x",
+ version: "1.2.3",
+ scripts: { umask: "$npm_execpath config get umask && echo \"$npm_config_umask\" && node -p 'process.umask()'" }
+}, null, 2) + "\n"
+
+var expected = [
+ "",
+ "> x@1.2.3 umask "+path.join(__dirname, "umask-lifecycle"),
+ "> $npm_execpath config get umask && echo \"$npm_config_umask\" && node -p 'process.umask()'",
+ "",
+ "0022",
+ "0022",
+ "18",
+ ""
+].join("\n")
+
+test("setup", function (t) {
+ rimraf.sync(pkg)
+ mkdirp.sync(pkg)
+ fs.writeFileSync(pkg + "/package.json", pj)
+ t.end()
+})
+
+test("umask script", function (t) {
+ common.npm(["run", "umask"], {
+ umask: 0022,
+ cwd: pkg,
+ env: {
+ PATH: process.env.PATH,
+ Path: process.env.Path,
+ "npm_config_loglevel": "warn"
+ }
+ }, function (er, code, sout, serr) {
+ t.equal(sout, expected)
+ t.equal(serr, "")
+ t.end()
+ })
+})
+
+test("clean", function (t) {
+ rimraf.sync(pkg)
+ t.end()
+})
diff --git a/deps/npm/test/tap/whoami.js b/deps/npm/test/tap/whoami.js
index e4ed30df77..558d0db9ae 100644
--- a/deps/npm/test/tap/whoami.js
+++ b/deps/npm/test/tap/whoami.js
@@ -45,7 +45,7 @@ test("npm whoami with bearer auth", {timeout : 2 * 1000}, function (t) {
function verify(req, res) {
t.equal(req.method, "GET")
- t.equal(req.url, "/whoami")
+ t.equal(req.url, "/-/whoami")
res.setHeader("content-type", "application/json")
res.writeHeader(200)