summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2011-12-21 12:17:23 -0800
committerRyan Dahl <ry@tinyclouds.org>2011-12-21 12:17:23 -0800
commitf7f8af842077be4e6cc580ddedcccea71e073bbb (patch)
tree2c2a6a881cd3cbcf04b0f338afb1c942d33bbb19
parent4eaf4ce26a0e66179d199997d9e0290867557702 (diff)
parent73cf8e82e768af870964d6f3375ab758e774165c (diff)
downloadnode-new-f7f8af842077be4e6cc580ddedcccea71e073bbb.tar.gz
Merge remote branch 'origin/v0.6'
Conflicts: Makefile lib/_debugger.js
-rw-r--r--Makefile7
-rw-r--r--deps/npm/html/api/bin.html2
-rw-r--r--deps/npm/html/api/bugs.html2
-rw-r--r--deps/npm/html/api/commands.html2
-rw-r--r--deps/npm/html/api/config.html2
-rw-r--r--deps/npm/html/api/deprecate.html2
-rw-r--r--deps/npm/html/api/docs.html2
-rw-r--r--deps/npm/html/api/edit.html2
-rw-r--r--deps/npm/html/api/explore.html2
-rw-r--r--deps/npm/html/api/help-search.html2
-rw-r--r--deps/npm/html/api/init.html2
-rw-r--r--deps/npm/html/api/install.html2
-rw-r--r--deps/npm/html/api/link.html2
-rw-r--r--deps/npm/html/api/load.html2
-rw-r--r--deps/npm/html/api/ls.html2
-rw-r--r--deps/npm/html/api/npm.html4
-rw-r--r--deps/npm/html/api/outdated.html2
-rw-r--r--deps/npm/html/api/owner.html2
-rw-r--r--deps/npm/html/api/pack.html2
-rw-r--r--deps/npm/html/api/prefix.html2
-rw-r--r--deps/npm/html/api/prune.html2
-rw-r--r--deps/npm/html/api/publish.html2
-rw-r--r--deps/npm/html/api/rebuild.html2
-rw-r--r--deps/npm/html/api/restart.html2
-rw-r--r--deps/npm/html/api/root.html2
-rw-r--r--deps/npm/html/api/run-script.html2
-rw-r--r--deps/npm/html/api/search.html2
-rw-r--r--deps/npm/html/api/start.html2
-rw-r--r--deps/npm/html/api/stop.html2
-rw-r--r--deps/npm/html/api/submodule.html2
-rw-r--r--deps/npm/html/api/tag.html2
-rw-r--r--deps/npm/html/api/test.html2
-rw-r--r--deps/npm/html/api/uninstall.html2
-rw-r--r--deps/npm/html/api/unpublish.html2
-rw-r--r--deps/npm/html/api/update.html2
-rw-r--r--deps/npm/html/api/version.html2
-rw-r--r--deps/npm/html/api/view.html2
-rw-r--r--deps/npm/html/api/whoami.html2
-rw-r--r--deps/npm/html/doc/README.html2
-rw-r--r--deps/npm/html/doc/adduser.html2
-rw-r--r--deps/npm/html/doc/bin.html2
-rw-r--r--deps/npm/html/doc/bugs.html2
-rw-r--r--deps/npm/html/doc/build.html2
-rw-r--r--deps/npm/html/doc/bundle.html2
-rw-r--r--deps/npm/html/doc/cache.html2
-rw-r--r--deps/npm/html/doc/changelog.html2
-rw-r--r--deps/npm/html/doc/coding-style.html2
-rw-r--r--deps/npm/html/doc/completion.html2
-rw-r--r--deps/npm/html/doc/config.html2
-rw-r--r--deps/npm/html/doc/deprecate.html2
-rw-r--r--deps/npm/html/doc/developers.html2
-rw-r--r--deps/npm/html/doc/docs.html2
-rw-r--r--deps/npm/html/doc/edit.html2
-rw-r--r--deps/npm/html/doc/explore.html2
-rw-r--r--deps/npm/html/doc/faq.html2
-rw-r--r--deps/npm/html/doc/folders.html2
-rw-r--r--deps/npm/html/doc/help-search.html2
-rw-r--r--deps/npm/html/doc/help.html2
-rw-r--r--deps/npm/html/doc/index.html2
-rw-r--r--deps/npm/html/doc/init.html2
-rw-r--r--deps/npm/html/doc/install.html2
-rw-r--r--deps/npm/html/doc/json.html2
-rw-r--r--deps/npm/html/doc/link.html2
-rw-r--r--deps/npm/html/doc/list.html2
-rw-r--r--deps/npm/html/doc/npm.html4
-rw-r--r--deps/npm/html/doc/outdated.html2
-rw-r--r--deps/npm/html/doc/owner.html2
-rw-r--r--deps/npm/html/doc/pack.html2
-rw-r--r--deps/npm/html/doc/prefix.html2
-rw-r--r--deps/npm/html/doc/prune.html2
-rw-r--r--deps/npm/html/doc/publish.html2
-rw-r--r--deps/npm/html/doc/rebuild.html2
-rw-r--r--deps/npm/html/doc/registry.html2
-rw-r--r--deps/npm/html/doc/removing-npm.html2
-rw-r--r--deps/npm/html/doc/restart.html2
-rw-r--r--deps/npm/html/doc/root.html2
-rw-r--r--deps/npm/html/doc/run-script.html2
-rw-r--r--deps/npm/html/doc/scripts.html2
-rw-r--r--deps/npm/html/doc/search.html2
-rw-r--r--deps/npm/html/doc/semver.html2
-rw-r--r--deps/npm/html/doc/star.html2
-rw-r--r--deps/npm/html/doc/start.html2
-rw-r--r--deps/npm/html/doc/stop.html2
-rw-r--r--deps/npm/html/doc/submodule.html2
-rw-r--r--deps/npm/html/doc/tag.html2
-rw-r--r--deps/npm/html/doc/test.html2
-rw-r--r--deps/npm/html/doc/uninstall.html2
-rw-r--r--deps/npm/html/doc/unpublish.html2
-rw-r--r--deps/npm/html/doc/update.html2
-rw-r--r--deps/npm/html/doc/version.html2
-rw-r--r--deps/npm/html/doc/view.html2
-rw-r--r--deps/npm/html/doc/whoami.html2
-rw-r--r--deps/npm/lib/utils/excludes.js2
-rw-r--r--deps/npm/lib/utils/ini.js3
-rw-r--r--deps/npm/man/man1/npm.12
-rw-r--r--deps/npm/man/man3/npm.32
-rw-r--r--deps/npm/node_modules/fstream/lib/link-writer.js8
-rw-r--r--deps/npm/node_modules/fstream/package.json2
-rw-r--r--deps/npm/package.json4
-rw-r--r--deps/npm/test/packages/npm-test-files/.npmignore7
-rw-r--r--deps/npm/test/packages/npm-test-files/include40
-rw-r--r--deps/npm/test/packages/npm-test-files/package.json9
-rw-r--r--deps/npm/test/packages/npm-test-files/sub/include0
-rw-r--r--deps/npm/test/packages/npm-test-files/sub/include20
-rw-r--r--deps/npm/test/packages/npm-test-files/sub/include41
-rw-r--r--deps/npm/test/packages/npm-test-files/test.sh27
-rwxr-xr-xdeps/npm/test/run138
-rw-r--r--deps/npm/test/run.js209
-rw-r--r--deps/uv/include/uv.h3
-rw-r--r--deps/uv/src/unix/dl.c22
-rw-r--r--doc/about/index.html4
-rw-r--r--doc/api/tls.markdown8
-rw-r--r--doc/community/index.html4
-rw-r--r--doc/index.html2
-rw-r--r--doc/logos/index.html4
-rw-r--r--lib/child_process.js6
-rw-r--r--lib/net.js1
-rw-r--r--lib/path.js1
-rw-r--r--lib/timers.js7
-rw-r--r--lib/tls.js16
-rw-r--r--src/node.cc2
-rw-r--r--src/node_http_parser.cc26
-rw-r--r--test/simple/test-child-process-fork.js5
-rw-r--r--test/simple/test-https-invalid-key.js62
-rw-r--r--test/simple/test-net-server-listen-remove-callback.js4
-rw-r--r--test/simple/test-net-settimeout.js50
-rw-r--r--test/simple/test-timers-zero-timeout.js3
-rw-r--r--test/simple/test-tls-invalid-key.js62
128 files changed, 634 insertions, 265 deletions
diff --git a/Makefile b/Makefile
index 240c32f1d9..99f980d982 100644
--- a/Makefile
+++ b/Makefile
@@ -48,6 +48,7 @@ test-valgrind: all
test-all: all
python tools/test.py --mode=debug,release
+ $(MAKE) test-npm
test-all-http1: all
python tools/test.py --mode=debug,release --use-http1
@@ -73,6 +74,12 @@ test-pummel: all
test-internet: all
python tools/test.py internet
+test-npm: node
+ ./node deps/npm/test/run.js
+
+test-npm-publish: node
+ npm_package_config_publishtest=true ./node deps/npm/test/run.js
+
apidoc_sources = $(wildcard doc/api/*.markdown)
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html))
diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html
index 599096912c..b54352f0b0 100644
--- a/deps/npm/html/api/bin.html
+++ b/deps/npm/html/api/bin.html
@@ -19,7 +19,7 @@
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
-<p id="footer">bin &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">bin &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/bugs.html b/deps/npm/html/api/bugs.html
index b5828c3ddf..0cc8c2585c 100644
--- a/deps/npm/html/api/bugs.html
+++ b/deps/npm/html/api/bugs.html
@@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">bugs &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">bugs &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/commands.html b/deps/npm/html/api/commands.html
index d6c6615007..d8558b5259 100644
--- a/deps/npm/html/api/commands.html
+++ b/deps/npm/html/api/commands.html
@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">commands &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">commands &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/config.html b/deps/npm/html/api/config.html
index 88c015dcb2..f55a6b2459 100644
--- a/deps/npm/html/api/config.html
+++ b/deps/npm/html/api/config.html
@@ -33,7 +33,7 @@ functions instead.</p>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">config &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/deprecate.html b/deps/npm/html/api/deprecate.html
index b1da74ebd1..bf2f3ef2cc 100644
--- a/deps/npm/html/api/deprecate.html
+++ b/deps/npm/html/api/deprecate.html
@@ -30,7 +30,7 @@ install the package.</p></li></ul>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">deprecate &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/docs.html b/deps/npm/html/api/docs.html
index e973071e45..ca263c1f66 100644
--- a/deps/npm/html/api/docs.html
+++ b/deps/npm/html/api/docs.html
@@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">docs &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">docs &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/edit.html b/deps/npm/html/api/edit.html
index 441c70d587..c9aec719f9 100644
--- a/deps/npm/html/api/edit.html
+++ b/deps/npm/html/api/edit.html
@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
-<p id="footer">edit &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">edit &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/explore.html b/deps/npm/html/api/explore.html
index b709dba409..03ca82b25c 100644
--- a/deps/npm/html/api/explore.html
+++ b/deps/npm/html/api/explore.html
@@ -24,7 +24,7 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
</div>
-<p id="footer">explore &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">explore &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/help-search.html b/deps/npm/html/api/help-search.html
index 5d38243cae..01b3307954 100644
--- a/deps/npm/html/api/help-search.html
+++ b/deps/npm/html/api/help-search.html
@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
-<p id="footer">help-search &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">help-search &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/init.html b/deps/npm/html/api/init.html
index dc92ab518b..4e5a7167bc 100644
--- a/deps/npm/html/api/init.html
+++ b/deps/npm/html/api/init.html
@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
<p><a href="../doc/json.html">json(1)</a></p>
</div>
-<p id="footer">init &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">init &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/install.html b/deps/npm/html/api/install.html
index 6b1d32d35f..692f609f89 100644
--- a/deps/npm/html/api/install.html
+++ b/deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
<p>Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
-<p id="footer">install &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">install &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/link.html b/deps/npm/html/api/link.html
index 10e1850172..87a3a03970 100644
--- a/deps/npm/html/api/link.html
+++ b/deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ npm.commands.link('redis', cb) # link-install the package</code></pre>
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
-<p id="footer">link &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">link &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/load.html b/deps/npm/html/api/load.html
index 7ec5544ae5..9ad5a8e196 100644
--- a/deps/npm/html/api/load.html
+++ b/deps/npm/html/api/load.html
@@ -32,7 +32,7 @@ config object.</p>
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
-<p id="footer">load &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">load &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/ls.html b/deps/npm/html/api/ls.html
index 742459ea15..0655ef4e04 100644
--- a/deps/npm/html/api/ls.html
+++ b/deps/npm/html/api/ls.html
@@ -53,7 +53,7 @@ project.</p>
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
-<p id="footer">ls &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">ls &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/npm.html b/deps/npm/html/api/npm.html
index 2d6719322d..df3d8bae93 100644
--- a/deps/npm/html/api/npm.html
+++ b/deps/npm/html/api/npm.html
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
<h2 id="VERSION">VERSION</h2>
-<p>1.1.0-beta-4</p>
+<p>1.1.0-beta-7</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -91,7 +91,7 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">npm &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/outdated.html b/deps/npm/html/api/outdated.html
index e6aa1db809..a7db489b83 100644
--- a/deps/npm/html/api/outdated.html
+++ b/deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ currently outdated.</p>
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">outdated &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/owner.html b/deps/npm/html/api/owner.html
index 1b7596f48a..89fe0251f0 100644
--- a/deps/npm/html/api/owner.html
+++ b/deps/npm/html/api/owner.html
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">owner &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/pack.html b/deps/npm/html/api/pack.html
index b35f889f3f..cb2ffe652a 100644
--- a/deps/npm/html/api/pack.html
+++ b/deps/npm/html/api/pack.html
@@ -25,7 +25,7 @@ overwritten the second time.</p>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
-<p id="footer">pack &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">pack &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/prefix.html b/deps/npm/html/api/prefix.html
index bbcf5f6222..130bca5ea2 100644
--- a/deps/npm/html/api/prefix.html
+++ b/deps/npm/html/api/prefix.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">prefix &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">prefix &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/prune.html b/deps/npm/html/api/prune.html
index 5bc4bcd29b..d425838533 100644
--- a/deps/npm/html/api/prune.html
+++ b/deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">prune &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/publish.html b/deps/npm/html/api/publish.html
index 4223f1e070..d93a2291cb 100644
--- a/deps/npm/html/api/publish.html
+++ b/deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ the registry. Overwrites when the "force" environment variable is set.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">publish &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/rebuild.html b/deps/npm/html/api/rebuild.html
index 57d11fef08..9ca14c9ca1 100644
--- a/deps/npm/html/api/rebuild.html
+++ b/deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package will be reb
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">rebuild &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/restart.html b/deps/npm/html/api/restart.html
index de2844f2bc..20b36542cb 100644
--- a/deps/npm/html/api/restart.html
+++ b/deps/npm/html/api/restart.html
@@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">restart &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/root.html b/deps/npm/html/api/root.html
index 9326c87324..16073a4877 100644
--- a/deps/npm/html/api/root.html
+++ b/deps/npm/html/api/root.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically.</p>
</div>
-<p id="footer">root &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">root &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/run-script.html b/deps/npm/html/api/run-script.html
index a81eabc4ad..43a4f80b5a 100644
--- a/deps/npm/html/api/run-script.html
+++ b/deps/npm/html/api/run-script.html
@@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">run-script &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/search.html b/deps/npm/html/api/search.html
index 1cb3de19ce..2267733dc7 100644
--- a/deps/npm/html/api/search.html
+++ b/deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ excluded term (the "searchexclude" config). The search is case insensitive
and doesn't try to read your mind (it doesn't do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">search &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/start.html b/deps/npm/html/api/start.html
index f9ec1c5460..6fa6e0b152 100644
--- a/deps/npm/html/api/start.html
+++ b/deps/npm/html/api/start.html
@@ -19,7 +19,7 @@
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">start &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">start &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/stop.html b/deps/npm/html/api/stop.html
index 5aa5f79903..e23cff64e4 100644
--- a/deps/npm/html/api/stop.html
+++ b/deps/npm/html/api/stop.html
@@ -19,7 +19,7 @@
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">stop &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">stop &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/submodule.html b/deps/npm/html/api/submodule.html
index bd02214a9e..ae8bc0239f 100644
--- a/deps/npm/html/api/submodule.html
+++ b/deps/npm/html/api/submodule.html
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">submodule &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/tag.html b/deps/npm/html/api/tag.html
index 937979e367..bd90e5a4d3 100644
--- a/deps/npm/html/api/tag.html
+++ b/deps/npm/html/api/tag.html
@@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
-<p id="footer">tag &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">tag &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/test.html b/deps/npm/html/api/test.html
index 979a93f3c1..e61fe0eebd 100644
--- a/deps/npm/html/api/test.html
+++ b/deps/npm/html/api/test.html
@@ -22,7 +22,7 @@ true.</p>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">test &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">test &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/uninstall.html b/deps/npm/html/api/uninstall.html
index e92806b2fa..60de7a1a08 100644
--- a/deps/npm/html/api/uninstall.html
+++ b/deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
<p>Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">uninstall &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/unpublish.html b/deps/npm/html/api/unpublish.html
index 2637ef13d6..33b05fbcbf 100644
--- a/deps/npm/html/api/unpublish.html
+++ b/deps/npm/html/api/unpublish.html
@@ -26,7 +26,7 @@ is what is meant.</p>
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">unpublish &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/update.html b/deps/npm/html/api/update.html
index 4730b5f846..7247042671 100644
--- a/deps/npm/html/api/update.html
+++ b/deps/npm/html/api/update.html
@@ -18,7 +18,7 @@
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">update &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/version.html b/deps/npm/html/api/version.html
index b7ad219d72..12ddc185d9 100644
--- a/deps/npm/html/api/version.html
+++ b/deps/npm/html/api/version.html
@@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
-<p id="footer">version &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">version &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/view.html b/deps/npm/html/api/view.html
index 6a76f0159a..65237f3e43 100644
--- a/deps/npm/html/api/view.html
+++ b/deps/npm/html/api/view.html
@@ -99,7 +99,7 @@ the field name.</p>
<p>corresponding to the list of fields selected.</p>
</div>
-<p id="footer">view &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">view &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/whoami.html b/deps/npm/html/api/whoami.html
index baea7fbcf2..66fa0aacee 100644
--- a/deps/npm/html/api/whoami.html
+++ b/deps/npm/html/api/whoami.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">whoami &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">whoami &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html
index e87af9ef31..424b0659eb 100644
--- a/deps/npm/html/doc/README.html
+++ b/deps/npm/html/doc/README.html
@@ -267,7 +267,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.0-beta-4</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/adduser.html b/deps/npm/html/doc/adduser.html
index ad79fd8806..1146ecccf4 100644
--- a/deps/npm/html/doc/adduser.html
+++ b/deps/npm/html/doc/adduser.html
@@ -39,7 +39,7 @@ authorize on a new machine.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
-<p id="footer">adduser &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">adduser &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bin.html b/deps/npm/html/doc/bin.html
index 1191a3834b..3381fcc027 100644
--- a/deps/npm/html/doc/bin.html
+++ b/deps/npm/html/doc/bin.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">bin &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">bin &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bugs.html b/deps/npm/html/doc/bugs.html
index 5d28622587..5bd1f869eb 100644
--- a/deps/npm/html/doc/bugs.html
+++ b/deps/npm/html/doc/bugs.html
@@ -36,7 +36,7 @@ config param.</p>
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">bugs &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">bugs &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/build.html b/deps/npm/html/doc/build.html
index a3c50791eb..6b9c6474bc 100644
--- a/deps/npm/html/doc/build.html
+++ b/deps/npm/html/doc/build.html
@@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">build &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">build &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bundle.html b/deps/npm/html/doc/bundle.html
index 651d17252d..07ec8323de 100644
--- a/deps/npm/html/doc/bundle.html
+++ b/deps/npm/html/doc/bundle.html
@@ -20,7 +20,7 @@ install packages into the local space.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">bundle &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">bundle &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/cache.html b/deps/npm/html/doc/cache.html
index 767657cd04..d1d0208ed7 100644
--- a/deps/npm/html/doc/cache.html
+++ b/deps/npm/html/doc/cache.html
@@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
-<p id="footer">cache &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">cache &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/changelog.html b/deps/npm/html/doc/changelog.html
index 1279a1a126..4f378cf950 100644
--- a/deps/npm/html/doc/changelog.html
+++ b/deps/npm/html/doc/changelog.html
@@ -34,7 +34,7 @@
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
-<p id="footer">changelog &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">changelog &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/coding-style.html b/deps/npm/html/doc/coding-style.html
index 5617e16819..ca483bb4d2 100644
--- a/deps/npm/html/doc/coding-style.html
+++ b/deps/npm/html/doc/coding-style.html
@@ -191,7 +191,7 @@ set to anything."</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">coding-style &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">coding-style &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/completion.html b/deps/npm/html/doc/completion.html
index 0ba3d3c510..1033f726a9 100644
--- a/deps/npm/html/doc/completion.html
+++ b/deps/npm/html/doc/completion.html
@@ -33,7 +33,7 @@ completions based on the arguments.</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">completion &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">completion &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/config.html b/deps/npm/html/doc/config.html
index 04f4a4a30a..a38dfbfa59 100644
--- a/deps/npm/html/doc/config.html
+++ b/deps/npm/html/doc/config.html
@@ -615,7 +615,7 @@ then answer "no" to any prompt.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">config &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/deprecate.html b/deps/npm/html/doc/deprecate.html
index 69e5ad9129..ca53a70671 100644
--- a/deps/npm/html/doc/deprecate.html
+++ b/deps/npm/html/doc/deprecate.html
@@ -29,7 +29,7 @@ something like this:</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">deprecate &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/developers.html b/deps/npm/html/doc/developers.html
index a69e36b923..7b45bfb538 100644
--- a/deps/npm/html/doc/developers.html
+++ b/deps/npm/html/doc/developers.html
@@ -150,7 +150,7 @@ from a fresh checkout.</p>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">developers &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">developers &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/docs.html b/deps/npm/html/doc/docs.html
index a0f01c66f8..212fabb996 100644
--- a/deps/npm/html/doc/docs.html
+++ b/deps/npm/html/doc/docs.html
@@ -37,7 +37,7 @@ config param.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">docs &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">docs &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/edit.html b/deps/npm/html/doc/edit.html
index 2e8bbc9acb..d879d533bb 100644
--- a/deps/npm/html/doc/edit.html
+++ b/deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">edit &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">edit &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/explore.html b/deps/npm/html/doc/explore.html
index 99727b2a37..747b313049 100644
--- a/deps/npm/html/doc/explore.html
+++ b/deps/npm/html/doc/explore.html
@@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">explore &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">explore &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/faq.html b/deps/npm/html/doc/faq.html
index f256923e78..a1f5cd4e1c 100644
--- a/deps/npm/html/doc/faq.html
+++ b/deps/npm/html/doc/faq.html
@@ -215,7 +215,7 @@ We'll have someone kick it or something.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">faq &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">faq &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/folders.html b/deps/npm/html/doc/folders.html
index 499593decc..d65118c361 100644
--- a/deps/npm/html/doc/folders.html
+++ b/deps/npm/html/doc/folders.html
@@ -205,7 +205,7 @@ cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></co
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
-<p id="footer">folders &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">folders &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/help-search.html b/deps/npm/html/doc/help-search.html
index 34b32beee5..0d4777aea8 100644
--- a/deps/npm/html/doc/help-search.html
+++ b/deps/npm/html/doc/help-search.html
@@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
-<p id="footer">help-search &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">help-search &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/help.html b/deps/npm/html/doc/help.html
index c88b9edf5d..35bd3c4847 100644
--- a/deps/npm/html/doc/help.html
+++ b/deps/npm/html/doc/help.html
@@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">help &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">help &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html
index a5c92210ac..ee9732555f 100644
--- a/deps/npm/html/doc/index.html
+++ b/deps/npm/html/doc/index.html
@@ -372,7 +372,7 @@
<p> Display npm username</p>
</div>
-<p id="footer">index &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">index &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/init.html b/deps/npm/html/doc/init.html
index bb01cf1277..3cb27a77a9 100644
--- a/deps/npm/html/doc/init.html
+++ b/deps/npm/html/doc/init.html
@@ -29,7 +29,7 @@ without a really good reason to do so.</p>
<ul><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
</div>
-<p id="footer">init &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">init &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/install.html b/deps/npm/html/doc/install.html
index 714d9fe61a..1e936cb3f5 100644
--- a/deps/npm/html/doc/install.html
+++ b/deps/npm/html/doc/install.html
@@ -134,7 +134,7 @@ affects a real use-case, it will be investigated.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
-<p id="footer">install &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">install &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/json.html b/deps/npm/html/doc/json.html
index cb5b841f89..f8519af915 100644
--- a/deps/npm/html/doc/json.html
+++ b/deps/npm/html/doc/json.html
@@ -436,7 +436,7 @@ overridden.</p>
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
-<p id="footer">json &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">json &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/link.html b/deps/npm/html/doc/link.html
index 96dabc862a..863f44ec50 100644
--- a/deps/npm/html/doc/link.html
+++ b/deps/npm/html/doc/link.html
@@ -58,7 +58,7 @@ installation target into your project's <code>node_modules</code> folder.</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">link &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">link &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/list.html b/deps/npm/html/doc/list.html
index 18b6af8338..6cf4b8f6b0 100644
--- a/deps/npm/html/doc/list.html
+++ b/deps/npm/html/doc/list.html
@@ -52,7 +52,7 @@ project.</p>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
-<p id="footer">list &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">list &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/npm.html b/deps/npm/html/doc/npm.html
index 3b9cd6e4a1..9866c6fbfa 100644
--- a/deps/npm/html/doc/npm.html
+++ b/deps/npm/html/doc/npm.html
@@ -14,7 +14,7 @@
<h2 id="VERSION">VERSION</h2>
-<p>1.1.0-beta-4</p>
+<p>1.1.0-beta-7</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -135,7 +135,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">npm &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">npm &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/outdated.html b/deps/npm/html/doc/outdated.html
index 2d052bc1d1..8b965d00ab 100644
--- a/deps/npm/html/doc/outdated.html
+++ b/deps/npm/html/doc/outdated.html
@@ -21,7 +21,7 @@ packages are currently outdated.</p>
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">outdated &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">outdated &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/owner.html b/deps/npm/html/doc/owner.html
index d6b757e886..07e911832c 100644
--- a/deps/npm/html/doc/owner.html
+++ b/deps/npm/html/doc/owner.html
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">owner &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/pack.html b/deps/npm/html/doc/pack.html
index fbe39c6e07..5ec6ce426b 100644
--- a/deps/npm/html/doc/pack.html
+++ b/deps/npm/html/doc/pack.html
@@ -29,7 +29,7 @@ overwritten the second time.</p>
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">pack &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">pack &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/prefix.html b/deps/npm/html/doc/prefix.html
index d081d011a7..b377413f17 100644
--- a/deps/npm/html/doc/prefix.html
+++ b/deps/npm/html/doc/prefix.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">prefix &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">prefix &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/prune.html b/deps/npm/html/doc/prune.html
index ad7ccf8bb2..ad4c1ea89a 100644
--- a/deps/npm/html/doc/prune.html
+++ b/deps/npm/html/doc/prune.html
@@ -25,7 +25,7 @@ package's dependencies list.</p>
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">prune &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">prune &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/publish.html b/deps/npm/html/doc/publish.html
index dfa0cb6902..acc39a90b5 100644
--- a/deps/npm/html/doc/publish.html
+++ b/deps/npm/html/doc/publish.html
@@ -29,7 +29,7 @@ the registry. Overwrites when the "--force" flag is set.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">publish &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/rebuild.html b/deps/npm/html/doc/rebuild.html
index 4727860785..94153d0b39 100644
--- a/deps/npm/html/doc/rebuild.html
+++ b/deps/npm/html/doc/rebuild.html
@@ -25,7 +25,7 @@ the new binary.</p>
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">rebuild &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/registry.html b/deps/npm/html/doc/registry.html
index a4fd408af0..facc37c49c 100644
--- a/deps/npm/html/doc/registry.html
+++ b/deps/npm/html/doc/registry.html
@@ -97,7 +97,7 @@ ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li></ul>
</div>
-<p id="footer">registry &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">registry &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/removing-npm.html b/deps/npm/html/doc/removing-npm.html
index 7a084186f3..506100e489 100644
--- a/deps/npm/html/doc/removing-npm.html
+++ b/deps/npm/html/doc/removing-npm.html
@@ -58,7 +58,7 @@ modules. To track those down, you can do the following:</p>
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
-<p id="footer">removing-npm &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">removing-npm &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/restart.html b/deps/npm/html/doc/restart.html
index 3bbbedd6fd..601965172e 100644
--- a/deps/npm/html/doc/restart.html
+++ b/deps/npm/html/doc/restart.html
@@ -24,7 +24,7 @@ the "start" script.</p>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">restart &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/root.html b/deps/npm/html/doc/root.html
index 04e5e339ff..28337979de 100644
--- a/deps/npm/html/doc/root.html
+++ b/deps/npm/html/doc/root.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">root &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">root &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/run-script.html b/deps/npm/html/doc/run-script.html
index 811c6c5d66..1023b05ef7 100644
--- a/deps/npm/html/doc/run-script.html
+++ b/deps/npm/html/doc/run-script.html
@@ -23,7 +23,7 @@ called directly, as well.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">run-script &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/scripts.html b/deps/npm/html/doc/scripts.html
index 0230330689..66906fb1e5 100644
--- a/deps/npm/html/doc/scripts.html
+++ b/deps/npm/html/doc/scripts.html
@@ -164,7 +164,7 @@ will sudo the npm command in question.</li></ul>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">scripts &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">scripts &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/search.html b/deps/npm/html/doc/search.html
index 2ec8bfb9af..07fa267b7e 100644
--- a/deps/npm/html/doc/search.html
+++ b/deps/npm/html/doc/search.html
@@ -24,7 +24,7 @@ expression characters must be escaped or quoted in most shells.)</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
-<p id="footer">search &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">search &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/semver.html b/deps/npm/html/doc/semver.html
index 2d0a33aa11..863bcd18e2 100644
--- a/deps/npm/html/doc/semver.html
+++ b/deps/npm/html/doc/semver.html
@@ -104,7 +104,7 @@ that satisfies the range, or null if none of them do.</li></ul>
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">semver &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">semver &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/star.html b/deps/npm/html/doc/star.html
index fafcecfb02..87ee1e13cb 100644
--- a/deps/npm/html/doc/star.html
+++ b/deps/npm/html/doc/star.html
@@ -26,7 +26,7 @@ a vaguely positive way to show that you care.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">star &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">star &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/start.html b/deps/npm/html/doc/start.html
index 8bf98ef759..f92ac02d8e 100644
--- a/deps/npm/html/doc/start.html
+++ b/deps/npm/html/doc/start.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">start &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">start &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/stop.html b/deps/npm/html/doc/stop.html
index 4fae4454ca..24b372fc0e 100644
--- a/deps/npm/html/doc/stop.html
+++ b/deps/npm/html/doc/stop.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
</div>
-<p id="footer">stop &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">stop &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/submodule.html b/deps/npm/html/doc/submodule.html
index 2bc43a192c..055a67352b 100644
--- a/deps/npm/html/doc/submodule.html
+++ b/deps/npm/html/doc/submodule.html
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">submodule &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/tag.html b/deps/npm/html/doc/tag.html
index 700d7e6654..ec55c023ce 100644
--- a/deps/npm/html/doc/tag.html
+++ b/deps/npm/html/doc/tag.html
@@ -21,7 +21,7 @@
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">tag &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">tag &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/test.html b/deps/npm/html/doc/test.html
index cdc1c7f72b..e5191acc9e 100644
--- a/deps/npm/html/doc/test.html
+++ b/deps/npm/html/doc/test.html
@@ -23,7 +23,7 @@ true.</p>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">test &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">test &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/uninstall.html b/deps/npm/html/doc/uninstall.html
index 7f199cfecd..beb2203912 100644
--- a/deps/npm/html/doc/uninstall.html
+++ b/deps/npm/html/doc/uninstall.html
@@ -22,7 +22,7 @@ on its behalf.</p>
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">uninstall &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/unpublish.html b/deps/npm/html/doc/unpublish.html
index cf4dd4896e..ee92854d72 100644
--- a/deps/npm/html/doc/unpublish.html
+++ b/deps/npm/html/doc/unpublish.html
@@ -34,7 +34,7 @@ the root package entry is removed from the registry entirely.</p>
<ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">unpublish &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/update.html b/deps/npm/html/doc/update.html
index 7a55fcddf4..dd93338966 100644
--- a/deps/npm/html/doc/update.html
+++ b/deps/npm/html/doc/update.html
@@ -23,7 +23,7 @@
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">update &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">update &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/version.html b/deps/npm/html/doc/version.html
index 7208deb13e..f6703b9ca6 100644
--- a/deps/npm/html/doc/version.html
+++ b/deps/npm/html/doc/version.html
@@ -31,7 +31,7 @@ will use it as a commit message when creating a version commit.</p>
<ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
</div>
-<p id="footer">version &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">version &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/view.html b/deps/npm/html/doc/view.html
index 4441f9d87a..2987446565 100644
--- a/deps/npm/html/doc/view.html
+++ b/deps/npm/html/doc/view.html
@@ -88,7 +88,7 @@ the field name.</p>
<ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
</div>
-<p id="footer">view &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">view &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/whoami.html b/deps/npm/html/doc/whoami.html
index e3f4ce9d0e..47f6fede8b 100644
--- a/deps/npm/html/doc/whoami.html
+++ b/deps/npm/html/doc/whoami.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">whoami &mdash; npm@1.1.0-beta-4</p>
+<p id="footer">whoami &mdash; npm@1.1.0-beta-7</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/lib/utils/excludes.js b/deps/npm/lib/utils/excludes.js
index 9b407c9451..75fe41c057 100644
--- a/deps/npm/lib/utils/excludes.js
+++ b/deps/npm/lib/utils/excludes.js
@@ -137,7 +137,7 @@ function test (file, excludeList) {
&& rf.slice(-1) === "/"
&& excludes.indexOf(ex + "/**") === -1) {
// log.warn(ex + "/**", "adding dir-matching exclude pattern")
- excludes.push(ex + "/**")
+ excludes.splice(ii, 1, ex, ex + "/**")
ll ++
}
}
diff --git a/deps/npm/lib/utils/ini.js b/deps/npm/lib/utils/ini.js
index ac45c8bc5e..278a603466 100644
--- a/deps/npm/lib/utils/ini.js
+++ b/deps/npm/lib/utils/ini.js
@@ -205,7 +205,8 @@ function parseField (f, k, emptyIsFalse) {
f = envReplace(f)
if (isPath) {
- if (f.substr(0, 2) === "~/" && process.env.HOME) {
+ var homePattern = process.platform === "win32" ? /^~(\/|\\)/ : /^~\//
+ if (f.match(homePattern) && process.env.HOME) {
f = path.resolve(process.env.HOME, f.substr(2))
}
f = path.resolve(f)
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index 0a030a3cc5..f625b73de5 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -14,7 +14,7 @@ npm <command> [args]
.fi
.
.SH "VERSION"
-1.1.0-beta-4
+1.1.0-beta-7
.
.SH "DESCRIPTION"
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 3f2e6bebfb..5fd385c553 100644
--- a/deps/npm/man/man3/npm.3
+++ b/deps/npm/man/man3/npm.3
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
.fi
.
.SH "VERSION"
-1.1.0-beta-4
+1.1.0-beta-7
.
.SH "DESCRIPTION"
This is the API documentation for npm\.
diff --git a/deps/npm/node_modules/fstream/lib/link-writer.js b/deps/npm/node_modules/fstream/lib/link-writer.js
index 119f61bb65..c16750a64e 100644
--- a/deps/npm/node_modules/fstream/lib/link-writer.js
+++ b/deps/npm/node_modules/fstream/lib/link-writer.js
@@ -60,8 +60,14 @@ function create (me, lp, link) {
// directory, it's very possible that the thing we're linking to
// doesn't exist yet (especially if it was intended as a symlink),
// so swallow ENOENT errors here and just soldier in.
+ // Additionally, an EPERM or EACCES can happen on win32 if it's trying
+ // to make a link to a directory. Again, just skip it.
+ // A better solution would be to have fs.symlink be supported on
+ // windows in some nice fashion.
if (er) {
- if (er.code === "ENOENT" && process.platform === "win32") {
+ if ((er.code === "ENOENT" ||
+ er.code === "EACCES" ||
+ er.code === "EPERM" ) && process.platform === "win32") {
me.ready = true
me.emit("ready")
me.emit("end")
diff --git a/deps/npm/node_modules/fstream/package.json b/deps/npm/node_modules/fstream/package.json
index 2661624029..af58b94afb 100644
--- a/deps/npm/node_modules/fstream/package.json
+++ b/deps/npm/node_modules/fstream/package.json
@@ -2,7 +2,7 @@
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
"name": "fstream",
"description": "Advanced file system stream things",
- "version": "0.1.9",
+ "version": "0.1.10",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/fstream.git"
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 3d2f4bc603..0f76c0d9ef 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -2,7 +2,7 @@
, "publishConfig": { "tag": "alpha", "proprietary-attribs": false }
, "description": "A package manager for node"
, "keywords": [ "package manager", "modules", "install", "package.json" ]
-, "version": "1.1.0-beta-4"
+, "version": "1.1.0-beta-7"
, "preferGlobal": true
, "config": { "publishtest": false }
, "homepage": "http://npmjs.org/"
@@ -75,7 +75,7 @@
{ "ronn": "https://github.com/isaacs/ronnjs/tarball/master" }
, "engines": { "node": "0.6 || 0.7 || 0.8", "npm": "1" }
-, "scripts": { "test": "./test/run"
+, "scripts": { "test": "node ./test/run.js"
, "prepublish": "make -j4 doc"
, "dumpconf": "env | grep npm | sort | uniq"
}
diff --git a/deps/npm/test/packages/npm-test-files/.npmignore b/deps/npm/test/packages/npm-test-files/.npmignore
new file mode 100644
index 0000000000..c7d927d0a2
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/.npmignore
@@ -0,0 +1,7 @@
+/sub/ignore1
+./sub/include2
+ignore3
+./include4
+ignoredir1
+ignoredir2/
+*.tgz
diff --git a/deps/npm/test/packages/npm-test-files/include4 b/deps/npm/test/packages/npm-test-files/include4
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/include4
diff --git a/deps/npm/test/packages/npm-test-files/package.json b/deps/npm/test/packages/npm-test-files/package.json
new file mode 100644
index 0000000000..7c067828e2
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/package.json
@@ -0,0 +1,9 @@
+{ "name":"npm-test-files"
+, "version":"1.2.5"
+, "files":
+ [ "include4"
+ , "sub/include"
+ , "sub/include2"
+ , "sub/include4"
+ , "test.sh" ]
+, "scripts":{"test":"bash test.sh"}}
diff --git a/deps/npm/test/packages/npm-test-files/sub/include b/deps/npm/test/packages/npm-test-files/sub/include
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/sub/include
diff --git a/deps/npm/test/packages/npm-test-files/sub/include2 b/deps/npm/test/packages/npm-test-files/sub/include2
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/sub/include2
diff --git a/deps/npm/test/packages/npm-test-files/sub/include4 b/deps/npm/test/packages/npm-test-files/sub/include4
new file mode 100644
index 0000000000..d16969cd18
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/sub/include4
@@ -0,0 +1 @@
+This file should be in the package.
diff --git a/deps/npm/test/packages/npm-test-files/test.sh b/deps/npm/test/packages/npm-test-files/test.sh
new file mode 100644
index 0000000000..cdf47f211a
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-files/test.sh
@@ -0,0 +1,27 @@
+x=`find . | grep ignore | grep -v npmignore`
+if [ "$x" != "" ]; then
+ echo "ignored files included: $x"
+ exit 1
+fi
+
+x=`find . | grep -v ignore | sort`
+y=".
+./include4
+./package.json
+./sub
+./sub/include
+./sub/include2
+./sub/include4
+./test.sh"
+if [ "$x" != "$y" ]; then
+ echo "missing included files"
+ echo "got:"
+ echo "==="
+ echo "$x"
+ echo "==="
+ echo "wanted:"
+ echo "==="
+ echo "$y"
+ echo "==="
+ exit 1
+fi
diff --git a/deps/npm/test/run b/deps/npm/test/run
deleted file mode 100755
index 09e6e4aee7..0000000000
--- a/deps/npm/test/run
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/bash
-
-if [ "$DEBUG" != "" ]; then
- set -x
-fi
-
-
-# the "npm" command is set to a custom function here so that we can
-# test the code in this repo, rather than whichever version of npm
-# happens to be installed.
-
-main () {
- # setup
- FAILURES=0
-
- cd "$TESTDIR"
-
- npm config ls
-
- # install
- npm install "$NPMPKG" || exit 1
-
- # used in test later
- npm config set package-config:foo boo || exit 1
-
- npm install $( ls packages | awk '{print "packages/" $1 }' ) || exit 1
- (ls packages | while read pkg; do
- npm test "$pkg"
- done) || exit 1
- if [ "$FAILURES" == "0" ]; then
- npm rm $(ls packages) npm || exit 1
- fi
- cleanup
-
- if ! [ "$npm_package_config_publishtest" == "true" ]; then
- echo_err "To test publishing: npm config set npm:publishtest true"
- else
- # attempt to publish and unpublish each of them.
- npm install "$NPMPKG" || exit 1
-
- (ls packages | grep -v 'npm-test-private' | while read pkg; do
- npm publish packages/$pkg || exit 1
- npm install $pkg || exit 1
- npm unpublish $pkg --force || exit 1
- done) || exit 1
-
- # verify that the private package can't be published
- # bypass the test-harness npm function.
- "$NPMCLI" publish packages/npm-test-private && (
- npm unpublish npm-test-private --force
- exit 1000
- )
- if [ $? -eq 1000 ]; then
- fail "Private package shouldn't be publishable" >&2
- fi
-
- if [ "$FAILURES" == "0" ]; then
- npm rm $(ls packages) npm || exit 1
- fi
- cleanup
-
- fi
-
- if [ $FAILURES -eq 0 ]; then
- echo_err "ok"
- rm -rf $TMP
- else
- echo_err "FAILED: $FAILURES"
- fi
- exit $FAILURES
-}
-
-
-
-####################
-# Test Harness below
-
-# fake functions
-npm () {
- echo -e "npm $@"
- "$NPMCLI" "$@" \
- || fail npm "$@"
-}
-
-# get the absolute path of the executable
-SELF_PATH="$0"
-if [ "${SELF_PATH:0:1}" != "." ] && [ "${SELF_PATH:0:1}" != "/" ]; then
- SELF_PATH=./"$SELF_PATH"
-fi
-SELF_PATH=$( cd -P -- "$(dirname -- "$SELF_PATH")" \
- && pwd -P \
- ) && SELF_PATH=$SELF_PATH/$(basename -- "$0")
-# resolve symlinks
-while [ -h "$SELF_PATH" ]; do
- DIR=$(dirname -- "$SELF_PATH")
- SYM=$(readlink -- "$SELF_PATH")
- SELF_PATH=$( cd -- "$DIR" \
- && cd -- $(dirname -- "$SYM") \
- && pwd \
- )/$(basename -- "$SYM")
-done
-NPMPKG="$(dirname -- "$(dirname -- "$SELF_PATH")")"
-NPMCLI="$NPMPKG/cli.js"
-TESTDIR="$NPMPKG/test/"
-TMP=${TMPDIR:-/tmp}
-rm -rf $TMP/npm*
-TMP=$TMP/npm-test-$$
-echo "Testing in $TMP ..."
-ROOTDIR="$TMP/root"
-
-cleanup () {
- if [ "$FAILURES" != "0" ] && [ "$FAILURES" != "" ]; then
- return
- fi
- [ -d "$ROOTDIR" ] && rm -rf -- "$ROOTDIR"
- mkdir -p -- "$ROOTDIR"
-}
-
-export npm_config_prefix="$ROOTDIR"
-export npm_config_color="always"
-export npm_config_global=true
-# have to set this to false, or it'll try to test itself forever
-export npm_config_npat=false
-export PATH="$PATH":"$ROOTDIR/bin":"$ROOTDIR/node_modules/.bin"
-export NODE_PATH="$ROOTDIR/node_modules"
-
-echo_err () {
- echo "$@" >&2
-}
-fail () {
- let 'FAILURES += 1'
- echo_err ""
- echo_err -e "\033[33mFailure: $@\033[m"
- exit 1
-}
-
-cleanup
-main
diff --git a/deps/npm/test/run.js b/deps/npm/test/run.js
new file mode 100644
index 0000000000..08f8a347ba
--- /dev/null
+++ b/deps/npm/test/run.js
@@ -0,0 +1,209 @@
+// Everything in this file uses child processes, because we're
+// testing a command line utility.
+
+var chain = require("slide").chain
+var child_process = require("child_process")
+var path = require("path")
+ , testdir = __dirname
+ , fs = require("graceful-fs")
+ , npmpkg = path.dirname(testdir)
+ , npmcli = path.join(__dirname, "bin", "npm-cli.js")
+
+var temp = process.env.TMPDIR
+ || process.env.TMP
+ || process.env.TEMP
+ || ( process.platform === "win32"
+ ? "c:\\windows\\temp"
+ : "/tmp" )
+
+temp = path.resolve(temp, "npm-test-" + process.pid)
+
+var root = path.resolve(temp, "root")
+
+var failures = 0
+ , mkdir = require("mkdirp")
+ , rimraf = require("rimraf")
+
+var pathEnvSplit = process.platform === "win32" ? ";" : ":"
+ , pathEnv = process.env.PATH.split(pathEnvSplit)
+ , npmPath = process.platform === "win32" ? root : path.join(root, "bin")
+
+pathEnv.unshift(npmPath, path.join(root, "node_modules", ".bin"))
+
+// lastly, make sure that we get the same node that is being used to do
+// run this script. That's very important, especially when running this
+// test file from in the node source folder.
+pathEnv.unshift(path.dirname(process.execPath))
+
+// the env for all the test installs etc.
+var env = {}
+Object.keys(process.env).forEach(function (i) {
+ env[i] = process.env[i]
+})
+env.npm_config_prefix = root
+env.npm_config_color = "always"
+env.npm_config_global = "true"
+// have to set this to false, or it'll try to test itself forever
+env.npm_config_npat = "false"
+env.PATH = pathEnv.join(pathEnvSplit)
+env.NODE_PATH = path.join(root, "node_modules")
+
+
+
+function cleanup (cb) {
+ if (failures !== 0) return
+ rimraf(root, function (er) {
+ if (er) cb(er)
+ mkdir(root, 0755, cb)
+ })
+}
+
+function prefix (content, pref) {
+ return pref + (content.trim().split(/\r?\n/).join("\n" + pref))
+}
+
+var execCount = 0
+function exec (cmd, shouldFail, cb) {
+ if (typeof shouldFail === "function") {
+ cb = shouldFail, shouldFail = false
+ }
+ console.error("\n+"+cmd + (shouldFail ? " (expect failure)" : ""))
+
+ // special: replace 'node' with the current execPath,
+ // and 'npm' with the thing we installed.
+ cmd = cmd.replace(/^npm /, path.resolve(npmPath, "npm") + " ")
+ cmd = cmd.replace(/^node /, process.execPath + " ")
+
+ child_process.exec(cmd, {env: env}, function (er, stdout, stderr) {
+ if (stdout) {
+ console.error(prefix(stdout, " 1> "))
+ }
+ if (stderr) {
+ console.error(prefix(stderr, " 2> "))
+ }
+
+ execCount ++
+ if (!shouldFail && !er || shouldFail && er) {
+ // stdout = (""+stdout).trim()
+ console.log("ok " + execCount + " " + cmd)
+ return cb()
+ } else {
+ console.log("not ok " + execCount + " " + cmd)
+ cb(new Error("failed "+cmd))
+ }
+ })
+}
+
+function execChain (cmds, cb) {
+ chain(cmds.reduce(function (l, r) {
+ return l.concat(r)
+ }, []).map(function (cmd) {
+ return [exec, cmd]
+ }), cb)
+}
+
+function flatten (arr) {
+ return arr.reduce(function (l, r) {
+ return l.concat(r)
+ }, [])
+}
+
+function setup (cb) {
+ cleanup(function (er) {
+ if (er) return cb(er)
+ execChain([ "node \""+path.resolve(npmpkg, "bin", "npm-cli.js")
+ + "\" install \""+npmpkg+"\""
+ , "npm config set package-config:foo boo"
+ ], cb)
+ })
+}
+
+function main (cb) {
+ console.log("# testing in %s", temp)
+ console.log("# global prefix = %s", root)
+
+
+
+ failures = 0
+
+ process.chdir(testdir)
+
+ // get the list of packages
+ var packages = fs.readdirSync(path.resolve(testdir, "packages"))
+ packages = packages.filter(function (p) {
+ return p && !p.match(/^\./)
+ })
+
+ installAllThenTestAll()
+
+ function installAllThenTestAll () {
+ chain
+ ( [ setup
+ , [ exec, "npm install "+npmpkg ]
+ , [ execChain, packages.map(function (p) {
+ return "npm install packages/"+p
+ }) ]
+ , [ execChain, packages.map(function (p) {
+ return "npm test "+p
+ }) ]
+ , [ execChain, packages.concat("npm").map(function (p) {
+ return "npm rm " + p
+ }) ]
+ , installAndTestEach
+ ]
+ , cb
+ )
+ }
+
+ function installAndTestEach (cb) {
+ chain
+ ( [ setup
+ , [ execChain, packages.map(function (p) {
+ return [ "npm install packages/"+p
+ , "npm test "+p
+ , "npm rm "+p ]
+ }) ]
+ , [exec, "npm rm npm"]
+ , publishTest
+ ], cb )
+ }
+
+ function publishTest (cb) {
+ if (process.env.npm_package_config_publishtest !== "true") {
+ console.error("To test publishing: "+
+ "npm config set npm:publishtest true")
+ return cb()
+ }
+
+ chain
+ ( [ setup
+ , [ execChain, packages.filter(function (p) {
+ return !p.match(/private/)
+ }).map(function (p) {
+ return [ "npm publish packages/"+p
+ , "npm install "+p
+ , "npm unpublish "+p+" --force"
+ ]
+ }) ]
+ , publishPrivateTest
+ ], cb )
+
+ }
+
+ function publishPrivateTest (cb) {
+ exec("npm publish packages/npm-test-private -s", true, function (er) {
+ if (er) {
+ exec( "npm unpublish npm-test-private --force"
+ , function (e2) {
+ cb(er || e2)
+ })
+ }
+ cleanup(cb)
+ })
+ }
+}
+
+main(function (er) {
+ console.log("1.." + execCount)
+ if (er) throw er
+})
diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h
index 7e089ef724..3f6df25687 100644
--- a/deps/uv/include/uv.h
+++ b/deps/uv/include/uv.h
@@ -1313,7 +1313,8 @@ UV_EXTERN uv_err_t uv_dlopen(const char* filename, uv_lib_t* library);
UV_EXTERN uv_err_t uv_dlclose(uv_lib_t library);
/*
- * Retrieves a data pointer from a dynamic library.
+ * Retrieves a data pointer from a dynamic library. It is legal for a symbol to
+ * map to NULL.
*/
UV_EXTERN uv_err_t uv_dlsym(uv_lib_t library, const char* name, void** ptr);
diff --git a/deps/uv/src/unix/dl.c b/deps/uv/src/unix/dl.c
index 6c4ddff89e..41c244d79e 100644
--- a/deps/uv/src/unix/dl.c
+++ b/deps/uv/src/unix/dl.c
@@ -25,11 +25,17 @@
#include <dlfcn.h>
#include <errno.h>
+/* The dl family of functions don't set errno. We need a good way to communicate
+ * errors to the caller but there is only dlerror() and that returns a string -
+ * a string that may or may not be safe to keep a reference to...
+ */
+static const uv_err_t uv_inval_ = { UV_EINVAL, EINVAL };
+
uv_err_t uv_dlopen(const char* filename, uv_lib_t* library) {
void* handle = dlopen(filename, RTLD_LAZY);
if (handle == NULL) {
- return uv__new_sys_error(errno);
+ return uv_inval_;
}
*library = handle;
@@ -39,7 +45,7 @@ uv_err_t uv_dlopen(const char* filename, uv_lib_t* library) {
uv_err_t uv_dlclose(uv_lib_t library) {
if (dlclose(library) != 0) {
- return uv__new_sys_error(errno);
+ return uv_inval_;
}
return uv_ok_;
@@ -47,9 +53,15 @@ uv_err_t uv_dlclose(uv_lib_t library) {
uv_err_t uv_dlsym(uv_lib_t library, const char* name, void** ptr) {
- void* address = dlsym(library, name);
- if (address == NULL) {
- return uv__new_sys_error(errno);
+ void* address;
+
+ /* Reset error status. */
+ dlerror();
+
+ address = dlsym(library, name);
+
+ if (dlerror()) {
+ return uv_inval_;
}
*ptr = (void*) address;
diff --git a/doc/about/index.html b/doc/about/index.html
index 68759de08c..4e67c9e336 100644
--- a/doc/about/index.html
+++ b/doc/about/index.html
@@ -20,7 +20,9 @@
</head>
<body>
<div id="intro">
- <img id="logo" src="../logo.png" alt="node.js">
+ <a href="/" title="Go back to the home page">
+ <img id="logo" src="../logo.png" alt="node.js">
+ </a>
</div>
<div id="content" class="clearfix">
<div id="column1" class="interior">
diff --git a/doc/api/tls.markdown b/doc/api/tls.markdown
index d7307d4eee..3507478680 100644
--- a/doc/api/tls.markdown
+++ b/doc/api/tls.markdown
@@ -241,6 +241,14 @@ server, you unauthorized connections may be accepted.
SNI.
+### Event: 'clientError'
+
+`function (exception) { }`
+
+When a client connection emits an 'error' event before secure connection is
+established - it will be forwarded here.
+
+
#### server.listen(port, [host], [callback])
Begin accepting connections on the specified `port` and `host`. If the
diff --git a/doc/community/index.html b/doc/community/index.html
index 5348c875d9..3dd7cd7e3e 100644
--- a/doc/community/index.html
+++ b/doc/community/index.html
@@ -23,7 +23,9 @@
</head>
<body>
<div id="intro">
- <img id="logo" src="../logo.png" alt="node.js">
+ <a href="/" title="Go back to the home page">
+ <img id="logo" src="../logo.png" alt="node.js">
+ </a>
</div>
<div id="content" class="clearfix">
<div id="column1" class="interior">
diff --git a/doc/index.html b/doc/index.html
index 95c3aeeb77..f687c1495c 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -86,6 +86,8 @@
<li><a href="http://nodejs.org/dist/v0.6.6">Other release files</a></li>
<li><a href="https://raw.github.com/joyent/node/v0.6.6/LICENSE">License</a></li>
<li><a href="https://github.com/joyent/node">Git Repository</a></li>
+ <li><a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">Installing
+ with a Package Manager</a>
</ul>
</div>
diff --git a/doc/logos/index.html b/doc/logos/index.html
index 250cd72750..a2a2320f5d 100644
--- a/doc/logos/index.html
+++ b/doc/logos/index.html
@@ -23,7 +23,9 @@
</head>
<body>
<div id="intro">
- <img id="logo" src="../logo.png" alt="node.js">
+ <a href="/" title="Go back to the home page">
+ <img id="logo" src="../logo.png" alt="node.js">
+ </a>
</div>
<div id="content" class="clearfix">
<div id="column1" class="interior">
diff --git a/lib/child_process.js b/lib/child_process.js
index 8bcfdf74a0..cef093a0b7 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -111,7 +111,11 @@ function setupChannel(target, channel) {
};
target.send = function(message, sendHandle) {
- if (!target._channel) throw new Error('channel closed');
+ if (typeof message === 'undefined') {
+ throw new TypeError('message cannot be undefined');
+ }
+
+ if (!target._channel) throw new Error("channel closed");
// For overflow protection don't write if channel queue is too deep.
if (channel.writeQueueSize > 1024 * 1024) {
diff --git a/lib/net.js b/lib/net.js
index e182173953..d57d4c43e9 100644
--- a/lib/net.js
+++ b/lib/net.js
@@ -148,6 +148,7 @@ Socket.prototype.setTimeout = function(msecs, callback) {
Socket.prototype._onTimeout = function() {
+ debug("_onTimeout");
this.emit('timeout');
};
diff --git a/lib/path.js b/lib/path.js
index 03d0807f75..b70225b1d6 100644
--- a/lib/path.js
+++ b/lib/path.js
@@ -222,7 +222,6 @@ if (isWindows) {
return arr.slice(start, end - start + 1);
}
- var fromParts = trim(from.split('\\'));
var toParts = trim(to.split('\\'));
var lowerFromParts = trim(lowerFrom.split('\\'));
diff --git a/lib/timers.js b/lib/timers.js
index 39eb4d9161..35085e0c15 100644
--- a/lib/timers.js
+++ b/lib/timers.js
@@ -108,6 +108,8 @@ var unenroll = exports.unenroll = function(item) {
list.close();
delete lists[item._idleTimeout];
}
+ //if active is called later, then we want to make sure not to insert again
+ delete item._idleTimeout;
};
@@ -151,7 +153,10 @@ exports.setTimeout = function(callback, after) {
timer = new Timer();
if (arguments.length <= 2) {
- timer._onTimeout = callback;
+ timer._onTimeout = function() {
+ callback();
+ timer.close();
+ }
} else {
var args = Array.prototype.slice.call(arguments, 2);
timer._onTimeout = function() {
diff --git a/lib/tls.js b/lib/tls.js
index e4f332d415..47f2e0c54b 100644
--- a/lib/tls.js
+++ b/lib/tls.js
@@ -576,7 +576,6 @@ function SecurePair(credentials, isServer, requestCert, rejectUnauthorized,
requestCert = true;
}
- this._secureEstablished = false;
this._rejectUnauthorized = rejectUnauthorized ? true : false;
this._requestCert = requestCert ? true : false;
@@ -721,6 +720,7 @@ SecurePair.prototype.maybeInitFinished = function() {
SecurePair.prototype.destroy = function() {
var self = this;
+ var error = this.ssl.error;
if (!this._doneFlag) {
this._doneFlag = true;
@@ -736,6 +736,14 @@ SecurePair.prototype.destroy = function() {
self.encrypted.emit('close');
self.cleartext.emit('close');
});
+
+ if (!this._secureEstablished) {
+ if (!error) {
+ error = new Error('socket hang up');
+ error.code = 'ECONNRESET';
+ }
+ this.emit('error', error);
+ }
}
};
@@ -905,6 +913,9 @@ function Server(/* [options], listener */) {
}
}
});
+ pair.on('error', function(err) {
+ self.emit('clientError', err);
+ });
});
if (listener) {
@@ -1061,6 +1072,9 @@ exports.connect = function(port /* host, options, cb */) {
cleartext.emit('secureConnect');
}
});
+ pair.on('error', function(err) {
+ cleartext.emit('error', err);
+ });
cleartext._controlReleased = true;
return cleartext;
diff --git a/src/node.cc b/src/node.cc
index 2a7e5d3c8a..f18f754cd3 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -1687,7 +1687,7 @@ Handle<Value> DLOpen(const v8::Arguments& args) {
if (err.code == UV_ENOENT)
message = "Module entry point not found.";
else
- message = "Out of memory.";
+ message = uv_strerror(err);
return ThrowException(Exception::Error(String::New(message)));
}
diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc
index 4cbde2253c..c4e37bfbf8 100644
--- a/src/node_http_parser.cc
+++ b/src/node_http_parser.cc
@@ -115,15 +115,17 @@ using namespace v8;
#define HTTP_CB(name) \
- static int name(http_parser* p_) { \
- Parser* self = container_of(p_, Parser, parser_); \
- return self->name##_(); \
- } \
- int always_inline name##_()
+ static int name(http_parser* p_) { \
+ HandleScope scope; \
+ Parser* self = container_of(p_, Parser, parser_); \
+ return self->name##_(); \
+ } \
+ int always_inline name##_()
#define HTTP_DATA_CB(name) \
static int name(http_parser* p_, const char* at, size_t length) { \
+ HandleScope scope; \
Parser* self = container_of(p_, Parser, parser_); \
return self->name##_(at, length); \
} \
@@ -208,10 +210,12 @@ struct StringPtr {
Handle<String> ToString() const {
- if (str_)
- return String::New(str_, size_);
- else
- return String::Empty();
+ HandleScope scope;
+ if (str_) {
+ return scope.Close(String::New(str_, size_));
+ } else {
+ return scope.Close(String::Empty());
+ }
}
@@ -509,6 +513,8 @@ public:
private:
Local<Array> CreateHeaders() {
+ HandleScope scope;
+
// num_values_ is either -1 or the entry # of the last header
// so num_values_ == 0 means there's a single header
Local<Array> headers = Array::New(2 * (num_values_ + 1));
@@ -518,7 +524,7 @@ private:
headers->Set(2 * i + 1, values_[i].ToString());
}
- return headers;
+ return scope.Close(headers);
}
diff --git a/test/simple/test-child-process-fork.js b/test/simple/test-child-process-fork.js
index 4860732b71..41cc28c72e 100644
--- a/test/simple/test-child-process-fork.js
+++ b/test/simple/test-child-process-fork.js
@@ -35,6 +35,11 @@ n.on('message', function(m) {
messageCount++;
});
+// https://github.com/joyent/node/issues/2355 - JSON.stringify(undefined)
+// returns "undefined" but JSON.parse() cannot parse that...
+assert.throws(function() { n.send(undefined); }, TypeError);
+assert.throws(function() { n.send(); }, TypeError);
+
n.send({ hello: 'world' });
var childExitCode = -1;
diff --git a/test/simple/test-https-invalid-key.js b/test/simple/test-https-invalid-key.js
new file mode 100644
index 0000000000..82e05a2af9
--- /dev/null
+++ b/test/simple/test-https-invalid-key.js
@@ -0,0 +1,62 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
+
+if (!process.versions.openssl) {
+ console.error('Skipping because node compiled without OpenSSL.');
+ process.exit(0);
+}
+
+var common = require('../common');
+var assert = require('assert');
+var https = require('https');
+var fs = require('fs');
+var path = require('path');
+
+var options = {
+ key: fs.readFileSync(path.join(common.fixturesDir, 'keys/agent1-key.pem')),
+ cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'))
+};
+var serverErrorHappened = false;
+var clientErrorHappened = false;
+
+var server = https.Server(options, function(req, res) {
+ assert(false);
+});
+server.on('clientError', function(err) {
+ serverErrorHappened = true;
+ common.debug('Server: ' + err);
+ server.close();
+});
+
+server.listen(common.PORT, function() {
+ var req = https.get({port: common.PORT}, function(res) {
+ assert(false);
+ });
+ req.on('error', function(err) {
+ clientErrorHappened = true;
+ common.debug('Client: ' + err);
+ });
+});
+
+process.on('exit', function() {
+ assert(serverErrorHappened);
+ assert(clientErrorHappened);
+});
diff --git a/test/simple/test-net-server-listen-remove-callback.js b/test/simple/test-net-server-listen-remove-callback.js
index 2efcbd5a6f..a92a41859b 100644
--- a/test/simple/test-net-server-listen-remove-callback.js
+++ b/test/simple/test-net-server-listen-remove-callback.js
@@ -32,9 +32,9 @@ server.on('close', function() {
assert.equal(0, listeners.length);
});
-server.listen(3000, function() {
+server.listen(common.PORT, function() {
server.close();
- server.listen(3001, function() {
+ server.listen(common.PORT + 1, function() {
server.close();
});
});
diff --git a/test/simple/test-net-settimeout.js b/test/simple/test-net-settimeout.js
new file mode 100644
index 0000000000..63d456bc06
--- /dev/null
+++ b/test/simple/test-net-settimeout.js
@@ -0,0 +1,50 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
+
+// This example sets a timeout then immediately attempts to disable the timeout
+// https://github.com/joyent/node/pull/2245
+
+var common = require('../common');
+var net = require('net');
+var assert = require('assert');
+
+var T = 100;
+
+var server = net.createServer(function(c) {
+ c.write('hello');
+});
+server.listen(common.PORT);
+
+var socket = net.createConnection(common.PORT, 'localhost');
+
+socket.setTimeout(T, function() {
+ socket.destroy();
+ server.close();
+ assert.ok(false);
+});
+
+socket.setTimeout(0);
+
+setTimeout(function() {
+ socket.destroy();
+ server.close();
+ assert.ok(true);
+}, T*2);
diff --git a/test/simple/test-timers-zero-timeout.js b/test/simple/test-timers-zero-timeout.js
index 79ecd9d267..d5e6df0786 100644
--- a/test/simple/test-timers-zero-timeout.js
+++ b/test/simple/test-timers-zero-timeout.js
@@ -27,6 +27,7 @@ var assert = require('assert');
var ncalled = 0;
setTimeout(f, 0, 'foo', 'bar', 'baz');
+ var timer = setTimeout(function(){}, 0);
function f(a, b, c) {
assert.equal(a, 'foo');
@@ -37,6 +38,8 @@ var assert = require('assert');
process.on('exit', function() {
assert.equal(ncalled, 1);
+ // timer should be already closed
+ assert.equal(timer.close(), -1);
});
})();
diff --git a/test/simple/test-tls-invalid-key.js b/test/simple/test-tls-invalid-key.js
new file mode 100644
index 0000000000..b4d842f2ef
--- /dev/null
+++ b/test/simple/test-tls-invalid-key.js
@@ -0,0 +1,62 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
+
+if (!process.versions.openssl) {
+ console.error('Skipping because node compiled without OpenSSL.');
+ process.exit(0);
+}
+
+var common = require('../common');
+var assert = require('assert');
+var tls = require('tls');
+var fs = require('fs');
+var path = require('path');
+
+var options = {
+ key: fs.readFileSync(path.join(common.fixturesDir, 'keys/agent1-key.pem')),
+ cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'))
+};
+var serverErrorHappened = false;
+var clientErrorHappened = false;
+
+var server = tls.Server(options, function(socket) {
+ assert(false);
+});
+server.on('clientError', function(err) {
+ serverErrorHappened = true;
+ common.debug('Server: ' + err);
+ server.close();
+});
+
+server.listen(common.PORT, function() {
+ var client = tls.connect(common.PORT, function() {
+ assert(false);
+ });
+ client.on('error', function(err) {
+ clientErrorHappened = true;
+ common.debug('Client: ' + err);
+ });
+});
+
+process.on('exit', function() {
+ assert(serverErrorHappened);
+ assert(clientErrorHappened);
+});