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