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

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS3
-rw-r--r--ChangeLog25
-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/shrinkwrap.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/dedupe.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/disputes.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/global.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/ls.html4
-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/rm.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/shrinkwrap.html2
-rw-r--r--deps/npm/html/doc/star.html2
-rw-r--r--deps/npm/html/doc/stars.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/build.js2
-rw-r--r--deps/npm/man/man1/README.12
-rw-r--r--deps/npm/man/man1/adduser.12
-rw-r--r--deps/npm/man/man1/bin.12
-rw-r--r--deps/npm/man/man1/bugs.12
-rw-r--r--deps/npm/man/man1/build.12
-rw-r--r--deps/npm/man/man1/bundle.12
-rw-r--r--deps/npm/man/man1/cache.12
-rw-r--r--deps/npm/man/man1/changelog.12
-rw-r--r--deps/npm/man/man1/coding-style.12
-rw-r--r--deps/npm/man/man1/completion.12
-rw-r--r--deps/npm/man/man1/config.12
-rw-r--r--deps/npm/man/man1/dedupe.12
-rw-r--r--deps/npm/man/man1/deprecate.12
-rw-r--r--deps/npm/man/man1/developers.12
-rw-r--r--deps/npm/man/man1/disputes.12
-rw-r--r--deps/npm/man/man1/docs.12
-rw-r--r--deps/npm/man/man1/edit.12
-rw-r--r--deps/npm/man/man1/explore.12
-rw-r--r--deps/npm/man/man1/faq.12
-rw-r--r--deps/npm/man/man1/folders.12
-rw-r--r--deps/npm/man/man1/global.12
-rw-r--r--deps/npm/man/man1/help-search.12
-rw-r--r--deps/npm/man/man1/help.12
-rw-r--r--deps/npm/man/man1/index.12
-rw-r--r--deps/npm/man/man1/init.12
-rw-r--r--deps/npm/man/man1/install.12
-rw-r--r--deps/npm/man/man1/json.12
-rw-r--r--deps/npm/man/man1/link.12
-rw-r--r--deps/npm/man/man1/ls.14
-rw-r--r--deps/npm/man/man1/npm.14
-rw-r--r--deps/npm/man/man1/outdated.12
-rw-r--r--deps/npm/man/man1/owner.12
-rw-r--r--deps/npm/man/man1/pack.12
-rw-r--r--deps/npm/man/man1/prefix.12
-rw-r--r--deps/npm/man/man1/prune.12
-rw-r--r--deps/npm/man/man1/publish.12
-rw-r--r--deps/npm/man/man1/rebuild.12
-rw-r--r--deps/npm/man/man1/registry.12
-rw-r--r--deps/npm/man/man1/removing-npm.12
-rw-r--r--deps/npm/man/man1/restart.12
-rw-r--r--deps/npm/man/man1/rm.12
-rw-r--r--deps/npm/man/man1/root.12
-rw-r--r--deps/npm/man/man1/run-script.12
-rw-r--r--deps/npm/man/man1/scripts.12
-rw-r--r--deps/npm/man/man1/search.12
-rw-r--r--deps/npm/man/man1/semver.12
-rw-r--r--deps/npm/man/man1/shrinkwrap.12
-rw-r--r--deps/npm/man/man1/star.12
-rw-r--r--deps/npm/man/man1/stars.12
-rw-r--r--deps/npm/man/man1/start.12
-rw-r--r--deps/npm/man/man1/stop.12
-rw-r--r--deps/npm/man/man1/submodule.12
-rw-r--r--deps/npm/man/man1/tag.12
-rw-r--r--deps/npm/man/man1/test.12
-rw-r--r--deps/npm/man/man1/uninstall.12
-rw-r--r--deps/npm/man/man1/unpublish.12
-rw-r--r--deps/npm/man/man1/update.12
-rw-r--r--deps/npm/man/man1/version.12
-rw-r--r--deps/npm/man/man1/view.12
-rw-r--r--deps/npm/man/man1/whoami.12
-rw-r--r--deps/npm/man/man3/bin.32
-rw-r--r--deps/npm/man/man3/bugs.32
-rw-r--r--deps/npm/man/man3/commands.32
-rw-r--r--deps/npm/man/man3/config.32
-rw-r--r--deps/npm/man/man3/deprecate.32
-rw-r--r--deps/npm/man/man3/docs.32
-rw-r--r--deps/npm/man/man3/edit.32
-rw-r--r--deps/npm/man/man3/explore.32
-rw-r--r--deps/npm/man/man3/help-search.32
-rw-r--r--deps/npm/man/man3/init.32
-rw-r--r--deps/npm/man/man3/install.32
-rw-r--r--deps/npm/man/man3/link.32
-rw-r--r--deps/npm/man/man3/load.32
-rw-r--r--deps/npm/man/man3/ls.32
-rw-r--r--deps/npm/man/man3/npm.34
-rw-r--r--deps/npm/man/man3/outdated.32
-rw-r--r--deps/npm/man/man3/owner.32
-rw-r--r--deps/npm/man/man3/pack.32
-rw-r--r--deps/npm/man/man3/prefix.32
-rw-r--r--deps/npm/man/man3/prune.32
-rw-r--r--deps/npm/man/man3/publish.32
-rw-r--r--deps/npm/man/man3/rebuild.32
-rw-r--r--deps/npm/man/man3/restart.32
-rw-r--r--deps/npm/man/man3/root.32
-rw-r--r--deps/npm/man/man3/run-script.32
-rw-r--r--deps/npm/man/man3/search.32
-rw-r--r--deps/npm/man/man3/shrinkwrap.32
-rw-r--r--deps/npm/man/man3/start.32
-rw-r--r--deps/npm/man/man3/stop.32
-rw-r--r--deps/npm/man/man3/submodule.32
-rw-r--r--deps/npm/man/man3/tag.32
-rw-r--r--deps/npm/man/man3/test.32
-rw-r--r--deps/npm/man/man3/uninstall.32
-rw-r--r--deps/npm/man/man3/unpublish.32
-rw-r--r--deps/npm/man/man3/update.32
-rw-r--r--deps/npm/man/man3/version.32
-rw-r--r--deps/npm/man/man3/view.32
-rw-r--r--deps/npm/man/man3/whoami.32
-rw-r--r--deps/npm/node_modules/cmd-shim/.npmignore16
-rw-r--r--deps/npm/node_modules/cmd-shim/.travis.yml4
-rw-r--r--deps/npm/node_modules/cmd-shim/LICENSE27
-rw-r--r--deps/npm/node_modules/cmd-shim/README.md42
-rw-r--r--deps/npm/node_modules/cmd-shim/index.js180
-rw-r--r--deps/npm/node_modules/cmd-shim/package.json28
-rw-r--r--deps/npm/node_modules/cmd-shim/test/00-setup.js34
-rw-r--r--deps/npm/node_modules/cmd-shim/test/basic.js167
-rw-r--r--deps/npm/node_modules/cmd-shim/test/zz-cleanup.js13
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py2
-rw-r--r--deps/npm/node_modules/node-gyp/package.json10
-rw-r--r--deps/npm/package.json8
-rw-r--r--doc/api/domain.markdown8
-rw-r--r--doc/blog/release/v0.10.2.md4
-rw-r--r--doc/blog/release/v0.10.3.md77
-rw-r--r--doc/blog/release/v0.11.0.md86
-rw-r--r--lib/assert.js24
-rw-r--r--lib/child_process.js29
-rw-r--r--lib/crypto.js18
-rw-r--r--lib/http.js28
-rw-r--r--lib/querystring.js1
-rw-r--r--lib/repl.js4
-rw-r--r--lib/tls.js6
-rw-r--r--node.gyp3
-rw-r--r--src/node.cc6
-rw-r--r--src/node_crypto.cc9
-rw-r--r--src/node_crypto_bio.cc312
-rw-r--r--src/node_crypto_bio.h93
-rw-r--r--test/simple/test-child-process-fork-getconnections.js36
-rw-r--r--test/simple/test-http-end-throw-socket-handling.js67
-rw-r--r--test/simple/test-http-many-ended-pipelines.js54
-rw-r--r--test/simple/test-repl.js15
-rw-r--r--test/simple/test-stream-readable-event.js34
233 files changed, 1591 insertions, 290 deletions
diff --git a/AUTHORS b/AUTHORS
index 77722d770fb..182705c28c9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -434,3 +434,6 @@ Benjamin Ruston <benjy.ruston@gmail.com>
Manav Rathi <manav.r@directi.com>
Marcin Kostrzewa <marcinkostrzewa@yahoo.com>
Suwon Chae <doortts@gmail.com>
+Mitar Milutinovic <mitar.git@tnode.com>
+Michael Hart <michael.hart.au@gmail.com>
+Andrew Hart <hartandrewr@gmail.com>
diff --git a/ChangeLog b/ChangeLog
index d55cf779bf4..206cb2769f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -33,6 +33,31 @@
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
+2013.04.03, Version 0.10.3 (Stable), d4982f6f5e4a9a703127489a553b8d782997ea43
+
+* npm: Upgrade to 1.2.17
+
+* child_process: acknowledge sent handles (Fedor Indutny)
+
+* etw: update prototypes to match dtrace provider (Timothy J Fontaine)
+
+* dtrace: pass more arguments to probes (Dave Pacheco)
+
+* build: allow building with dtrace on osx (Dave Pacheco)
+
+* http: Remove legacy ECONNRESET workaround code (isaacs)
+
+* http: Ensure socket cleanup on client response end (isaacs)
+
+* tls: Destroy socket when encrypted side closes (isaacs)
+
+* repl: isSyntaxError() catches "strict mode" errors (Nathan Rajlich)
+
+* crypto: Pass options to ctor calls (isaacs)
+
+* src: tie process.versions.uv to uv_version_string() (Ben Noordhuis)
+
+
2013.03.28, Version 0.10.2 (Stable), 1e0de9c426e07a260bbec2d2196c2d2db8eb8886
* npm: Upgrade to 1.2.15
diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html
index 7408820b374..8585991398e 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.2.15</p>
+<p id="footer">bin &mdash; npm@1.2.17</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 153d5d5f43c..41ec80cca61 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.2.15</p>
+<p id="footer">bugs &mdash; npm@1.2.17</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 816c5d9910d..8082da056cf 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.2.15</p>
+<p id="footer">commands &mdash; npm@1.2.17</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 59eee212d67..c3d8783a2b3 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.2.15</p>
+<p id="footer">config &mdash; npm@1.2.17</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 0402258fd4b..511a358be98 100644
--- a/deps/npm/html/api/deprecate.html
+++ b/deps/npm/html/api/deprecate.html
@@ -32,7 +32,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.2.15</p>
+<p id="footer">deprecate &mdash; npm@1.2.17</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 c8e7d12e24a..e44efcb1754 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.2.15</p>
+<p id="footer">docs &mdash; npm@1.2.17</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 b400777e154..1eaf3b2d7aa 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.2.15</p>
+<p id="footer">edit &mdash; npm@1.2.17</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 4a2ffc0b575..5ef9fb074e7 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 &#39;args&#39; 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.2.15</p>
+<p id="footer">explore &mdash; npm@1.2.17</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 faf99030227..e0a89d0cc3b 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.2.15</p>
+<p id="footer">help-search &mdash; npm@1.2.17</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 d6513b73d17..656a0c68e2d 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.2.15</p>
+<p id="footer">init &mdash; npm@1.2.17</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 717bf23b528..dc718a10a90 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, &#39;callback&#39; 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.2.15</p>
+<p id="footer">install &mdash; npm@1.2.17</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 62f259a8f17..9a829226885 100644
--- a/deps/npm/html/api/link.html
+++ b/deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ npm.commands.link(&#39;redis&#39;, 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.2.15</p>
+<p id="footer">link &mdash; npm@1.2.17</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 8ae944b4159..8db63b500ed 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.2.15</p>
+<p id="footer">load &mdash; npm@1.2.17</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 9f2dc0bf9bb..81468c2865b 100644
--- a/deps/npm/html/api/ls.html
+++ b/deps/npm/html/api/ls.html
@@ -59,7 +59,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.2.15</p>
+<p id="footer">ls &mdash; npm@1.2.17</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 07adafc435b..91fc75097cc 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.2.15</p>
+<p>1.2.17</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -92,7 +92,7 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<pre><code>var cmd = npm.deref(&quot;unp&quot;) // cmd === &quot;unpublish&quot;</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.2.15</p>
+<p id="footer">npm &mdash; npm@1.2.17</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 74fab48aaa5..15b91c61fb2 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 &#39;packages&#39; parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.2.15</p>
+<p id="footer">outdated &mdash; npm@1.2.17</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 b87076db247..df7bd219f22 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.2.15</p>
+<p id="footer">owner &mdash; npm@1.2.17</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 05007c138df..097e6a09387 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.2.15</p>
+<p id="footer">pack &mdash; npm@1.2.17</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 a878b037d95..801f5c2e6d0 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.2.15</p>
+<p id="footer">prefix &mdash; npm@1.2.17</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 a4ae0bbef09..9785dea84b4 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&#39;s dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.2.15</p>
+<p id="footer">prune &mdash; npm@1.2.17</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 10f78b0b209..f761be2e93b 100644
--- a/deps/npm/html/api/publish.html
+++ b/deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ the registry. Overwrites when the &quot;force&quot; environment variable is set
<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.2.15</p>
+<p id="footer">publish &mdash; npm@1.2.17</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 48bc9ed6148..a0a55c215c0 100644
--- a/deps/npm/html/api/rebuild.html
+++ b/deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild &mdash; npm@1.2.15</p>
+<p id="footer">rebuild &mdash; npm@1.2.17</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 f49699cfc2c..9f8b7bdaf0d 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.2.15</p>
+<p id="footer">restart &mdash; npm@1.2.17</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 5f10b0adc74..7c9362c3eda 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.2.15</p>
+<p id="footer">root &mdash; npm@1.2.17</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 e798b8d6b3b..c03380be823 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.2.15</p>
+<p id="footer">run-script &mdash; npm@1.2.17</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 06bad4eb5e5..05f99ade5d8 100644
--- a/deps/npm/html/api/search.html
+++ b/deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ excluded term (the &quot;searchexclude&quot; config). The search is case insensi
and doesn&#39;t try to read your mind (it doesn&#39;t do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search &mdash; npm@1.2.15</p>
+<p id="footer">search &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/shrinkwrap.html b/deps/npm/html/api/shrinkwrap.html
index f8273f3ca2d..a5c86ed996d 100644
--- a/deps/npm/html/api/shrinkwrap.html
+++ b/deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
<p>Finally, &#39;callback&#39; is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.2.15</p>
+<p id="footer">shrinkwrap &mdash; npm@1.2.17</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 5bdf9e97d72..49be9e166f0 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.2.15</p>
+<p id="footer">start &mdash; npm@1.2.17</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 e34d188355f..67e87cfadfa 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.2.15</p>
+<p id="footer">stop &mdash; npm@1.2.17</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 492638d207b..3a2f5948d8d 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.2.15</p>
+<p id="footer">submodule &mdash; npm@1.2.17</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 e33504dcc52..3f41fde3f2c 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.2.15</p>
+<p id="footer">tag &mdash; npm@1.2.17</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 94a445df2bf..ec6132b6518 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.2.15</p>
+<p id="footer">test &mdash; npm@1.2.17</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 ebaf1cc4bda..4260e73b614 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, &#39;callback&#39; 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.2.15</p>
+<p id="footer">uninstall &mdash; npm@1.2.17</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 5a2ebaa39e1..fcd9b4f87a5 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.2.15</p>
+<p id="footer">unpublish &mdash; npm@1.2.17</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 d7688e48ad6..0f2aa639c77 100644
--- a/deps/npm/html/api/update.html
+++ b/deps/npm/html/api/update.html
@@ -18,7 +18,7 @@
<p>The &#39;packages&#39; argument is an array of packages to update. The &#39;callback&#39; parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update &mdash; npm@1.2.15</p>
+<p id="footer">update &mdash; npm@1.2.17</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 80c7f2f926d..e29254bc2d0 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.2.15</p>
+<p id="footer">version &mdash; npm@1.2.17</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 b38642e38f1..0d911105b84 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.2.15</p>
+<p id="footer">view &mdash; npm@1.2.17</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 34847eb8bb6..427b6c03b75 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.2.15</p>
+<p id="footer">whoami &mdash; npm@1.2.17</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 573890ff8fe..817d572610a 100644
--- a/deps/npm/html/doc/README.html
+++ b/deps/npm/html/doc/README.html
@@ -240,7 +240,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.2.15</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.2.17</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 2bc41178a92..a893d0b1c02 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.2.15</p>
+<p id="footer">adduser &mdash; npm@1.2.17</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 d5a833f1f80..efe19da1156 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.2.15</p>
+<p id="footer">bin &mdash; npm@1.2.17</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 3e3001267b3..8ff5f5b19a0 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.2.15</p>
+<p id="footer">bugs &mdash; npm@1.2.17</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 6f6186c78d8..1e78aba27a8 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.2.15</p>
+<p id="footer">build &mdash; npm@1.2.17</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 348a9320879..dc19a05cb3f 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.2.15</p>
+<p id="footer">bundle &mdash; npm@1.2.17</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 95003ecd422..50c5e4b5d11 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.2.15</p>
+<p id="footer">cache &mdash; npm@1.2.17</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 d7e03690215..538a9172ae0 100644
--- a/deps/npm/html/doc/changelog.html
+++ b/deps/npm/html/doc/changelog.html
@@ -65,7 +65,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.2.15</p>
+<p id="footer">changelog &mdash; npm@1.2.17</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 b1502540d4d..d5d7f8064c6 100644
--- a/deps/npm/html/doc/coding-style.html
+++ b/deps/npm/html/doc/coding-style.html
@@ -182,7 +182,7 @@ set to anything.&quot;</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.2.15</p>
+<p id="footer">coding-style &mdash; npm@1.2.17</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 8297d3f2e90..723d42ec6a9 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.2.15</p>
+<p id="footer">completion &mdash; npm@1.2.17</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 8120ba7f7eb..3eae3b82a69 100644
--- a/deps/npm/html/doc/config.html
+++ b/deps/npm/html/doc/config.html
@@ -771,7 +771,7 @@ then answer &quot;no&quot; 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.2.15</p>
+<p id="footer">config &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/dedupe.html b/deps/npm/html/doc/dedupe.html
index 97b53deee8c..abd43c2c82a 100644
--- a/deps/npm/html/doc/dedupe.html
+++ b/deps/npm/html/doc/dedupe.html
@@ -57,7 +57,7 @@ registry.</p>
<ul><li><a href="../doc/ls.html">ls(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">dedupe &mdash; npm@1.2.15</p>
+<p id="footer">dedupe &mdash; npm@1.2.17</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 96f762a9554..5091e48b08f 100644
--- a/deps/npm/html/doc/deprecate.html
+++ b/deps/npm/html/doc/deprecate.html
@@ -31,7 +31,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.2.15</p>
+<p id="footer">deprecate &mdash; npm@1.2.17</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 1e771390f95..5a517e4dc67 100644
--- a/deps/npm/html/doc/developers.html
+++ b/deps/npm/html/doc/developers.html
@@ -160,7 +160,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.2.15</p>
+<p id="footer">developers &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/disputes.html b/deps/npm/html/doc/disputes.html
index 6cbebc98875..bdf338643f1 100644
--- a/deps/npm/html/doc/disputes.html
+++ b/deps/npm/html/doc/disputes.html
@@ -91,7 +91,7 @@ things into it.</li></ol>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">disputes &mdash; npm@1.2.15</p>
+<p id="footer">disputes &mdash; npm@1.2.17</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 a99e3086600..cd90f309bad 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.2.15</p>
+<p id="footer">docs &mdash; npm@1.2.17</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 928f67a6cb6..ea84e13e4e6 100644
--- a/deps/npm/html/doc/edit.html
+++ b/deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ or <code>&quot;notepad&quot;</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.2.15</p>
+<p id="footer">edit &mdash; npm@1.2.17</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 3276761081f..da8bc332450 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.2.15</p>
+<p id="footer">explore &mdash; npm@1.2.17</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 1e89cfb3c65..825cf8d7dc3 100644
--- a/deps/npm/html/doc/faq.html
+++ b/deps/npm/html/doc/faq.html
@@ -296,7 +296,7 @@ There is not sufficient need to impose namespace rules on everyone.</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.2.15</p>
+<p id="footer">faq &mdash; npm@1.2.17</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 9da178760f0..18f38f17fe7 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.2.15</p>
+<p id="footer">folders &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/global.html b/deps/npm/html/doc/global.html
index 9eb012a6555..1186312dbe7 100644
--- a/deps/npm/html/doc/global.html
+++ b/deps/npm/html/doc/global.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">global &mdash; npm@1.2.15</p>
+<p id="footer">global &mdash; npm@1.2.17</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 50b99442f06..90890b0a35d 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.2.15</p>
+<p id="footer">help-search &mdash; npm@1.2.17</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 126c104b319..ebf23f75fbd 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.2.15</p>
+<p id="footer">help &mdash; npm@1.2.17</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 9d02322e27e..12194e8071d 100644
--- a/deps/npm/html/doc/index.html
+++ b/deps/npm/html/doc/index.html
@@ -400,7 +400,7 @@
<p> Display npm username</p>
</div>
-<p id="footer">index &mdash; npm@1.2.15</p>
+<p id="footer">index &mdash; npm@1.2.17</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 5265a3c9f68..1ba5fdb16ba 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="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li><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.2.15</p>
+<p id="footer">init &mdash; npm@1.2.17</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 d34c0c29376..6869d918be7 100644
--- a/deps/npm/html/doc/install.html
+++ b/deps/npm/html/doc/install.html
@@ -136,7 +136,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><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
</div>
-<p id="footer">install &mdash; npm@1.2.15</p>
+<p id="footer">install &mdash; npm@1.2.17</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 5a07625933c..3dff222b200 100644
--- a/deps/npm/html/doc/json.html
+++ b/deps/npm/html/doc/json.html
@@ -546,7 +546,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.2.15</p>
+<p id="footer">json &mdash; npm@1.2.17</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 5200278ce84..d3e695086cf 100644
--- a/deps/npm/html/doc/link.html
+++ b/deps/npm/html/doc/link.html
@@ -58,7 +58,7 @@ installation target into your project&#39;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.2.15</p>
+<p id="footer">link &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/ls.html b/deps/npm/html/doc/ls.html
index aa6f673d1c1..dde3641a2af 100644
--- a/deps/npm/html/doc/ls.html
+++ b/deps/npm/html/doc/ls.html
@@ -25,7 +25,7 @@ limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@1.2.15 /path/to/npm
+<pre><code>npm@1.2.17 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5</code></pre>
@@ -64,7 +64,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">ls &mdash; npm@1.2.15</p>
+<p id="footer">ls &mdash; npm@1.2.17</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 afe018ecbd6..ae1fde6f6f6 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.2.15</p>
+<p>1.2.17</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.2.15</p>
+<p id="footer">npm &mdash; npm@1.2.17</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 555562ab8e7..6651115bb49 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.2.15</p>
+<p id="footer">outdated &mdash; npm@1.2.17</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 5a621a9973a..3fa2ee5b002 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><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.2.15</p>
+<p id="footer">owner &mdash; npm@1.2.17</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 67b5d7ee500..626ffab5032 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.2.15</p>
+<p id="footer">pack &mdash; npm@1.2.17</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 3a7c0403787..6d046aa0d88 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.2.15</p>
+<p id="footer">prefix &mdash; npm@1.2.17</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 461f9060948..cf9bdb12326 100644
--- a/deps/npm/html/doc/prune.html
+++ b/deps/npm/html/doc/prune.html
@@ -25,7 +25,7 @@ package&#39;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.2.15</p>
+<p id="footer">prune &mdash; npm@1.2.17</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 1be13be0b95..5d3dac43b57 100644
--- a/deps/npm/html/doc/publish.html
+++ b/deps/npm/html/doc/publish.html
@@ -29,7 +29,7 @@ the registry. Overwrites when the &quot;--force&quot; 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.2.15</p>
+<p id="footer">publish &mdash; npm@1.2.17</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 39872397374..759fea214aa 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.2.15</p>
+<p id="footer">rebuild &mdash; npm@1.2.17</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 a357c3c9eac..0c3814097fa 100644
--- a/deps/npm/html/doc/registry.html
+++ b/deps/npm/html/doc/registry.html
@@ -95,7 +95,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><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">registry &mdash; npm@1.2.15</p>
+<p id="footer">registry &mdash; npm@1.2.17</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 c07b966d519..6b11129ac80 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.2.15</p>
+<p id="footer">removing-npm &mdash; npm@1.2.17</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 cadf142a68e..344d761e6bc 100644
--- a/deps/npm/html/doc/restart.html
+++ b/deps/npm/html/doc/restart.html
@@ -24,7 +24,7 @@ the &quot;start&quot; 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.2.15</p>
+<p id="footer">restart &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/rm.html b/deps/npm/html/doc/rm.html
index 83368316196..1e4c387e846 100644
--- a/deps/npm/html/doc/rm.html
+++ b/deps/npm/html/doc/rm.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">rm &mdash; npm@1.2.15</p>
+<p id="footer">rm &mdash; npm@1.2.17</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 b2a11b3d7d1..ffe99673cbe 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.2.15</p>
+<p id="footer">root &mdash; npm@1.2.17</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 4c367ba0f2e..fdfc51728d9 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.2.15</p>
+<p id="footer">run-script &mdash; npm@1.2.17</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 ec25e388565..cc69590ab50 100644
--- a/deps/npm/html/doc/scripts.html
+++ b/deps/npm/html/doc/scripts.html
@@ -218,7 +218,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.2.15</p>
+<p id="footer">scripts &mdash; npm@1.2.17</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 525a8e99ef2..5bb1ce4f96e 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.2.15</p>
+<p id="footer">search &mdash; npm@1.2.17</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 8800ca89e78..1cecf5f5467 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.2.15</p>
+<p id="footer">semver &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/shrinkwrap.html b/deps/npm/html/doc/shrinkwrap.html
index 3548e0db04d..553f37a5d22 100644
--- a/deps/npm/html/doc/shrinkwrap.html
+++ b/deps/npm/html/doc/shrinkwrap.html
@@ -169,7 +169,7 @@ versions.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.2.15</p>
+<p id="footer">shrinkwrap &mdash; npm@1.2.17</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 4e42762aaef..0b3fc227b2d 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.2.15</p>
+<p id="footer">star &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/stars.html b/deps/npm/html/doc/stars.html
index bf9236d21c8..498576fb4ed 100644
--- a/deps/npm/html/doc/stars.html
+++ b/deps/npm/html/doc/stars.html
@@ -25,7 +25,7 @@ you will most certainly enjoy this command.</p>
<ul><li><a href="../doc/star.html">star(1)</a></li><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">stars &mdash; npm@1.2.15</p>
+<p id="footer">stars &mdash; npm@1.2.17</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 ca7bbde5803..c4f472f6a3d 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.2.15</p>
+<p id="footer">start &mdash; npm@1.2.17</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 6d715fc2c92..ce754155b59 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.2.15</p>
+<p id="footer">stop &mdash; npm@1.2.17</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 b667e1d2f72..001b962eb06 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.2.15</p>
+<p id="footer">submodule &mdash; npm@1.2.17</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 e3d12e7213c..b7bdb7b7197 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.2.15</p>
+<p id="footer">tag &mdash; npm@1.2.17</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 8e8cdd04357..53294059a02 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.2.15</p>
+<p id="footer">test &mdash; npm@1.2.17</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 dcfa8bf692b..5b2bcf30912 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.2.15</p>
+<p id="footer">uninstall &mdash; npm@1.2.17</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 5b103d9b589..be0a46c20ca 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.2.15</p>
+<p id="footer">unpublish &mdash; npm@1.2.17</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 cdc192f41c6..27c205cb334 100644
--- a/deps/npm/html/doc/update.html
+++ b/deps/npm/html/doc/update.html
@@ -26,7 +26,7 @@ If no package name is specified, all packages in the specified location (global
<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.2.15</p>
+<p id="footer">update &mdash; npm@1.2.17</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 df2259f55df..545d72095ad 100644
--- a/deps/npm/html/doc/version.html
+++ b/deps/npm/html/doc/version.html
@@ -49,7 +49,7 @@ Enter passphrase:</code></pre>
<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.2.15</p>
+<p id="footer">version &mdash; npm@1.2.17</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 c742d808722..50dabdf98c6 100644
--- a/deps/npm/html/doc/view.html
+++ b/deps/npm/html/doc/view.html
@@ -90,7 +90,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.2.15</p>
+<p id="footer">view &mdash; npm@1.2.17</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 e48759129bc..604c45ae9be 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.2.15</p>
+<p id="footer">whoami &mdash; npm@1.2.17</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/lib/build.js b/deps/npm/lib/build.js
index d9deb32da10..b7ae08869d6 100644
--- a/deps/npm/lib/build.js
+++ b/deps/npm/lib/build.js
@@ -16,7 +16,7 @@ var npm = require("./npm.js")
, readJson = require("read-package-json")
, link = require("./utils/link.js")
, linkIfExists = link.ifExists
- , cmdShim = require("./utils/cmd-shim.js")
+ , cmdShim = require("cmd-shim")
, cmdShimIfExists = cmdShim.ifExists
, asyncMap = require("slide").asyncMap
diff --git a/deps/npm/man/man1/README.1 b/deps/npm/man/man1/README.1
index 471c77c262d..e6f50b7ef9b 100644
--- a/deps/npm/man/man1/README.1
+++ b/deps/npm/man/man1/README.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "1" "March 2013" "" ""
+.TH "NPM" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
diff --git a/deps/npm/man/man1/adduser.1 b/deps/npm/man/man1/adduser.1
index 13c9d822e3e..9b1d72dce5b 100644
--- a/deps/npm/man/man1/adduser.1
+++ b/deps/npm/man/man1/adduser.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ADDUSER" "1" "March 2013" "" ""
+.TH "NPM\-ADDUSER" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-adduser\fR \-\- Add a registry user account
diff --git a/deps/npm/man/man1/bin.1 b/deps/npm/man/man1/bin.1
index 4fde23c299e..0ad8c1f8456 100644
--- a/deps/npm/man/man1/bin.1
+++ b/deps/npm/man/man1/bin.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BIN" "1" "March 2013" "" ""
+.TH "NPM\-BIN" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-bin\fR \-\- Display npm bin folder
diff --git a/deps/npm/man/man1/bugs.1 b/deps/npm/man/man1/bugs.1
index 2fc99452290..d045aee35bc 100644
--- a/deps/npm/man/man1/bugs.1
+++ b/deps/npm/man/man1/bugs.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUGS" "1" "March 2013" "" ""
+.TH "NPM\-BUGS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
diff --git a/deps/npm/man/man1/build.1 b/deps/npm/man/man1/build.1
index c1c7f1d580b..77b3d4e7daf 100644
--- a/deps/npm/man/man1/build.1
+++ b/deps/npm/man/man1/build.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUILD" "1" "March 2013" "" ""
+.TH "NPM\-BUILD" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-build\fR \-\- Build a package
diff --git a/deps/npm/man/man1/bundle.1 b/deps/npm/man/man1/bundle.1
index 0d0bec59458..ae751819b9a 100644
--- a/deps/npm/man/man1/bundle.1
+++ b/deps/npm/man/man1/bundle.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUNDLE" "1" "March 2013" "" ""
+.TH "NPM\-BUNDLE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-bundle\fR \-\- REMOVED
diff --git a/deps/npm/man/man1/cache.1 b/deps/npm/man/man1/cache.1
index d41bf45989d..c78ef1e7b4e 100644
--- a/deps/npm/man/man1/cache.1
+++ b/deps/npm/man/man1/cache.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CACHE" "1" "March 2013" "" ""
+.TH "NPM\-CACHE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-cache\fR \-\- Manipulates packages cache
diff --git a/deps/npm/man/man1/changelog.1 b/deps/npm/man/man1/changelog.1
index 74e80777fcf..a41a7bb7b04 100644
--- a/deps/npm/man/man1/changelog.1
+++ b/deps/npm/man/man1/changelog.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CHANGELOG" "1" "March 2013" "" ""
+.TH "NPM\-CHANGELOG" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-changelog\fR \-\- Changes
diff --git a/deps/npm/man/man1/coding-style.1 b/deps/npm/man/man1/coding-style.1
index a479214e0a1..cd5443b9e32 100644
--- a/deps/npm/man/man1/coding-style.1
+++ b/deps/npm/man/man1/coding-style.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CODING\-STYLE" "1" "March 2013" "" ""
+.TH "NPM\-CODING\-STYLE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-coding-style\fR \-\- npm\'s "funny" coding style
diff --git a/deps/npm/man/man1/completion.1 b/deps/npm/man/man1/completion.1
index ea40adb9aeb..291ed563dc6 100644
--- a/deps/npm/man/man1/completion.1
+++ b/deps/npm/man/man1/completion.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-COMPLETION" "1" "March 2013" "" ""
+.TH "NPM\-COMPLETION" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-completion\fR \-\- Tab Completion for npm
diff --git a/deps/npm/man/man1/config.1 b/deps/npm/man/man1/config.1
index 2e756836102..3ee8366e2f3 100644
--- a/deps/npm/man/man1/config.1
+++ b/deps/npm/man/man1/config.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CONFIG" "1" "March 2013" "" ""
+.TH "NPM\-CONFIG" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration file
diff --git a/deps/npm/man/man1/dedupe.1 b/deps/npm/man/man1/dedupe.1
index 3c384d13745..e3b8504ff8f 100644
--- a/deps/npm/man/man1/dedupe.1
+++ b/deps/npm/man/man1/dedupe.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEDUPE" "1" "March 2013" "" ""
+.TH "NPM\-DEDUPE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-dedupe\fR \-\- Reduce duplication
diff --git a/deps/npm/man/man1/deprecate.1 b/deps/npm/man/man1/deprecate.1
index 4cbe43d3115..2453acae6ae 100644
--- a/deps/npm/man/man1/deprecate.1
+++ b/deps/npm/man/man1/deprecate.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEPRECATE" "1" "March 2013" "" ""
+.TH "NPM\-DEPRECATE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-deprecate\fR \-\- Deprecate a version of a package
diff --git a/deps/npm/man/man1/developers.1 b/deps/npm/man/man1/developers.1
index e54632a4ca0..bd1e46bdf87 100644
--- a/deps/npm/man/man1/developers.1
+++ b/deps/npm/man/man1/developers.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEVELOPERS" "1" "March 2013" "" ""
+.TH "NPM\-DEVELOPERS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-developers\fR \-\- Developer Guide
diff --git a/deps/npm/man/man1/disputes.1 b/deps/npm/man/man1/disputes.1
index 162b94a2556..0ec24346bb9 100644
--- a/deps/npm/man/man1/disputes.1
+++ b/deps/npm/man/man1/disputes.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DISPUTES" "1" "March 2013" "" ""
+.TH "NPM\-DISPUTES" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-disputes\fR \-\- Handling Module Name Disputes
diff --git a/deps/npm/man/man1/docs.1 b/deps/npm/man/man1/docs.1
index 5b9ea63c146..709bb054341 100644
--- a/deps/npm/man/man1/docs.1
+++ b/deps/npm/man/man1/docs.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DOCS" "1" "March 2013" "" ""
+.TH "NPM\-DOCS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
diff --git a/deps/npm/man/man1/edit.1 b/deps/npm/man/man1/edit.1
index 38c62800f46..eadf3b4edc3 100644
--- a/deps/npm/man/man1/edit.1
+++ b/deps/npm/man/man1/edit.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EDIT" "1" "March 2013" "" ""
+.TH "NPM\-EDIT" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-edit\fR \-\- Edit an installed package
diff --git a/deps/npm/man/man1/explore.1 b/deps/npm/man/man1/explore.1
index e3af446ad3c..2b4a45a9508 100644
--- a/deps/npm/man/man1/explore.1
+++ b/deps/npm/man/man1/explore.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EXPLORE" "1" "March 2013" "" ""
+.TH "NPM\-EXPLORE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-explore\fR \-\- Browse an installed package
diff --git a/deps/npm/man/man1/faq.1 b/deps/npm/man/man1/faq.1
index b74deea161c..cf68dfddd77 100644
--- a/deps/npm/man/man1/faq.1
+++ b/deps/npm/man/man1/faq.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FAQ" "1" "March 2013" "" ""
+.TH "NPM\-FAQ" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-faq\fR \-\- Frequently Asked Questions
diff --git a/deps/npm/man/man1/folders.1 b/deps/npm/man/man1/folders.1
index 0010d59437b..e0af908b80a 100644
--- a/deps/npm/man/man1/folders.1
+++ b/deps/npm/man/man1/folders.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FOLDERS" "1" "March 2013" "" ""
+.TH "NPM\-FOLDERS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-folders\fR \-\- Folder Structures Used by npm
diff --git a/deps/npm/man/man1/global.1 b/deps/npm/man/man1/global.1
index 0010d59437b..e0af908b80a 100644
--- a/deps/npm/man/man1/global.1
+++ b/deps/npm/man/man1/global.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FOLDERS" "1" "March 2013" "" ""
+.TH "NPM\-FOLDERS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-folders\fR \-\- Folder Structures Used by npm
diff --git a/deps/npm/man/man1/help-search.1 b/deps/npm/man/man1/help-search.1
index 398ab697149..c47d40f93ca 100644
--- a/deps/npm/man/man1/help-search.1
+++ b/deps/npm/man/man1/help-search.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP\-SEARCH" "1" "March 2013" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-help-search\fR \-\- Search npm help documentation
diff --git a/deps/npm/man/man1/help.1 b/deps/npm/man/man1/help.1
index bf1ecf301a5..b143c3676ba 100644
--- a/deps/npm/man/man1/help.1
+++ b/deps/npm/man/man1/help.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP" "1" "March 2013" "" ""
+.TH "NPM\-HELP" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-help\fR \-\- Get help on npm
diff --git a/deps/npm/man/man1/index.1 b/deps/npm/man/man1/index.1
index c1c50121bc6..b6d55dd640e 100644
--- a/deps/npm/man/man1/index.1
+++ b/deps/npm/man/man1/index.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INDEX" "1" "March 2013" "" ""
+.TH "NPM\-INDEX" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-index\fR \-\- Index of all npm documentation
diff --git a/deps/npm/man/man1/init.1 b/deps/npm/man/man1/init.1
index 3cf5b9900ea..88b5229e9ae 100644
--- a/deps/npm/man/man1/init.1
+++ b/deps/npm/man/man1/init.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INIT" "1" "March 2013" "" ""
+.TH "NPM\-INIT" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-init\fR \-\- Interactively create a package\.json file
diff --git a/deps/npm/man/man1/install.1 b/deps/npm/man/man1/install.1
index 67d7a611433..e4719224922 100644
--- a/deps/npm/man/man1/install.1
+++ b/deps/npm/man/man1/install.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INSTALL" "1" "March 2013" "" ""
+.TH "NPM\-INSTALL" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-install\fR \-\- Install a package
diff --git a/deps/npm/man/man1/json.1 b/deps/npm/man/man1/json.1
index 4f290d5ffad..abec598d54d 100644
--- a/deps/npm/man/man1/json.1
+++ b/deps/npm/man/man1/json.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-JSON" "1" "March 2013" "" ""
+.TH "NPM\-JSON" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-json\fR \-\- Specifics of npm\'s package\.json handling
diff --git a/deps/npm/man/man1/link.1 b/deps/npm/man/man1/link.1
index a497cd16949..043c20c75ca 100644
--- a/deps/npm/man/man1/link.1
+++ b/deps/npm/man/man1/link.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LINK" "1" "March 2013" "" ""
+.TH "NPM\-LINK" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-link\fR \-\- Symlink a package folder
diff --git a/deps/npm/man/man1/ls.1 b/deps/npm/man/man1/ls.1
index 6e64b1159fe..d71b14e197f 100644
--- a/deps/npm/man/man1/ls.1
+++ b/deps/npm/man/man1/ls.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LS" "1" "March 2013" "" ""
+.TH "NPM\-LS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-ls\fR \-\- List installed packages
@@ -29,7 +29,7 @@ For example, running \fBnpm ls promzard\fR in npm\'s source tree will show:
.IP "" 4
.
.nf
-npm@1.2.15 /path/to/npm
+npm@1.2.17 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index ea35a5fbb3f..f77dd862065 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "1" "March 2013" "" ""
+.TH "NPM" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
@@ -14,7 +14,7 @@ npm <command> [args]
.fi
.
.SH "VERSION"
-1.2.15
+1.2.17
.
.SH "DESCRIPTION"
npm is the package manager for the Node JavaScript platform\. It puts
diff --git a/deps/npm/man/man1/outdated.1 b/deps/npm/man/man1/outdated.1
index e3238384730..eee6de3c534 100644
--- a/deps/npm/man/man1/outdated.1
+++ b/deps/npm/man/man1/outdated.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OUTDATED" "1" "March 2013" "" ""
+.TH "NPM\-OUTDATED" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-outdated\fR \-\- Check for outdated packages
diff --git a/deps/npm/man/man1/owner.1 b/deps/npm/man/man1/owner.1
index 6d2c48b7822..23329094a34 100644
--- a/deps/npm/man/man1/owner.1
+++ b/deps/npm/man/man1/owner.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OWNER" "1" "March 2013" "" ""
+.TH "NPM\-OWNER" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-owner\fR \-\- Manage package owners
diff --git a/deps/npm/man/man1/pack.1 b/deps/npm/man/man1/pack.1
index 5b9d50c7b4c..395451f5486 100644
--- a/deps/npm/man/man1/pack.1
+++ b/deps/npm/man/man1/pack.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PACK" "1" "March 2013" "" ""
+.TH "NPM\-PACK" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-pack\fR \-\- Create a tarball from a package
diff --git a/deps/npm/man/man1/prefix.1 b/deps/npm/man/man1/prefix.1
index 899102b65ba..c5d60cb0730 100644
--- a/deps/npm/man/man1/prefix.1
+++ b/deps/npm/man/man1/prefix.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PREFIX" "1" "March 2013" "" ""
+.TH "NPM\-PREFIX" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-prefix\fR \-\- Display prefix
diff --git a/deps/npm/man/man1/prune.1 b/deps/npm/man/man1/prune.1
index ff1db269890..e91f5c36e9e 100644
--- a/deps/npm/man/man1/prune.1
+++ b/deps/npm/man/man1/prune.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PRUNE" "1" "March 2013" "" ""
+.TH "NPM\-PRUNE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-prune\fR \-\- Remove extraneous packages
diff --git a/deps/npm/man/man1/publish.1 b/deps/npm/man/man1/publish.1
index 418664e4fcb..93eeb0215b9 100644
--- a/deps/npm/man/man1/publish.1
+++ b/deps/npm/man/man1/publish.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PUBLISH" "1" "March 2013" "" ""
+.TH "NPM\-PUBLISH" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-publish\fR \-\- Publish a package
diff --git a/deps/npm/man/man1/rebuild.1 b/deps/npm/man/man1/rebuild.1
index cbb5a7b1898..dce1251d00d 100644
--- a/deps/npm/man/man1/rebuild.1
+++ b/deps/npm/man/man1/rebuild.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REBUILD" "1" "March 2013" "" ""
+.TH "NPM\-REBUILD" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-rebuild\fR \-\- Rebuild a package
diff --git a/deps/npm/man/man1/registry.1 b/deps/npm/man/man1/registry.1
index 63353423882..be43f268935 100644
--- a/deps/npm/man/man1/registry.1
+++ b/deps/npm/man/man1/registry.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REGISTRY" "1" "March 2013" "" ""
+.TH "NPM\-REGISTRY" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-registry\fR \-\- The JavaScript Package Registry
diff --git a/deps/npm/man/man1/removing-npm.1 b/deps/npm/man/man1/removing-npm.1
index ca23ef69932..14f58c261c6 100644
--- a/deps/npm/man/man1/removing-npm.1
+++ b/deps/npm/man/man1/removing-npm.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REMOVAL" "1" "March 2013" "" ""
+.TH "NPM\-REMOVAL" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-removal\fR \-\- Cleaning the Slate
diff --git a/deps/npm/man/man1/restart.1 b/deps/npm/man/man1/restart.1
index 1c8980e06b1..064e6b721be 100644
--- a/deps/npm/man/man1/restart.1
+++ b/deps/npm/man/man1/restart.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RESTART" "1" "March 2013" "" ""
+.TH "NPM\-RESTART" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-restart\fR \-\- Start a package
diff --git a/deps/npm/man/man1/rm.1 b/deps/npm/man/man1/rm.1
index 7bfd5f31d80..6e9b5c800bb 100644
--- a/deps/npm/man/man1/rm.1
+++ b/deps/npm/man/man1/rm.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RM" "1" "March 2013" "" ""
+.TH "NPM\-RM" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-rm\fR \-\- Remove a package
diff --git a/deps/npm/man/man1/root.1 b/deps/npm/man/man1/root.1
index d181d93c97e..926b3be6e95 100644
--- a/deps/npm/man/man1/root.1
+++ b/deps/npm/man/man1/root.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ROOT" "1" "March 2013" "" ""
+.TH "NPM\-ROOT" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-root\fR \-\- Display npm root
diff --git a/deps/npm/man/man1/run-script.1 b/deps/npm/man/man1/run-script.1
index 00f119489d9..ee42be1f46c 100644
--- a/deps/npm/man/man1/run-script.1
+++ b/deps/npm/man/man1/run-script.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RUN\-SCRIPT" "1" "March 2013" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-run-script\fR \-\- Run arbitrary package scripts
diff --git a/deps/npm/man/man1/scripts.1 b/deps/npm/man/man1/scripts.1
index 3535935ac35..4a0592d77a7 100644
--- a/deps/npm/man/man1/scripts.1
+++ b/deps/npm/man/man1/scripts.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SCRIPTS" "1" "March 2013" "" ""
+.TH "NPM\-SCRIPTS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-scripts\fR \-\- How npm handles the "scripts" field
diff --git a/deps/npm/man/man1/search.1 b/deps/npm/man/man1/search.1
index a2d581dc3da..2e370d181cf 100644
--- a/deps/npm/man/man1/search.1
+++ b/deps/npm/man/man1/search.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEARCH" "1" "March 2013" "" ""
+.TH "NPM\-SEARCH" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-search\fR \-\- Search for packages
diff --git a/deps/npm/man/man1/semver.1 b/deps/npm/man/man1/semver.1
index 3e4735e9006..4857f2875be 100644
--- a/deps/npm/man/man1/semver.1
+++ b/deps/npm/man/man1/semver.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEMVER" "1" "March 2013" "" ""
+.TH "NPM\-SEMVER" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-semver\fR \-\- The semantic versioner for npm
diff --git a/deps/npm/man/man1/shrinkwrap.1 b/deps/npm/man/man1/shrinkwrap.1
index c989d3872b7..7fcae21caed 100644
--- a/deps/npm/man/man1/shrinkwrap.1
+++ b/deps/npm/man/man1/shrinkwrap.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SHRINKWRAP" "1" "March 2013" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-shrinkwrap\fR \-\- Lock down dependency versions
diff --git a/deps/npm/man/man1/star.1 b/deps/npm/man/man1/star.1
index e7d12f79d78..e7931cd406e 100644
--- a/deps/npm/man/man1/star.1
+++ b/deps/npm/man/man1/star.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STAR" "1" "March 2013" "" ""
+.TH "NPM\-STAR" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-star\fR \-\- Mark your favorite packages
diff --git a/deps/npm/man/man1/stars.1 b/deps/npm/man/man1/stars.1
index bd8b0e51ddd..bbc34a542b8 100644
--- a/deps/npm/man/man1/stars.1
+++ b/deps/npm/man/man1/stars.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STARS" "1" "March 2013" "" ""
+.TH "NPM\-STARS" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-stars\fR \-\- View packages marked as favorites
diff --git a/deps/npm/man/man1/start.1 b/deps/npm/man/man1/start.1
index c5fb51bb332..634e4069de0 100644
--- a/deps/npm/man/man1/start.1
+++ b/deps/npm/man/man1/start.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-START" "1" "March 2013" "" ""
+.TH "NPM\-START" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-start\fR \-\- Start a package
diff --git a/deps/npm/man/man1/stop.1 b/deps/npm/man/man1/stop.1
index 58e7c5e106e..014b8413059 100644
--- a/deps/npm/man/man1/stop.1
+++ b/deps/npm/man/man1/stop.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STOP" "1" "March 2013" "" ""
+.TH "NPM\-STOP" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-stop\fR \-\- Stop a package
diff --git a/deps/npm/man/man1/submodule.1 b/deps/npm/man/man1/submodule.1
index 99f7098f7d3..44336b4f932 100644
--- a/deps/npm/man/man1/submodule.1
+++ b/deps/npm/man/man1/submodule.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SUBMODULE" "1" "March 2013" "" ""
+.TH "NPM\-SUBMODULE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-submodule\fR \-\- Add a package as a git submodule
diff --git a/deps/npm/man/man1/tag.1 b/deps/npm/man/man1/tag.1
index f408f27abe6..ac903b9785b 100644
--- a/deps/npm/man/man1/tag.1
+++ b/deps/npm/man/man1/tag.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TAG" "1" "March 2013" "" ""
+.TH "NPM\-TAG" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-tag\fR \-\- Tag a published version
diff --git a/deps/npm/man/man1/test.1 b/deps/npm/man/man1/test.1
index 00bd2210be4..36cbea3d3c3 100644
--- a/deps/npm/man/man1/test.1
+++ b/deps/npm/man/man1/test.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TEST" "1" "March 2013" "" ""
+.TH "NPM\-TEST" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-test\fR \-\- Test a package
diff --git a/deps/npm/man/man1/uninstall.1 b/deps/npm/man/man1/uninstall.1
index 7bfd5f31d80..6e9b5c800bb 100644
--- a/deps/npm/man/man1/uninstall.1
+++ b/deps/npm/man/man1/uninstall.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RM" "1" "March 2013" "" ""
+.TH "NPM\-RM" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-rm\fR \-\- Remove a package
diff --git a/deps/npm/man/man1/unpublish.1 b/deps/npm/man/man1/unpublish.1
index a1f041f857c..29250f09f03 100644
--- a/deps/npm/man/man1/unpublish.1
+++ b/deps/npm/man/man1/unpublish.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNPUBLISH" "1" "March 2013" "" ""
+.TH "NPM\-UNPUBLISH" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-unpublish\fR \-\- Remove a package from the registry
diff --git a/deps/npm/man/man1/update.1 b/deps/npm/man/man1/update.1
index 95d296693a2..3fd287e8694 100644
--- a/deps/npm/man/man1/update.1
+++ b/deps/npm/man/man1/update.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UPDATE" "1" "March 2013" "" ""
+.TH "NPM\-UPDATE" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-update\fR \-\- Update a package
diff --git a/deps/npm/man/man1/version.1 b/deps/npm/man/man1/version.1
index c141e3cb132..78646cec86e 100644
--- a/deps/npm/man/man1/version.1
+++ b/deps/npm/man/man1/version.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VERSION" "1" "March 2013" "" ""
+.TH "NPM\-VERSION" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-version\fR \-\- Bump a package version
diff --git a/deps/npm/man/man1/view.1 b/deps/npm/man/man1/view.1
index 347f6c1dde8..c3d20739660 100644
--- a/deps/npm/man/man1/view.1
+++ b/deps/npm/man/man1/view.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VIEW" "1" "March 2013" "" ""
+.TH "NPM\-VIEW" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-view\fR \-\- View registry info
diff --git a/deps/npm/man/man1/whoami.1 b/deps/npm/man/man1/whoami.1
index 8d80d799ea7..7c4252accc6 100644
--- a/deps/npm/man/man1/whoami.1
+++ b/deps/npm/man/man1/whoami.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-WHOAMI" "1" "March 2013" "" ""
+.TH "NPM\-WHOAMI" "1" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-whoami\fR \-\- Display npm username
diff --git a/deps/npm/man/man3/bin.3 b/deps/npm/man/man3/bin.3
index 67b4ec027f2..e45734609e5 100644
--- a/deps/npm/man/man3/bin.3
+++ b/deps/npm/man/man3/bin.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BIN" "3" "March 2013" "" ""
+.TH "NPM\-BIN" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-bin\fR \-\- Display npm bin folder
diff --git a/deps/npm/man/man3/bugs.3 b/deps/npm/man/man3/bugs.3
index b8b8a7068d7..c1eeac83072 100644
--- a/deps/npm/man/man3/bugs.3
+++ b/deps/npm/man/man3/bugs.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUGS" "3" "March 2013" "" ""
+.TH "NPM\-BUGS" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
diff --git a/deps/npm/man/man3/commands.3 b/deps/npm/man/man3/commands.3
index d448c48cae6..4ff6f9eb8cf 100644
--- a/deps/npm/man/man3/commands.3
+++ b/deps/npm/man/man3/commands.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-COMMANDS" "3" "March 2013" "" ""
+.TH "NPM\-COMMANDS" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-commands\fR \-\- npm commands
diff --git a/deps/npm/man/man3/config.3 b/deps/npm/man/man3/config.3
index 069337fbc55..0fc6b47fd14 100644
--- a/deps/npm/man/man3/config.3
+++ b/deps/npm/man/man3/config.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CONFIG" "3" "March 2013" "" ""
+.TH "NPM\-CONFIG" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration files
diff --git a/deps/npm/man/man3/deprecate.3 b/deps/npm/man/man3/deprecate.3
index a767fd9cfa5..3103a1d37d1 100644
--- a/deps/npm/man/man3/deprecate.3
+++ b/deps/npm/man/man3/deprecate.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEPRECATE" "3" "March 2013" "" ""
+.TH "NPM\-DEPRECATE" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-deprecate\fR \-\- Deprecate a version of a package
diff --git a/deps/npm/man/man3/docs.3 b/deps/npm/man/man3/docs.3
index 480f7c047e3..903df2b45c6 100644
--- a/deps/npm/man/man3/docs.3
+++ b/deps/npm/man/man3/docs.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DOCS" "3" "March 2013" "" ""
+.TH "NPM\-DOCS" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
diff --git a/deps/npm/man/man3/edit.3 b/deps/npm/man/man3/edit.3
index 2f741cbb8f9..a1129a18a00 100644
--- a/deps/npm/man/man3/edit.3
+++ b/deps/npm/man/man3/edit.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EDIT" "3" "March 2013" "" ""
+.TH "NPM\-EDIT" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-edit\fR \-\- Edit an installed package
diff --git a/deps/npm/man/man3/explore.3 b/deps/npm/man/man3/explore.3
index 42974007ec9..bc010afa053 100644
--- a/deps/npm/man/man3/explore.3
+++ b/deps/npm/man/man3/explore.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EXPLORE" "3" "March 2013" "" ""
+.TH "NPM\-EXPLORE" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-explore\fR \-\- Browse an installed package
diff --git a/deps/npm/man/man3/help-search.3 b/deps/npm/man/man3/help-search.3
index 2735d111536..48ab3614ad1 100644
--- a/deps/npm/man/man3/help-search.3
+++ b/deps/npm/man/man3/help-search.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP\-SEARCH" "3" "March 2013" "" ""
+.TH "NPM\-HELP\-SEARCH" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-help-search\fR \-\- Search the help pages
diff --git a/deps/npm/man/man3/init.3 b/deps/npm/man/man3/init.3
index bd7f34ef414..6a9281e7467 100644
--- a/deps/npm/man/man3/init.3
+++ b/deps/npm/man/man3/init.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "INIT" "3" "March 2013" "" ""
+.TH "INIT" "3" "April 2013" "" ""
.
.SH "NAME"
\fBinit\fR \-\- Interactively create a package\.json file
diff --git a/deps/npm/man/man3/install.3 b/deps/npm/man/man3/install.3
index 0415b6c4daf..31f22f3e654 100644
--- a/deps/npm/man/man3/install.3
+++ b/deps/npm/man/man3/install.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INSTALL" "3" "March 2013" "" ""
+.TH "NPM\-INSTALL" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-install\fR \-\- install a package programmatically
diff --git a/deps/npm/man/man3/link.3 b/deps/npm/man/man3/link.3
index 8b0dadb41a7..d51bdd4f089 100644
--- a/deps/npm/man/man3/link.3
+++ b/deps/npm/man/man3/link.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LINK" "3" "March 2013" "" ""
+.TH "NPM\-LINK" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-link\fR \-\- Symlink a package folder
diff --git a/deps/npm/man/man3/load.3 b/deps/npm/man/man3/load.3
index f11157c6993..e251d4e3139 100644
--- a/deps/npm/man/man3/load.3
+++ b/deps/npm/man/man3/load.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LOAD" "3" "March 2013" "" ""
+.TH "NPM\-LOAD" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-load\fR \-\- Load config settings
diff --git a/deps/npm/man/man3/ls.3 b/deps/npm/man/man3/ls.3
index 494c2f20700..3a7bbeee9b1 100644
--- a/deps/npm/man/man3/ls.3
+++ b/deps/npm/man/man3/ls.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LS" "3" "March 2013" "" ""
+.TH "NPM\-LS" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-ls\fR \-\- List installed packages
diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3
index bdc402b770b..c320c5157dc 100644
--- a/deps/npm/man/man3/npm.3
+++ b/deps/npm/man/man3/npm.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "3" "March 2013" "" ""
+.TH "NPM" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
@@ -21,7 +21,7 @@ npm\.load([configObject,] function (er, npm) {
.fi
.
.SH "VERSION"
-1.2.15
+1.2.17
.
.SH "DESCRIPTION"
This is the API documentation for npm\.
diff --git a/deps/npm/man/man3/outdated.3 b/deps/npm/man/man3/outdated.3
index 31214a0e707..8fcddc39abb 100644
--- a/deps/npm/man/man3/outdated.3
+++ b/deps/npm/man/man3/outdated.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OUTDATED" "3" "March 2013" "" ""
+.TH "NPM\-OUTDATED" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-outdated\fR \-\- Check for outdated packages
diff --git a/deps/npm/man/man3/owner.3 b/deps/npm/man/man3/owner.3
index a9b44fef9ec..8ef915d0211 100644
--- a/deps/npm/man/man3/owner.3
+++ b/deps/npm/man/man3/owner.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OWNER" "3" "March 2013" "" ""
+.TH "NPM\-OWNER" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-owner\fR \-\- Manage package owners
diff --git a/deps/npm/man/man3/pack.3 b/deps/npm/man/man3/pack.3
index 91e755007a7..63bca31c5b9 100644
--- a/deps/npm/man/man3/pack.3
+++ b/deps/npm/man/man3/pack.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PACK" "3" "March 2013" "" ""
+.TH "NPM\-PACK" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-pack\fR \-\- Create a tarball from a package
diff --git a/deps/npm/man/man3/prefix.3 b/deps/npm/man/man3/prefix.3
index f586d8046d5..16cf8691596 100644
--- a/deps/npm/man/man3/prefix.3
+++ b/deps/npm/man/man3/prefix.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PREFIX" "3" "March 2013" "" ""
+.TH "NPM\-PREFIX" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-prefix\fR \-\- Display prefix
diff --git a/deps/npm/man/man3/prune.3 b/deps/npm/man/man3/prune.3
index 21b6e2126a2..62005f8882d 100644
--- a/deps/npm/man/man3/prune.3
+++ b/deps/npm/man/man3/prune.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PRUNE" "3" "March 2013" "" ""
+.TH "NPM\-PRUNE" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-prune\fR \-\- Remove extraneous packages
diff --git a/deps/npm/man/man3/publish.3 b/deps/npm/man/man3/publish.3
index d67f1bcc4af..559357fc225 100644
--- a/deps/npm/man/man3/publish.3
+++ b/deps/npm/man/man3/publish.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PUBLISH" "3" "March 2013" "" ""
+.TH "NPM\-PUBLISH" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-publish\fR \-\- Publish a package
diff --git a/deps/npm/man/man3/rebuild.3 b/deps/npm/man/man3/rebuild.3
index f9325dba5b3..f8ef064fb60 100644
--- a/deps/npm/man/man3/rebuild.3
+++ b/deps/npm/man/man3/rebuild.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REBUILD" "3" "March 2013" "" ""
+.TH "NPM\-REBUILD" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-rebuild\fR \-\- Rebuild a package
diff --git a/deps/npm/man/man3/restart.3 b/deps/npm/man/man3/restart.3
index c08bc290f2f..d1e33dd3dbb 100644
--- a/deps/npm/man/man3/restart.3
+++ b/deps/npm/man/man3/restart.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RESTART" "3" "March 2013" "" ""
+.TH "NPM\-RESTART" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-restart\fR \-\- Start a package
diff --git a/deps/npm/man/man3/root.3 b/deps/npm/man/man3/root.3
index b53cb1cf45f..5bb2c98a831 100644
--- a/deps/npm/man/man3/root.3
+++ b/deps/npm/man/man3/root.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ROOT" "3" "March 2013" "" ""
+.TH "NPM\-ROOT" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-root\fR \-\- Display npm root
diff --git a/deps/npm/man/man3/run-script.3 b/deps/npm/man/man3/run-script.3
index be8a488985e..e8f0bc0db35 100644
--- a/deps/npm/man/man3/run-script.3
+++ b/deps/npm/man/man3/run-script.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RUN\-SCRIPT" "3" "March 2013" "" ""
+.TH "NPM\-RUN\-SCRIPT" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-run-script\fR \-\- Run arbitrary package scripts
diff --git a/deps/npm/man/man3/search.3 b/deps/npm/man/man3/search.3
index 1dcaea9e589..53cb33826e8 100644
--- a/deps/npm/man/man3/search.3
+++ b/deps/npm/man/man3/search.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEARCH" "3" "March 2013" "" ""
+.TH "NPM\-SEARCH" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-search\fR \-\- Search for packages
diff --git a/deps/npm/man/man3/shrinkwrap.3 b/deps/npm/man/man3/shrinkwrap.3
index 0c638653533..0484c8bf768 100644
--- a/deps/npm/man/man3/shrinkwrap.3
+++ b/deps/npm/man/man3/shrinkwrap.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SHRINKWRAP" "3" "March 2013" "" ""
+.TH "NPM\-SHRINKWRAP" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-shrinkwrap\fR \-\- programmatically generate package shrinkwrap file
diff --git a/deps/npm/man/man3/start.3 b/deps/npm/man/man3/start.3
index df46be05b5a..cb7388cfc8f 100644
--- a/deps/npm/man/man3/start.3
+++ b/deps/npm/man/man3/start.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-START" "3" "March 2013" "" ""
+.TH "NPM\-START" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-start\fR \-\- Start a package
diff --git a/deps/npm/man/man3/stop.3 b/deps/npm/man/man3/stop.3
index 3c594cf80e4..f440eb7a417 100644
--- a/deps/npm/man/man3/stop.3
+++ b/deps/npm/man/man3/stop.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STOP" "3" "March 2013" "" ""
+.TH "NPM\-STOP" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-stop\fR \-\- Stop a package
diff --git a/deps/npm/man/man3/submodule.3 b/deps/npm/man/man3/submodule.3
index 4035d504828..682ec977c4f 100644
--- a/deps/npm/man/man3/submodule.3
+++ b/deps/npm/man/man3/submodule.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SUBMODULE" "3" "March 2013" "" ""
+.TH "NPM\-SUBMODULE" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-submodule\fR \-\- Add a package as a git submodule
diff --git a/deps/npm/man/man3/tag.3 b/deps/npm/man/man3/tag.3
index 0fcbd0a6770..a6bbe78efa9 100644
--- a/deps/npm/man/man3/tag.3
+++ b/deps/npm/man/man3/tag.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TAG" "3" "March 2013" "" ""
+.TH "NPM\-TAG" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-tag\fR \-\- Tag a published version
diff --git a/deps/npm/man/man3/test.3 b/deps/npm/man/man3/test.3
index adcdfa90ec6..43cbb6274db 100644
--- a/deps/npm/man/man3/test.3
+++ b/deps/npm/man/man3/test.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TEST" "3" "March 2013" "" ""
+.TH "NPM\-TEST" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-test\fR \-\- Test a package
diff --git a/deps/npm/man/man3/uninstall.3 b/deps/npm/man/man3/uninstall.3
index 94ffc67dcb9..4bbbea3606e 100644
--- a/deps/npm/man/man3/uninstall.3
+++ b/deps/npm/man/man3/uninstall.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNINSTALL" "3" "March 2013" "" ""
+.TH "NPM\-UNINSTALL" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-uninstall\fR \-\- uninstall a package programmatically
diff --git a/deps/npm/man/man3/unpublish.3 b/deps/npm/man/man3/unpublish.3
index 2549df53c23..df7b83bcf35 100644
--- a/deps/npm/man/man3/unpublish.3
+++ b/deps/npm/man/man3/unpublish.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNPUBLISH" "3" "March 2013" "" ""
+.TH "NPM\-UNPUBLISH" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-unpublish\fR \-\- Remove a package from the registry
diff --git a/deps/npm/man/man3/update.3 b/deps/npm/man/man3/update.3
index 3089d622321..30a620f295a 100644
--- a/deps/npm/man/man3/update.3
+++ b/deps/npm/man/man3/update.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UPDATE" "3" "March 2013" "" ""
+.TH "NPM\-UPDATE" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-update\fR \-\- Update a package
diff --git a/deps/npm/man/man3/version.3 b/deps/npm/man/man3/version.3
index 64720be2bb7..e7736abe8ab 100644
--- a/deps/npm/man/man3/version.3
+++ b/deps/npm/man/man3/version.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VERSION" "3" "March 2013" "" ""
+.TH "NPM\-VERSION" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-version\fR \-\- Bump a package version
diff --git a/deps/npm/man/man3/view.3 b/deps/npm/man/man3/view.3
index ca559236473..a94c77152a8 100644
--- a/deps/npm/man/man3/view.3
+++ b/deps/npm/man/man3/view.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VIEW" "3" "March 2013" "" ""
+.TH "NPM\-VIEW" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-view\fR \-\- View registry info
diff --git a/deps/npm/man/man3/whoami.3 b/deps/npm/man/man3/whoami.3
index dd682cdfb0e..89eb7f9c040 100644
--- a/deps/npm/man/man3/whoami.3
+++ b/deps/npm/man/man3/whoami.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-WHOAMI" "3" "March 2013" "" ""
+.TH "NPM\-WHOAMI" "3" "April 2013" "" ""
.
.SH "NAME"
\fBnpm-whoami\fR \-\- Display npm username
diff --git a/deps/npm/node_modules/cmd-shim/.npmignore b/deps/npm/node_modules/cmd-shim/.npmignore
new file mode 100644
index 00000000000..69f75d26c4d
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/.npmignore
@@ -0,0 +1,16 @@
+lib-cov
+*.seed
+*.log
+*.csv
+*.dat
+*.out
+*.pid
+*.gz
+
+pids
+logs
+results
+
+npm-debug.log
+
+node_modules
diff --git a/deps/npm/node_modules/cmd-shim/.travis.yml b/deps/npm/node_modules/cmd-shim/.travis.yml
new file mode 100644
index 00000000000..97e45158321
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - "0.10"
+ - "0.8" \ No newline at end of file
diff --git a/deps/npm/node_modules/cmd-shim/LICENSE b/deps/npm/node_modules/cmd-shim/LICENSE
new file mode 100644
index 00000000000..6e93978e0ed
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) Isaac Z. Schlueter ("Author")
+All rights reserved.
+
+The BSD License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/deps/npm/node_modules/cmd-shim/README.md b/deps/npm/node_modules/cmd-shim/README.md
new file mode 100644
index 00000000000..fb997d5db2e
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/README.md
@@ -0,0 +1,42 @@
+# cmd-shim
+
+The cmd-shim used in npm to create executable scripts on Windows,
+since symlinks are not suitable for this purpose there.
+
+On Unix systems, you should use a symbolic link instead.
+
+[![Build Status](https://travis-ci.org/ForbesLindesay/cmd-shim.png?branch=master)](https://travis-ci.org/ForbesLindesay/cmd-shim) [![Dependency Status](https://gemnasium.com/ForbesLindesay/cmd-shim.png)](https://gemnasium.com/ForbesLindesay/cmd-shim)
+
+## Installation
+
+```
+npm install cmd-shim
+```
+
+## API
+
+### cmdShim(from, to, cb)
+
+Create a cmd shim at `to` for the command line program at `from`.
+e.g.
+
+```javascript
+var cmdShim = require('cmd-shim');
+cmdShim(__dirname + '/cli.js', '/usr/bin/command-name', function (err) {
+ if (err) throw err;
+});
+```
+
+### cmdShim.ifExists(from, to, cb)
+
+The same as above, but will just continue if the file does not exist.
+Source:
+
+```javascript
+function cmdShimIfExists (from, to, cb) {
+ fs.stat(from, function (er) {
+ if (er) return cb()
+ cmdShim(from, to, cb)
+ })
+}
+```
diff --git a/deps/npm/node_modules/cmd-shim/index.js b/deps/npm/node_modules/cmd-shim/index.js
new file mode 100644
index 00000000000..1cfd24edc55
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/index.js
@@ -0,0 +1,180 @@
+// On windows, create a .cmd file.
+// Read the #! in the file to see what it uses. The vast majority
+// of the time, this will be either:
+// "#!/usr/bin/env <prog> <args...>"
+// or:
+// "#!<prog> <args...>"
+//
+// Write a binroot/pkg.bin + ".cmd" file that has this line in it:
+// @<prog> <args...> %~dp0<target> %*
+
+module.exports = cmdShim
+cmdShim.ifExists = cmdShimIfExists
+
+try {
+ var fs = require("graceful-fs")
+} catch (e) {
+ var fs = require("fs")
+}
+
+var mkdir = require("mkdirp")
+ , path = require("path")
+ , shebangExpr = /^#\!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/
+
+function cmdShimIfExists (from, to, cb) {
+ fs.stat(from, function (er) {
+ if (er) return cb()
+ cmdShim(from, to, cb)
+ })
+}
+
+// Try to unlink, but ignore errors.
+// Any problems will surface later.
+function rm (path, cb) {
+ fs.unlink(path, function(er) {
+ cb()
+ })
+}
+
+function cmdShim (from, to, cb) {
+ fs.stat(from, function (er, stat) {
+ if (er)
+ return cb(er)
+
+ cmdShim_(from, to, cb)
+ })
+}
+
+function cmdShim_ (from, to, cb) {
+ var then = times(2, next, cb)
+ rm(to, then)
+ rm(to + ".cmd", then)
+
+ function next(er) {
+ writeShim(from, to, cb)
+ }
+}
+
+function writeShim (from, to, cb) {
+ // make a cmd file and a sh script
+ // First, check if the bin is a #! of some sort.
+ // If not, then assume it's something that'll be compiled, or some other
+ // sort of script, and just call it directly.
+ mkdir(path.dirname(to), function (er) {
+ if (er)
+ return cb(er)
+ fs.readFile(from, "utf8", function (er, data) {
+ if (er) return writeShim_(from, to, null, null, cb)
+ var firstLine = data.trim().split(/\r*\n/)[0]
+ , shebang = firstLine.match(shebangExpr)
+ if (!shebang) return writeShim_(from, to, null, null, cb)
+ var prog = shebang[1]
+ , args = shebang[2] || ""
+ return writeShim_(from, to, prog, args, cb)
+ })
+ })
+}
+
+function writeShim_ (from, to, prog, args, cb) {
+ var shTarget = path.relative(path.dirname(to), from)
+ , target = shTarget.split("/").join("\\")
+ , longProg
+ , shProg = prog && prog.split("\\").join("/")
+ , shLongProg
+ shTarget = shTarget.split("\\").join("/")
+ args = args || ""
+ if (!prog) {
+ prog = "\"%~dp0\\" + target + "\""
+ shProg = "\"$basedir/" + shTarget + "\""
+ args = ""
+ target = ""
+ shTarget = ""
+ } else {
+ longProg = "\"%~dp0\\" + prog + ".exe\""
+ shLongProg = "\"$basedir/" + prog + "\""
+ target = "\"%~dp0\\" + target + "\""
+ shTarget = "\"$basedir/" + shTarget + "\""
+ }
+
+ // @IF EXIST "%~dp0\node.exe" (
+ // "%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
+ // ) ELSE (
+ // node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
+ // )
+ var cmd
+ if (longProg) {
+ cmd = "@IF EXIST " + longProg + " (\r\n"
+ + " " + longProg + " " + args + " " + target + " %*\r\n"
+ + ") ELSE (\r\n"
+ + " " + prog + " " + args + " " + target + " %*\r\n"
+ + ")"
+ } else {
+ cmd = prog + " " + args + " " + target + " %*\r\n"
+ }
+
+ // #!/bin/sh
+ // basedir=`dirname "$0"`
+ //
+ // case `uname` in
+ // *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+ // esac
+ //
+ // if [ -x "$basedir/node.exe" ]; then
+ // "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
+ // ret=$?
+ // else
+ // node "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
+ // ret=$?
+ // fi
+ // exit $ret
+
+ var sh = "#!/bin/sh\n"
+
+ if (shLongProg) {
+ sh = sh
+ + "basedir=`dirname \"$0\"`\n"
+ + "\n"
+ + "case `uname` in\n"
+ + " *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;\n"
+ + "esac\n"
+ + "\n"
+
+ sh = sh
+ + "if [ -x "+shLongProg+" ]; then\n"
+ + " " + shLongProg + " " + args + " " + shTarget + " \"$@\"\n"
+ + " ret=$?\n"
+ + "else \n"
+ + " " + shProg + " " + args + " " + shTarget + " \"$@\"\n"
+ + " ret=$?\n"
+ + "fi\n"
+ + "exit $ret\n"
+ } else {
+ sh = shProg + " " + args + " " + shTarget + " \"$@\"\n"
+ + "exit $?\n"
+ }
+
+ var then = times(2, next, cb)
+ fs.writeFile(to + ".cmd", cmd, "utf8", then)
+ fs.writeFile(to, sh, "utf8", then)
+ function next () {
+ chmodShim(to, cb)
+ }
+}
+
+function chmodShim (to, cb) {
+ var then = times(2, cb, cb)
+ fs.chmod(to, 0755, then)
+ fs.chmod(to + ".cmd", 0755, then)
+}
+
+function times(n, ok, cb) {
+ var errState = null
+ return function(er) {
+ if (!errState) {
+ if (er)
+ cb(errState = er)
+ else if (--n === 0)
+ ok()
+ }
+ }
+}
diff --git a/deps/npm/node_modules/cmd-shim/package.json b/deps/npm/node_modules/cmd-shim/package.json
new file mode 100644
index 00000000000..4090945077a
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "cmd-shim",
+ "version": "1.1.0",
+ "description": "Used in npm for command line application support",
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/ForbesLindesay/cmd-shim.git"
+ },
+ "license": "BSD",
+ "optionalDependencies": {
+ "graceful-fs": "1.2"
+ },
+ "dependencies": {
+ "mkdirp": "~0.3.3",
+ "graceful-fs": "1.2"
+ },
+ "devDependencies": {
+ "tap": "~0.4.1",
+ "rimraf": "~2.1.4"
+ },
+ "readme": "# cmd-shim\r\n\r\nThe cmd-shim used in npm to create executable scripts on Windows,\r\nsince symlinks are not suitable for this purpose there.\r\n\r\nOn Unix systems, you should use a symbolic link instead.\r\n\r\n[![Build Status](https://travis-ci.org/ForbesLindesay/cmd-shim.png?branch=master)](https://travis-ci.org/ForbesLindesay/cmd-shim) [![Dependency Status](https://gemnasium.com/ForbesLindesay/cmd-shim.png)](https://gemnasium.com/ForbesLindesay/cmd-shim)\r\n\r\n## Installation\r\n\r\n```\r\nnpm install cmd-shim\r\n```\r\n\r\n## API\r\n\r\n### cmdShim(from, to, cb)\r\n\r\nCreate a cmd shim at `to` for the command line program at `from`.\r\ne.g.\r\n\r\n```javascript\r\nvar cmdShim = require('cmd-shim');\r\ncmdShim(__dirname + '/cli.js', '/usr/bin/command-name', function (err) {\r\n if (err) throw err;\r\n});\r\n```\r\n\r\n### cmdShim.ifExists(from, to, cb)\r\n\r\nThe same as above, but will just continue if the file does not exist.\r\nSource:\r\n\r\n```javascript\r\nfunction cmdShimIfExists (from, to, cb) {\r\n fs.stat(from, function (er) {\r\n if (er) return cb()\r\n cmdShim(from, to, cb)\r\n })\r\n}\r\n```\r\n",
+ "readmeFilename": "README.md",
+ "_id": "cmd-shim@1.1.0",
+ "_from": "cmd-shim@"
+}
diff --git a/deps/npm/node_modules/cmd-shim/test/00-setup.js b/deps/npm/node_modules/cmd-shim/test/00-setup.js
new file mode 100644
index 00000000000..f2689e6f4d1
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/test/00-setup.js
@@ -0,0 +1,34 @@
+var test = require('tap').test
+var mkdirp = require('mkdirp')
+var fs = require('fs')
+var path = require('path')
+var fixtures = path.resolve(__dirname, 'fixtures')
+
+var froms = {
+ 'from.exe': 'exe',
+ 'from.env': '#!/usr/bin/env node\nconsole.log(/hi/)\n',
+ 'from.env.args': '#!/usr/bin/env node --expose_gc\ngc()\n',
+ 'from.sh': '#!/usr/bin/sh\necho hi\n',
+ 'from.sh.args': '#!/usr/bin/sh -x\necho hi\n'
+}
+
+var cmdShim = require('../')
+
+test('create fixture', function (t) {
+ mkdirp(fixtures, function (er) {
+ if (er)
+ throw er
+ t.pass('made dir')
+ Object.keys(froms).forEach(function (f) {
+ t.test('write ' + f, function (t) {
+ fs.writeFile(path.resolve(fixtures, f), froms[f], function (er) {
+ if (er)
+ throw er
+ t.pass('wrote ' + f)
+ t.end()
+ })
+ })
+ })
+ t.end()
+ })
+})
diff --git a/deps/npm/node_modules/cmd-shim/test/basic.js b/deps/npm/node_modules/cmd-shim/test/basic.js
new file mode 100644
index 00000000000..93da5ea26eb
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/test/basic.js
@@ -0,0 +1,167 @@
+var test = require('tap').test
+var mkdirp = require('mkdirp')
+var fs = require('fs')
+var path = require('path')
+var fixtures = path.resolve(__dirname, 'fixtures')
+
+var cmdShim = require('../')
+
+test('no shebang', function (t) {
+ var from = path.resolve(fixtures, 'from.exe')
+ var to = path.resolve(fixtures, 'exe.shim')
+ cmdShim(from, to, function(er) {
+ if (er)
+ throw er
+ t.equal(fs.readFileSync(to, 'utf8'),
+ "\"$basedir/from.exe\" \"$@\"\nexit $?\n")
+ t.equal(fs.readFileSync(to + '.cmd', 'utf8'),
+ "\"%~dp0\\from.exe\" %*\r\n")
+ t.end()
+ })
+})
+
+test('env shebang', function (t) {
+ var from = path.resolve(fixtures, 'from.env')
+ var to = path.resolve(fixtures, 'env.shim')
+ cmdShim(from, to, function(er) {
+ if (er)
+ throw er
+ console.error('%j', fs.readFileSync(to, 'utf8'))
+ console.error('%j', fs.readFileSync(to + '.cmd', 'utf8'))
+
+ t.equal(fs.readFileSync(to, 'utf8'),
+ "#!/bin/sh"+
+ "\nbasedir=`dirname \"$0\"`"+
+ "\n"+
+ "\ncase `uname` in"+
+ "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;"+
+ "\nesac"+
+ "\n"+
+ "\nif [ -x \"$basedir/node\" ]; then"+
+ "\n \"$basedir/node\" \"$basedir/from.env\" \"$@\""+
+ "\n ret=$?"+
+ "\nelse "+
+ "\n node \"$basedir/from.env\" \"$@\""+
+ "\n ret=$?"+
+ "\nfi"+
+ "\nexit $ret"+
+ "\n")
+ t.equal(fs.readFileSync(to + '.cmd', 'utf8'),
+ "@IF EXIST \"%~dp0\\node.exe\" (\r"+
+ "\n \"%~dp0\\node.exe\" \"%~dp0\\from.env\" %*\r"+
+ "\n) ELSE (\r"+
+ "\n node \"%~dp0\\from.env\" %*\r"+
+ "\n)")
+ t.end()
+ })
+})
+
+test('env shebang with args', function (t) {
+ var from = path.resolve(fixtures, 'from.env.args')
+ var to = path.resolve(fixtures, 'env.args.shim')
+ cmdShim(from, to, function(er) {
+ if (er)
+ throw er
+ console.error('%j', fs.readFileSync(to, 'utf8'))
+ console.error('%j', fs.readFileSync(to + '.cmd', 'utf8'))
+
+ t.equal(fs.readFileSync(to, 'utf8'),
+ "#!/bin/sh"+
+ "\nbasedir=`dirname \"$0\"`"+
+ "\n"+
+ "\ncase `uname` in"+
+ "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;"+
+ "\nesac"+
+ "\n"+
+ "\nif [ -x \"$basedir/node\" ]; then"+
+ "\n \"$basedir/node\" --expose_gc \"$basedir/from.env.args\" \"$@\""+
+ "\n ret=$?"+
+ "\nelse "+
+ "\n node --expose_gc \"$basedir/from.env.args\" \"$@\""+
+ "\n ret=$?"+
+ "\nfi"+
+ "\nexit $ret"+
+ "\n")
+ t.equal(fs.readFileSync(to + '.cmd', 'utf8'),
+ "@IF EXIST \"%~dp0\\node.exe\" (\r"+
+ "\n \"%~dp0\\node.exe\" --expose_gc \"%~dp0\\from.env.args\" %*\r"+
+ "\n) ELSE (\r"+
+ "\n node --expose_gc \"%~dp0\\from.env.args\" %*\r"+
+ "\n)")
+ t.end()
+ })
+})
+
+test('explicit shebang', function (t) {
+ var from = path.resolve(fixtures, 'from.sh')
+ var to = path.resolve(fixtures, 'sh.shim')
+ cmdShim(from, to, function(er) {
+ if (er)
+ throw er
+ console.error('%j', fs.readFileSync(to, 'utf8'))
+ console.error('%j', fs.readFileSync(to + '.cmd', 'utf8'))
+
+ t.equal(fs.readFileSync(to, 'utf8'),
+ "#!/bin/sh" +
+ "\nbasedir=`dirname \"$0\"`" +
+ "\n" +
+ "\ncase `uname` in" +
+ "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;" +
+ "\nesac" +
+ "\n" +
+ "\nif [ -x \"$basedir//usr/bin/sh\" ]; then" +
+ "\n \"$basedir//usr/bin/sh\" \"$basedir/from.sh\" \"$@\"" +
+ "\n ret=$?" +
+ "\nelse " +
+ "\n /usr/bin/sh \"$basedir/from.sh\" \"$@\"" +
+ "\n ret=$?" +
+ "\nfi" +
+ "\nexit $ret" +
+ "\n")
+
+ t.equal(fs.readFileSync(to + '.cmd', 'utf8'),
+ "@IF EXIST \"%~dp0\\/usr/bin/sh.exe\" (\r" +
+ "\n \"%~dp0\\/usr/bin/sh.exe\" \"%~dp0\\from.sh\" %*\r" +
+ "\n) ELSE (\r" +
+ "\n /usr/bin/sh \"%~dp0\\from.sh\" %*\r" +
+ "\n)")
+ t.end()
+ })
+})
+
+test('explicit shebang with args', function (t) {
+ var from = path.resolve(fixtures, 'from.sh.args')
+ var to = path.resolve(fixtures, 'sh.args.shim')
+ cmdShim(from, to, function(er) {
+ if (er)
+ throw er
+ console.error('%j', fs.readFileSync(to, 'utf8'))
+ console.error('%j', fs.readFileSync(to + '.cmd', 'utf8'))
+
+ t.equal(fs.readFileSync(to, 'utf8'),
+ "#!/bin/sh" +
+ "\nbasedir=`dirname \"$0\"`" +
+ "\n" +
+ "\ncase `uname` in" +
+ "\n *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;" +
+ "\nesac" +
+ "\n" +
+ "\nif [ -x \"$basedir//usr/bin/sh\" ]; then" +
+ "\n \"$basedir//usr/bin/sh\" -x \"$basedir/from.sh.args\" \"$@\"" +
+ "\n ret=$?" +
+ "\nelse " +
+ "\n /usr/bin/sh -x \"$basedir/from.sh.args\" \"$@\"" +
+ "\n ret=$?" +
+ "\nfi" +
+ "\nexit $ret" +
+ "\n")
+
+ t.equal(fs.readFileSync(to + '.cmd', 'utf8'),
+ "@IF EXIST \"%~dp0\\/usr/bin/sh.exe\" (\r" +
+ "\n \"%~dp0\\/usr/bin/sh.exe\" -x \"%~dp0\\from.sh.args\" %*\r" +
+ "\n) ELSE (\r" +
+ "\n /usr/bin/sh -x \"%~dp0\\from.sh.args\" %*\r" +
+ "\n)")
+ t.end()
+ })
+})
diff --git a/deps/npm/node_modules/cmd-shim/test/zz-cleanup.js b/deps/npm/node_modules/cmd-shim/test/zz-cleanup.js
new file mode 100644
index 00000000000..47b78996164
--- /dev/null
+++ b/deps/npm/node_modules/cmd-shim/test/zz-cleanup.js
@@ -0,0 +1,13 @@
+var test = require('tap').test
+var path = require('path')
+var fixtures = path.resolve(__dirname, 'fixtures')
+var rimraf = require('rimraf')
+
+test('cleanup', function(t) {
+ rimraf(fixtures, function(er) {
+ if (er)
+ throw er
+ t.pass('cleaned up')
+ t.end()
+ })
+})
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
index 6949ad5fd40..133d8f8c6a3 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
@@ -351,7 +351,7 @@ cmd_touch = touch $@
quiet_cmd_copy = COPY $@
# send stderr to /dev/null to ignore messages when linking directories.
-cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@")
+cmd_copy = rm -rf "$@" && cp -af "$<" "$@"
%(link_commands)s
"""
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
index c12f223d88a..f15b473efe1 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
@@ -1679,7 +1679,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params,
master_ninja.rule(
'copy',
description='COPY $in $out',
- command='ln -f $in $out 2>/dev/null || (rm -rf $out && cp -af $in $out)')
+ command='rm -rf $out && cp -af $in $out')
master_ninja.newline()
all_targets = set()
diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
index 3a785f23687..dd6393f01c4 100644
--- a/deps/npm/node_modules/node-gyp/package.json
+++ b/deps/npm/node_modules/node-gyp/package.json
@@ -10,7 +10,7 @@
"bindings",
"gyp"
],
- "version": "0.9.3",
+ "version": "0.9.5",
"installVersion": 9,
"author": {
"name": "Nathan Rajlich",
@@ -46,10 +46,10 @@
},
"readme": "node-gyp\n=========\n### Node.js native addon build tool\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for compiling\nnative addon modules for Node.js, which takes away the pain of dealing with the\nvarious differences in build platforms. It is the replacement to the `node-waf`\nprogram which is removed for node `v0.8`. If you have a native addon for node that\nstill has a `wscript` file, then you should definitely add a `binding.gyp` file\nto support the latest versions of node.\n\nMultiple target versions of node are supported (i.e. `0.6`, `0.7`,..., `1.0`,\netc.), regardless of what version of node is actually installed on your system\n(`node-gyp` downloads the necessary development files for the target version).\n\n#### Features:\n\n * Easy to use, consistent interface\n * Same commands to build your module on every platform\n * Supports multiple target versions of Node\n\n\nInstallation\n------------\n\nYou can install with `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nYou will also need to install:\n\n * On Unix:\n * `python`\n * `make`\n * A proper C/C++ compiler toolchain, like GCC\n * On Windows:\n * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is __*not*__ supported)\n * Windows XP/Vista/7:\n * Microsoft Visual Studio C++ 2010 ([Express][msvc2010] version works well)\n * For 64-bit builds of node and native modules you will _**also**_ need the [Windows 7 64-bit SDK][win7sdk]\n * If the install fails, try uninstalling any C++ 2010 x64&x86 Redistributable that you have installed first.\n * If you get errors that the 64-bit compilers are not installed you may also need the [compiler update for the Windows SDK 7.1]\n * Windows 8:\n * Microsoft Visual Studio C++ 2012 for Windows Desktop ([Express][msvc2012] version works well)\n\nNote that OS X is just a flavour of Unix and so needs `python`, `make`, and C/C++.\nAn easy way to obtain these is to install XCode from Apple,\nand then use it to install the command line tools (under Preferences -> Downloads).\n\nHow to Use\n----------\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\n__Note__: The `configure` step looks for the `binding.gyp` file in the current\ndirectory to processs. See below for instructions on creating the `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point\nyou can require the `.node` file with Node and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running the either `configure` or `build` command.\n\n\nThe \"binding.gyp\" file\n----------------------\n\nPreviously when node had `node-waf` you had to write a `wscript` file. The\nreplacement for that is the `binding.gyp` file, which describes the configuration\nto build your module in a JSON-like format. This file gets placed in the root of\nyour package, alongside the `package.json` file.\n\nA barebones `gyp` file appropriate for building a node addon looks like:\n\n``` json\n{\n \"targets\": [\n {\n \"target_name\": \"binding\",\n \"sources\": [ \"src/binding.cc\" ]\n }\n ]\n}\n```\n\nSome additional resources for writing `gyp` files:\n\n * [\"Hello World\" node addon example](https://github.com/joyent/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](http://code.google.com/p/gyp/wiki/GypUserDocumentation)\n * [gyp input format reference](http://code.google.com/p/gyp/wiki/InputFormatReference)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/TooTallNate/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n\nCommands\n--------\n\n`node-gyp` responds to the following commands:\n\n| **Command** | **Description**\n|:--------------|:---------------------------------------------------------------\n| `build` | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean` | Removes any the `build` dir if it exists\n| `configure` | Generates project build files for the current platform\n| `rebuild` | Runs \"clean\", \"configure\" and \"build\" all in a row\n| `install` | Installs node development header files for the given version\n| `list` | Lists the currently installed node development file versions\n| `remove` | Removes the node development header files for the given version\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[windows-python]: http://www.python.org/getit/windows\n[windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download\n[msvc2010]: http://go.microsoft.com/?linkid=9709949\n[msvc2012]: http://go.microsoft.com/?linkid=9816758\n[win7sdk]: http://www.microsoft.com/en-us/download/details.aspx?id=8279\n[compiler update for the Windows SDK 7.1]: http://www.microsoft.com/en-us/download/details.aspx?id=4422\n",
"readmeFilename": "README.md",
- "_id": "node-gyp@0.9.3",
+ "_id": "node-gyp@0.9.5",
"dist": {
- "shasum": "575868f6bded377c5904e8acffb4921d2f077fbe"
+ "shasum": "43482999c1233e1d16e949a58f28b493d56b5b1d"
},
- "_from": "node-gyp@0.9.3",
- "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-0.9.3.tgz"
+ "_from": "node-gyp@0.9.5",
+ "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-0.9.5.tgz"
}
diff --git a/deps/npm/package.json b/deps/npm/package.json
index b77c0753c5b..b4c704df971 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "1.2.15",
+ "version": "1.2.17",
"name": "npm",
"publishConfig": {
"proprietary-attribs": false
@@ -69,7 +69,8 @@
"once": "~1.1.1",
"npmconf": "0",
"opener": "~1.3.0",
- "chmodr": "~0.1.0"
+ "chmodr": "~0.1.0",
+ "cmd-shim": "~1.1.0"
},
"bundleDependencies": [
"semver",
@@ -107,7 +108,8 @@
"once",
"npmconf",
"opener",
- "chmodr"
+ "chmodr",
+ "cmd-shim"
],
"devDependencies": {
"ronn": "~0.3.6",
diff --git a/doc/api/domain.markdown b/doc/api/domain.markdown
index 4a0ee67dbba..b93c3fcd622 100644
--- a/doc/api/domain.markdown
+++ b/doc/api/domain.markdown
@@ -48,9 +48,11 @@ d.on('error', function(er) {
// This is no better than process.on('uncaughtException')!
console.log('error, but oh well', er.message);
});
-require('http').createServer(function(req, res) {
- handleRequest(req, res);
-}).listen(PORT);
+d.run(function() {
+ require('http').createServer(function(req, res) {
+ handleRequest(req, res);
+ }).listen(PORT);
+});
```
By using the context of a domain, and the resilience of separating our
diff --git a/doc/blog/release/v0.10.2.md b/doc/blog/release/v0.10.2.md
index 92e834dfb62..67957dd547f 100644
--- a/doc/blog/release/v0.10.2.md
+++ b/doc/blog/release/v0.10.2.md
@@ -68,8 +68,8 @@ Shasums:
```
860ed25d3e77d4676b5512f87f3f98b6783ee258 node-v0.10.2-darwin-x64.tar.gz
811eb3b66651dfffeaf928496e8eecab5c9304fb node-v0.10.2-darwin-x86.tar.gz
-0013be477da5d066471390c9964f796356b48948 node-v0.10.2-linux-x64.tar.gz
-97c3a052d833bfc799bc9b748520a15cfb189a58 node-v0.10.2-linux-x86.tar.gz
+2914731bdbe809483ed9da2578ce19121494e437 node-v0.10.2-linux-x64.tar.gz
+dbf039ee15e423738db4ffc9c498d6b0ad54da07 node-v0.10.2-linux-x86.tar.gz
17bc5bf26af7da790e6b0c4cbb2b73ea1c9f2ed5 node-v0.10.2-sunos-x64.tar.gz
5e02e35cc15ae56953921ad4c8e45b849c736e20 node-v0.10.2-sunos-x86.tar.gz
2adb1bf5919fb8adeaf96edd8a8ed16d71a3f8f8 node-v0.10.2-x86.msi
diff --git a/doc/blog/release/v0.10.3.md b/doc/blog/release/v0.10.3.md
new file mode 100644
index 00000000000..288eb26384a
--- /dev/null
+++ b/doc/blog/release/v0.10.3.md
@@ -0,0 +1,77 @@
+date: Wed Apr 3 11:24:08 PDT 2013
+version: 0.10.3
+category: release
+title: Node v0.10.3 (Stable)
+slug: node-v0-10-3-stable
+
+2013.04.03, Version 0.10.3 (Stable)
+
+* npm: Upgrade to 1.2.17
+
+* child_process: acknowledge sent handles (Fedor Indutny)
+
+* etw: update prototypes to match dtrace provider (Timothy J Fontaine)
+
+* dtrace: pass more arguments to probes (Dave Pacheco)
+
+* build: allow building with dtrace on osx (Dave Pacheco)
+
+* http: Remove legacy ECONNRESET workaround code (isaacs)
+
+* http: Ensure socket cleanup on client response end (isaacs)
+
+* tls: Destroy socket when encrypted side closes (isaacs)
+
+* repl: isSyntaxError() catches "strict mode" errors (Nathan Rajlich)
+
+* crypto: Pass options to ctor calls (isaacs)
+
+* src: tie process.versions.uv to uv_version_string() (Ben Noordhuis)
+
+
+Source Code: http://nodejs.org/dist/v0.10.3/node-v0.10.3.tar.gz
+
+Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.3/node-v0.10.3.pkg
+
+Windows Installer: http://nodejs.org/dist/v0.10.3/node-v0.10.3-x86.msi
+
+Windows x64 Installer: http://nodejs.org/dist/v0.10.3/x64/node-v0.10.3-x64.msi
+
+Windows x64 Files: http://nodejs.org/dist/v0.10.3/x64/
+
+Linux 32-bit Binary: http://nodejs.org/dist/v0.10.3/node-v0.10.3-linux-x86.tar.gz
+
+Linux 64-bit Binary: http://nodejs.org/dist/v0.10.3/node-v0.10.3-linux-x64.tar.gz
+
+Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.3/node-v0.10.3-sunos-x86.tar.gz
+
+Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.3/node-v0.10.3-sunos-x64.tar.gz
+
+Other release files: http://nodejs.org/dist/v0.10.3/
+
+Website: http://nodejs.org/docs/v0.10.3/
+
+Documentation: http://nodejs.org/docs/v0.10.3/api/
+
+Shasums:
+
+```
+9b2f0936ee60aa65f6a5053e82440508aa9be0a7 node-v0.10.3-darwin-x64.tar.gz
+f0392db831ca58c1f7b2d857d7e8cc601ea8b022 node-v0.10.3-darwin-x86.tar.gz
+9a375e77f9994fbd4afd741bae64c548f2a43a64 node-v0.10.3-linux-x64.tar.gz
+3323da517271e45a3850b169b10ef3d254a263a9 node-v0.10.3-linux-x86.tar.gz
+0026e2453a3940ed16b9569b8187943ccf0aeb45 node-v0.10.3-sunos-x64.tar.gz
+af88ad2dc98368b36f1aafc7b79f8378169fc56e node-v0.10.3-sunos-x86.tar.gz
+e057c8841ddbe4dc8bc155a28b7e07dbe3d108d1 node-v0.10.3-x86.msi
+a37575d47de5696b8abb2e12dc3e9d0cdb5d17f6 node-v0.10.3.pkg
+4a1feb4ac18ede9e7193921f59fc181c88b1c7ba node-v0.10.3.tar.gz
+9d9266d1e69bfe24837c67ff755f055fd049cd48 node.exe
+8762416a5e0d71e285215efde181c7242f3f2c6f node.exp
+5c05f332070a77900010f15c1074c4e86e20fa0d node.lib
+a8dc61535f6ae5fd13bce9cdca989ffc113a4080 node.pdb
+b834751b2e9f18e6ef38cf9fe5331e6073e3cab2 x64/node-v0.10.3-x64.msi
+932c30a53f546717f00de063ee09fc8ce603dd2a x64/node.exe
+a3e91038e027c91a555116d2c20742eea2e9378f x64/node.exp
+d60bb0f9026df9dcc17cff0267964032aaf46712 x64/node.lib
+f645a2d63179ae749defe13c653cf1777dd9021a x64/node.pdb
+```
diff --git a/doc/blog/release/v0.11.0.md b/doc/blog/release/v0.11.0.md
new file mode 100644
index 00000000000..7f917b42474
--- /dev/null
+++ b/doc/blog/release/v0.11.0.md
@@ -0,0 +1,86 @@
+date: Thu Mar 28 14:52:55 PDT 2013
+version: 0.11.0
+category: release
+title: Node v0.11.0 (Unstable)
+slug: node-v0-11-0-stable
+
+2013.03.28, Version 0.11.0 (Unstable)
+
+* V8: update to 3.17.13
+
+* os: use %SystemRoot% or %windir% in os.tmpdir() (Suwon Chae)
+
+* util: fix util.inspect() line width calculation (Marcin Kostrzewa)
+
+* buffer: remove _charsWritten (Trevor Norris)
+
+* fs: uv_[fl]stat now reports subsecond resolution (Timothy J Fontaine)
+
+* fs: Throw if error raised and missing callback (bnoordhuis)
+
+* tls: expose SSL_CTX_set_timeout via tls.createServer (Manav Rathi)
+
+* tls: remove harmful unnecessary bounds checking (Marcel Laverdet)
+
+* buffer: write ascii strings using WriteOneByte (Trevor Norris)
+
+* dtrace: fix generation of v8 constants on freebsd (Fedor Indutny)
+
+* dtrace: x64 ustack helper (Fedor Indutny)
+
+* readline: handle wide characters properly (Nao Iizuka)
+
+* repl: Use a domain to catch async errors safely (isaacs)
+
+* repl: emit 'reset' event when context is reset (Sami Samhuri)
+
+* util: custom `inspect()` method may return an Object (Nathan Rajlich)
+
+* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
+
+
+Source Code: http://nodejs.org/dist/v0.11.0/node-v0.11.0.tar.gz
+
+Macintosh Installer (Universal): http://nodejs.org/dist/v0.11.0/node-v0.11.0.pkg
+
+Windows Installer: http://nodejs.org/dist/v0.11.0/node-v0.11.0-x86.msi
+
+Windows x64 Installer: http://nodejs.org/dist/v0.11.0/x64/node-v0.11.0-x64.msi
+
+Windows x64 Files: http://nodejs.org/dist/v0.11.0/x64/
+
+Linux 32-bit Binary: http://nodejs.org/dist/v0.11.0/node-v0.11.0-linux-x86.tar.gz
+
+Linux 64-bit Binary: http://nodejs.org/dist/v0.11.0/node-v0.11.0-linux-x64.tar.gz
+
+Solaris 32-bit Binary: http://nodejs.org/dist/v0.11.0/node-v0.11.0-sunos-x86.tar.gz
+
+Solaris 64-bit Binary: http://nodejs.org/dist/v0.11.0/node-v0.11.0-sunos-x64.tar.gz
+
+Other release files: http://nodejs.org/dist/v0.11.0/
+
+Website: http://nodejs.org/docs/v0.11.0/
+
+Documentation: http://nodejs.org/docs/v0.11.0/api/
+
+Shasums:
+```
+4889d63a4a08d146d59cd057b1c8b341ceac07cf node-v0.11.0-darwin-x64.tar.gz
+4ef64fa36c095edfa3c6da852ed1ec46c6f3cf23 node-v0.11.0-darwin-x86.tar.gz
+04c4d1fb71f98dfc921d9558667a727ca1aa6586 node-v0.11.0-linux-x64.tar.gz
+b1507837292e23464e2d184007f2567db3db1483 node-v0.11.0-linux-x86.tar.gz
+cd195da08ea5208a6c08b95511fa888d750f4cd7 node-v0.11.0-sunos-x64.tar.gz
+4698b9a6cb911cbea3deac38ea191cef3051b3ab node-v0.11.0-sunos-x86.tar.gz
+829649fe65133459c7fc231b8d048f19ae870c7b node-v0.11.0-x86.msi
+7958b8212aaa9787724c552197d37cf5602ff645 node-v0.11.0.pkg
+0402aae18f847238409e9d1a5ddd806beb5fe678 node-v0.11.0.tar.gz
+320778de3329437815daa4f86d1a89db33458126 node.exe
+1f4f509a9dc48c519064ca7f2deddeaff2b6b15b node.exp
+5f83864acae194c0652a61af71262bd1ba55a04c node.lib
+0d100a18ba569e5e9bb9e216355959261c4cd77b node.pdb
+b55553c83e12f253f23dec4d998b05bd673db83b x64/node-v0.11.0-x64.msi
+7100ef58f9a8428d2bdd9d4de8ffb679d0198b1e x64/node.exe
+12bf810852e7097bde1bf4bff6cd7f802603cdb9 x64/node.exp
+28f83178241353dc727ba6d8ff38f9b9177be79a x64/node.lib
+6c0f43db501facc3d9ed542a090f9ba2e84bdc41 x64/node.pdb
+```
diff --git a/lib/assert.js b/lib/assert.js
index a2afdcfb0ba..078efe39c77 100644
--- a/lib/assert.js
+++ b/lib/assert.js
@@ -38,16 +38,14 @@ var assert = module.exports = ok;
// expected: expected })
assert.AssertionError = function AssertionError(options) {
- this.name = 'AssertionError';
this.message = options.message;
this.actual = options.actual;
this.expected = options.expected;
this.operator = options.operator;
var stackStartFunction = options.stackStartFunction || fail;
- if (Error.captureStackTrace) {
- Error.captureStackTrace(this, stackStartFunction);
- }
+ this.name = getName(this, options.message);
+ Error.captureStackTrace(this, stackStartFunction);
};
// assert.AssertionError instanceof Error
@@ -74,18 +72,16 @@ function truncate(s, n) {
}
}
-assert.AssertionError.prototype.toString = function() {
- if (this.message) {
- return [this.name + ':', this.message].join(' ');
+function getName(self, message) {
+ if (message) {
+ return 'AssertionError: ' + message;
} else {
- return [
- this.name + ':',
- truncate(JSON.stringify(this.actual, replacer), 128),
- this.operator,
- truncate(JSON.stringify(this.expected, replacer), 128)
- ].join(' ');
+ return 'AssertionError: ' +
+ truncate(JSON.stringify(self.actual, replacer), 128) + ' ' +
+ self.operator + ' ' +
+ truncate(JSON.stringify(self.expected, replacer), 128);
}
-};
+}
// At present only the three keys mentioned above are used and
// understood by the spec. Implementations or sub modules can pass
diff --git a/lib/child_process.js b/lib/child_process.js
index e67615d21b3..e4fe26ecda7 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -24,6 +24,7 @@ var EventEmitter = require('events').EventEmitter;
var net = require('net');
var dgram = require('dgram');
var Process = process.binding('process_wrap').Process;
+var assert = require('assert');
var util = require('util');
var constants; // if (!constants) constants = process.binding('constants');
@@ -321,6 +322,7 @@ function handleMessage(target, message, handle) {
function setupChannel(target, channel) {
target._channel = channel;
+ target._handleQueue = null;
var decoder = new StringDecoder('utf8');
var jsonBuffer = '';
@@ -358,8 +360,22 @@ function setupChannel(target, channel) {
// handlers will go through this
target.on('internalMessage', function(message, handle) {
+ // Once acknowledged - continue sending handles.
+ if (message.cmd === 'NODE_HANDLE_ACK') {
+ assert(Array.isArray(target._handleQueue));
+ var queue = target._handleQueue;
+ target._handleQueue = null;
+ queue.forEach(function(args) {
+ target.send(args.message, args.handle);
+ });
+ return;
+ }
+
if (message.cmd !== 'NODE_HANDLE') return;
+ // Acknowledge handle receival.
+ target.send({ cmd: 'NODE_HANDLE_ACK' });
+
var obj = handleConversion[message.type];
// Update simultaneous accepts on Windows
@@ -389,6 +405,7 @@ function setupChannel(target, channel) {
// this message will be handled by an internalMessage event handler
message = {
cmd: 'NODE_HANDLE',
+ type: null,
msg: message
};
@@ -407,6 +424,12 @@ function setupChannel(target, channel) {
throw new TypeError("This handle type can't be sent");
}
+ // Queue-up message and handle if we haven't received ACK yet.
+ if (this._handleQueue) {
+ this._handleQueue.push({ message: message.msg, handle: handle });
+ return;
+ }
+
var obj = handleConversion[message.type];
// convert TCP object to native handle object
@@ -416,6 +439,10 @@ function setupChannel(target, channel) {
if (obj.simultaneousAccepts) {
net._setSimultaneousAccepts(handle);
}
+ } else if (this._handleQueue) {
+ // Queue request anyway to avoid out-of-order messages.
+ this._handleQueue.push({ message: message, handle: null });
+ return;
}
var string = JSON.stringify(message) + '\n';
@@ -426,6 +453,8 @@ function setupChannel(target, channel) {
'write',
'cannot write to IPC channel.');
this.emit('error', er);
+ } else if (handle && !this._handleQueue) {
+ this._handleQueue = [];
}
if (obj && obj.postSend) {
diff --git a/lib/crypto.js b/lib/crypto.js
index 1e7ec9655dd..9fd7ad6b90c 100644
--- a/lib/crypto.js
+++ b/lib/crypto.js
@@ -59,7 +59,7 @@ var StringDecoder = require('string_decoder').StringDecoder;
function Credentials(secureProtocol, flags, context) {
if (!(this instanceof Credentials)) {
- return new Credentials(secureProtocol);
+ return new Credentials(secureProtocol, flags, context);
}
if (!crypto) {
@@ -171,7 +171,7 @@ util.inherits(LazyTransform, stream.Transform);
exports.createHash = exports.Hash = Hash;
function Hash(algorithm, options) {
if (!(this instanceof Hash))
- return new Hash(algorithm);
+ return new Hash(algorithm, options);
this._binding = new binding.Hash(algorithm);
LazyTransform.call(this, options);
}
@@ -209,7 +209,7 @@ exports.createHmac = exports.Hmac = Hmac;
function Hmac(hmac, key, options) {
if (!(this instanceof Hmac))
- return new Hmac(hmac, key);
+ return new Hmac(hmac, key, options);
this._binding = new binding.Hmac();
this._binding.init(hmac, toBuf(key));
LazyTransform.call(this, options);
@@ -233,7 +233,7 @@ function getDecoder(decoder, encoding) {
exports.createCipher = exports.Cipher = Cipher;
function Cipher(cipher, password, options) {
if (!(this instanceof Cipher))
- return new Cipher(cipher, password);
+ return new Cipher(cipher, password, options);
this._binding = new binding.CipherBase(true);
this._binding.init(cipher, toBuf(password));
@@ -293,7 +293,7 @@ Cipher.prototype.setAutoPadding = function(ap) {
exports.createCipheriv = exports.Cipheriv = Cipheriv;
function Cipheriv(cipher, key, iv, options) {
if (!(this instanceof Cipheriv))
- return new Cipheriv(cipher, key, iv);
+ return new Cipheriv(cipher, key, iv, options);
this._binding = new binding.CipherBase(true);
this._binding.initiv(cipher, toBuf(key), toBuf(iv));
this._decoder = null;
@@ -314,7 +314,7 @@ Cipheriv.prototype.setAutoPadding = Cipher.prototype.setAutoPadding;
exports.createDecipher = exports.Decipher = Decipher;
function Decipher(cipher, password, options) {
if (!(this instanceof Decipher))
- return new Decipher(cipher, password);
+ return new Decipher(cipher, password, options);
this._binding = new binding.CipherBase(false);
this._binding.init(cipher, toBuf(password));
@@ -337,7 +337,7 @@ Decipher.prototype.setAutoPadding = Cipher.prototype.setAutoPadding;
exports.createDecipheriv = exports.Decipheriv = Decipheriv;
function Decipheriv(cipher, key, iv, options) {
if (!(this instanceof Decipheriv))
- return new Decipheriv(cipher, key, iv);
+ return new Decipheriv(cipher, key, iv, options);
this._binding = new binding.CipherBase(false);
this._binding.initiv(cipher, toBuf(key), toBuf(iv));
@@ -360,7 +360,7 @@ Decipheriv.prototype.setAutoPadding = Cipher.prototype.setAutoPadding;
exports.createSign = exports.Sign = Sign;
function Sign(algorithm, options) {
if (!(this instanceof Sign))
- return new Sign(algorithm);
+ return new Sign(algorithm, options);
this._binding = new binding.Sign();
this._binding.init(algorithm);
@@ -391,7 +391,7 @@ Sign.prototype.sign = function(key, encoding) {
exports.createVerify = exports.Verify = Verify;
function Verify(algorithm, options) {
if (!(this instanceof Verify))
- return new Verify(algorithm);
+ return new Verify(algorithm, options);
this._binding = new binding.Verify;
this._binding.init(algorithm);
diff --git a/lib/http.js b/lib/http.js
index dacedd4477f..b4fc2add113 100644
--- a/lib/http.js
+++ b/lib/http.js
@@ -514,23 +514,7 @@ OutgoingMessage.prototype._writeRaw = function(data, encoding) {
return this.connection.write(data, encoding);
} else if (this.connection && this.connection.destroyed) {
// The socket was destroyed. If we're still trying to write to it,
- // then something bad happened, but it could be just that we haven't
- // gotten the 'close' event yet.
- //
- // In v0.10 and later, this isn't a problem, since ECONNRESET isn't
- // ignored in the first place. We'll probably emit 'close' on the
- // next tick, but just in case it's not coming, set a timeout that
- // will emit it for us.
- if (!this._hangupClose) {
- this._hangupClose = true;
- var socket = this.socket;
- var timer = setTimeout(function() {
- socket.emit('close');
- });
- socket.once('close', function() {
- clearTimeout(timer);
- });
- }
+ // then we haven't gotten the 'close' event yet.
return false;
} else {
// buffer, as long as we're not destroyed.
@@ -1635,8 +1619,10 @@ function parserOnIncomingClient(res, shouldKeepAlive) {
COUNTER_HTTP_CLIENT_RESPONSE();
req.res = res;
res.req = req;
- var handled = req.emit('response', res);
+
+ // add our listener first, so that we guarantee socket cleanup
res.on('end', responseOnEnd);
+ var handled = req.emit('response', res);
// If the user did not listen for the 'response' event, then they
// can't possibly read the data, so we ._dump() it into the void
@@ -1667,7 +1653,11 @@ function responseOnEnd() {
}
socket.removeListener('close', socketCloseListener);
socket.removeListener('error', socketErrorListener);
- socket.emit('free');
+ // Mark this socket as available, AFTER user-added end
+ // handlers have a chance to run.
+ process.nextTick(function() {
+ socket.emit('free');
+ });
}
}
diff --git a/lib/querystring.js b/lib/querystring.js
index 12b6013d525..0ab739a5226 100644
--- a/lib/querystring.js
+++ b/lib/querystring.js
@@ -22,7 +22,6 @@
// Query String Utilities
var QueryString = exports;
-var urlDecode = process.binding('http_parser').urlDecode;
// If obj.hasOwnProperty has been overridden, then calling
diff --git a/lib/repl.js b/lib/repl.js
index 52893cddcbe..7e9d0527b04 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -937,7 +937,9 @@ function isSyntaxError(e) {
// RegExp syntax error
!e.match(/^SyntaxError: Invalid regular expression/) &&
!e.match(/^SyntaxError: Invalid flags supplied to RegExp constructor/) &&
+ // "strict mode" syntax errors
+ !e.match(/^SyntaxError: .*strict mode.*/i) &&
// JSON.parse() error
!(e.match(/^SyntaxError: Unexpected (token .*|end of input)/) &&
- e.match(/\n at Object.parse \(native\)\n/));
+ e.match(/\n {4}at Object.parse \(native\)\n/));
}
diff --git a/lib/tls.js b/lib/tls.js
index f0cdaac9678..55effb62733 100644
--- a/lib/tls.js
+++ b/lib/tls.js
@@ -1328,6 +1328,12 @@ function pipe(pair, socket) {
pair.encrypted.pipe(socket);
socket.pipe(pair.encrypted);
+ pair.encrypted.on('close', function() {
+ process.nextTick(function() {
+ socket.destroy();
+ });
+ });
+
pair.fd = socket.fd;
var cleartext = pair.cleartext;
cleartext.socket = socket;
diff --git a/node.gyp b/node.gyp
index dabbfd03635..4bf1ba762e8 100644
--- a/node.gyp
+++ b/node.gyp
@@ -110,6 +110,7 @@
'src/node_buffer.h',
'src/node_constants.h',
'src/node_crypto.h',
+ 'src/node_crypto_bio.h',
'src/node_extensions.h',
'src/node_file.h',
'src/node_http_parser.h',
@@ -147,7 +148,7 @@
'conditions': [
[ 'node_use_openssl=="true"', {
'defines': [ 'HAVE_OPENSSL=1' ],
- 'sources': [ 'src/node_crypto.cc' ],
+ 'sources': [ 'src/node_crypto.cc', 'src/node_crypto_bio.cc' ],
'conditions': [
[ 'node_shared_openssl=="false"', {
'dependencies': [ './deps/openssl/openssl.gyp:openssl' ],
diff --git a/src/node.cc b/src/node.cc
index e3114293837..6f919461657 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -1516,12 +1516,11 @@ static uid_t uid_by_name(const char* name) {
struct passwd pwd;
struct passwd* pp;
char buf[8192];
- int rc;
errno = 0;
pp = NULL;
- if ((rc = getpwnam_r(name, &pwd, buf, sizeof(buf), &pp)) == 0 && pp != NULL) {
+ if (getpwnam_r(name, &pwd, buf, sizeof(buf), &pp) == 0 && pp != NULL) {
return pp->pw_uid;
}
@@ -1554,12 +1553,11 @@ static gid_t gid_by_name(const char* name) {
struct group pwd;
struct group* pp;
char buf[8192];
- int rc;
errno = 0;
pp = NULL;
- if ((rc = getgrnam_r(name, &pwd, buf, sizeof(buf), &pp)) == 0 && pp != NULL) {
+ if (getgrnam_r(name, &pwd, buf, sizeof(buf), &pp) == 0 && pp != NULL) {
return pp->gr_gid;
}
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index 37a7c25edd9..77dd1a3db95 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -20,6 +20,7 @@
// USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "node_crypto.h"
+#include "node_crypto_bio.h"
#include "node_crypto_groups.h"
#include "v8.h"
@@ -294,7 +295,7 @@ int SecureContext::NewSessionCallback(SSL* s, SSL_SESSION* sess) {
// Takes a string or buffer and loads it into a BIO.
// Caller responsible for BIO_free_all-ing the returned object.
static BIO* LoadBIO (Handle<Value> v) {
- BIO *bio = BIO_new(BIO_s_mem());
+ BIO *bio = BIO_new(NodeBIO::GetMethod());
if (!bio) return NULL;
HandleScope scope(node_isolate);
@@ -547,7 +548,7 @@ Handle<Value> SecureContext::AddRootCerts(const Arguments& args) {
root_cert_store = X509_STORE_new();
for (int i = 0; root_certs[i]; i++) {
- BIO *bp = BIO_new(BIO_s_mem());
+ BIO *bp = BIO_new(NodeBIO::GetMethod());
if (!BIO_write(bp, root_certs[i], strlen(root_certs[i]))) {
BIO_free_all(bp);
@@ -1224,8 +1225,8 @@ Handle<Value> Connection::New(const Arguments& args) {
bool is_server = args[1]->BooleanValue();
p->ssl_ = SSL_new(sc->ctx_);
- p->bio_read_ = BIO_new(BIO_s_mem());
- p->bio_write_ = BIO_new(BIO_s_mem());
+ p->bio_read_ = BIO_new(NodeBIO::GetMethod());
+ p->bio_write_ = BIO_new(NodeBIO::GetMethod());
SSL_set_app_data(p->ssl_, p);
diff --git a/src/node_crypto_bio.cc b/src/node_crypto_bio.cc
new file mode 100644
index 00000000000..a314bf66791
--- /dev/null
+++ b/src/node_crypto_bio.cc
@@ -0,0 +1,312 @@
+// 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.
+
+#include "node_crypto_bio.h"
+#include "openssl/bio.h"
+#include <string.h>
+
+namespace node {
+
+BIO_METHOD NodeBIO::method_ = {
+ BIO_TYPE_MEM,
+ "node.js SSL buffer",
+ NodeBIO::Write,
+ NodeBIO::Read,
+ NodeBIO::Puts,
+ NodeBIO::Gets,
+ NodeBIO::Ctrl,
+ NodeBIO::New,
+ NodeBIO::Free,
+ NULL
+};
+
+
+int NodeBIO::New(BIO* bio) {
+ bio->ptr = new NodeBIO();
+
+ // XXX Why am I doing it?!
+ bio->shutdown = 1;
+ bio->init = 1;
+ bio->num = -1;
+
+ return 1;
+}
+
+
+int NodeBIO::Free(BIO* bio) {
+ if (bio == NULL) return 0;
+
+ if (bio->shutdown) {
+ if (bio->init && bio->ptr != NULL) {
+ delete FromBIO(bio);
+ bio->ptr = NULL;
+ }
+ }
+
+ return 1;
+}
+
+
+int NodeBIO::Read(BIO* bio, char* out, int len) {
+ int bytes;
+ BIO_clear_retry_flags(bio);
+
+ bytes = FromBIO(bio)->Read(out, len);
+
+ if (bytes == 0) {
+ bytes = bio->num;
+ if (bytes != 0) {
+ BIO_set_retry_read(bio);
+ }
+ }
+
+ return bytes;
+}
+
+
+int NodeBIO::Write(BIO* bio, const char* data, int len) {
+ BIO_clear_retry_flags(bio);
+
+ FromBIO(bio)->Write(data, len);
+
+ return len;
+}
+
+
+int NodeBIO::Puts(BIO* bio, const char* str) {
+ return Write(bio, str, strlen(str));
+}
+
+
+int NodeBIO::Gets(BIO* bio, char* out, int size) {
+ NodeBIO* nbio = FromBIO(bio);
+
+ if (nbio->Length() == 0)
+ return 0;
+
+ int i = nbio->IndexOf('\n', size);
+
+ // Include '\n'
+ if (i < size) i++;
+
+ // Shift `i` a bit to NULL-terminate string later
+ if (size == i) i--;
+
+ // Flush read data
+ nbio->Read(out, i);
+
+ out[i] = 0;
+
+ return i;
+}
+
+
+long NodeBIO::Ctrl(BIO* bio, int cmd, long num, void* ptr) {
+ NodeBIO* nbio;
+ long ret;
+
+ nbio = FromBIO(bio);
+ ret = 1;
+
+ switch (cmd) {
+ case BIO_CTRL_RESET:
+ nbio->Reset();
+ break;
+ case BIO_CTRL_EOF:
+ ret = nbio->Length() == 0;
+ break;
+ case BIO_C_SET_BUF_MEM_EOF_RETURN:
+ bio->num = num;
+ break;
+ case BIO_CTRL_INFO:
+ ret = nbio->Length();
+ if (ptr != NULL)
+ *reinterpret_cast<void**>(ptr) = NULL;
+ break;
+ case BIO_C_SET_BUF_MEM:
+ assert(0 && "Can't use SET_BUF_MEM_PTR with NodeBIO");
+ abort();
+ break;
+ case BIO_C_GET_BUF_MEM_PTR:
+ assert(0 && "Can't use GET_BUF_MEM_PTR with NodeBIO");
+ ret = 0;
+ break;
+ case BIO_CTRL_GET_CLOSE:
+ ret = bio->shutdown;
+ break;
+ case BIO_CTRL_SET_CLOSE:
+ bio->shutdown = num;
+ break;
+ case BIO_CTRL_WPENDING:
+ ret = 0;
+ break;
+ case BIO_CTRL_PENDING:
+ ret = nbio->Length();
+ break;
+ case BIO_CTRL_DUP:
+ case BIO_CTRL_FLUSH:
+ ret = 1;
+ break;
+ case BIO_CTRL_PUSH:
+ case BIO_CTRL_POP:
+ default:
+ ret = 0;
+ break;
+ }
+ return ret;
+}
+
+
+size_t NodeBIO::Read(char* out, size_t size) {
+ size_t bytes_read = 0;
+ size_t expected = Length() > size ? size : Length();
+
+ while (bytes_read < expected) {
+ assert(read_head_->read_pos_ <= read_head_->write_pos_);
+ size_t avail = read_head_->write_pos_ - read_head_->read_pos_;
+ if (avail > size)
+ avail = size;
+
+ // Copy data
+ if (out != NULL)
+ memcpy(out, read_head_->data_ + read_head_->read_pos_, avail);
+ read_head_->read_pos_ += avail;
+
+ // Move pointers
+ bytes_read += avail;
+ out += avail;
+ size -= avail;
+
+ // Move to next buffer
+ if (read_head_->read_pos_ == read_head_->write_pos_) {
+ read_head_->read_pos_ = 0;
+ read_head_->write_pos_ = 0;
+ read_head_ = read_head_->next_;
+ }
+ }
+ assert(expected == bytes_read);
+ length_ -= bytes_read;
+
+ return bytes_read;
+}
+
+
+size_t NodeBIO::IndexOf(char delim, size_t limit) {
+ size_t bytes_read = 0;
+ size_t max = Length() > limit ? limit : Length();
+ Buffer* current = read_head_;
+
+ while (bytes_read < max) {
+ assert(current->read_pos_ <= current->write_pos_);
+ size_t avail = current->write_pos_ - current->read_pos_;
+ if (avail > limit)
+ avail = limit;
+
+ // Walk through data
+ char* tmp = current->data_ + current->read_pos_;
+ size_t off = 0;
+ while (off < avail && *tmp != delim) {
+ off++;
+ tmp++;
+ }
+
+ // Move pointers
+ bytes_read += off;
+ limit -= off;
+
+ // Found `delim`
+ if (off != avail) {
+ return bytes_read;
+ }
+
+ // Move to next buffer
+ if (current->read_pos_ + avail == kBufferLength) {
+ current = current->next_;
+ }
+ }
+ assert(max == bytes_read);
+
+ return max;
+}
+
+
+void NodeBIO::Write(const char* data, size_t len) {
+ while (len > 0) {
+ size_t to_write = len;
+ assert(write_head_->write_pos_ <= kBufferLength);
+ size_t avail = kBufferLength - write_head_->write_pos_;
+
+ if (to_write > avail)
+ to_write = avail;
+
+ // Copy data
+ memcpy(write_head_->data_ + write_head_->write_pos_, data, to_write);
+ write_head_->write_pos_ += to_write;
+ assert(write_head_->write_pos_ <= kBufferLength);
+
+ // Move pointers
+ len -= to_write;
+ data += to_write;
+ length_ += to_write;
+
+ // Still have some bytes left:
+ // 1. Go to next buffer
+ // 2. Allocate new if next is already full or is partially read
+ // (is read head)
+ if (write_head_->next_->write_pos_ == kBufferLength ||
+ write_head_->next_->read_pos_ != 0) {
+ Buffer* next = new Buffer();
+ next->next_ = write_head_->next_;
+ write_head_->next_ = next;
+ }
+ write_head_ = write_head_->next_;
+ }
+ assert(len == 0);
+}
+
+
+void NodeBIO::Reset() {
+ while (read_head_->read_pos_ != read_head_->write_pos_) {
+ assert(read_head_->write_pos_ > read_head_->read_pos_);
+
+ length_ -= read_head_->write_pos_ - read_head_->read_pos_;
+ read_head_->write_pos_ = 0;
+ read_head_->read_pos_ = 0;
+
+ read_head_ = read_head_->next_;
+ }
+ assert(length_ == 0);
+}
+
+
+NodeBIO::~NodeBIO() {
+ Buffer* current = head_.next_;
+ while (current != &head_) {
+ Buffer* next = current->next_;
+ delete current;
+ current = next;
+ }
+
+ read_head_ = NULL;
+ write_head_ = NULL;
+}
+
+} // namespace node
diff --git a/src/node_crypto_bio.h b/src/node_crypto_bio.h
new file mode 100644
index 00000000000..95d173e342a
--- /dev/null
+++ b/src/node_crypto_bio.h
@@ -0,0 +1,93 @@
+// 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.
+
+#include "openssl/bio.h"
+#include <assert.h>
+
+namespace node {
+
+class NodeBIO {
+ public:
+ static inline BIO_METHOD* GetMethod() {
+ return &method_;
+ }
+
+ static int New(BIO* bio);
+ static int Free(BIO* bio);
+ static int Read(BIO* bio, char* out, int len);
+ static int Write(BIO* bio, const char* data, int len);
+ static int Puts(BIO* bio, const char* str);
+ static int Gets(BIO* bio, char* out, int size);
+ static long Ctrl(BIO* bio, int cmd, long num, void* ptr);
+
+ protected:
+ static const size_t kBufferLength = 16 * 1024;
+
+ class Buffer {
+ public:
+ Buffer() : read_pos_(0), write_pos_(0), next_(NULL) {
+ }
+
+ size_t read_pos_;
+ size_t write_pos_;
+ Buffer* next_;
+ char data_[kBufferLength];
+ };
+
+ NodeBIO() : length_(0), read_head_(&head_), write_head_(&head_) {
+ // Loop head
+ head_.next_ = &head_;
+ }
+
+ ~NodeBIO();
+
+ // Read `len` bytes maximum into `out`, return actual number of read bytes
+ size_t Read(char* out, size_t size);
+
+ // Find first appearance of `delim` in buffer or `limit` if `delim`
+ // wasn't found.
+ size_t IndexOf(char delim, size_t limit);
+
+ // Discard all available data
+ void Reset();
+
+ // Put `len` bytes from `data` into buffer
+ void Write(const char* data, size_t len);
+
+ // Return size of buffer in bytes
+ size_t inline Length() {
+ return length_;
+ }
+
+ static inline NodeBIO* FromBIO(BIO* bio) {
+ assert(bio->ptr != NULL);
+ return static_cast<NodeBIO*>(bio->ptr);
+ }
+
+ size_t length_;
+ Buffer head_;
+ Buffer* read_head_;
+ Buffer* write_head_;
+
+ static BIO_METHOD method_;
+};
+
+} // namespace node
diff --git a/test/simple/test-child-process-fork-getconnections.js b/test/simple/test-child-process-fork-getconnections.js
index ad04dd73362..597c23fd2b7 100644
--- a/test/simple/test-child-process-fork-getconnections.js
+++ b/test/simple/test-child-process-fork-getconnections.js
@@ -30,8 +30,14 @@ if (process.argv[2] === 'child') {
var id = process.argv[3];
process.on('message', function(m, socket) {
- if (socket) {
+ if (m.cmd === 'new') {
+ assert(socket);
+ assert(socket instanceof net.Socket, 'should be a net.Socket');
sockets.push(socket);
+ socket.on('end', function() {
+ if (!this.closingOnPurpose)
+ throw new Error('[c] closing by accident! ' + process._errno);
+ });
}
if (m.cmd === 'close') {
@@ -42,9 +48,15 @@ if (process.argv[2] === 'child') {
sockets[m.id].destroy();
}
});
+
} else {
var child = fork(process.argv[1], ['child']);
+ child.on('exit', function(code, signal) {
+ if (!childKilled)
+ throw new Error('child died unexpectedly!');
+ });
+
var server = net.createServer();
var sockets = [];
var sent = 0;
@@ -55,29 +67,31 @@ if (process.argv[2] === 'child') {
if (sockets.length === count) {
closeSockets(0);
- server.close();
}
});
var disconnected = 0;
+ var clients = [];
server.on('listening', function() {
-
var j = count, client;
while (j--) {
client = net.connect(common.PORT, '127.0.0.1');
+ client.id = j;
client.on('close', function() {
- console.error('[m] CLIENT: close event');
disconnected += 1;
});
- // XXX This resume() should be unnecessary.
- // a stream high water mark should be enough to keep
- // consuming the input.
- client.resume();
+ clients.push(client);
}
});
+ var childKilled = false;
function closeSockets(i) {
- if (i === count) return;
+ if (i === count) {
+ childKilled = true;
+ server.close();
+ child.kill();
+ return;
+ }
sent++;
child.send({ id: i, cmd: 'close' });
@@ -91,10 +105,7 @@ if (process.argv[2] === 'child') {
var closeEmitted = false;
server.on('close', function() {
- console.error('[m] server close');
closeEmitted = true;
-
- child.kill();
});
server.listen(common.PORT, '127.0.0.1');
@@ -103,5 +114,6 @@ if (process.argv[2] === 'child') {
assert.equal(sent, count);
assert.equal(disconnected, count);
assert.ok(closeEmitted);
+ console.log('ok');
});
}
diff --git a/test/simple/test-http-end-throw-socket-handling.js b/test/simple/test-http-end-throw-socket-handling.js
new file mode 100644
index 00000000000..50aa97ff18e
--- /dev/null
+++ b/test/simple/test-http-end-throw-socket-handling.js
@@ -0,0 +1,67 @@
+// 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.
+
+var common = require('../common');
+var assert = require('assert');
+
+// Make sure that throwing in 'end' handler doesn't lock
+// up the socket forever.
+//
+// This is NOT a good way to handle errors in general, but all
+// the same, we should not be so brittle and easily broken.
+
+var http = require('http');
+
+var n = 0;
+var server = http.createServer(function(req, res) {
+ if (++n === 10) server.close();
+ res.end('ok');
+});
+
+server.listen(common.PORT, function() {
+ for (var i = 0; i < 10; i++) {
+ var options = { port: common.PORT };
+
+ var req = http.request(options, function (res) {
+ res.resume()
+ res.on('end', function() {
+ throw new Error('gleep glorp');
+ });
+ });
+ req.end();
+ }
+});
+
+setTimeout(function() {
+ process.removeListener('uncaughtException', catcher);
+ throw new Error('Taking too long!');
+}, 1000).unref();
+
+process.on('uncaughtException', catcher);
+var errors = 0;
+function catcher() {
+ errors++;
+}
+
+process.on('exit', function() {
+ assert.equal(errors, 10);
+ console.log('ok');
+});
diff --git a/test/simple/test-http-many-ended-pipelines.js b/test/simple/test-http-many-ended-pipelines.js
new file mode 100644
index 00000000000..0d625be12ea
--- /dev/null
+++ b/test/simple/test-http-many-ended-pipelines.js
@@ -0,0 +1,54 @@
+// 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.
+
+var common = require('../common');
+var assert = require('assert');
+
+// no warnings should happen!
+var trace = console.trace;
+console.trace = function() {
+ trace.apply(console, arguments);
+ throw new Error('no tracing should happen here');
+};
+
+var http = require('http');
+var net = require('net');
+
+var server = http.createServer(function(req, res) {
+ res.end('ok');
+
+ // Oh no! The connection died!
+ req.socket.destroy();
+});
+
+server.listen(common.PORT);
+
+var client = net.connect({ port: common.PORT, allowHalfOpen: true });
+for (var i = 0; i < 20; i++) {
+ client.write('GET / HTTP/1.1\r\n' +
+ 'Host: some.host.name\r\n'+
+ '\r\n\r\n');
+}
+client.end();
+client.on('connect', function() {
+ server.close();
+});
+client.pipe(process.stdout);
diff --git a/test/simple/test-repl.js b/test/simple/test-repl.js
index 793346775b4..27c2058b013 100644
--- a/test/simple/test-repl.js
+++ b/test/simple/test-repl.js
@@ -144,6 +144,21 @@ function error_test() {
// should throw (GH-4012)
{ client: client_unix, send: 'new RegExp("foo", "wrong modifier");',
expect: /^SyntaxError: Invalid flags supplied to RegExp constructor/ },
+ // strict mode syntax errors should be caught (GH-5178)
+ { client: client_unix, send: '(function() { "use strict"; return 0755; })()',
+ expect: /^SyntaxError: Octal literals are not allowed in strict mode/ },
+ { client: client_unix, send: '(function() { "use strict"; return { p: 1, p: 2 }; })()',
+ expect: /^SyntaxError: Duplicate data property in object literal not allowed in strict mode/ },
+ { client: client_unix, send: '(function(a, a, b) { "use strict"; return a + b + c; })()',
+ expect: /^SyntaxError: Strict mode function may not have duplicate parameter names/ },
+ { client: client_unix, send: '(function() { "use strict"; with (this) {} })()',
+ expect: /^SyntaxError: Strict mode code may not include a with statement/ },
+ { client: client_unix, send: '(function() { "use strict"; var x; delete x; })()',
+ expect: /^SyntaxError: Delete of an unqualified identifier in strict mode/ },
+ { client: client_unix, send: '(function() { "use strict"; eval = 17; })()',
+ expect: /^SyntaxError: Assignment to eval or arguments is not allowed in strict mode/ },
+ { client: client_unix, send: '(function() { "use strict"; if (true){ function f() { } } })()',
+ expect: /^SyntaxError: In strict mode code, functions can only be declared at top level or immediately within another function/ },
// Named functions can be used:
{ client: client_unix, send: 'function blah() { return 1; }',
expect: prompt_unix },
diff --git a/test/simple/test-stream-readable-event.js b/test/simple/test-stream-readable-event.js
index fdbcb481034..ba6a57724d2 100644
--- a/test/simple/test-stream-readable-event.js
+++ b/test/simple/test-stream-readable-event.js
@@ -26,13 +26,14 @@ var Readable = require('stream').Readable;
(function first() {
// First test, not reading when the readable is added.
- // make sure that read(0) triggers a readable event.
+ // make sure that on('readable', ...) triggers a readable event.
var r = new Readable({
highWaterMark: 3
});
+ var _readCalled = false;
r._read = function(n) {
- r.push(new Buffer(new Array(n + 1).join('x')));
+ _readCalled = true;
};
// This triggers a 'readable' event, which is lost.
@@ -40,12 +41,17 @@ var Readable = require('stream').Readable;
var caughtReadable = false;
setTimeout(function() {
+ // we're testing what we think we are
+ assert(!r._readableState.reading);
r.on('readable', function() {
caughtReadable = true;
});
});
process.on('exit', function() {
+ // we're testing what we think we are
+ assert(!_readCalled);
+
assert(caughtReadable);
console.log('ok 1');
});
@@ -59,23 +65,27 @@ var Readable = require('stream').Readable;
highWaterMark: 3
});
+ var _readCalled = false;
r._read = function(n) {
- setTimeout(function() {
- r.push(new Buffer(new Array(n + 1).join('x')));
- });
+ _readCalled = true;
};
// This triggers a 'readable' event, which is lost.
- r.push(new Buffer('blerg'));
+ r.push(new Buffer('bl'));
var caughtReadable = false;
- process.nextTick(function() {
+ setTimeout(function() {
+ // assert we're testing what we think we are
+ assert(r._readableState.reading);
r.on('readable', function() {
caughtReadable = true;
});
});
process.on('exit', function() {
+ // we're testing what we think we are
+ assert(_readCalled);
+
assert(caughtReadable);
console.log('ok 2');
});
@@ -88,18 +98,28 @@ var Readable = require('stream').Readable;
highWaterMark: 30
});
+ var _readCalled = false;
+ r._read = function(n) {
+ _readCalled = true;
+ };
+
// This triggers a 'readable' event, which is lost.
r.push(new Buffer('blerg'));
r.push(null);
var caughtReadable = false;
setTimeout(function() {
+ // assert we're testing what we think we are
+ assert(!r._readableState.reading);
r.on('readable', function() {
caughtReadable = true;
});
});
process.on('exit', function() {
+ // we're testing what we think we are
+ assert(!_readCalled);
+
assert(caughtReadable);
console.log('ok 3');
});