From af69f88a9d57e302af632c047faffed7cca90772 Mon Sep 17 00:00:00 2001 From: Timothy J Fontaine Date: Tue, 8 Apr 2014 09:05:59 -0700 Subject: [PATCH 01/15] build: make sure changelog.html is generated --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 374ca2a07e2..281c283ffbd 100644 --- a/Makefile +++ b/Makefile @@ -137,7 +137,7 @@ website_files = \ out/doc/sh_main.js \ out/doc/sh_javascript.min.js -doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ node +doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ out/doc/changelog.html node $(apidoc_dirs): mkdir -p $@ From 632c13562220f1a1f1fdf89c60cf69fd8bbac359 Mon Sep 17 00:00:00 2001 From: Timothy J Fontaine Date: Sat, 5 Apr 2014 13:49:47 -0700 Subject: [PATCH 02/15] src: use monotonic time for process.uptime() `process.uptime()` interface will return the amount of time the current process has been running. To achieve this it was caching the `uv_uptime` value at program start, and then on the call to `process.uptime()` returning the delta between the two values. `uv_uptime` is defined as the number of seconds the operating system has been up since last boot. On sunos this interface uses `kstat`s which can be a significantly expensive operation as it requires exclusive access, but because of the design of `process.uptime()` node *had* to always call this on start. As a result if you had many node processes all starting at the same time you would suffer lock contention as they all tried to read kstats. Instead of using `uv_uptime` to achieve this, the libuv loop already has a concept of current loop time in the form of `uv_now()` which is in fact monotonically increasing, and already stored directly on the loop. By using this value at start every platform performs at least one fewer syscall during initialization. Since the interface to `uv_uptime` is defined as seconds, in the call to `process.uptime()` we now `uv_update_time` get our delta, divide by 1000 to get seconds, and then convert to an `Integer`. In 0.12 we can move back to `Number::New` instead and not lose precision. Caveat: For some platforms `uv_uptime` reports time monotonically increasing regardless of system hibernation, `uv_now` interface is also monotonically increasing but may not reflect time spent in hibernation. --- src/node.cc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/node.cc b/src/node.cc index 958c86dc75b..8257604d526 100644 --- a/src/node.cc +++ b/src/node.cc @@ -1714,13 +1714,10 @@ static Handle Uptime(const Arguments& args) { HandleScope scope; double uptime; - uv_err_t err = uv_uptime(&uptime); + uv_update_time(uv_default_loop()); + uptime = uv_now(uv_default_loop()) - prog_start_time; - if (err.code != UV_OK) { - return Undefined(); - } - - return scope.Close(Number::New(uptime - prog_start_time)); + return scope.Close(Integer::New(uptime / 1000)); } @@ -2893,7 +2890,7 @@ static Handle DebugEnd(const Arguments& args) { char** Init(int argc, char *argv[]) { // Initialize prog_start_time to get relative uptime. - uv_uptime(&prog_start_time); + prog_start_time = uv_now(uv_default_loop()); // Make inherited handles noninheritable. uv_disable_stdio_inheritance(); From bfb7de5e75f49ba250d1bb6f1b7a15bd3d6d7f2a Mon Sep 17 00:00:00 2001 From: William Bert Date: Wed, 9 Apr 2014 16:50:08 -0400 Subject: [PATCH 03/15] docs: fix links to streams Signed-off-by: Fedor Indutny --- doc/api/http.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/api/http.markdown b/doc/api/http.markdown index dfa97a74342..7186a4b8d99 100644 --- a/doc/api/http.markdown +++ b/doc/api/http.markdown @@ -886,8 +886,8 @@ authentication details. [Agent]: #http_class_http_agent [Buffer]: buffer.html#buffer_buffer [EventEmitter]: events.html#events_class_events_eventemitter -[Readable Stream]: stream.html#stream_readable_stream -[Writable Stream]: stream.html#stream_writable_stream +[Readable Stream]: stream.html#stream_class_stream_readable +[Writable Stream]: stream.html#stream_class_stream_writable [global Agent]: #http_http_globalagent [http.ClientRequest]: #http_class_http_clientrequest [http.IncomingMessage]: #http_http_incomingmessage From 1bd4f3a605216838619e4d7dc1eb1600b1deb91f Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Mon, 14 Apr 2014 13:33:22 +0400 Subject: [PATCH 04/15] child_process: fix deadlock when sending handles Fix possible deadlock, when handles are sent in both direction simultaneously. In such rare cases, both sides may queue their `NODE_HANDLE_ACK` replies and wait for them. fix #7465 --- lib/child_process.js | 3 +- test/simple/test-cluster-send-deadlock.js | 65 +++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 test/simple/test-cluster-send-deadlock.js diff --git a/lib/child_process.js b/lib/child_process.js index e93e5d47c8f..70893e0a3c3 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -451,7 +451,8 @@ function setupChannel(target, channel) { if (obj.simultaneousAccepts) { net._setSimultaneousAccepts(handle); } - } else if (this._handleQueue) { + } else if (this._handleQueue && + !(message && message.cmd === 'NODE_HANDLE_ACK')) { // Queue request anyway to avoid out-of-order messages. this._handleQueue.push({ message: message, handle: null }); return; diff --git a/test/simple/test-cluster-send-deadlock.js b/test/simple/test-cluster-send-deadlock.js new file mode 100644 index 00000000000..1b4a90dee00 --- /dev/null +++ b/test/simple/test-cluster-send-deadlock.js @@ -0,0 +1,65 @@ +// 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. + +// Testing mutual send of handles: from master to worker, and from worker to +// master. + +var common = require('../common'); +var assert = require('assert'); +var cluster = require('cluster'); +var net = require('net'); + +if (cluster.isMaster) { + var worker = cluster.fork(); + worker.on('exit', function(code, signal) { + assert.equal(code, 0, 'Worker exited with an error code'); + assert(!signal, 'Worker exited by a signal'); + server.close(); + }); + + var server = net.createServer(function(socket) { + worker.send('handle', socket); + }); + + server.listen(common.PORT, function() { + worker.send('listen'); + }); +} else { + process.on('message', function(msg, handle) { + if (msg === 'listen') { + var client1 = net.connect({ host: 'localhost', port: common.PORT }); + var client2 = net.connect({ host: 'localhost', port: common.PORT }); + var waiting = 2; + client1.on('close', onclose); + client2.on('close', onclose); + function onclose() { + if (--waiting === 0) + cluster.worker.disconnect(); + } + setTimeout(function() { + client1.end(); + client2.end(); + }, 50); + } else { + process.send('reply', handle); + } + }); +} From 9520adeb37f5ebe02a68669ec97770f4869705bb Mon Sep 17 00:00:00 2001 From: isaacs Date: Tue, 25 Mar 2014 14:16:55 -0700 Subject: [PATCH 05/15] url: treat \ the same as / See https://code.google.com/p/chromium/issues/detail?id=25916 Parse URLs with backslashes the same as web browsers, by replacing all backslashes with forward slashes, except those that occur after the first # character. --- lib/url.js | 6 ++++++ test/simple/test-url.js | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/lib/url.js b/lib/url.js index 09e9cceb42a..c13f74b5dd0 100644 --- a/lib/url.js +++ b/lib/url.js @@ -107,6 +107,12 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { throw new TypeError("Parameter 'url' must be a string, not " + typeof url); } + // Copy chrome, IE, opera backslash-handling behavior. + // See: https://code.google.com/p/chromium/issues/detail?id=25916 + var hashSplit = url.split('#'); + hashSplit[0] = hashSplit[0].replace(/\\/g, '/'); + url = hashSplit.join('#'); + var rest = url; // trim before proceeding. diff --git a/test/simple/test-url.js b/test/simple/test-url.js index 57d0a6d5a61..95f50a23c39 100644 --- a/test/simple/test-url.js +++ b/test/simple/test-url.js @@ -34,6 +34,28 @@ var parseTests = { 'path': '//some_path' }, + 'http:\\\\evil-phisher\\foo.html#h\\a\\s\\h': { + protocol: 'http:', + slashes: true, + host: 'evil-phisher', + hostname: 'evil-phisher', + pathname: '/foo.html', + path: '/foo.html', + hash: '#h\\a\\s\\h', + href: 'http://evil-phisher/foo.html#h\\a\\s\\h' + }, + + + 'http:\\\\evil-phisher\\foo.html': { + protocol: 'http:', + slashes: true, + host: 'evil-phisher', + hostname: 'evil-phisher', + pathname: '/foo.html', + path: '/foo.html', + href: 'http://evil-phisher/foo.html' + }, + 'HTTP://www.example.com/' : { 'href': 'http://www.example.com/', 'protocol': 'http:', @@ -1457,3 +1479,7 @@ relativeTests2.forEach(function(relativeTest) { 'format(' + relativeTest[1] + ') == ' + expected + '\nactual:' + actual); }); + +// backslashes should be like forward slashes +var res = url.resolve('http://example.com/x', '\\\\foo.com\\bar'); +assert.equal(res, 'http://foo.com/bar'); From 75bc11cf12f53768654f7ac11f308fdf0296bd34 Mon Sep 17 00:00:00 2001 From: isaacs Date: Tue, 15 Apr 2014 15:31:36 -0700 Subject: [PATCH 06/15] npm: upgrade to 1.4.7 * isaacs, Robert Kowalski, Benjamin Coe: Test Improvements * isaacs doc: Add canonical url * isaacs view: handle unpublished packages properly * Raynos (Jake Verbaten) do not log if silent * Julian Gruber fix no such property error * isaacs npmconf@0.1.14 * Thorsten Lorenz adding save-prefix configuration option * isaacs npm-registry-client@0.4.7 * isaacs cache: treat missing versions as a 404 * isaacs cache: Save shasum, write resolved/etc data to cache * isaacs cache: Always fetch root doc * isaacs cache: don't repack unnecessarily from tmp * Andrey Kislyuk Don't crash if shrinkwrap-dependencies were not passed in pkginfo * Robert Kowalski fix link in faq * Jean Lauliac Add a peerDependencies section in package.json doc * isaacs read-installed@2.0.2 --- deps/npm/.travis.yml | 5 + deps/npm/Makefile | 1 - deps/npm/README.md | 2 +- deps/npm/doc/files/package.json.md | 34 ++++ deps/npm/doc/misc/npm-config.md | 13 ++ deps/npm/doc/misc/npm-faq.md | 2 +- deps/npm/html/doc/README.html | 6 +- deps/npm/html/doc/api/npm-bin.html | 3 +- deps/npm/html/doc/api/npm-bugs.html | 3 +- deps/npm/html/doc/api/npm-commands.html | 3 +- deps/npm/html/doc/api/npm-config.html | 3 +- deps/npm/html/doc/api/npm-deprecate.html | 3 +- deps/npm/html/doc/api/npm-docs.html | 3 +- deps/npm/html/doc/api/npm-edit.html | 3 +- deps/npm/html/doc/api/npm-explore.html | 3 +- deps/npm/html/doc/api/npm-help-search.html | 3 +- deps/npm/html/doc/api/npm-init.html | 3 +- deps/npm/html/doc/api/npm-install.html | 3 +- deps/npm/html/doc/api/npm-link.html | 3 +- deps/npm/html/doc/api/npm-load.html | 3 +- deps/npm/html/doc/api/npm-ls.html | 3 +- deps/npm/html/doc/api/npm-outdated.html | 3 +- deps/npm/html/doc/api/npm-owner.html | 3 +- deps/npm/html/doc/api/npm-pack.html | 3 +- deps/npm/html/doc/api/npm-prefix.html | 3 +- deps/npm/html/doc/api/npm-prune.html | 3 +- deps/npm/html/doc/api/npm-publish.html | 3 +- deps/npm/html/doc/api/npm-rebuild.html | 3 +- deps/npm/html/doc/api/npm-repo.html | 3 +- deps/npm/html/doc/api/npm-restart.html | 3 +- deps/npm/html/doc/api/npm-root.html | 3 +- deps/npm/html/doc/api/npm-run-script.html | 3 +- deps/npm/html/doc/api/npm-search.html | 3 +- deps/npm/html/doc/api/npm-shrinkwrap.html | 3 +- deps/npm/html/doc/api/npm-start.html | 3 +- deps/npm/html/doc/api/npm-stop.html | 3 +- deps/npm/html/doc/api/npm-submodule.html | 3 +- deps/npm/html/doc/api/npm-tag.html | 3 +- deps/npm/html/doc/api/npm-test.html | 3 +- deps/npm/html/doc/api/npm-uninstall.html | 3 +- deps/npm/html/doc/api/npm-unpublish.html | 3 +- deps/npm/html/doc/api/npm-update.html | 3 +- deps/npm/html/doc/api/npm-version.html | 3 +- deps/npm/html/doc/api/npm-view.html | 3 +- deps/npm/html/doc/api/npm-whoami.html | 3 +- deps/npm/html/doc/api/npm.html | 5 +- deps/npm/html/doc/cli/npm-adduser.html | 3 +- deps/npm/html/doc/cli/npm-bin.html | 3 +- deps/npm/html/doc/cli/npm-bugs.html | 3 +- deps/npm/html/doc/cli/npm-build.html | 3 +- deps/npm/html/doc/cli/npm-bundle.html | 3 +- deps/npm/html/doc/cli/npm-cache.html | 3 +- deps/npm/html/doc/cli/npm-completion.html | 3 +- deps/npm/html/doc/cli/npm-config.html | 3 +- deps/npm/html/doc/cli/npm-dedupe.html | 3 +- deps/npm/html/doc/cli/npm-deprecate.html | 3 +- deps/npm/html/doc/cli/npm-docs.html | 3 +- deps/npm/html/doc/cli/npm-edit.html | 3 +- deps/npm/html/doc/cli/npm-explore.html | 3 +- deps/npm/html/doc/cli/npm-help-search.html | 3 +- deps/npm/html/doc/cli/npm-help.html | 3 +- deps/npm/html/doc/cli/npm-init.html | 3 +- deps/npm/html/doc/cli/npm-install.html | 3 +- deps/npm/html/doc/cli/npm-link.html | 3 +- deps/npm/html/doc/cli/npm-ls.html | 5 +- deps/npm/html/doc/cli/npm-outdated.html | 3 +- deps/npm/html/doc/cli/npm-owner.html | 3 +- deps/npm/html/doc/cli/npm-pack.html | 3 +- deps/npm/html/doc/cli/npm-prefix.html | 3 +- deps/npm/html/doc/cli/npm-prune.html | 3 +- deps/npm/html/doc/cli/npm-publish.html | 3 +- deps/npm/html/doc/cli/npm-rebuild.html | 3 +- deps/npm/html/doc/cli/npm-repo.html | 3 +- deps/npm/html/doc/cli/npm-restart.html | 3 +- deps/npm/html/doc/cli/npm-rm.html | 3 +- deps/npm/html/doc/cli/npm-root.html | 3 +- deps/npm/html/doc/cli/npm-run-script.html | 3 +- deps/npm/html/doc/cli/npm-search.html | 3 +- deps/npm/html/doc/cli/npm-shrinkwrap.html | 3 +- deps/npm/html/doc/cli/npm-star.html | 3 +- deps/npm/html/doc/cli/npm-stars.html | 3 +- deps/npm/html/doc/cli/npm-start.html | 3 +- deps/npm/html/doc/cli/npm-stop.html | 3 +- deps/npm/html/doc/cli/npm-submodule.html | 3 +- deps/npm/html/doc/cli/npm-tag.html | 3 +- deps/npm/html/doc/cli/npm-test.html | 3 +- deps/npm/html/doc/cli/npm-uninstall.html | 3 +- deps/npm/html/doc/cli/npm-unpublish.html | 3 +- deps/npm/html/doc/cli/npm-update.html | 3 +- deps/npm/html/doc/cli/npm-version.html | 3 +- deps/npm/html/doc/cli/npm-view.html | 3 +- deps/npm/html/doc/cli/npm-whoami.html | 3 +- deps/npm/html/doc/cli/npm.html | 5 +- deps/npm/html/doc/files/npm-folders.html | 3 +- deps/npm/html/doc/files/npm-global.html | 3 +- deps/npm/html/doc/files/npm-json.html | 37 ++++- deps/npm/html/doc/files/npmrc.html | 3 +- deps/npm/html/doc/files/package.json.html | 37 ++++- deps/npm/html/doc/index.html | 3 +- deps/npm/html/doc/misc/npm-coding-style.html | 3 +- deps/npm/html/doc/misc/npm-config.html | 14 +- deps/npm/html/doc/misc/npm-developers.html | 3 +- deps/npm/html/doc/misc/npm-disputes.html | 3 +- deps/npm/html/doc/misc/npm-faq.html | 5 +- deps/npm/html/doc/misc/npm-index.html | 3 +- deps/npm/html/doc/misc/npm-registry.html | 3 +- deps/npm/html/doc/misc/npm-scripts.html | 3 +- deps/npm/html/doc/misc/removing-npm.html | 3 +- deps/npm/html/doc/misc/semver.html | 3 +- deps/npm/html/dochead.html | 1 + deps/npm/lib/cache.js | 154 +++++++++++++++--- deps/npm/lib/dedupe.js | 1 - deps/npm/lib/install.js | 3 +- deps/npm/lib/shrinkwrap.js | 2 +- deps/npm/lib/utils/error-handler.js | 7 +- deps/npm/lib/utils/lifecycle.js | 5 +- deps/npm/lib/view.js | 17 +- deps/npm/man/man1/npm-README.1 | 7 +- deps/npm/man/man1/npm-adduser.1 | 2 +- deps/npm/man/man1/npm-bin.1 | 2 +- deps/npm/man/man1/npm-bugs.1 | 2 +- deps/npm/man/man1/npm-build.1 | 2 +- deps/npm/man/man1/npm-bundle.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 2 +- deps/npm/man/man1/npm-completion.1 | 2 +- deps/npm/man/man1/npm-config.1 | 2 +- deps/npm/man/man1/npm-dedupe.1 | 2 +- deps/npm/man/man1/npm-deprecate.1 | 2 +- deps/npm/man/man1/npm-docs.1 | 2 +- deps/npm/man/man1/npm-edit.1 | 2 +- deps/npm/man/man1/npm-explore.1 | 2 +- deps/npm/man/man1/npm-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-init.1 | 2 +- deps/npm/man/man1/npm-install.1 | 2 +- deps/npm/man/man1/npm-link.1 | 2 +- deps/npm/man/man1/npm-ls.1 | 4 +- deps/npm/man/man1/npm-outdated.1 | 2 +- deps/npm/man/man1/npm-owner.1 | 2 +- deps/npm/man/man1/npm-pack.1 | 2 +- deps/npm/man/man1/npm-prefix.1 | 2 +- deps/npm/man/man1/npm-prune.1 | 2 +- deps/npm/man/man1/npm-publish.1 | 2 +- deps/npm/man/man1/npm-rebuild.1 | 2 +- deps/npm/man/man1/npm-repo.1 | 2 +- deps/npm/man/man1/npm-restart.1 | 2 +- deps/npm/man/man1/npm-rm.1 | 2 +- deps/npm/man/man1/npm-root.1 | 2 +- deps/npm/man/man1/npm-run-script.1 | 2 +- deps/npm/man/man1/npm-search.1 | 2 +- deps/npm/man/man1/npm-shrinkwrap.1 | 2 +- deps/npm/man/man1/npm-star.1 | 2 +- deps/npm/man/man1/npm-stars.1 | 2 +- deps/npm/man/man1/npm-start.1 | 2 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-submodule.1 | 2 +- deps/npm/man/man1/npm-tag.1 | 2 +- deps/npm/man/man1/npm-test.1 | 2 +- deps/npm/man/man1/npm-uninstall.1 | 2 +- deps/npm/man/man1/npm-unpublish.1 | 2 +- deps/npm/man/man1/npm-update.1 | 2 +- deps/npm/man/man1/npm-version.1 | 2 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 4 +- deps/npm/man/man3/npm-bin.3 | 2 +- deps/npm/man/man3/npm-bugs.3 | 2 +- deps/npm/man/man3/npm-commands.3 | 2 +- deps/npm/man/man3/npm-config.3 | 2 +- deps/npm/man/man3/npm-deprecate.3 | 2 +- deps/npm/man/man3/npm-docs.3 | 2 +- deps/npm/man/man3/npm-edit.3 | 2 +- deps/npm/man/man3/npm-explore.3 | 2 +- deps/npm/man/man3/npm-help-search.3 | 2 +- deps/npm/man/man3/npm-init.3 | 2 +- deps/npm/man/man3/npm-install.3 | 2 +- deps/npm/man/man3/npm-link.3 | 2 +- deps/npm/man/man3/npm-load.3 | 2 +- deps/npm/man/man3/npm-ls.3 | 2 +- deps/npm/man/man3/npm-outdated.3 | 2 +- deps/npm/man/man3/npm-owner.3 | 2 +- deps/npm/man/man3/npm-pack.3 | 2 +- deps/npm/man/man3/npm-prefix.3 | 2 +- deps/npm/man/man3/npm-prune.3 | 2 +- deps/npm/man/man3/npm-publish.3 | 2 +- deps/npm/man/man3/npm-rebuild.3 | 2 +- deps/npm/man/man3/npm-repo.3 | 2 +- deps/npm/man/man3/npm-restart.3 | 2 +- deps/npm/man/man3/npm-root.3 | 2 +- deps/npm/man/man3/npm-run-script.3 | 2 +- deps/npm/man/man3/npm-search.3 | 2 +- deps/npm/man/man3/npm-shrinkwrap.3 | 2 +- deps/npm/man/man3/npm-start.3 | 2 +- deps/npm/man/man3/npm-stop.3 | 2 +- deps/npm/man/man3/npm-submodule.3 | 2 +- deps/npm/man/man3/npm-tag.3 | 2 +- deps/npm/man/man3/npm-test.3 | 2 +- deps/npm/man/man3/npm-uninstall.3 | 2 +- deps/npm/man/man3/npm-unpublish.3 | 2 +- deps/npm/man/man3/npm-update.3 | 2 +- deps/npm/man/man3/npm-version.3 | 2 +- deps/npm/man/man3/npm-view.3 | 2 +- deps/npm/man/man3/npm-whoami.3 | 2 +- deps/npm/man/man3/npm.3 | 4 +- deps/npm/man/man5/npm-folders.5 | 2 +- deps/npm/man/man5/npm-global.5 | 2 +- deps/npm/man/man5/npm-json.5 | 53 +++++- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package.json.5 | 53 +++++- deps/npm/man/man7/npm-coding-style.7 | 2 +- deps/npm/man/man7/npm-config.7 | 23 ++- deps/npm/man/man7/npm-developers.7 | 2 +- deps/npm/man/man7/npm-disputes.7 | 2 +- deps/npm/man/man7/npm-faq.7 | 4 +- deps/npm/man/man7/npm-index.7 | 2 +- deps/npm/man/man7/npm-registry.7 | 2 +- deps/npm/man/man7/npm-scripts.7 | 2 +- deps/npm/man/man7/removing-npm.7 | 2 +- deps/npm/man/man7/semver.7 | 2 +- .../npm-registry-client/lib/request.js | 8 + .../npm-registry-client/package.json | 4 +- deps/npm/node_modules/npmconf/config-defs.js | 2 + .../node_modules/proto-list/package.json | 4 +- .../node_modules/config-chain/package.json | 4 +- deps/npm/node_modules/npmconf/package.json | 5 +- .../node_modules/read-installed/package.json | 4 +- .../read-installed/read-installed.js | 9 +- deps/npm/package.json | 17 +- deps/npm/scripts/doc-build.sh | 2 + deps/npm/test/tap/00-check-mock-dep.js | 15 ++ deps/npm/test/tap/404-parent.js | 10 +- deps/npm/test/tap/cache-shasum.js | 60 +++++++ deps/npm/test/tap/dedupe.js | 20 ++- deps/npm/test/tap/dedupe/package.json | 4 +- deps/npm/test/tap/git-cache-locking.js | 3 + deps/npm/test/tap/ignore-scripts.js | 5 +- deps/npm/test/tap/install-save-prefix.js | 140 ++++++++++++++++ .../test/tap/install-save-prefix/README.md | 1 + .../npm/test/tap/install-save-prefix/index.js | 1 + .../test/tap/install-save-prefix/package.json | 7 + deps/npm/test/tap/lifecycle-signal.js | 10 +- deps/npm/test/tap/outdated-color.js | 17 +- deps/npm/test/tap/peer-deps-invalid.js | 50 +++--- .../tap/peer-deps-without-package-json.js | 29 ++-- deps/npm/test/tap/shrinkwrap-empty-deps.js | 47 ++++++ .../tap/shrinkwrap-empty-deps/package.json | 7 + deps/npm/test/tap/sorted-package-json.js | 2 +- 247 files changed, 1137 insertions(+), 336 deletions(-) create mode 100644 deps/npm/.travis.yml create mode 100644 deps/npm/test/tap/00-check-mock-dep.js create mode 100644 deps/npm/test/tap/cache-shasum.js create mode 100644 deps/npm/test/tap/install-save-prefix.js create mode 100644 deps/npm/test/tap/install-save-prefix/README.md create mode 100644 deps/npm/test/tap/install-save-prefix/index.js create mode 100644 deps/npm/test/tap/install-save-prefix/package.json create mode 100644 deps/npm/test/tap/shrinkwrap-empty-deps.js create mode 100644 deps/npm/test/tap/shrinkwrap-empty-deps/package.json diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml new file mode 100644 index 00000000000..0fbe8dc335f --- /dev/null +++ b/deps/npm/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +script: "npm run-script tap" +node_js: + - "0.11" + - "0.10" diff --git a/deps/npm/Makefile b/deps/npm/Makefile index b0b85216d89..870965b52e4 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -169,7 +169,6 @@ publish: link doc git push origin &&\ git push origin --tags &&\ npm publish &&\ - npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\ make doc-publish &&\ make zip-publish diff --git a/deps/npm/README.md b/deps/npm/README.md index 676d2003b34..2383245b88b 100644 --- a/deps/npm/README.md +++ b/deps/npm/README.md @@ -1,6 +1,6 @@ npm(1) -- node package manager ============================== - +[![Build Status](https://img.shields.io/travis/npm/npm/master.svg)](https://travis-ci.org/npm/npm) ## SYNOPSIS This is just enough info to get you up and running. diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md index c987948b4c5..9e1bf6eff56 100644 --- a/deps/npm/doc/files/package.json.md +++ b/deps/npm/doc/files/package.json.md @@ -404,6 +404,40 @@ can consume the functionality without requiring them to compile it themselves. In dev mode (ie, locally running `npm install`), it'll run this script as well, so that you can test it easily. +## peerDependencies + +In some cases, you want to express the compatibility of your package with an +host tool or library, while not necessarily doing a `require` of this host. +This is usually refered to as a *plugin*. Notably, your module may be exposing +a specific interface, expected and specified by the host documentation. + +For example: + + { + "name": "tea-latte", + "version": "1.3.5" + "peerDependencies": { + "tea": "2.x" + } + } + +This ensures your package `tea-latte` can be installed *along* with the second +major version of the host package `tea` only. The host package is automatically +installed if needed. `npm install tea-latte` could possibly yield the following +dependency graph: + + ├── tea-latte@1.3.5 + └── tea@2.2.0 + +Trying to install another plugin with a conflicting requirement will cause an +error. For this reason, make sure your plugin requirement is as broad as +possible, and not to lock it down to specific patch versions. + +Assuming the host complies with [semver](http://semver.org/), only changes in +the host package's major version will break your plugin. Thus, if you've worked +with every 1.x version of the host package, use `"^1.0"` or `"1.x"` to express +this. If you depend on features introduced in 1.5.2, use `">= 1.5.2 < 2"`. + ## bundledDependencies Array of package names that will be bundled when publishing the package. diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md index e54e2bb7bb8..a70de812162 100644 --- a/deps/npm/doc/misc/npm-config.md +++ b/deps/npm/doc/misc/npm-config.md @@ -648,6 +648,19 @@ devDependencies hash. Only works if there is already a package.json file present. +### save-prefix + +* Default: '^' +* Type: String + +Configure how versions of packages installed to a package.json file via +`--save` or `--save-dev` get prefixed. + +For example if a package has version `1.2.3`, by default it's version is +set to `^1.2.3` which allows minor upgrades for that package, but after +`npm config set save-prefix='~'` it would be set to `~1.2.3` which only allows +patch upgrades. + ### searchopts * Default: "" diff --git a/deps/npm/doc/misc/npm-faq.md b/deps/npm/doc/misc/npm-faq.md index 31ce3745189..08160523057 100644 --- a/deps/npm/doc/misc/npm-faq.md +++ b/deps/npm/doc/misc/npm-faq.md @@ -77,7 +77,7 @@ npm will not help you do something that is known to be a bad idea. Mikeal Rogers answered this question very well: - + tl;dr diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html index f1dade39e05..782081c823a 100644 --- a/deps/npm/html/doc/README.html +++ b/deps/npm/html/doc/README.html @@ -3,6 +3,7 @@ README + README.html"> @@ -10,7 +11,8 @@

npm

node package manager

-

SYNOPSIS

+

![Build Status +## SYNOPSIS

This is just enough info to get you up and running.

@@ -254,5 +256,5 @@ will no doubt tell you to put the output in a gist or email.

       - + diff --git a/deps/npm/html/doc/api/npm-bin.html b/deps/npm/html/doc/api/npm-bin.html index e385fc75f23..e8d570c3803 100644 --- a/deps/npm/html/doc/api/npm-bin.html +++ b/deps/npm/html/doc/api/npm-bin.html @@ -3,6 +3,7 @@ npm-bin + @@ -31,5 +32,5 @@ to the npm.bin member.

       - + diff --git a/deps/npm/html/doc/api/npm-bugs.html b/deps/npm/html/doc/api/npm-bugs.html index 732ffe14b82..0849c7bad4d 100644 --- a/deps/npm/html/doc/api/npm-bugs.html +++ b/deps/npm/html/doc/api/npm-bugs.html @@ -3,6 +3,7 @@ npm-bugs + @@ -37,5 +38,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-commands.html b/deps/npm/html/doc/api/npm-commands.html index 9236ce2ef1b..8e28ec1c2fb 100644 --- a/deps/npm/html/doc/api/npm-commands.html +++ b/deps/npm/html/doc/api/npm-commands.html @@ -3,6 +3,7 @@ npm-commands + @@ -40,5 +41,5 @@ usage, or man 3 npm-<command> for programmatic usage.

       - + diff --git a/deps/npm/html/doc/api/npm-config.html b/deps/npm/html/doc/api/npm-config.html index 746151c271a..2b424e094c6 100644 --- a/deps/npm/html/doc/api/npm-config.html +++ b/deps/npm/html/doc/api/npm-config.html @@ -3,6 +3,7 @@ npm-config + @@ -45,5 +46,5 @@ functions instead.

       - + diff --git a/deps/npm/html/doc/api/npm-deprecate.html b/deps/npm/html/doc/api/npm-deprecate.html index 53c02c439f5..7a44a2e4fe9 100644 --- a/deps/npm/html/doc/api/npm-deprecate.html +++ b/deps/npm/html/doc/api/npm-deprecate.html @@ -3,6 +3,7 @@ npm-deprecate + @@ -44,5 +45,5 @@ install the package.

       - + diff --git a/deps/npm/html/doc/api/npm-docs.html b/deps/npm/html/doc/api/npm-docs.html index ce514123a1f..cb3ad991dfb 100644 --- a/deps/npm/html/doc/api/npm-docs.html +++ b/deps/npm/html/doc/api/npm-docs.html @@ -3,6 +3,7 @@ npm-docs + @@ -37,5 +38,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-edit.html b/deps/npm/html/doc/api/npm-edit.html index c13f00443e8..6eae8b48d3d 100644 --- a/deps/npm/html/doc/api/npm-edit.html +++ b/deps/npm/html/doc/api/npm-edit.html @@ -3,6 +3,7 @@ npm-edit + @@ -42,5 +43,5 @@ and how this is used.

       - + diff --git a/deps/npm/html/doc/api/npm-explore.html b/deps/npm/html/doc/api/npm-explore.html index a719e860b08..ea2c890c686 100644 --- a/deps/npm/html/doc/api/npm-explore.html +++ b/deps/npm/html/doc/api/npm-explore.html @@ -3,6 +3,7 @@ npm-explore + @@ -36,5 +37,5 @@ sure to use npm rebuild <pkg> if you make any changes.

       - + diff --git a/deps/npm/html/doc/api/npm-help-search.html b/deps/npm/html/doc/api/npm-help-search.html index f22d96937ea..52539869bf2 100644 --- a/deps/npm/html/doc/api/npm-help-search.html +++ b/deps/npm/html/doc/api/npm-help-search.html @@ -3,6 +3,7 @@ npm-help-search + @@ -44,5 +45,5 @@ Name of the file that matched        - + diff --git a/deps/npm/html/doc/api/npm-init.html b/deps/npm/html/doc/api/npm-init.html index f007797eed0..7a51f6462b7 100644 --- a/deps/npm/html/doc/api/npm-init.html +++ b/deps/npm/html/doc/api/npm-init.html @@ -3,6 +3,7 @@ npm-init + @@ -47,5 +48,5 @@ then go ahead and use this programmatically.

       - + diff --git a/deps/npm/html/doc/api/npm-install.html b/deps/npm/html/doc/api/npm-install.html index e74d4f7eba7..f128d43e14e 100644 --- a/deps/npm/html/doc/api/npm-install.html +++ b/deps/npm/html/doc/api/npm-install.html @@ -3,6 +3,7 @@ npm-install + @@ -37,5 +38,5 @@ installed or when an error has been encountered.

       - + diff --git a/deps/npm/html/doc/api/npm-link.html b/deps/npm/html/doc/api/npm-link.html index cfa3524c06f..57eb24fa8c0 100644 --- a/deps/npm/html/doc/api/npm-link.html +++ b/deps/npm/html/doc/api/npm-link.html @@ -3,6 +3,7 @@ npm-link + @@ -51,5 +52,5 @@ the package in the current working directory

       - + diff --git a/deps/npm/html/doc/api/npm-load.html b/deps/npm/html/doc/api/npm-load.html index 3c7458276fb..067262214ef 100644 --- a/deps/npm/html/doc/api/npm-load.html +++ b/deps/npm/html/doc/api/npm-load.html @@ -3,6 +3,7 @@ npm-load + @@ -44,5 +45,5 @@ config object.

       - + diff --git a/deps/npm/html/doc/api/npm-ls.html b/deps/npm/html/doc/api/npm-ls.html index ab8e3381867..06b1be091d9 100644 --- a/deps/npm/html/doc/api/npm-ls.html +++ b/deps/npm/html/doc/api/npm-ls.html @@ -3,6 +3,7 @@ npm-ls + @@ -71,5 +72,5 @@ dependency will only be output once.

       - + diff --git a/deps/npm/html/doc/api/npm-outdated.html b/deps/npm/html/doc/api/npm-outdated.html index 32c66b1be00..81383f9cda8 100644 --- a/deps/npm/html/doc/api/npm-outdated.html +++ b/deps/npm/html/doc/api/npm-outdated.html @@ -3,6 +3,7 @@ npm-outdated + @@ -31,5 +32,5 @@ currently outdated.

       - + diff --git a/deps/npm/html/doc/api/npm-owner.html b/deps/npm/html/doc/api/npm-owner.html index 32e675104ee..95a46c2c4d3 100644 --- a/deps/npm/html/doc/api/npm-owner.html +++ b/deps/npm/html/doc/api/npm-owner.html @@ -3,6 +3,7 @@ npm-owner + @@ -46,5 +47,5 @@ that is not implemented at this time.

       - + diff --git a/deps/npm/html/doc/api/npm-pack.html b/deps/npm/html/doc/api/npm-pack.html index 1b88797fb6b..bb911e8e092 100644 --- a/deps/npm/html/doc/api/npm-pack.html +++ b/deps/npm/html/doc/api/npm-pack.html @@ -3,6 +3,7 @@ npm-pack + @@ -37,5 +38,5 @@ overwritten the second time.

       - + diff --git a/deps/npm/html/doc/api/npm-prefix.html b/deps/npm/html/doc/api/npm-prefix.html index b67be748c7e..218f02f5b36 100644 --- a/deps/npm/html/doc/api/npm-prefix.html +++ b/deps/npm/html/doc/api/npm-prefix.html @@ -3,6 +3,7 @@ npm-prefix + @@ -33,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-prune.html b/deps/npm/html/doc/api/npm-prune.html index 5d95dcef913..c125b641ee6 100644 --- a/deps/npm/html/doc/api/npm-prune.html +++ b/deps/npm/html/doc/api/npm-prune.html @@ -3,6 +3,7 @@ npm-prune + @@ -35,5 +36,5 @@ package's dependencies list.

       - + diff --git a/deps/npm/html/doc/api/npm-publish.html b/deps/npm/html/doc/api/npm-publish.html index f67cba0cb7d..0fcd6f81304 100644 --- a/deps/npm/html/doc/api/npm-publish.html +++ b/deps/npm/html/doc/api/npm-publish.html @@ -3,6 +3,7 @@ npm-publish + @@ -44,5 +45,5 @@ the registry. Overwrites when the "force" environment variable is set        - + diff --git a/deps/npm/html/doc/api/npm-rebuild.html b/deps/npm/html/doc/api/npm-rebuild.html index 4e5b1b3edb0..b15b33e27f0 100644 --- a/deps/npm/html/doc/api/npm-rebuild.html +++ b/deps/npm/html/doc/api/npm-rebuild.html @@ -3,6 +3,7 @@ npm-rebuild + @@ -34,5 +35,5 @@ the new binary. If no 'packages' parameter is specify, every package wil        - + diff --git a/deps/npm/html/doc/api/npm-repo.html b/deps/npm/html/doc/api/npm-repo.html index 847b8603280..2e9ba10a42f 100644 --- a/deps/npm/html/doc/api/npm-repo.html +++ b/deps/npm/html/doc/api/npm-repo.html @@ -3,6 +3,7 @@ npm-repo + @@ -37,5 +38,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-restart.html b/deps/npm/html/doc/api/npm-restart.html index 6ed268a535a..0466c9b5f31 100644 --- a/deps/npm/html/doc/api/npm-restart.html +++ b/deps/npm/html/doc/api/npm-restart.html @@ -3,6 +3,7 @@ npm-restart + @@ -39,5 +40,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-root.html b/deps/npm/html/doc/api/npm-root.html index ffaea420f3f..e9736533e5c 100644 --- a/deps/npm/html/doc/api/npm-root.html +++ b/deps/npm/html/doc/api/npm-root.html @@ -3,6 +3,7 @@ npm-root + @@ -33,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-run-script.html b/deps/npm/html/doc/api/npm-run-script.html index 99288bd06ea..cadce60e18d 100644 --- a/deps/npm/html/doc/api/npm-run-script.html +++ b/deps/npm/html/doc/api/npm-run-script.html @@ -3,6 +3,7 @@ npm-run-script + @@ -41,5 +42,5 @@ assumed to be the command to run. All other elements are ignored.

       - + diff --git a/deps/npm/html/doc/api/npm-search.html b/deps/npm/html/doc/api/npm-search.html index d3aac2dffd0..05894ce20b4 100644 --- a/deps/npm/html/doc/api/npm-search.html +++ b/deps/npm/html/doc/api/npm-search.html @@ -3,6 +3,7 @@ npm-search + @@ -44,5 +45,5 @@ like).

       - + diff --git a/deps/npm/html/doc/api/npm-shrinkwrap.html b/deps/npm/html/doc/api/npm-shrinkwrap.html index a40a389ea35..ee76b5f3831 100644 --- a/deps/npm/html/doc/api/npm-shrinkwrap.html +++ b/deps/npm/html/doc/api/npm-shrinkwrap.html @@ -3,6 +3,7 @@ npm-shrinkwrap + @@ -38,5 +39,5 @@ been saved.

       - + diff --git a/deps/npm/html/doc/api/npm-start.html b/deps/npm/html/doc/api/npm-start.html index 7628317bec7..a6d069ea2c7 100644 --- a/deps/npm/html/doc/api/npm-start.html +++ b/deps/npm/html/doc/api/npm-start.html @@ -3,6 +3,7 @@ npm-start + @@ -31,5 +32,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-stop.html b/deps/npm/html/doc/api/npm-stop.html index 86b03c55fa6..0eb6fe91172 100644 --- a/deps/npm/html/doc/api/npm-stop.html +++ b/deps/npm/html/doc/api/npm-stop.html @@ -3,6 +3,7 @@ npm-stop + @@ -31,5 +32,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-submodule.html b/deps/npm/html/doc/api/npm-submodule.html index e80f44e82e4..0180f6c777b 100644 --- a/deps/npm/html/doc/api/npm-submodule.html +++ b/deps/npm/html/doc/api/npm-submodule.html @@ -3,6 +3,7 @@ npm-submodule + @@ -45,5 +46,5 @@ dependencies into the submodule folder.

       - + diff --git a/deps/npm/html/doc/api/npm-tag.html b/deps/npm/html/doc/api/npm-tag.html index d3807db1978..d4331c3c173 100644 --- a/deps/npm/html/doc/api/npm-tag.html +++ b/deps/npm/html/doc/api/npm-tag.html @@ -3,6 +3,7 @@ npm-tag + @@ -41,5 +42,5 @@ used. For more information about how to set this config, check        - + diff --git a/deps/npm/html/doc/api/npm-test.html b/deps/npm/html/doc/api/npm-test.html index 24811c2d637..57dc2520180 100644 --- a/deps/npm/html/doc/api/npm-test.html +++ b/deps/npm/html/doc/api/npm-test.html @@ -3,6 +3,7 @@ npm-test + @@ -34,5 +35,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-uninstall.html b/deps/npm/html/doc/api/npm-uninstall.html index 517f33e66bb..e3e60e0bdb0 100644 --- a/deps/npm/html/doc/api/npm-uninstall.html +++ b/deps/npm/html/doc/api/npm-uninstall.html @@ -3,6 +3,7 @@ npm-uninstall + @@ -34,5 +35,5 @@ uninstalled or when an error has been encountered.

       - + diff --git a/deps/npm/html/doc/api/npm-unpublish.html b/deps/npm/html/doc/api/npm-unpublish.html index bd15c465c63..a95d7a4ff46 100644 --- a/deps/npm/html/doc/api/npm-unpublish.html +++ b/deps/npm/html/doc/api/npm-unpublish.html @@ -3,6 +3,7 @@ npm-unpublish + @@ -38,5 +39,5 @@ the root package entry is removed from the registry entirely.

       - + diff --git a/deps/npm/html/doc/api/npm-update.html b/deps/npm/html/doc/api/npm-update.html index 11b706ed2dd..26e79de713a 100644 --- a/deps/npm/html/doc/api/npm-update.html +++ b/deps/npm/html/doc/api/npm-update.html @@ -3,6 +3,7 @@ npm-update + @@ -30,5 +31,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-version.html b/deps/npm/html/doc/api/npm-version.html index 7502ad6e264..aada25a45b5 100644 --- a/deps/npm/html/doc/api/npm-version.html +++ b/deps/npm/html/doc/api/npm-version.html @@ -3,6 +3,7 @@ npm-version + @@ -36,5 +37,5 @@ not have exactly one element. The only element should be a version number.

       - + diff --git a/deps/npm/html/doc/api/npm-view.html b/deps/npm/html/doc/api/npm-view.html index a22755396ff..685445b84f3 100644 --- a/deps/npm/html/doc/api/npm-view.html +++ b/deps/npm/html/doc/api/npm-view.html @@ -3,6 +3,7 @@ npm-view + @@ -111,5 +112,5 @@ the field name.

       - + diff --git a/deps/npm/html/doc/api/npm-whoami.html b/deps/npm/html/doc/api/npm-whoami.html index e81a84bee1b..37c3721b046 100644 --- a/deps/npm/html/doc/api/npm-whoami.html +++ b/deps/npm/html/doc/api/npm-whoami.html @@ -3,6 +3,7 @@ npm-whoami + @@ -33,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/api/npm.html b/deps/npm/html/doc/api/npm.html index 6ba4f26b5f0..fab4dc18525 100644 --- a/deps/npm/html/doc/api/npm.html +++ b/deps/npm/html/doc/api/npm.html @@ -3,6 +3,7 @@ npm + @@ -26,7 +27,7 @@ npm.load([configObject], function (er, npm) {

VERSION

-

1.4.6

+

1.4.7

DESCRIPTION

@@ -104,5 +105,5 @@ method names. Use the npm.deref method to find the real name.

       - + diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html index 305d74a1de6..2a18cfd9f96 100644 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ b/deps/npm/html/doc/cli/npm-adduser.html @@ -3,6 +3,7 @@ npm-adduser + @@ -51,5 +52,5 @@ authorize on a new machine.

       - + diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html index a3489d72c3b..8d107f2e639 100644 --- a/deps/npm/html/doc/cli/npm-bin.html +++ b/deps/npm/html/doc/cli/npm-bin.html @@ -3,6 +3,7 @@ npm-bin + @@ -32,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html index 026bc2fc061..3f4473e1016 100644 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ b/deps/npm/html/doc/cli/npm-bugs.html @@ -3,6 +3,7 @@ npm-bugs + @@ -50,5 +51,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html index 9cb323bb63f..46ea9081564 100644 --- a/deps/npm/html/doc/cli/npm-build.html +++ b/deps/npm/html/doc/cli/npm-build.html @@ -3,6 +3,7 @@ npm-build + @@ -37,5 +38,5 @@ A folder containing a package.json file in its root.        - + diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html index a128149c3fd..c76024e205f 100644 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ b/deps/npm/html/doc/cli/npm-bundle.html @@ -3,6 +3,7 @@ npm-bundle + @@ -32,5 +33,5 @@ install packages into the local space.

       - + diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html index d16fdda5b2d..60a7e30b63a 100644 --- a/deps/npm/html/doc/cli/npm-cache.html +++ b/deps/npm/html/doc/cli/npm-cache.html @@ -3,6 +3,7 @@ npm-cache + @@ -78,5 +79,5 @@ they do not make an HTTP request to the registry.

       - + diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html index 2faaff8c19d..f79d2c48eca 100644 --- a/deps/npm/html/doc/cli/npm-completion.html +++ b/deps/npm/html/doc/cli/npm-completion.html @@ -3,6 +3,7 @@ npm-completion + @@ -45,5 +46,5 @@ completions based on the arguments.

       - + diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html index 10449a29d8b..c369ab5e853 100644 --- a/deps/npm/html/doc/cli/npm-config.html +++ b/deps/npm/html/doc/cli/npm-config.html @@ -3,6 +3,7 @@ npm-config + @@ -85,5 +86,5 @@ global config.

       - + diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html index 992fb5c0c20..c069b85dab8 100644 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ b/deps/npm/html/doc/cli/npm-dedupe.html @@ -3,6 +3,7 @@ npm-dedupe + @@ -74,5 +75,5 @@ versions.

       - + diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html index 4e9684cc863..f7a8ad446b1 100644 --- a/deps/npm/html/doc/cli/npm-deprecate.html +++ b/deps/npm/html/doc/cli/npm-deprecate.html @@ -3,6 +3,7 @@ npm-deprecate + @@ -43,5 +44,5 @@ something like this:

       - + diff --git a/deps/npm/html/doc/cli/npm-docs.html b/deps/npm/html/doc/cli/npm-docs.html index c64593fbf86..0be91683245 100644 --- a/deps/npm/html/doc/cli/npm-docs.html +++ b/deps/npm/html/doc/cli/npm-docs.html @@ -3,6 +3,7 @@ npm-docs + @@ -53,5 +54,5 @@ the current folder and use the name property.

       - + diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html index 7046f155447..abb78679230 100644 --- a/deps/npm/html/doc/cli/npm-edit.html +++ b/deps/npm/html/doc/cli/npm-edit.html @@ -3,6 +3,7 @@ npm-edit + @@ -49,5 +50,5 @@ or "notepad" on Windows.
  • Type: path
  •        - + diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html index caf9be4b6de..7a615f7444b 100644 --- a/deps/npm/html/doc/cli/npm-explore.html +++ b/deps/npm/html/doc/cli/npm-explore.html @@ -3,6 +3,7 @@ npm-explore + @@ -52,5 +53,5 @@ Windows
  • Type: path
  •        - + diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html index b043ae744a4..524301abaed 100644 --- a/deps/npm/html/doc/cli/npm-help-search.html +++ b/deps/npm/html/doc/cli/npm-help-search.html @@ -3,6 +3,7 @@ npm-help-search + @@ -50,5 +51,5 @@ where the terms were found in the documentation.

           - + diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html index adf4043e59c..625c093413d 100644 --- a/deps/npm/html/doc/cli/npm-help.html +++ b/deps/npm/html/doc/cli/npm-help.html @@ -3,6 +3,7 @@ npm-help + @@ -48,5 +49,5 @@ matches are equivalent to specifying a topic name.

           - + diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html index 65f8d335500..ed4fc858a23 100644 --- a/deps/npm/html/doc/cli/npm-init.html +++ b/deps/npm/html/doc/cli/npm-init.html @@ -3,6 +3,7 @@ npm-init + @@ -41,5 +42,5 @@ without a really good reason to do so.

           - + diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html index 625174cf59e..50a1d814137 100644 --- a/deps/npm/html/doc/cli/npm-install.html +++ b/deps/npm/html/doc/cli/npm-install.html @@ -3,6 +3,7 @@ npm-install + @@ -165,5 +166,5 @@ affects a real use-case, it will be investigated.

           - + diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html index f8b8dee121e..85bcc057fef 100644 --- a/deps/npm/html/doc/cli/npm-link.html +++ b/deps/npm/html/doc/cli/npm-link.html @@ -3,6 +3,7 @@ npm-link + @@ -74,5 +75,5 @@ installation target into your project's node_modules folder.

           - + diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html index 8b75ccc76e3..260033b23d7 100644 --- a/deps/npm/html/doc/cli/npm-ls.html +++ b/deps/npm/html/doc/cli/npm-ls.html @@ -3,6 +3,7 @@ npm-ls + @@ -27,7 +28,7 @@ limit the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

    -
    npm@1.4.6 /path/to/npm
    +
    npm@1.4.7 /path/to/npm
     └─┬ init-package-json@0.0.4
       └── promzard@0.1.5
    @@ -86,5 +87,5 @@ project.

           - + diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html index 015d9120c32..52f46b27daf 100644 --- a/deps/npm/html/doc/cli/npm-outdated.html +++ b/deps/npm/html/doc/cli/npm-outdated.html @@ -3,6 +3,7 @@ npm-outdated + @@ -70,5 +71,5 @@ project.

           - + diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html index 542228cf412..9887040b88a 100644 --- a/deps/npm/html/doc/cli/npm-owner.html +++ b/deps/npm/html/doc/cli/npm-owner.html @@ -3,6 +3,7 @@ npm-owner + @@ -46,5 +47,5 @@ that is not implemented at this time.

           - + diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html index 99608776fa9..d3ebdba9c54 100644 --- a/deps/npm/html/doc/cli/npm-pack.html +++ b/deps/npm/html/doc/cli/npm-pack.html @@ -3,6 +3,7 @@ npm-pack + @@ -41,5 +42,5 @@ overwritten the second time.

           - + diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html index e7a8eebbb91..35ea1ab30df 100644 --- a/deps/npm/html/doc/cli/npm-prefix.html +++ b/deps/npm/html/doc/cli/npm-prefix.html @@ -3,6 +3,7 @@ npm-prefix + @@ -32,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html index baf66973504..8fc7298b4c8 100644 --- a/deps/npm/html/doc/cli/npm-prune.html +++ b/deps/npm/html/doc/cli/npm-prune.html @@ -3,6 +3,7 @@ npm-prune + @@ -41,5 +42,5 @@ packages specified in your devDependencies.

           - + diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html index f11179ed98e..3ff10e9d94c 100644 --- a/deps/npm/html/doc/cli/npm-publish.html +++ b/deps/npm/html/doc/cli/npm-publish.html @@ -3,6 +3,7 @@ npm-publish + @@ -48,5 +49,5 @@ it is removed with npm-unpublish(1).

           - + diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html index f2ff2f5ba9a..0dc90210b23 100644 --- a/deps/npm/html/doc/cli/npm-rebuild.html +++ b/deps/npm/html/doc/cli/npm-rebuild.html @@ -3,6 +3,7 @@ npm-rebuild + @@ -38,5 +39,5 @@ the new binary.

           - + diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html index bbf00663de9..7d6bda4fca5 100644 --- a/deps/npm/html/doc/cli/npm-repo.html +++ b/deps/npm/html/doc/cli/npm-repo.html @@ -3,6 +3,7 @@ npm-repo + @@ -44,5 +45,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html index f36b69282ac..17caa3c6afd 100644 --- a/deps/npm/html/doc/cli/npm-restart.html +++ b/deps/npm/html/doc/cli/npm-restart.html @@ -3,6 +3,7 @@ npm-restart + @@ -36,5 +37,5 @@ the "start" script.

           - + diff --git a/deps/npm/html/doc/cli/npm-rm.html b/deps/npm/html/doc/cli/npm-rm.html index 8d06cca21d2..aa98f3f2699 100644 --- a/deps/npm/html/doc/cli/npm-rm.html +++ b/deps/npm/html/doc/cli/npm-rm.html @@ -3,6 +3,7 @@ npm-rm + @@ -36,5 +37,5 @@ on its behalf.

           - + diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html index a4e0bd24c42..85b7f6d87ce 100644 --- a/deps/npm/html/doc/cli/npm-root.html +++ b/deps/npm/html/doc/cli/npm-root.html @@ -3,6 +3,7 @@ npm-root + @@ -32,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html index 13d2d43053e..e410640ac15 100644 --- a/deps/npm/html/doc/cli/npm-run-script.html +++ b/deps/npm/html/doc/cli/npm-run-script.html @@ -3,6 +3,7 @@ npm-run-script + @@ -35,5 +36,5 @@ called directly, as well.

           - + diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html index f66445b01a0..6fc04160651 100644 --- a/deps/npm/html/doc/cli/npm-search.html +++ b/deps/npm/html/doc/cli/npm-search.html @@ -3,6 +3,7 @@ npm-search + @@ -49,5 +50,5 @@ fall on multiple lines.

           - + diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html index ca5da85f4a2..a882921091b 100644 --- a/deps/npm/html/doc/cli/npm-shrinkwrap.html +++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html @@ -3,6 +3,7 @@ npm-shrinkwrap + @@ -195,5 +196,5 @@ contents rather than versions.

           - + diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html index a0761b533a3..034b5eac5ba 100644 --- a/deps/npm/html/doc/cli/npm-star.html +++ b/deps/npm/html/doc/cli/npm-star.html @@ -3,6 +3,7 @@ npm-star + @@ -38,5 +39,5 @@ a vaguely positive way to show that you care.

           - + diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html index 067c4154333..b8d3f7f53d7 100644 --- a/deps/npm/html/doc/cli/npm-stars.html +++ b/deps/npm/html/doc/cli/npm-stars.html @@ -3,6 +3,7 @@ npm-stars + @@ -37,5 +38,5 @@ you will most certainly enjoy this command.

           - + diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html index 0208291c2e0..0756eb6bb28 100644 --- a/deps/npm/html/doc/cli/npm-start.html +++ b/deps/npm/html/doc/cli/npm-start.html @@ -3,6 +3,7 @@ npm-start + @@ -32,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html index 71b9bb66a1a..d7d66ecfc39 100644 --- a/deps/npm/html/doc/cli/npm-stop.html +++ b/deps/npm/html/doc/cli/npm-stop.html @@ -3,6 +3,7 @@ npm-stop + @@ -32,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-submodule.html b/deps/npm/html/doc/cli/npm-submodule.html index cd574596512..ed73b38bb90 100644 --- a/deps/npm/html/doc/cli/npm-submodule.html +++ b/deps/npm/html/doc/cli/npm-submodule.html @@ -3,6 +3,7 @@ npm-submodule + @@ -45,5 +46,5 @@ dependencies into the submodule folder.

           - + diff --git a/deps/npm/html/doc/cli/npm-tag.html b/deps/npm/html/doc/cli/npm-tag.html index b0d248c6902..51f529fd9e2 100644 --- a/deps/npm/html/doc/cli/npm-tag.html +++ b/deps/npm/html/doc/cli/npm-tag.html @@ -3,6 +3,7 @@ npm-tag + @@ -46,5 +47,5 @@ of using a specific version number:

           - + diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html index f11d1de7486..0afbd5b8229 100644 --- a/deps/npm/html/doc/cli/npm-test.html +++ b/deps/npm/html/doc/cli/npm-test.html @@ -3,6 +3,7 @@ npm-test + @@ -36,5 +37,5 @@ true.

           - + diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html index 7f24b1ae2b9..bfdeca120b9 100644 --- a/deps/npm/html/doc/cli/npm-uninstall.html +++ b/deps/npm/html/doc/cli/npm-uninstall.html @@ -3,6 +3,7 @@ npm-uninstall + @@ -52,5 +53,5 @@ npm uninstall dtrace-provider --save-optional
           - + diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html index 86dc398667e..de3e2f54b4a 100644 --- a/deps/npm/html/doc/cli/npm-unpublish.html +++ b/deps/npm/html/doc/cli/npm-unpublish.html @@ -3,6 +3,7 @@ npm-unpublish + @@ -50,5 +51,5 @@ package again, a new version number must be used.

           - + diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html index 95548b6b1d6..3f15e4e09da 100644 --- a/deps/npm/html/doc/cli/npm-update.html +++ b/deps/npm/html/doc/cli/npm-update.html @@ -3,6 +3,7 @@ npm-update + @@ -38,5 +39,5 @@ If no package name is specified, all packages in the specified location (global        - + diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html index 130b04b5bb0..b90a64287c9 100644 --- a/deps/npm/html/doc/cli/npm-version.html +++ b/deps/npm/html/doc/cli/npm-version.html @@ -3,6 +3,7 @@ npm-version + @@ -61,5 +62,5 @@ Enter passphrase:        - + diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html index 048bba314b6..b332c4a0da2 100644 --- a/deps/npm/html/doc/cli/npm-view.html +++ b/deps/npm/html/doc/cli/npm-view.html @@ -3,6 +3,7 @@ npm-view + @@ -103,5 +104,5 @@ the field name.

           - + diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html index ee4e9ef62fa..aecaf14e6a1 100644 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ b/deps/npm/html/doc/cli/npm-whoami.html @@ -3,6 +3,7 @@ npm-whoami + @@ -32,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html index e6671c00cd3..8770da02fec 100644 --- a/deps/npm/html/doc/cli/npm.html +++ b/deps/npm/html/doc/cli/npm.html @@ -3,6 +3,7 @@ npm + @@ -16,7 +17,7 @@

    VERSION

    -

    1.4.6

    +

    1.4.7

    DESCRIPTION

    @@ -143,5 +144,5 @@ will no doubt tell you to put the output in a gist or email.

           - + diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html index 77a674b512f..75e44e25409 100644 --- a/deps/npm/html/doc/files/npm-folders.html +++ b/deps/npm/html/doc/files/npm-folders.html @@ -3,6 +3,7 @@ npm-folders + @@ -217,5 +218,5 @@ cannot be found elsewhere. See packa        - + diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html index 77a674b512f..75e44e25409 100644 --- a/deps/npm/html/doc/files/npm-global.html +++ b/deps/npm/html/doc/files/npm-global.html @@ -3,6 +3,7 @@ npm-folders + @@ -217,5 +218,5 @@ cannot be found elsewhere. See packa        - + diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html index 9dbb57d6d2a..b8dc0d46b29 100644 --- a/deps/npm/html/doc/files/npm-json.html +++ b/deps/npm/html/doc/files/npm-json.html @@ -3,6 +3,7 @@ package.json + @@ -396,6 +397,40 @@ can consume the functionality without requiring them to compile it themselves. In dev mode (ie, locally running npm install), it'll run this script as well, so that you can test it easily.

    +

    peerDependencies

    + +

    In some cases, you want to express the compatibility of your package with an +host tool or library, while not necessarily doing a require of this host. +This is usually refered to as a plugin. Notably, your module may be exposing +a specific interface, expected and specified by the host documentation.

    + +

    For example:

    + +
    {
    +  "name": "tea-latte",
    +  "version": "1.3.5"
    +  "peerDependencies": {
    +    "tea": "2.x"
    +  }
    +}
    + +

    This ensures your package tea-latte can be installed along with the second +major version of the host package tea only. The host package is automatically +installed if needed. npm install tea-latte could possibly yield the following +dependency graph:

    + +
    ├── tea-latte@1.3.5
    +└── tea@2.2.0
    + +

    Trying to install another plugin with a conflicting requirement will cause an +error. For this reason, make sure your plugin requirement is as broad as +possible, and not to lock it down to specific patch versions.

    + +

    Assuming the host complies with semver, only changes in +the host package's major version will break your plugin. Thus, if you've worked +with every 1.x version of the host package, use "^1.0" or "1.x" to express +this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2".

    +

    bundledDependencies

    Array of package names that will be bundled when publishing the package.

    @@ -554,5 +589,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html index f003e807e75..608c4976c4f 100644 --- a/deps/npm/html/doc/files/npmrc.html +++ b/deps/npm/html/doc/files/npmrc.html @@ -3,6 +3,7 @@ npmrc + @@ -71,5 +72,5 @@ manner.

           - + diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html index 9dbb57d6d2a..b8dc0d46b29 100644 --- a/deps/npm/html/doc/files/package.json.html +++ b/deps/npm/html/doc/files/package.json.html @@ -3,6 +3,7 @@ package.json + @@ -396,6 +397,40 @@ can consume the functionality without requiring them to compile it themselves. In dev mode (ie, locally running npm install), it'll run this script as well, so that you can test it easily.

    +

    peerDependencies

    + +

    In some cases, you want to express the compatibility of your package with an +host tool or library, while not necessarily doing a require of this host. +This is usually refered to as a plugin. Notably, your module may be exposing +a specific interface, expected and specified by the host documentation.

    + +

    For example:

    + +
    {
    +  "name": "tea-latte",
    +  "version": "1.3.5"
    +  "peerDependencies": {
    +    "tea": "2.x"
    +  }
    +}
    + +

    This ensures your package tea-latte can be installed along with the second +major version of the host package tea only. The host package is automatically +installed if needed. npm install tea-latte could possibly yield the following +dependency graph:

    + +
    ├── tea-latte@1.3.5
    +└── tea@2.2.0
    + +

    Trying to install another plugin with a conflicting requirement will cause an +error. For this reason, make sure your plugin requirement is as broad as +possible, and not to lock it down to specific patch versions.

    + +

    Assuming the host complies with semver, only changes in +the host package's major version will break your plugin. Thus, if you've worked +with every 1.x version of the host package, use "^1.0" or "1.x" to express +this. If you depend on features introduced in 1.5.2, use ">= 1.5.2 < 2".

    +

    bundledDependencies

    Array of package names that will be bundled when publishing the package.

    @@ -554,5 +589,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html index 1c673fa198e..a8897284d8c 100644 --- a/deps/npm/html/doc/index.html +++ b/deps/npm/html/doc/index.html @@ -3,6 +3,7 @@ npm-index + @@ -428,5 +429,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html index 5e1992443cc..b3c373ca114 100644 --- a/deps/npm/html/doc/misc/npm-coding-style.html +++ b/deps/npm/html/doc/misc/npm-coding-style.html @@ -3,6 +3,7 @@ npm-coding-style + @@ -194,5 +195,5 @@ set to anything."

           - + diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html index 5f4dec5acab..1c44de37f3e 100644 --- a/deps/npm/html/doc/misc/npm-config.html +++ b/deps/npm/html/doc/misc/npm-config.html @@ -3,6 +3,7 @@ npm-config + @@ -565,6 +566,17 @@ devDependencies hash.

    Only works if there is already a package.json file present.

    +

    save-prefix

    + +
    • Default: '^'
    • Type: String
    + +

    Configure how versions of packages installed to a package.json file via +--save or --save-dev get prefixed.

    + +

    For example if a package has version 1.2.3, by default it's version is +set to ^1.2.3 which allows minor upgrades for that package, but after
    npm config set save-prefix='~' it would be set to ~1.2.3 which only allows +patch upgrades.

    +

    searchopts

    • Default: ""
    • Type: String
    @@ -731,5 +743,5 @@ hash, and exit successfully.

           - + diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html index 25a6348ca78..a3cfc32b89b 100644 --- a/deps/npm/html/doc/misc/npm-developers.html +++ b/deps/npm/html/doc/misc/npm-developers.html @@ -3,6 +3,7 @@ npm-developers + @@ -186,5 +187,5 @@ from a fresh checkout.

           - + diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html index 87cf6b2fd37..15dfd2a3c80 100644 --- a/deps/npm/html/doc/misc/npm-disputes.html +++ b/deps/npm/html/doc/misc/npm-disputes.html @@ -3,6 +3,7 @@ npm-disputes + @@ -104,5 +105,5 @@ things into it.        - + diff --git a/deps/npm/html/doc/misc/npm-faq.html b/deps/npm/html/doc/misc/npm-faq.html index 298b44548b8..7e310072daa 100644 --- a/deps/npm/html/doc/misc/npm-faq.html +++ b/deps/npm/html/doc/misc/npm-faq.html @@ -3,6 +3,7 @@ npm-faq + @@ -85,7 +86,7 @@ in a shell script if you really wanted to.

    Mikeal Rogers answered this question very well:

    -

    http://www.mikealrogers.com/posts/nodemodules-in-git.html

    +

    http://www.futurealoof.com/posts/nodemodules-in-git.html

    tl;dr

    @@ -360,5 +361,5 @@ good folks at npm, Inc.

           - + diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html index b92a2147317..4afdf117e09 100644 --- a/deps/npm/html/doc/misc/npm-index.html +++ b/deps/npm/html/doc/misc/npm-index.html @@ -3,6 +3,7 @@ npm-index + @@ -428,5 +429,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html index 79c9957b753..3c0fea26890 100644 --- a/deps/npm/html/doc/misc/npm-registry.html +++ b/deps/npm/html/doc/misc/npm-registry.html @@ -3,6 +3,7 @@ npm-registry + @@ -83,5 +84,5 @@ effectively implement the entire CouchDB API anyway.

           - + diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html index 16f9a53e619..1e41008cdce 100644 --- a/deps/npm/html/doc/misc/npm-scripts.html +++ b/deps/npm/html/doc/misc/npm-scripts.html @@ -3,6 +3,7 @@ npm-scripts + @@ -235,5 +236,5 @@ the user will sudo the npm command in question.        - + diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html index c79e6775426..40dab55b444 100644 --- a/deps/npm/html/doc/misc/removing-npm.html +++ b/deps/npm/html/doc/misc/removing-npm.html @@ -3,6 +3,7 @@ removing-npm + @@ -70,5 +71,5 @@ modules. To track those down, you can do the following:

           - + diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html index 893858ab407..51473c703a9 100644 --- a/deps/npm/html/doc/misc/semver.html +++ b/deps/npm/html/doc/misc/semver.html @@ -3,6 +3,7 @@ semver + @@ -129,5 +130,5 @@ range, use the satisfies(version, range) function.

           - + diff --git a/deps/npm/html/dochead.html b/deps/npm/html/dochead.html index f2c8a6bad1a..e2f0e83d78e 100644 --- a/deps/npm/html/dochead.html +++ b/deps/npm/html/dochead.html @@ -3,6 +3,7 @@ @NAME@ + diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js index 3b9a46f6978..b17da0cf925 100644 --- a/deps/npm/lib/cache.js +++ b/deps/npm/lib/cache.js @@ -241,9 +241,10 @@ function add (args, cb) { log.verbose("cache add", "name=%j spec=%j args=%j", name, spec, args) - if (!name && !spec) return cb(usage) + cb = afterAdd([name, spec], cb) + // see if the spec is a url // otherwise, treat as name@version var p = url.parse(spec) || {} @@ -265,6 +266,23 @@ function add (args, cb) { add_(name, spec, p, cb) } +function afterAdd (arg, cb) { return function (er, data) { + if (er || !data || !data.name || !data.version) { + return cb(er, data) + } + + // Save the resolved, shasum, etc. into the data so that the next + // time we load from this cached data, we have all the same info. + var name = data.name + var ver = data.version + var pj = path.join(npm.cache, name, ver, "package", "package.json") + fs.writeFile(pj, JSON.stringify(data), "utf8", function (er) { + cb(er, data) + }) +}} + + + function maybeFile (spec, p, cb) { fs.stat(spec, function (er, stat) { if (!er) { @@ -316,7 +334,15 @@ function fetchAndShaCheck (u, tmp, shasum, cb) { log.error("fetch failed", u) return cb(er, response) } - if (!shasum) return cb(null, response) + + if (!shasum) { + // Well, we weren't given a shasum, so at least sha what we have + // in case we want to compare it to something else later + return sha.get(tmp, function (er, shasum) { + cb(er, response, shasum) + }) + } + // validate that the url we just downloaded matches the expected shasum. sha.check(tmp, shasum, function (er) { if (er != null && er.message) { @@ -331,7 +357,8 @@ function fetchAndShaCheck (u, tmp, shasum, cb) { // Only have a single download action at once for a given url // additional calls stack the callbacks. var inFlightURLs = {} -function addRemoteTarball (u, shasum, name, cb_) { +function addRemoteTarball (u, shasum, name, version, cb_) { + if (typeof cb_ !== "function") cb_ = version, version = "" if (typeof cb_ !== "function") cb_ = name, name = "" if (typeof cb_ !== "function") cb_ = shasum, shasum = null @@ -343,6 +370,7 @@ function addRemoteTarball (u, shasum, name, cb_) { function cb (er, data) { if (data) { data._from = u + data._shasum = data._shasum || shasum data._resolved = u } unlock(u, function () { @@ -366,7 +394,7 @@ function addRemoteTarball (u, shasum, name, cb_) { function done (er, resp, shasum) { if (er) return cb(er) - addLocalTarball(tmp, name, shasum, cb) + addLocalTarball(tmp, name, version, shasum, cb) } } @@ -791,9 +819,15 @@ function addNameVersion (name, v, data, cb) { response = null return next() } - registry.get(name + "/" + ver, function (er, d, json, resp) { + registry.get(name, function (er, d, json, resp) { if (er) return cb(er) - data = d + data = d && d.versions[ver] + if (!data) { + er = new Error('version not found: ' + name + '@' + ver) + er.package = name + er.statusCode = 404 + return cb(er) + } response = resp next() }) @@ -853,7 +887,8 @@ function addNameVersion (name, v, data, cb) { } return addRemoteTarball( tb , dist.shasum - , name+"-"+ver + , name + , ver , cb ) } } @@ -924,13 +959,23 @@ function maybeGithub (p, name, er, cb) { } } -function addLocalTarball (p, name, shasum, cb_) { +function addLocalTarball (p, name, version, shasum, cb_) { if (typeof cb_ !== "function") cb_ = shasum, shasum = null + if (typeof cb_ !== "function") cb_ = version, version = "" if (typeof cb_ !== "function") cb_ = name, name = "" + + // If we don't have a shasum yet, then get the shasum now. + if (!shasum) { + return sha.get(p, function (er, shasum) { + if (er) return cb_(er) + addLocalTarball(p, name, version, shasum, cb_) + }) + } + // if it's a tar, and not in place, // then unzip to .tmp, add the tmp folder, and clean up tmp if (pathIsInside(p, npm.tmp)) - return addTmpTarball(p, name, shasum, cb_) + return addTmpTarball(p, name, version, shasum, cb_) if (pathIsInside(p, npm.cache)) { if (path.basename(p) !== "package.tgz") return cb_(new Error( @@ -939,7 +984,10 @@ function addLocalTarball (p, name, shasum, cb_) { } function cb (er, data) { - if (data) data._resolved = p + if (data) { + data._resolved = p + data._shasum = data._shasum || shasum + } return cb_(er, data) } @@ -962,7 +1010,7 @@ function addLocalTarball (p, name, shasum, cb_) { log.verbose("chmod", tmp, npm.modes.file.toString(8)) fs.chmod(tmp, npm.modes.file, function (er) { if (er) return cb(er) - addTmpTarball(tmp, name, shasum, cb) + addTmpTarball(tmp, name, null, shasum, cb) }) }) from.pipe(to) @@ -1188,6 +1236,10 @@ function addLocalDirectory (p, name, shasum, cb) { , data.version, "package.tgz" ) , placeDirect = path.basename(p) === "package" , tgz = placeDirect ? placed : tmptgz + , version = data.version + + name = data.name + getCacheStat(function (er, cs) { mkdir(path.dirname(tgz), function (er, made) { if (er) return cb(er) @@ -1207,7 +1259,7 @@ function addLocalDirectory (p, name, shasum, cb) { chownr(made || tgz, cs.uid, cs.gid, function (er) { if (er) return cb(er) - addLocalTarball(tgz, name, shasum, cb) + addLocalTarball(tgz, name, version, shasum, cb) }) }) }) @@ -1215,21 +1267,75 @@ function addLocalDirectory (p, name, shasum, cb) { }) } -function addTmpTarball (tgz, name, shasum, cb) { - if (!cb) cb = name, name = "" +// XXX This is where it should be fixed +// Right now it's unpacking to a "package" folder, and then +// adding that local folder, for historical reasons. +// Instead, unpack to the *cache* folder, and then copy the +// tgz into place in the cache, so the shasum doesn't change. +function addTmpTarball (tgz, name, version, shasum, cb) { + // Just have a placeholder here so we can move it into place after. + var tmp = false + if (!version) { + tmp = true + version = 'tmp_' + crypto.randomBytes(6).toString('hex') + } + if (!name) { + tmp = true + name = 'tmp_' + crypto.randomBytes(6).toString('hex') + } + if (!tmp) { + var pdir = path.resolve(npm.cache, name, version, "package") + } else { + var pdir = path.resolve(npm.cache, name + version + "package") + } + getCacheStat(function (er, cs) { if (er) return cb(er) - var contents = path.dirname(tgz) - tar.unpack( tgz, path.resolve(contents, "package") - , null, null - , cs.uid, cs.gid - , function (er) { - if (er) { - return cb(er) - } - addLocalDirectory(path.resolve(contents, "package"), name, shasum, cb) - }) + tar.unpack(tgz, pdir, null, null, cs.uid, cs.gid, next) }) + + function next (er) { + if (er) return cb(er) + // it MUST be able to get a version now! + var pj = path.resolve(pdir, "package.json") + readJson(pj, function (er, data) { + if (er) return cb(er) + if (version === data.version && name === data.name && !tmp) { + addTmpTarball_(tgz, data, name, version, shasum, cb) + } else { + var old = pdir + name = data.name + version = data.version + pdir = path.resolve(npm.cache, name, version, "package") + mkdir(path.dirname(pdir), function(er) { + if (er) return cb(er) + rm(pdir, function(er) { + if (er) return cb(er) + fs.rename(old, pdir, function(er) { + if (er) return cb(er) + rm(old, function(er) { + if (er) return cb(er) + addTmpTarball_(tgz, data, name, version, shasum, cb) + }) + }) + }) + }) + } + }) + } +} + +function addTmpTarball_ (tgz, data, name, version, shasum, cb) { + cb = once(cb) + var target = path.resolve(npm.cache, name, version, "package.tgz") + var read = fs.createReadStream(tgz) + var write = fs.createWriteStream(target) + read.on("error", cb).pipe(write).on("error", cb).on("close", done) + + function done() { + data._shasum = data._shasum || shasum + cb(null, data) + } } function unpack (pkg, ver, unpackTarget, dMode, fMode, uid, gid, cb) { diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js index 55823d96768..0c2b18a7842 100644 --- a/deps/npm/lib/dedupe.js +++ b/deps/npm/lib/dedupe.js @@ -354,4 +354,3 @@ function whoDepends_ (pkg, who, test) { }) return who } - diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js index 39c98ecff27..8bc009349b6 100644 --- a/deps/npm/lib/install.js +++ b/deps/npm/lib/install.js @@ -337,6 +337,7 @@ function save (where, installed, tree, pretty, hasArguments, cb) { } var saveBundle = npm.config.get('save-bundle') + var savePrefix = npm.config.get('save-prefix') || "^"; // each item in the tree is a top-level thing that should be saved // to the package.json file. @@ -353,7 +354,7 @@ function save (where, installed, tree, pretty, hasArguments, cb) { var rangeDescriptor = semver.valid(k[1], true) && semver.gte(k[1], "0.1.0", true) && !npm.config.get("save-exact") - ? "^" : "" + ? savePrefix : "" set[k[0]] = rangeDescriptor + k[1] return set }, {}) diff --git a/deps/npm/lib/shrinkwrap.js b/deps/npm/lib/shrinkwrap.js index 48a3e4ae12e..ef5732590e0 100644 --- a/deps/npm/lib/shrinkwrap.js +++ b/deps/npm/lib/shrinkwrap.js @@ -59,7 +59,7 @@ function shrinkwrap_ (pkginfo, silent, dev, cb) { function save (pkginfo, silent, cb) { // copy the keys over in a well defined order // because javascript objects serialize arbitrarily - pkginfo.dependencies = sortedObject(pkginfo.dependencies) + pkginfo.dependencies = sortedObject(pkginfo.dependencies || {}) try { var swdata = JSON.stringify(pkginfo, null, 2) + "\n" } catch (er) { diff --git a/deps/npm/lib/utils/error-handler.js b/deps/npm/lib/utils/error-handler.js index 4286a1c2910..9777c6a50b0 100644 --- a/deps/npm/lib/utils/error-handler.js +++ b/deps/npm/lib/utils/error-handler.js @@ -146,9 +146,10 @@ function errorHandler (er) { case "E404": er.code = "E404" + var msg = [er.message] if (er.pkgid && er.pkgid !== "-") { - var msg = ["'"+er.pkgid+"' is not in the npm registry." - ,"You should bug the author to publish it"] + msg.push("", "'"+er.pkgid+"' is not in the npm registry." + ,"You should bug the author to publish it") if (er.parent) { msg.push("It was specified as a dependency of '"+er.parent+"'") } @@ -161,8 +162,8 @@ function errorHandler (er) { } msg.push("\nNote that you can also install from a" ,"tarball, folder, or http url, or git url.") - log.error("404", msg.join("\n")) } + log.error("404", msg.join("\n")) break case "EPUBLISHCONFLICT": diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js index e6ef925b304..d1493700d04 100644 --- a/deps/npm/lib/utils/lifecycle.js +++ b/deps/npm/lib/utils/lifecycle.js @@ -1,4 +1,3 @@ - exports = module.exports = lifecycle exports.cmd = cmd @@ -161,7 +160,9 @@ function runCmd (note, cmd, pkg, env, stage, wd, unsafe, cb) { var user = unsafe ? null : npm.config.get("user") , group = unsafe ? null : npm.config.get("group") - console.log(note) + if (log.level !== 'silent') { + console.log(note) + } log.verbose("unsafe-perm in lifecycle", unsafe) if (process.platform === "win32") { diff --git a/deps/npm/lib/view.js b/deps/npm/lib/view.js index f7ba5a9541c..18484b2bd1a 100644 --- a/deps/npm/lib/view.js +++ b/deps/npm/lib/view.js @@ -58,13 +58,24 @@ function view (args, silent, cb) { // get the data about this package registry.get(name, function (er, data) { if (er) return cb(er) - if (data["dist-tags"].hasOwnProperty(version)) { + if (data["dist-tags"] && data["dist-tags"].hasOwnProperty(version)) { version = data["dist-tags"][version] } + + if (data.time && data.time.unpublished) { + var u = data.time.unpublished + var er = new Error("Unpublished by " + u.name + " on " + u.time) + er.statusCode = 404 + er.code = "E404" + er.pkgid = data._id + return cb(er, data) + } + + var results = [] , error = null - , versions = data.versions - data.versions = Object.keys(data.versions).sort(semver.compareLoose) + , versions = data.versions || {} + data.versions = Object.keys(versions).sort(semver.compareLoose) if (!args.length) args = [""] // remove readme unless we asked for it diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 index b9d79a83e6c..6118efec7a0 100644 --- a/deps/npm/man/man1/npm-README.1 +++ b/deps/npm/man/man1/npm-README.1 @@ -1,12 +1,13 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM" "1" "March 2014" "" "" +.TH "NPM" "1" "April 2014" "" "" . .SH "NAME" -\fBnpm\fR \-\- node package manager +\fBnpm\fR \-\- node package manager![Build Status \fIhttps://img\.shields\.io/travis/npm/npm/master\.svg)](https://travis\-ci\.org/npm/npm\fR +## SYNOPSIS . -.SH "SYNOPSIS" +.P This is just enough info to get you up and running\. . .P diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index f37e270c35b..32fb4e258db 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-ADDUSER" "1" "March 2014" "" "" +.TH "NPM\-ADDUSER" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-adduser\fR \-\- Add a registry user account diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 index a8eff0bb6ec..7b84d493afd 100644 --- a/deps/npm/man/man1/npm-bin.1 +++ b/deps/npm/man/man1/npm-bin.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BIN" "1" "March 2014" "" "" +.TH "NPM\-BIN" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-bin\fR \-\- Display npm bin folder diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index ed250474307..5d55899f7e2 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUGS" "1" "March 2014" "" "" +.TH "NPM\-BUGS" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 index 49703f31f3a..7fa37e86423 100644 --- a/deps/npm/man/man1/npm-build.1 +++ b/deps/npm/man/man1/npm-build.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUILD" "1" "March 2014" "" "" +.TH "NPM\-BUILD" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-build\fR \-\- Build a package diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1 index 04ef1a38869..6060b3c342a 100644 --- a/deps/npm/man/man1/npm-bundle.1 +++ b/deps/npm/man/man1/npm-bundle.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUNDLE" "1" "March 2014" "" "" +.TH "NPM\-BUNDLE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-bundle\fR \-\- REMOVED diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index 98922c4d9d0..cbedf547fda 100644 --- a/deps/npm/man/man1/npm-cache.1 +++ b/deps/npm/man/man1/npm-cache.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CACHE" "1" "March 2014" "" "" +.TH "NPM\-CACHE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-cache\fR \-\- Manipulates packages cache diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index decc444d2b2..1a4bc30e1de 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-COMPLETION" "1" "March 2014" "" "" +.TH "NPM\-COMPLETION" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-completion\fR \-\- Tab Completion for npm diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index 95c08c75739..166acddd287 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CONFIG" "1" "March 2014" "" "" +.TH "NPM\-CONFIG" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-config\fR \-\- Manage the npm configuration files diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 5a1eef85535..6f65a68e977 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DEDUPE" "1" "March 2014" "" "" +.TH "NPM\-DEDUPE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-dedupe\fR \-\- Reduce duplication diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index f4af967e710..d823ee309a7 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DEPRECATE" "1" "March 2014" "" "" +.TH "NPM\-DEPRECATE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-deprecate\fR \-\- Deprecate a version of a package diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index a6f08de709b..5c19cb41ac3 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DOCS" "1" "March 2014" "" "" +.TH "NPM\-DOCS" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-docs\fR \-\- Docs for a package in a web browser maybe diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 0e8a17276a9..1dd706140f0 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-EDIT" "1" "March 2014" "" "" +.TH "NPM\-EDIT" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-edit\fR \-\- Edit an installed package diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index c69da38862a..2bf1de761a7 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-EXPLORE" "1" "March 2014" "" "" +.TH "NPM\-EXPLORE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-explore\fR \-\- Browse an installed package diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 0fe386e3892..5450e75cd1c 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-HELP\-SEARCH" "1" "March 2014" "" "" +.TH "NPM\-HELP\-SEARCH" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-help-search\fR \-\- Search npm help documentation diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index 6b4041c54c6..5b010bde4e1 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-HELP" "1" "March 2014" "" "" +.TH "NPM\-HELP" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-help\fR \-\- Get help on npm diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 87766bbd655..2a9fb3a1f00 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-INIT" "1" "March 2014" "" "" +.TH "NPM\-INIT" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-init\fR \-\- Interactively create a package\.json file diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index f5c517082be..8ffb4e663a3 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-INSTALL" "1" "March 2014" "" "" +.TH "NPM\-INSTALL" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-install\fR \-\- Install a package diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index b4a01677be1..49a9030254c 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LINK" "1" "March 2014" "" "" +.TH "NPM\-LINK" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-link\fR \-\- Symlink a package folder diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index 01c3bdadc7c..32ae9dd781f 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LS" "1" "March 2014" "" "" +.TH "NPM\-LS" "1" "April 2014" "" "" . .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.4.6 /path/to/npm +npm@1.4.7 /path/to/npm └─┬ init\-package\-json@0\.0\.4 └── promzard@0\.1\.5 . diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index 27ce507e1f4..7a9d3afb94f 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-OUTDATED" "1" "March 2014" "" "" +.TH "NPM\-OUTDATED" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-outdated\fR \-\- Check for outdated packages diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index 0dbdec1a6cf..f137e430016 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-OWNER" "1" "March 2014" "" "" +.TH "NPM\-OWNER" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-owner\fR \-\- Manage package owners diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index a89e05e06bd..302617e5d1d 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PACK" "1" "March 2014" "" "" +.TH "NPM\-PACK" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-pack\fR \-\- Create a tarball from a package diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index d8c1a6d16df..2354b1c17ca 100644 --- a/deps/npm/man/man1/npm-prefix.1 +++ b/deps/npm/man/man1/npm-prefix.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PREFIX" "1" "March 2014" "" "" +.TH "NPM\-PREFIX" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-prefix\fR \-\- Display prefix diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index aa673dff718..052cad9d3cf 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PRUNE" "1" "March 2014" "" "" +.TH "NPM\-PRUNE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-prune\fR \-\- Remove extraneous packages diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index 379e3b819a8..6fc6743ac97 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PUBLISH" "1" "March 2014" "" "" +.TH "NPM\-PUBLISH" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-publish\fR \-\- Publish a package diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index cfd40ae09ad..4a63d3d27ca 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REBUILD" "1" "March 2014" "" "" +.TH "NPM\-REBUILD" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-rebuild\fR \-\- Rebuild a package diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 24331db87de..3f9fb3251f6 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REPO" "1" "March 2014" "" "" +.TH "NPM\-REPO" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-repo\fR \-\- Open package repository page in the browser diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index 45d85c0ad12..47a032ebeab 100644 --- a/deps/npm/man/man1/npm-restart.1 +++ b/deps/npm/man/man1/npm-restart.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RESTART" "1" "March 2014" "" "" +.TH "NPM\-RESTART" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-restart\fR \-\- Start a package diff --git a/deps/npm/man/man1/npm-rm.1 b/deps/npm/man/man1/npm-rm.1 index 1e3d4e6e719..b8d010964c0 100644 --- a/deps/npm/man/man1/npm-rm.1 +++ b/deps/npm/man/man1/npm-rm.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RM" "1" "March 2014" "" "" +.TH "NPM\-RM" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-rm\fR \-\- Remove a package diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index 11020316903..1a78a2e718a 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-ROOT" "1" "March 2014" "" "" +.TH "NPM\-ROOT" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-root\fR \-\- Display npm root diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index 7ae992c3ef7..f7ec7f01c4c 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RUN\-SCRIPT" "1" "March 2014" "" "" +.TH "NPM\-RUN\-SCRIPT" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-run-script\fR \-\- Run arbitrary package scripts diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index 2269f133cc3..1424dc269ba 100644 --- a/deps/npm/man/man1/npm-search.1 +++ b/deps/npm/man/man1/npm-search.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SEARCH" "1" "March 2014" "" "" +.TH "NPM\-SEARCH" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-search\fR \-\- Search for packages diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 0189ec01c8e..a8e60bd65da 100644 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ b/deps/npm/man/man1/npm-shrinkwrap.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SHRINKWRAP" "1" "March 2014" "" "" +.TH "NPM\-SHRINKWRAP" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-shrinkwrap\fR \-\- Lock down dependency versions diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index 410180f6f88..fb8df2aa641 100644 --- a/deps/npm/man/man1/npm-star.1 +++ b/deps/npm/man/man1/npm-star.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-STAR" "1" "March 2014" "" "" +.TH "NPM\-STAR" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-star\fR \-\- Mark your favorite packages diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index 3058b7b1176..743b351923f 100644 --- a/deps/npm/man/man1/npm-stars.1 +++ b/deps/npm/man/man1/npm-stars.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-STARS" "1" "March 2014" "" "" +.TH "NPM\-STARS" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-stars\fR \-\- View packages marked as favorites diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 index a554df25ffe..bd4490946ce 100644 --- a/deps/npm/man/man1/npm-start.1 +++ b/deps/npm/man/man1/npm-start.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-START" "1" "March 2014" "" "" +.TH "NPM\-START" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-start\fR \-\- Start a package diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 index 3bf53b07db6..0e2b5368ef4 100644 --- a/deps/npm/man/man1/npm-stop.1 +++ b/deps/npm/man/man1/npm-stop.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-STOP" "1" "March 2014" "" "" +.TH "NPM\-STOP" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-stop\fR \-\- Stop a package diff --git a/deps/npm/man/man1/npm-submodule.1 b/deps/npm/man/man1/npm-submodule.1 index 4276e5bb105..dc3299418d6 100644 --- a/deps/npm/man/man1/npm-submodule.1 +++ b/deps/npm/man/man1/npm-submodule.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SUBMODULE" "1" "March 2014" "" "" +.TH "NPM\-SUBMODULE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-submodule\fR \-\- Add a package as a git submodule diff --git a/deps/npm/man/man1/npm-tag.1 b/deps/npm/man/man1/npm-tag.1 index 28240c2a120..d164a1a1ae9 100644 --- a/deps/npm/man/man1/npm-tag.1 +++ b/deps/npm/man/man1/npm-tag.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-TAG" "1" "March 2014" "" "" +.TH "NPM\-TAG" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-tag\fR \-\- Tag a published version diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 index a495c7c4f84..ebe56090c1c 100644 --- a/deps/npm/man/man1/npm-test.1 +++ b/deps/npm/man/man1/npm-test.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-TEST" "1" "March 2014" "" "" +.TH "NPM\-TEST" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-test\fR \-\- Test a package diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index d396400abcc..0fca48a28ae 100644 --- a/deps/npm/man/man1/npm-uninstall.1 +++ b/deps/npm/man/man1/npm-uninstall.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RM" "1" "March 2014" "" "" +.TH "NPM\-RM" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-rm\fR \-\- Remove a package diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index 154f98619e9..d6356dcc310 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-UNPUBLISH" "1" "March 2014" "" "" +.TH "NPM\-UNPUBLISH" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-unpublish\fR \-\- Remove a package from the registry diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index df6683efd4f..b97babe5735 100644 --- a/deps/npm/man/man1/npm-update.1 +++ b/deps/npm/man/man1/npm-update.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-UPDATE" "1" "March 2014" "" "" +.TH "NPM\-UPDATE" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-update\fR \-\- Update a package diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 90ef9f12a6c..e780e3cb618 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-VERSION" "1" "March 2014" "" "" +.TH "NPM\-VERSION" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-version\fR \-\- Bump a package version diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index 0fe0255ecb6..8fc4242b001 100644 --- a/deps/npm/man/man1/npm-view.1 +++ b/deps/npm/man/man1/npm-view.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-VIEW" "1" "March 2014" "" "" +.TH "NPM\-VIEW" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-view\fR \-\- View registry info diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index 04ed40f658b..3d6cac7fe64 100644 --- a/deps/npm/man/man1/npm-whoami.1 +++ b/deps/npm/man/man1/npm-whoami.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-WHOAMI" "1" "March 2014" "" "" +.TH "NPM\-WHOAMI" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-whoami\fR \-\- Display npm username diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index 8c9a99ad4fb..b3a175cdfc5 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 2014" "" "" +.TH "NPM" "1" "April 2014" "" "" . .SH "NAME" \fBnpm\fR \-\- node package manager @@ -14,7 +14,7 @@ npm [args] .fi . .SH "VERSION" -1.4.6 +1.4.7 . .SH "DESCRIPTION" npm is the package manager for the Node JavaScript platform\. It puts diff --git a/deps/npm/man/man3/npm-bin.3 b/deps/npm/man/man3/npm-bin.3 index 9e7e73e6038..531ad585cd4 100644 --- a/deps/npm/man/man3/npm-bin.3 +++ b/deps/npm/man/man3/npm-bin.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BIN" "3" "March 2014" "" "" +.TH "NPM\-BIN" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-bin\fR \-\- Display npm bin folder diff --git a/deps/npm/man/man3/npm-bugs.3 b/deps/npm/man/man3/npm-bugs.3 index 6068659c3e3..f104fc61461 100644 --- a/deps/npm/man/man3/npm-bugs.3 +++ b/deps/npm/man/man3/npm-bugs.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUGS" "3" "March 2014" "" "" +.TH "NPM\-BUGS" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe diff --git a/deps/npm/man/man3/npm-commands.3 b/deps/npm/man/man3/npm-commands.3 index b1fc270b5ba..23dca1ef2b4 100644 --- a/deps/npm/man/man3/npm-commands.3 +++ b/deps/npm/man/man3/npm-commands.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-COMMANDS" "3" "March 2014" "" "" +.TH "NPM\-COMMANDS" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-commands\fR \-\- npm commands diff --git a/deps/npm/man/man3/npm-config.3 b/deps/npm/man/man3/npm-config.3 index 54e3515a759..07b50a226a8 100644 --- a/deps/npm/man/man3/npm-config.3 +++ b/deps/npm/man/man3/npm-config.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CONFIG" "3" "March 2014" "" "" +.TH "NPM\-CONFIG" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-config\fR \-\- Manage the npm configuration files diff --git a/deps/npm/man/man3/npm-deprecate.3 b/deps/npm/man/man3/npm-deprecate.3 index 89b9c10e674..cf157294e5b 100644 --- a/deps/npm/man/man3/npm-deprecate.3 +++ b/deps/npm/man/man3/npm-deprecate.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DEPRECATE" "3" "March 2014" "" "" +.TH "NPM\-DEPRECATE" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-deprecate\fR \-\- Deprecate a version of a package diff --git a/deps/npm/man/man3/npm-docs.3 b/deps/npm/man/man3/npm-docs.3 index 82d94080d32..0d2d98881c8 100644 --- a/deps/npm/man/man3/npm-docs.3 +++ b/deps/npm/man/man3/npm-docs.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DOCS" "3" "March 2014" "" "" +.TH "NPM\-DOCS" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-docs\fR \-\- Docs for a package in a web browser maybe diff --git a/deps/npm/man/man3/npm-edit.3 b/deps/npm/man/man3/npm-edit.3 index 1e00e86a0fa..874d2c6d97a 100644 --- a/deps/npm/man/man3/npm-edit.3 +++ b/deps/npm/man/man3/npm-edit.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-EDIT" "3" "March 2014" "" "" +.TH "NPM\-EDIT" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-edit\fR \-\- Edit an installed package diff --git a/deps/npm/man/man3/npm-explore.3 b/deps/npm/man/man3/npm-explore.3 index 227dfdc63f9..c63638fa26b 100644 --- a/deps/npm/man/man3/npm-explore.3 +++ b/deps/npm/man/man3/npm-explore.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-EXPLORE" "3" "March 2014" "" "" +.TH "NPM\-EXPLORE" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-explore\fR \-\- Browse an installed package diff --git a/deps/npm/man/man3/npm-help-search.3 b/deps/npm/man/man3/npm-help-search.3 index d6f4f7f6dbf..1e55605dd1c 100644 --- a/deps/npm/man/man3/npm-help-search.3 +++ b/deps/npm/man/man3/npm-help-search.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-HELP\-SEARCH" "3" "March 2014" "" "" +.TH "NPM\-HELP\-SEARCH" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-help-search\fR \-\- Search the help pages diff --git a/deps/npm/man/man3/npm-init.3 b/deps/npm/man/man3/npm-init.3 index b902b62aced..97ac033f641 100644 --- a/deps/npm/man/man3/npm-init.3 +++ b/deps/npm/man/man3/npm-init.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "INIT" "3" "March 2014" "" "" +.TH "INIT" "3" "April 2014" "" "" . .SH "NAME" \fBinit\fR \-\- Interactively create a package\.json file diff --git a/deps/npm/man/man3/npm-install.3 b/deps/npm/man/man3/npm-install.3 index ff651da5e0a..8fa94adbef3 100644 --- a/deps/npm/man/man3/npm-install.3 +++ b/deps/npm/man/man3/npm-install.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-INSTALL" "3" "March 2014" "" "" +.TH "NPM\-INSTALL" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-install\fR \-\- install a package programmatically diff --git a/deps/npm/man/man3/npm-link.3 b/deps/npm/man/man3/npm-link.3 index f0f9835a33b..ab4285a563d 100644 --- a/deps/npm/man/man3/npm-link.3 +++ b/deps/npm/man/man3/npm-link.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LINK" "3" "March 2014" "" "" +.TH "NPM\-LINK" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-link\fR \-\- Symlink a package folder diff --git a/deps/npm/man/man3/npm-load.3 b/deps/npm/man/man3/npm-load.3 index 8ef38e4cf69..bd1bef6fc96 100644 --- a/deps/npm/man/man3/npm-load.3 +++ b/deps/npm/man/man3/npm-load.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LOAD" "3" "March 2014" "" "" +.TH "NPM\-LOAD" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-load\fR \-\- Load config settings diff --git a/deps/npm/man/man3/npm-ls.3 b/deps/npm/man/man3/npm-ls.3 index a72d4121740..c799b19aa5b 100644 --- a/deps/npm/man/man3/npm-ls.3 +++ b/deps/npm/man/man3/npm-ls.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LS" "3" "March 2014" "" "" +.TH "NPM\-LS" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-ls\fR \-\- List installed packages diff --git a/deps/npm/man/man3/npm-outdated.3 b/deps/npm/man/man3/npm-outdated.3 index 4530b220c5e..67245cb46d7 100644 --- a/deps/npm/man/man3/npm-outdated.3 +++ b/deps/npm/man/man3/npm-outdated.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-OUTDATED" "3" "March 2014" "" "" +.TH "NPM\-OUTDATED" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-outdated\fR \-\- Check for outdated packages diff --git a/deps/npm/man/man3/npm-owner.3 b/deps/npm/man/man3/npm-owner.3 index 464f29f32ef..54b58df8819 100644 --- a/deps/npm/man/man3/npm-owner.3 +++ b/deps/npm/man/man3/npm-owner.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-OWNER" "3" "March 2014" "" "" +.TH "NPM\-OWNER" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-owner\fR \-\- Manage package owners diff --git a/deps/npm/man/man3/npm-pack.3 b/deps/npm/man/man3/npm-pack.3 index db83c0adbc2..584ce20524e 100644 --- a/deps/npm/man/man3/npm-pack.3 +++ b/deps/npm/man/man3/npm-pack.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PACK" "3" "March 2014" "" "" +.TH "NPM\-PACK" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-pack\fR \-\- Create a tarball from a package diff --git a/deps/npm/man/man3/npm-prefix.3 b/deps/npm/man/man3/npm-prefix.3 index 4be7e51019a..1cc865ad71f 100644 --- a/deps/npm/man/man3/npm-prefix.3 +++ b/deps/npm/man/man3/npm-prefix.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PREFIX" "3" "March 2014" "" "" +.TH "NPM\-PREFIX" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-prefix\fR \-\- Display prefix diff --git a/deps/npm/man/man3/npm-prune.3 b/deps/npm/man/man3/npm-prune.3 index 4ffb0c27075..12e6081bc70 100644 --- a/deps/npm/man/man3/npm-prune.3 +++ b/deps/npm/man/man3/npm-prune.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PRUNE" "3" "March 2014" "" "" +.TH "NPM\-PRUNE" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-prune\fR \-\- Remove extraneous packages diff --git a/deps/npm/man/man3/npm-publish.3 b/deps/npm/man/man3/npm-publish.3 index 03196b47e7d..c23abd3567c 100644 --- a/deps/npm/man/man3/npm-publish.3 +++ b/deps/npm/man/man3/npm-publish.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PUBLISH" "3" "March 2014" "" "" +.TH "NPM\-PUBLISH" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-publish\fR \-\- Publish a package diff --git a/deps/npm/man/man3/npm-rebuild.3 b/deps/npm/man/man3/npm-rebuild.3 index cc1c0cf0fda..5c1d9e6d575 100644 --- a/deps/npm/man/man3/npm-rebuild.3 +++ b/deps/npm/man/man3/npm-rebuild.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REBUILD" "3" "March 2014" "" "" +.TH "NPM\-REBUILD" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-rebuild\fR \-\- Rebuild a package diff --git a/deps/npm/man/man3/npm-repo.3 b/deps/npm/man/man3/npm-repo.3 index 407f833dd8c..a1aad4b944b 100644 --- a/deps/npm/man/man3/npm-repo.3 +++ b/deps/npm/man/man3/npm-repo.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REPO" "3" "March 2014" "" "" +.TH "NPM\-REPO" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-repo\fR \-\- Open package repository page in the browser diff --git a/deps/npm/man/man3/npm-restart.3 b/deps/npm/man/man3/npm-restart.3 index 6d55512fad5..df8ad2c84f5 100644 --- a/deps/npm/man/man3/npm-restart.3 +++ b/deps/npm/man/man3/npm-restart.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RESTART" "3" "March 2014" "" "" +.TH "NPM\-RESTART" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-restart\fR \-\- Start a package diff --git a/deps/npm/man/man3/npm-root.3 b/deps/npm/man/man3/npm-root.3 index e1aa75f0be0..f04f6c7b87d 100644 --- a/deps/npm/man/man3/npm-root.3 +++ b/deps/npm/man/man3/npm-root.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-ROOT" "3" "March 2014" "" "" +.TH "NPM\-ROOT" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-root\fR \-\- Display npm root diff --git a/deps/npm/man/man3/npm-run-script.3 b/deps/npm/man/man3/npm-run-script.3 index edab316ef05..38a172527f4 100644 --- a/deps/npm/man/man3/npm-run-script.3 +++ b/deps/npm/man/man3/npm-run-script.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RUN\-SCRIPT" "3" "March 2014" "" "" +.TH "NPM\-RUN\-SCRIPT" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-run-script\fR \-\- Run arbitrary package scripts diff --git a/deps/npm/man/man3/npm-search.3 b/deps/npm/man/man3/npm-search.3 index cb5336dc4bd..d134ec3f169 100644 --- a/deps/npm/man/man3/npm-search.3 +++ b/deps/npm/man/man3/npm-search.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SEARCH" "3" "March 2014" "" "" +.TH "NPM\-SEARCH" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-search\fR \-\- Search for packages diff --git a/deps/npm/man/man3/npm-shrinkwrap.3 b/deps/npm/man/man3/npm-shrinkwrap.3 index 148c82172a2..b863ece6ce7 100644 --- a/deps/npm/man/man3/npm-shrinkwrap.3 +++ b/deps/npm/man/man3/npm-shrinkwrap.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SHRINKWRAP" "3" "March 2014" "" "" +.TH "NPM\-SHRINKWRAP" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-shrinkwrap\fR \-\- programmatically generate package shrinkwrap file diff --git a/deps/npm/man/man3/npm-start.3 b/deps/npm/man/man3/npm-start.3 index 74db7eaf63d..fe659a6d885 100644 --- a/deps/npm/man/man3/npm-start.3 +++ b/deps/npm/man/man3/npm-start.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-START" "3" "March 2014" "" "" +.TH "NPM\-START" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-start\fR \-\- Start a package diff --git a/deps/npm/man/man3/npm-stop.3 b/deps/npm/man/man3/npm-stop.3 index a76b39df7e0..f2761485d33 100644 --- a/deps/npm/man/man3/npm-stop.3 +++ b/deps/npm/man/man3/npm-stop.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-STOP" "3" "March 2014" "" "" +.TH "NPM\-STOP" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-stop\fR \-\- Stop a package diff --git a/deps/npm/man/man3/npm-submodule.3 b/deps/npm/man/man3/npm-submodule.3 index 301543eae2a..89d4e9668db 100644 --- a/deps/npm/man/man3/npm-submodule.3 +++ b/deps/npm/man/man3/npm-submodule.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SUBMODULE" "3" "March 2014" "" "" +.TH "NPM\-SUBMODULE" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-submodule\fR \-\- Add a package as a git submodule diff --git a/deps/npm/man/man3/npm-tag.3 b/deps/npm/man/man3/npm-tag.3 index fe40b6590ae..3b047f264b3 100644 --- a/deps/npm/man/man3/npm-tag.3 +++ b/deps/npm/man/man3/npm-tag.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-TAG" "3" "March 2014" "" "" +.TH "NPM\-TAG" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-tag\fR \-\- Tag a published version diff --git a/deps/npm/man/man3/npm-test.3 b/deps/npm/man/man3/npm-test.3 index 7bb597fc73f..7d5791127f3 100644 --- a/deps/npm/man/man3/npm-test.3 +++ b/deps/npm/man/man3/npm-test.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-TEST" "3" "March 2014" "" "" +.TH "NPM\-TEST" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-test\fR \-\- Test a package diff --git a/deps/npm/man/man3/npm-uninstall.3 b/deps/npm/man/man3/npm-uninstall.3 index bf01318df96..04a1a536c7a 100644 --- a/deps/npm/man/man3/npm-uninstall.3 +++ b/deps/npm/man/man3/npm-uninstall.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-UNINSTALL" "3" "March 2014" "" "" +.TH "NPM\-UNINSTALL" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-uninstall\fR \-\- uninstall a package programmatically diff --git a/deps/npm/man/man3/npm-unpublish.3 b/deps/npm/man/man3/npm-unpublish.3 index 258db147f41..1481f07281c 100644 --- a/deps/npm/man/man3/npm-unpublish.3 +++ b/deps/npm/man/man3/npm-unpublish.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-UNPUBLISH" "3" "March 2014" "" "" +.TH "NPM\-UNPUBLISH" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-unpublish\fR \-\- Remove a package from the registry diff --git a/deps/npm/man/man3/npm-update.3 b/deps/npm/man/man3/npm-update.3 index c0a5b7a70b2..957185e6de4 100644 --- a/deps/npm/man/man3/npm-update.3 +++ b/deps/npm/man/man3/npm-update.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-UPDATE" "3" "March 2014" "" "" +.TH "NPM\-UPDATE" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-update\fR \-\- Update a package diff --git a/deps/npm/man/man3/npm-version.3 b/deps/npm/man/man3/npm-version.3 index 5dae8b7d260..32f4da3c81b 100644 --- a/deps/npm/man/man3/npm-version.3 +++ b/deps/npm/man/man3/npm-version.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-VERSION" "3" "March 2014" "" "" +.TH "NPM\-VERSION" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-version\fR \-\- Bump a package version diff --git a/deps/npm/man/man3/npm-view.3 b/deps/npm/man/man3/npm-view.3 index c0b1fd51778..274af67e3de 100644 --- a/deps/npm/man/man3/npm-view.3 +++ b/deps/npm/man/man3/npm-view.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-VIEW" "3" "March 2014" "" "" +.TH "NPM\-VIEW" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-view\fR \-\- View registry info diff --git a/deps/npm/man/man3/npm-whoami.3 b/deps/npm/man/man3/npm-whoami.3 index 4e068af94ea..8c9900c2ecc 100644 --- a/deps/npm/man/man3/npm-whoami.3 +++ b/deps/npm/man/man3/npm-whoami.3 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-WHOAMI" "3" "March 2014" "" "" +.TH "NPM\-WHOAMI" "3" "April 2014" "" "" . .SH "NAME" \fBnpm-whoami\fR \-\- Display npm username diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3 index 83a10c675f6..80e5ad875f8 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 2014" "" "" +.TH "NPM" "3" "April 2014" "" "" . .SH "NAME" \fBnpm\fR \-\- node package manager @@ -21,7 +21,7 @@ npm\.load([configObject], function (er, npm) { .fi . .SH "VERSION" -1.4.6 +1.4.7 . .SH "DESCRIPTION" This is the API documentation for npm\. diff --git a/deps/npm/man/man5/npm-folders.5 b/deps/npm/man/man5/npm-folders.5 index 194bb9b6d36..cc93fdee849 100644 --- a/deps/npm/man/man5/npm-folders.5 +++ b/deps/npm/man/man5/npm-folders.5 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-FOLDERS" "5" "March 2014" "" "" +.TH "NPM\-FOLDERS" "5" "April 2014" "" "" . .SH "NAME" \fBnpm-folders\fR \-\- Folder Structures Used by npm diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5 index 194bb9b6d36..cc93fdee849 100644 --- a/deps/npm/man/man5/npm-global.5 +++ b/deps/npm/man/man5/npm-global.5 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-FOLDERS" "5" "March 2014" "" "" +.TH "NPM\-FOLDERS" "5" "April 2014" "" "" . .SH "NAME" \fBnpm-folders\fR \-\- Folder Structures Used by npm diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 index a0cd2c9b6fc..c08044a9a06 100644 --- a/deps/npm/man/man5/npm-json.5 +++ b/deps/npm/man/man5/npm-json.5 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "PACKAGE\.JSON" "5" "March 2014" "" "" +.TH "PACKAGE\.JSON" "5" "April 2014" "" "" . .SH "NAME" \fBpackage.json\fR \-\- Specifics of npm\'s package\.json handling @@ -567,6 +567,57 @@ can consume the functionality without requiring them to compile it themselves\. In dev mode (ie, locally running \fBnpm install\fR), it\'ll run this script as well, so that you can test it easily\. . +.SH "peerDependencies" +In some cases, you want to express the compatibility of your package with an +host tool or library, while not necessarily doing a \fBrequire\fR of this host\. +This is usually refered to as a \fIplugin\fR\|\. Notably, your module may be exposing +a specific interface, expected and specified by the host documentation\. +. +.P +For example: +. +.IP "" 4 +. +.nf +{ + "name": "tea\-latte", + "version": "1\.3\.5" + "peerDependencies": { + "tea": "2\.x" + } +} +. +.fi +. +.IP "" 0 +. +.P +This ensures your package \fBtea\-latte\fR can be installed \fIalong\fR with the second +major version of the host package \fBtea\fR only\. The host package is automatically +installed if needed\. \fBnpm install tea\-latte\fR could possibly yield the following +dependency graph: +. +.IP "" 4 +. +.nf +├── tea\-latte@1\.3\.5 +└── tea@2\.2\.0 +. +.fi +. +.IP "" 0 +. +.P +Trying to install another plugin with a conflicting requirement will cause an +error\. For this reason, make sure your plugin requirement is as broad as +possible, and not to lock it down to specific patch versions\. +. +.P +Assuming the host complies with semver \fIhttp://semver\.org/\fR, only changes in +the host package\'s major version will break your plugin\. Thus, if you\'ve worked +with every 1\.x version of the host package, use \fB"^1\.0"\fR or \fB"1\.x"\fR to express +this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fR\|\. +. .SH "bundledDependencies" Array of package names that will be bundled when publishing the package\. . diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 index e8a740abd35..8ac6b3ba8f2 100644 --- a/deps/npm/man/man5/npmrc.5 +++ b/deps/npm/man/man5/npmrc.5 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPMRC" "5" "March 2014" "" "" +.TH "NPMRC" "5" "April 2014" "" "" . .SH "NAME" \fBnpmrc\fR \-\- The npm config files diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5 index a0cd2c9b6fc..c08044a9a06 100644 --- a/deps/npm/man/man5/package.json.5 +++ b/deps/npm/man/man5/package.json.5 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "PACKAGE\.JSON" "5" "March 2014" "" "" +.TH "PACKAGE\.JSON" "5" "April 2014" "" "" . .SH "NAME" \fBpackage.json\fR \-\- Specifics of npm\'s package\.json handling @@ -567,6 +567,57 @@ can consume the functionality without requiring them to compile it themselves\. In dev mode (ie, locally running \fBnpm install\fR), it\'ll run this script as well, so that you can test it easily\. . +.SH "peerDependencies" +In some cases, you want to express the compatibility of your package with an +host tool or library, while not necessarily doing a \fBrequire\fR of this host\. +This is usually refered to as a \fIplugin\fR\|\. Notably, your module may be exposing +a specific interface, expected and specified by the host documentation\. +. +.P +For example: +. +.IP "" 4 +. +.nf +{ + "name": "tea\-latte", + "version": "1\.3\.5" + "peerDependencies": { + "tea": "2\.x" + } +} +. +.fi +. +.IP "" 0 +. +.P +This ensures your package \fBtea\-latte\fR can be installed \fIalong\fR with the second +major version of the host package \fBtea\fR only\. The host package is automatically +installed if needed\. \fBnpm install tea\-latte\fR could possibly yield the following +dependency graph: +. +.IP "" 4 +. +.nf +├── tea\-latte@1\.3\.5 +└── tea@2\.2\.0 +. +.fi +. +.IP "" 0 +. +.P +Trying to install another plugin with a conflicting requirement will cause an +error\. For this reason, make sure your plugin requirement is as broad as +possible, and not to lock it down to specific patch versions\. +. +.P +Assuming the host complies with semver \fIhttp://semver\.org/\fR, only changes in +the host package\'s major version will break your plugin\. Thus, if you\'ve worked +with every 1\.x version of the host package, use \fB"^1\.0"\fR or \fB"1\.x"\fR to express +this\. If you depend on features introduced in 1\.5\.2, use \fB">= 1\.5\.2 < 2"\fR\|\. +. .SH "bundledDependencies" Array of package names that will be bundled when publishing the package\. . diff --git a/deps/npm/man/man7/npm-coding-style.7 b/deps/npm/man/man7/npm-coding-style.7 index 710aa660471..a15a004e1b7 100644 --- a/deps/npm/man/man7/npm-coding-style.7 +++ b/deps/npm/man/man7/npm-coding-style.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CODING\-STYLE" "7" "March 2014" "" "" +.TH "NPM\-CODING\-STYLE" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-coding-style\fR \-\- npm\'s "funny" coding style diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7 index 60577f4ee41..a7069c811bb 100644 --- a/deps/npm/man/man7/npm-config.7 +++ b/deps/npm/man/man7/npm-config.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CONFIG" "7" "March 2014" "" "" +.TH "NPM\-CONFIG" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-config\fR \-\- More than you probably want to know about npm configuration @@ -1137,6 +1137,27 @@ devDependencies hash\. .P Only works if there is already a package\.json file present\. . +.SS "save\-prefix" +. +.IP "\(bu" 4 +Default: \'^\' +. +.IP "\(bu" 4 +Type: String +. +.IP "" 0 +. +.P +Configure how versions of packages installed to a package\.json file via \fB\-\-save\fR or \fB\-\-save\-dev\fR get prefixed\. +. +.P +For example if a package has version \fB1\.2\.3\fR, by default it\'s version is +set to \fB^1\.2\.3\fR which allows minor upgrades for that package, but after +. +.br +\fBnpm config set save\-prefix=\'~\'\fR it would be set to \fB~1\.2\.3\fR which only allows +patch upgrades\. +. .SS "searchopts" . .IP "\(bu" 4 diff --git a/deps/npm/man/man7/npm-developers.7 b/deps/npm/man/man7/npm-developers.7 index b50705ba1af..acd9593a6bd 100644 --- a/deps/npm/man/man7/npm-developers.7 +++ b/deps/npm/man/man7/npm-developers.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DEVELOPERS" "7" "March 2014" "" "" +.TH "NPM\-DEVELOPERS" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-developers\fR \-\- Developer Guide diff --git a/deps/npm/man/man7/npm-disputes.7 b/deps/npm/man/man7/npm-disputes.7 index 3afd7e571ec..1d59103d3f5 100644 --- a/deps/npm/man/man7/npm-disputes.7 +++ b/deps/npm/man/man7/npm-disputes.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DISPUTES" "7" "March 2014" "" "" +.TH "NPM\-DISPUTES" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-disputes\fR \-\- Handling Module Name Disputes diff --git a/deps/npm/man/man7/npm-faq.7 b/deps/npm/man/man7/npm-faq.7 index ce7453fa04c..9793e51436a 100644 --- a/deps/npm/man/man7/npm-faq.7 +++ b/deps/npm/man/man7/npm-faq.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-FAQ" "7" "March 2014" "" "" +.TH "NPM\-FAQ" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-faq\fR \-\- Frequently Asked Questions @@ -94,7 +94,7 @@ npm will not help you do something that is known to be a bad idea\. Mikeal Rogers answered this question very well: . .P -\fIhttp://www\.mikealrogers\.com/posts/nodemodules\-in\-git\.html\fR +\fIhttp://www\.futurealoof\.com/posts/nodemodules\-in\-git\.html\fR . .P tl;dr diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7 index 8e17a3d7a52..24abdf9e36c 100644 --- a/deps/npm/man/man7/npm-index.7 +++ b/deps/npm/man/man7/npm-index.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-INDEX" "7" "March 2014" "" "" +.TH "NPM\-INDEX" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-index\fR \-\- Index of all npm documentation diff --git a/deps/npm/man/man7/npm-registry.7 b/deps/npm/man/man7/npm-registry.7 index 5a62ae6fcbf..94b915a9a6b 100644 --- a/deps/npm/man/man7/npm-registry.7 +++ b/deps/npm/man/man7/npm-registry.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REGISTRY" "7" "March 2014" "" "" +.TH "NPM\-REGISTRY" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-registry\fR \-\- The JavaScript Package Registry diff --git a/deps/npm/man/man7/npm-scripts.7 b/deps/npm/man/man7/npm-scripts.7 index bc16a8d6ef9..8ccf99db7dc 100644 --- a/deps/npm/man/man7/npm-scripts.7 +++ b/deps/npm/man/man7/npm-scripts.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-SCRIPTS" "7" "March 2014" "" "" +.TH "NPM\-SCRIPTS" "7" "April 2014" "" "" . .SH "NAME" \fBnpm-scripts\fR \-\- How npm handles the "scripts" field diff --git a/deps/npm/man/man7/removing-npm.7 b/deps/npm/man/man7/removing-npm.7 index d3fd8696d91..947046a8f61 100644 --- a/deps/npm/man/man7/removing-npm.7 +++ b/deps/npm/man/man7/removing-npm.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REMOVAL" "1" "March 2014" "" "" +.TH "NPM\-REMOVAL" "1" "April 2014" "" "" . .SH "NAME" \fBnpm-removal\fR \-\- Cleaning the Slate diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7 index 567e28f4d03..6e2e984debd 100644 --- a/deps/npm/man/man7/semver.7 +++ b/deps/npm/man/man7/semver.7 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "SEMVER" "7" "March 2014" "" "" +.TH "SEMVER" "7" "April 2014" "" "" . .SH "NAME" \fBsemver\fR \-\- The semantic versioner for npm diff --git a/deps/npm/node_modules/npm-registry-client/lib/request.js b/deps/npm/node_modules/npm-registry-client/lib/request.js index c11dc9ca3d8..3cbb07228b9 100644 --- a/deps/npm/node_modules/npm-registry-client/lib/request.js +++ b/deps/npm/node_modules/npm-registry-client/lib/request.js @@ -112,6 +112,8 @@ function regRequest (method, where, what, etag, nofollow, cb_) { self.log.info("retry", "will retry, error on last attempt: " + er) return } + if (response) + this.log.verbose("headers", response.headers) cb.apply(null, arguments) }.bind(this)) }.bind(this)) @@ -189,6 +191,12 @@ function decodeResponseBody(cb) { return function (er, response, data) { if (er) return cb(er, response, data) + // don't ever re-use connections that had server errors. + // those sockets connect to the Bad Place! + if (response.socket && response.statusCode > 500) { + response.socket.destroy() + } + if (response.headers['content-encoding'] !== 'gzip') return cb(er, response, data) zlib.gunzip(data, function (er, buf) { diff --git a/deps/npm/node_modules/npm-registry-client/package.json b/deps/npm/node_modules/npm-registry-client/package.json index 17d1f782c72..0a9d7314368 100644 --- a/deps/npm/node_modules/npm-registry-client/package.json +++ b/deps/npm/node_modules/npm-registry-client/package.json @@ -6,7 +6,7 @@ }, "name": "npm-registry-client", "description": "Client for the npm registry", - "version": "0.4.5", + "version": "0.4.7", "repository": { "url": "git://github.com/isaacs/npm-registry-client" }, @@ -38,6 +38,6 @@ "url": "https://github.com/isaacs/npm-registry-client/issues" }, "homepage": "https://github.com/isaacs/npm-registry-client", - "_id": "npm-registry-client@0.4.5", + "_id": "npm-registry-client@0.4.7", "_from": "npm-registry-client@latest" } diff --git a/deps/npm/node_modules/npmconf/config-defs.js b/deps/npm/node_modules/npmconf/config-defs.js index 1815870f6ff..2760a452e6e 100644 --- a/deps/npm/node_modules/npmconf/config-defs.js +++ b/deps/npm/node_modules/npmconf/config-defs.js @@ -188,6 +188,7 @@ Object.defineProperty(exports, "defaults", {get: function () { , "save-dev" : false , "save-exact" : false , "save-optional" : false + , "save-prefix": "^" , searchopts: "" , searchexclude: null , searchsort: "name" @@ -290,6 +291,7 @@ exports.types = , "save-dev" : Boolean , "save-exact" : Boolean , "save-optional" : Boolean + , "save-prefix": String , searchopts : String , searchexclude: [null, String] , searchsort: [ "name", "-name" diff --git a/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json b/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json index b7117440c60..a7349f06b7a 100644 --- a/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json +++ b/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json @@ -29,9 +29,7 @@ }, "homepage": "https://github.com/isaacs/proto-list", "_id": "proto-list@1.2.2", - "dist": { - "shasum": "48b88798261ec2c4a785720cdfec6200d57d3326" - }, + "_shasum": "48b88798261ec2c4a785720cdfec6200d57d3326", "_from": "proto-list@~1.2.1", "_resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.2.tgz" } diff --git a/deps/npm/node_modules/npmconf/node_modules/config-chain/package.json b/deps/npm/node_modules/npmconf/node_modules/config-chain/package.json index 72ab798b72b..2f8695410e5 100644 --- a/deps/npm/node_modules/npmconf/node_modules/config-chain/package.json +++ b/deps/npm/node_modules/npmconf/node_modules/config-chain/package.json @@ -28,9 +28,7 @@ "url": "https://github.com/dominictarr/config-chain/issues" }, "_id": "config-chain@1.1.8", - "dist": { - "shasum": "a3b9ae699dedb3a7837615001f3cf646ca37c77a" - }, + "_shasum": "0943d0b7227213a20d4eaff4434f4a1c0a052cad", "_from": "config-chain@~1.1.8", "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.8.tgz" } diff --git a/deps/npm/node_modules/npmconf/package.json b/deps/npm/node_modules/npmconf/package.json index 89b8fc80871..b87c1def93f 100644 --- a/deps/npm/node_modules/npmconf/package.json +++ b/deps/npm/node_modules/npmconf/package.json @@ -1,6 +1,6 @@ { "name": "npmconf", - "version": "0.1.13", + "version": "0.1.14", "description": "The config thing npm uses", "main": "npmconf.js", "directories": { @@ -45,6 +45,7 @@ "url": "https://github.com/isaacs/npmconf/issues" }, "homepage": "https://github.com/isaacs/npmconf", - "_id": "npmconf@0.1.13", + "_id": "npmconf@0.1.14", + "_shasum": "aea4bc12c5a84191a32cd350e325da4fe8b127e7", "_from": "npmconf@latest" } diff --git a/deps/npm/node_modules/read-installed/package.json b/deps/npm/node_modules/read-installed/package.json index 7887f71a9d8..41a980f76eb 100644 --- a/deps/npm/node_modules/read-installed/package.json +++ b/deps/npm/node_modules/read-installed/package.json @@ -1,7 +1,7 @@ { "name": "read-installed", "description": "Read all the installed packages in a folder, and return a tree structure with all the data.", - "version": "2.0.1", + "version": "2.0.2", "repository": { "type": "git", "url": "git://github.com/isaacs/read-installed" @@ -35,6 +35,6 @@ "url": "https://github.com/isaacs/read-installed/issues" }, "homepage": "https://github.com/isaacs/read-installed", - "_id": "read-installed@2.0.1", + "_id": "read-installed@2.0.2", "_from": "read-installed@latest" } diff --git a/deps/npm/node_modules/read-installed/read-installed.js b/deps/npm/node_modules/read-installed/read-installed.js index f9104934d3e..a33758b1720 100644 --- a/deps/npm/node_modules/read-installed/read-installed.js +++ b/deps/npm/node_modules/read-installed/read-installed.js @@ -334,10 +334,13 @@ function findUnmet (obj, opts) { dependency = obj.parent.dependencies && obj.parent.dependencies[d] } - if (!dependency) return - - if (!semver.satisfies(dependency.version, peerDeps[d], true)) { + if (!dependency) { + // mark as a missing dep! + obj.dependencies[d] = peerDeps[d] + } else if (!semver.satisfies(dependency.version, peerDeps[d], true)) { dependency.peerInvalid = true + } else { + dependency.extraneous = false } }) diff --git a/deps/npm/package.json b/deps/npm/package.json index 6e5004af72c..76b1f02fd8b 100644 --- a/deps/npm/package.json +++ b/deps/npm/package.json @@ -1,5 +1,5 @@ { - "version": "1.4.6", + "version": "1.4.7", "name": "npm", "publishConfig": { "proprietary-attribs": false @@ -61,9 +61,9 @@ "node-gyp": "~0.13.0", "nopt": "~2.2.0", "npm-install-checks": "~1.0.0", - "npm-registry-client": "~0.4.5", + "npm-registry-client": "~0.4.7", "npm-user-validate": "0.0.3", - "npmconf": "~0.1.13", + "npmconf": "~0.1.14", "npmlog": "0.0.6", "once": "~1.3.0", "opener": "~1.3.0", @@ -138,7 +138,7 @@ "which" ], "devDependencies": { - "npm-registry-mock": "~0.5", + "npm-registry-mock": "~0.6.3", "ronn": "~0.3.6", "tap": "~0.4.0" }, @@ -147,11 +147,12 @@ "npm": "1" }, "scripts": { - "test": "node ./test/run.js && tap test/tap/*.js", - "tap": "tap test/tap/*.js", + "test-legacy": "node ./test/run.js", + "test": "tap --timeout 120 test/tap/*.js", + "tap": "tap --timeout 120 test/tap/*.js", + "test-all": "node ./test/run.js && tap test/tap/*.js", "prepublish": "node bin/npm-cli.js prune --prefix=. --no-global && rm -rf test/*/*/node_modules && make -j32 doc", - "dumpconf": "env | grep npm | sort | uniq", - "echo": "node bin/npm-cli.js" + "dumpconf": "env | grep npm | sort | uniq" }, "license": "Artistic-2.0" } diff --git a/deps/npm/scripts/doc-build.sh b/deps/npm/scripts/doc-build.sh index 849ffce3f7d..cd8d4fa7710 100755 --- a/deps/npm/scripts/doc-build.sh +++ b/deps/npm/scripts/doc-build.sh @@ -53,11 +53,13 @@ case $dest in exit $? ;; *.html) + url=${dest/html\//} (cat html/dochead.html && \ ./node_modules/.bin/ronn -f $src && cat html/docfoot.html)\ | sed "s|@NAME@|$name|g" \ | sed "s|@DATE@|$date|g" \ + | sed "s|@URL@|$url|g" \ | sed "s|@VERSION@|$version|g" \ | perl -pi -e 's/

    ([^\(]*\([0-9]\)) -- (.*?)<\/h1>/

    \1<\/h1>

    \2<\/p>/g' \ | perl -pi -e 's/npm-npm/npm/g' \ diff --git a/deps/npm/test/tap/00-check-mock-dep.js b/deps/npm/test/tap/00-check-mock-dep.js new file mode 100644 index 00000000000..c4d2ff2c224 --- /dev/null +++ b/deps/npm/test/tap/00-check-mock-dep.js @@ -0,0 +1,15 @@ +console.log("TAP Version 13") + +process.on("uncaughtException", function(er) { + console.log("not ok - Failed checking mock registry dep. Expect much fail!") + console.log("1..1") + process.exit(1) +}) + +var assert = require("assert") +var semver = require("semver") +var mock = require("npm-registry-mock/package.json").version +var req = require("../../package.json").devDependencies["npm-registry-mock"] +assert(semver.satisfies(mock, req)) +console.log("ok") +console.log("1..1") diff --git a/deps/npm/test/tap/404-parent.js b/deps/npm/test/tap/404-parent.js index a7eff25b6e6..b3c353827f7 100644 --- a/deps/npm/test/tap/404-parent.js +++ b/deps/npm/test/tap/404-parent.js @@ -7,6 +7,7 @@ var fs = require('fs') var rimraf = require('rimraf') var mkdirp = require('mkdirp') var pkg = path.resolve(__dirname, '404-parent') +var mr = require("npm-registry-mock") test('404-parent: if parent exists, specify parent in error message', function(t) { setup() @@ -41,9 +42,12 @@ function setup() { } function performInstall(cb) { - npm.load(function() { - npm.commands.install(pkg, [], function(err) { - cb(err) + mr(common.port, function (s) { // create mock registry. + npm.load({registry: common.registry}, function() { + npm.commands.install(pkg, [], function(err) { + cb(err) + s.close() // shutdown mock npm server. + }) }) }) } diff --git a/deps/npm/test/tap/cache-shasum.js b/deps/npm/test/tap/cache-shasum.js new file mode 100644 index 00000000000..460f2ee3ff1 --- /dev/null +++ b/deps/npm/test/tap/cache-shasum.js @@ -0,0 +1,60 @@ +var npm = require.resolve("../../") +var test = require("tap").test +var path = require("path") +var fs = require("fs") +var rimraf = require("rimraf") +var mkdirp = require("mkdirp") +var mr = require("npm-registry-mock") +var common = require("../common-tap.js") +var cache = path.resolve(__dirname, "cache-shasum") +var spawn = require("child_process").spawn +var sha = require("sha") +var server + +test("mock reg", function(t) { + rimraf.sync(cache) + mkdirp.sync(cache) + mr(common.port, function (s) { + server = s + t.pass("ok") + t.end() + }) +}) + +test("npm cache add request", function(t) { + var c = spawn(process.execPath, [ + npm, "cache", "add", "request@2.27.0", + "--cache=" + cache, + "--registry=" + common.registry, + "--loglevel=quiet" + ]) + c.stderr.pipe(process.stderr) + + c.stdout.on("data", function(d) { + t.fail("Should not get data on stdout: " + d) + }) + + c.on("close", function(code) { + t.notOk(code, "exit ok") + t.end() + }) +}) + +test("compare", function(t) { + var d = path.resolve(__dirname, "cache-shasum/request") + var p = path.resolve(d, "2.27.0/package.tgz") + var r = require(path.resolve(d, ".cache.json")) + var rshasum = r.versions['2.27.0'].dist.shasum + sha.get(p, function (er, pshasum) { + if (er) + throw er + t.equal(pshasum, rshasum) + t.end() + }) +}) + +test("cleanup", function(t) { + server.close() + rimraf.sync(cache) + t.end() +}) diff --git a/deps/npm/test/tap/dedupe.js b/deps/npm/test/tap/dedupe.js index 9a8b31a7991..b4b7495aa87 100644 --- a/deps/npm/test/tap/dedupe.js +++ b/deps/npm/test/tap/dedupe.js @@ -4,17 +4,19 @@ var test = require("tap").test , existsSync = fs.existsSync || path.existsSync , npm = require("../../") , rimraf = require("rimraf") + , mr = require("npm-registry-mock") + , common = require('../common-tap.js') test("dedupe finds the common module and moves it up one level", function (t) { - t.plan(2) - - setup(function () { + setup(function (s) { npm.install(".", function (err) { if (err) return t.fail(err) npm.dedupe(function(err) { if (err) return t.fail(err) t.ok(existsSync(path.join(__dirname, "dedupe", "node_modules", "minimist"))) - t.ok(!existsSync(path.join(__dirname, "dedupe", "node_modules", "prime"))) + t.ok(!existsSync(path.join(__dirname, "dedupe", "node_modules", "checker"))) + s.close() // shutdown mock registry. + t.end() }) }) }) @@ -22,9 +24,11 @@ test("dedupe finds the common module and moves it up one level", function (t) { function setup (cb) { process.chdir(path.join(__dirname, "dedupe")) - npm.load(function () { - rimraf.sync(path.join(__dirname, "dedupe", "node_modules")) - fs.mkdirSync(path.join(__dirname, "dedupe", "node_modules")) - cb() + mr(common.port, function (s) { // create mock registry. + npm.load({registry: common.registry}, function() { + rimraf.sync(path.join(__dirname, "dedupe", "node_modules")) + fs.mkdirSync(path.join(__dirname, "dedupe", "node_modules")) + cb(s) + }) }) } diff --git a/deps/npm/test/tap/dedupe/package.json b/deps/npm/test/tap/dedupe/package.json index d0f79ff2023..842d4b2b2d7 100644 --- a/deps/npm/test/tap/dedupe/package.json +++ b/deps/npm/test/tap/dedupe/package.json @@ -4,8 +4,6 @@ "version": "0.0.0", "dependencies": { "optimist": "0.6.0", - "clean": "2.1.6", - "informal": "0.0.1", - "pathogen": "0.1.5" + "clean": "2.1.6" } } diff --git a/deps/npm/test/tap/git-cache-locking.js b/deps/npm/test/tap/git-cache-locking.js index dcecad9ebf3..b9b328f30c6 100644 --- a/deps/npm/test/tap/git-cache-locking.js +++ b/deps/npm/test/tap/git-cache-locking.js @@ -21,6 +21,9 @@ test("setup", function (t) { test("git-cache-locking: install a git dependency", function (t) { + // disable git integration tests on Travis. + if (process.env.TRAVIS) return t.end() + // package c depends on a.git#master and b.git#master // package b depends on a.git#master var child = spawn(node, [npm, "install", "git://github.com/nigelzor/npm-4503-c.git"], { diff --git a/deps/npm/test/tap/ignore-scripts.js b/deps/npm/test/tap/ignore-scripts.js index b742cf92e8a..0115b7571d8 100644 --- a/deps/npm/test/tap/ignore-scripts.js +++ b/deps/npm/test/tap/ignore-scripts.js @@ -35,7 +35,7 @@ var scripts = [ ] scripts.forEach(function(script) { - test("ignore-scripts: run-script"+script+" using the option", function(t) { + test("ignore-scripts: run-script "+script+" using the option", function(t) { createChild([npm, "--ignore-scripts", "run-script", script]) .on("close", function(code) { t.equal(code, 0) @@ -57,7 +57,8 @@ function createChild (args) { var env = { HOME: process.env.HOME, Path: process.env.PATH, - PATH: process.env.PATH + PATH: process.env.PATH, + npm_config_loglevel: "silent" } if (process.platform === "win32") diff --git a/deps/npm/test/tap/install-save-prefix.js b/deps/npm/test/tap/install-save-prefix.js new file mode 100644 index 00000000000..0ce6e02fa11 --- /dev/null +++ b/deps/npm/test/tap/install-save-prefix.js @@ -0,0 +1,140 @@ +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var pkg = path.join(__dirname, 'install-save-prefix') +var mr = require("npm-registry-mock") + +test("setup", function (t) { + mkdirp.sync(pkg) + mkdirp.sync(path.resolve(pkg, 'node_modules')) + process.chdir(pkg) + t.end() +}) + +test('"npm install --save with default save-prefix should install local pkg versioned to allow minor updates', function(t) { + resetPackageJSON(pkg) + mr(common.port, function (s) { + npm.load({ + cache: pkg + "/cache", + loglevel: 'silent', + registry: common.registry }, function(err) { + t.ifError(err) + npm.config.set('save', true) + npm.commands.install(['underscore@1.3.1'], function(err) { + t.ifError(err) + var p = path.resolve(pkg, 'node_modules/underscore/package.json') + t.ok(JSON.parse(fs.readFileSync(p))) + var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) + t.deepEqual(pkgJson.dependencies, { + 'underscore': '^1.3.1' + }, 'Underscore dependency should specify ^1.3.1') + npm.config.set('save', undefined) + s.close() + t.end() + }) + }) + }) +}) + +test('"npm install --save-dev with default save-prefix should install local pkg to dev dependencies versioned to allow minor updates', function(t) { + resetPackageJSON(pkg) + mr(common.port, function (s) { + npm.load({ + cache: pkg + "/cache", + loglevel: 'silent', + registry: common.registry }, function(err) { + t.ifError(err) + npm.config.set('save-dev', true) + npm.commands.install(['underscore@1.3.1'], function(err) { + t.ifError(err) + var p = path.resolve(pkg, 'node_modules/underscore/package.json') + t.ok(JSON.parse(fs.readFileSync(p))) + var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) + t.deepEqual(pkgJson.devDependencies, { + 'underscore': '^1.3.1' + }, 'Underscore devDependency should specify ^1.3.1') + npm.config.set('save-dev', undefined) + s.close() + t.end() + }) + }) + }) +}) + +test('"npm install --save with "~" save-prefix should install local pkg versioned to allow patch updates', function(t) { + resetPackageJSON(pkg) + mr(common.port, function (s) { + npm.load({ + cache: pkg + "/cache", + loglevel: 'silent', + registry: common.registry }, function(err) { + t.ifError(err) + npm.config.set('save', true) + npm.config.set('save-prefix', '~') + npm.commands.install(['underscore@1.3.1'], function(err) { + t.ifError(err) + var p = path.resolve(pkg, 'node_modules/underscore/package.json') + t.ok(JSON.parse(fs.readFileSync(p))) + var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) + t.deepEqual(pkgJson.dependencies, { + 'underscore': '~1.3.1' + }, 'Underscore dependency should specify ~1.3.1') + npm.config.set('save', undefined) + npm.config.set('save-prefix', undefined) + s.close() + t.end() + }) + }) + }) +}) + +test('"npm install --save-dev with "~" save-prefix should install local pkg to dev dependencies versioned to allow patch updates', function(t) { + resetPackageJSON(pkg) + mr(common.port, function (s) { + npm.load({ + cache: pkg + "/cache", + loglevel: 'silent', + registry: common.registry }, function(err) { + t.ifError(err) + npm.config.set('save-dev', true) + npm.config.set('save-prefix', '~') + npm.commands.install(['underscore@1.3.1'], function(err) { + t.ifError(err) + var p = path.resolve(pkg, 'node_modules/underscore/package.json') + t.ok(JSON.parse(fs.readFileSync(p))) + var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) + t.deepEqual(pkgJson.devDependencies, { + 'underscore': '~1.3.1' + }, 'Underscore devDependency should specify ~1.3.1') + npm.config.set('save-dev', undefined) + npm.config.set('save-prefix', undefined) + s.close() + t.end() + }) + }) + }) +}) + +test('cleanup', function(t) { + process.chdir(__dirname) + rimraf.sync(path.resolve(pkg, 'node_modules')) + rimraf.sync(path.resolve(pkg, 'cache')) + resetPackageJSON(pkg) + t.end() +}) + +function resetPackageJSON(pkg) { + var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) + delete pkgJson.dependencies + delete pkgJson.devDependencies + delete pkgJson.optionalDependencies + var json = JSON.stringify(pkgJson, null, 2) + "\n" + fs.writeFileSync(pkg + '/package.json', json, "ascii") +} + + diff --git a/deps/npm/test/tap/install-save-prefix/README.md b/deps/npm/test/tap/install-save-prefix/README.md new file mode 100644 index 00000000000..aca67ff17d2 --- /dev/null +++ b/deps/npm/test/tap/install-save-prefix/README.md @@ -0,0 +1 @@ +# just a test diff --git a/deps/npm/test/tap/install-save-prefix/index.js b/deps/npm/test/tap/install-save-prefix/index.js new file mode 100644 index 00000000000..33c1891f81e --- /dev/null +++ b/deps/npm/test/tap/install-save-prefix/index.js @@ -0,0 +1 @@ +module.exports = true diff --git a/deps/npm/test/tap/install-save-prefix/package.json b/deps/npm/test/tap/install-save-prefix/package.json new file mode 100644 index 00000000000..84789fc224f --- /dev/null +++ b/deps/npm/test/tap/install-save-prefix/package.json @@ -0,0 +1,7 @@ +{ + "name": "bla", + "description": "fixture", + "version": "0.0.1", + "main": "index.js", + "repository": "git://github.com/robertkowalski/bogusfixture" +} diff --git a/deps/npm/test/tap/lifecycle-signal.js b/deps/npm/test/tap/lifecycle-signal.js index e39e891e15b..9d88fbd79b8 100644 --- a/deps/npm/test/tap/lifecycle-signal.js +++ b/deps/npm/test/tap/lifecycle-signal.js @@ -7,11 +7,19 @@ var pkg = path.resolve(__dirname, "lifecycle-signal") test("lifecycle signal abort", function (t) { // windows does not use lifecycle signals, abort - if (process.platform === "win32") return t.end() + if (process.platform === "win32" || process.env.TRAVIS) return t.end() + var child = spawn(node, [npm, "install"], { cwd: pkg }) child.on("close", function (code, signal) { + // GNU shell returns a code, no signal + if (process.platform === "linux") { + t.equal(code, 1) + t.equal(signal, null) + return t.end() + } + t.equal(code, null) t.equal(signal, "SIGSEGV") t.end() diff --git a/deps/npm/test/tap/outdated-color.js b/deps/npm/test/tap/outdated-color.js index e729d56a85f..f20bcea93cf 100644 --- a/deps/npm/test/tap/outdated-color.js +++ b/deps/npm/test/tap/outdated-color.js @@ -5,6 +5,7 @@ var mkdirp = require("mkdirp") var rimraf = require("rimraf") var mr = require("npm-registry-mock") var exec = require('child_process').exec +var mr = require("npm-registry-mock") var pkg = __dirname + '/outdated' var NPM_BIN = __dirname + '/../../bin/npm-cli.js' @@ -25,12 +26,15 @@ function ansiTrim (str) { // it's not running in a tty test("does not use ansi styling", function (t) { t.plan(3) - exec('node ' + NPM_BIN + ' outdated --color false', { - cwd: pkg - }, function(err, stdout) { - t.ifError(err) - t.ok(stdout, stdout.length) - t.ok(!hasControlCodes(stdout)) + mr(common.port, function (s) { // create mock registry. + exec('node ' + NPM_BIN + ' outdated --registry ' + common.registry + ' --color false underscore', { + cwd: pkg + }, function(err, stdout) { + t.ifError(err) + t.ok(stdout, stdout.length) + t.ok(!hasControlCodes(stdout)) + s.close() + }) }) }) @@ -38,4 +42,3 @@ test("cleanup", function (t) { rimraf.sync(pkg + "/cache") t.end() }) - diff --git a/deps/npm/test/tap/peer-deps-invalid.js b/deps/npm/test/tap/peer-deps-invalid.js index 50c961e7b9a..2392c928a22 100644 --- a/deps/npm/test/tap/peer-deps-invalid.js +++ b/deps/npm/test/tap/peer-deps-invalid.js @@ -4,18 +4,19 @@ var test = require("tap").test var rimraf = require("rimraf") var npm = require("../../") var http = require("http") +var mr = require("npm-registry-mock") var okFile = new Buffer( -'/**package\n' + -' * { "name": "npm-test-peer-deps-file"\n' + -' * , "main": "index.js"\n' + -' * , "version": "1.2.3"\n' + -' * , "description":"No package.json in sight!"\n' + -' * , "peerDependencies": { "dict": "1.1.0" }\n' + -' * , "dependencies": { "opener": "1.3.0" }\n' + -' * }\n' + -' **/\n' + -'\n' + +'/**package\n' + +' * { "name": "npm-test-peer-deps-file"\n' + +' * , "main": "index.js"\n' + +' * , "version": "1.2.3"\n' + +' * , "description":"No package.json in sight!"\n' + +' * , "peerDependencies": { "underscore": "1.3.1" }\n' + +' * , "dependencies": { "mkdirp": "0.3.5" }\n' + +' * }\n' + +' **/\n' + +'\n' + 'module.exports = "I\'m just a lonely index, naked as the day I was born."\n' ) @@ -25,7 +26,7 @@ var failFile = new Buffer( ' * , "main": "index.js"\n' + ' * , "version": "1.2.3"\n' + ' * , "description":"This one should conflict with the other one"\n' + -' * , "peerDependencies": { "dict": "1.0.0" }\n' + +' * , "peerDependencies": { "underscore": "1.3.3" }\n' + ' * }\n' + ' **/\n' + '\n' + @@ -51,20 +52,25 @@ test("setup", function(t) { -test("installing dependencies that having conflicting peerDependencies", function (t) { +test("installing dependencies that have conflicting peerDependencies", function (t) { rimraf.sync(__dirname + "/peer-deps-invalid/node_modules") process.chdir(__dirname + "/peer-deps-invalid") - npm.load(function () { - console.error('back from load') - npm.commands.install([], function (err) { - console.error('back from install') - if (!err) { - t.fail("No error!") - } else { - t.equal(err.code, "EPEERINVALID") - } - t.end() + // we're already listening on common.port, + // use an alternative port for this test. + mr(1331, function (s) { // create mock registry. + npm.load({registry: "http://localhost:1331"}, function () { + console.error('back from load') + npm.commands.install([], function (err) { + console.error('back from install') + if (!err) { + t.fail("No error!") + } else { + t.equal(err.code, "EPEERINVALID") + } + t.end() + s.close() // shutdown mock registry. + }) }) }) }) diff --git a/deps/npm/test/tap/peer-deps-without-package-json.js b/deps/npm/test/tap/peer-deps-without-package-json.js index 9f987c5ee51..ce7c5e81542 100644 --- a/deps/npm/test/tap/peer-deps-without-package-json.js +++ b/deps/npm/test/tap/peer-deps-without-package-json.js @@ -3,7 +3,7 @@ var fs = require("fs") var test = require("tap").test var rimraf = require("rimraf") var npm = require("../../") - +var mr = require("npm-registry-mock") var http = require("http") @@ -13,8 +13,8 @@ var js = new Buffer( ' * , "main": "index.js"\n' + ' * , "version": "1.2.3"\n' + ' * , "description":"No package.json in sight!"\n' + -' * , "peerDependencies": { "dict": "1.1.0" }\n' + -' * , "dependencies": { "opener": "1.3.0" }\n' + +' * , "peerDependencies": { "underscore": "1.3.1" }\n' + +' * , "dependencies": { "mkdirp": "0.3.5" }\n' + ' * }\n' + ' **/\n' + '\n' + @@ -38,15 +38,20 @@ test("installing a peerDependencies-using package without a package.json present fs.mkdirSync(__dirname + "/peer-deps-without-package-json/node_modules") process.chdir(__dirname + "/peer-deps-without-package-json") - npm.load(function () { - npm.install(common.registry, function (err) { - if (err) { - t.fail(err) - } else { - t.ok(fs.existsSync(__dirname + "/peer-deps-without-package-json/node_modules/npm-test-peer-deps-file")) - t.ok(fs.existsSync(__dirname + "/peer-deps-without-package-json/node_modules/dict")) - } - t.end() + // we're already listening on common.port, + // use an alternative port for this test. + mr(1331, function (s) { // create mock registry. + npm.load({registry: 'http://localhost:1331'}, function () { + npm.install(common.registry, function (err) { + if (err) { + t.fail(err) + } else { + t.ok(fs.existsSync(__dirname + "/peer-deps-without-package-json/node_modules/npm-test-peer-deps-file")) + t.ok(fs.existsSync(__dirname + "/peer-deps-without-package-json/node_modules/underscore")) + } + t.end() + s.close() // shutdown mock registry. + }) }) }) }) diff --git a/deps/npm/test/tap/shrinkwrap-empty-deps.js b/deps/npm/test/tap/shrinkwrap-empty-deps.js new file mode 100644 index 00000000000..9ec8e71e0ba --- /dev/null +++ b/deps/npm/test/tap/shrinkwrap-empty-deps.js @@ -0,0 +1,47 @@ +var test = require("tap").test + , npm = require("../../") + , mr = require("npm-registry-mock") + , common = require("../common-tap.js") + , path = require("path") + , fs = require("fs") + , osenv = require("osenv") + , rimraf = require("rimraf") + , pkg = __dirname + "/shrinkwrap-empty-deps" + +test("returns a list of removed items", function (t) { + var desiredResultsPath = path.resolve(pkg, "npm-shrinkwrap.json") + + cleanup() + + mr(common.port, function (s) { + setup(function () { + npm.shrinkwrap([], function (err) { + if (err) return t.fail(err) + fs.readFile(desiredResultsPath, function (err, desired) { + if (err) return t.fail(err) + t.deepEqual({ + "name": "npm-test-shrinkwrap-empty-deps", + "version": "0.0.0", + "dependencies": {} + }, JSON.parse(desired)) + cleanup() + s.close() + t.end() + }) + }) + }) + }) +}) + +function setup (cb) { + cleanup() + process.chdir(pkg) + npm.load({cache: pkg + "/cache", registry: common.registry}, function () { + cb() + }) +} + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(path.resolve(pkg, "npm-shrinkwrap.json")) +} diff --git a/deps/npm/test/tap/shrinkwrap-empty-deps/package.json b/deps/npm/test/tap/shrinkwrap-empty-deps/package.json new file mode 100644 index 00000000000..9a51088c7ee --- /dev/null +++ b/deps/npm/test/tap/shrinkwrap-empty-deps/package.json @@ -0,0 +1,7 @@ +{ + "author": "Rockbert", + "name": "npm-test-shrinkwrap-empty-deps", + "version": "0.0.0", + "dependencies": {}, + "devDependencies": {} +} diff --git a/deps/npm/test/tap/sorted-package-json.js b/deps/npm/test/tap/sorted-package-json.js index 0d978997f69..41c90855a87 100644 --- a/deps/npm/test/tap/sorted-package-json.js +++ b/deps/npm/test/tap/sorted-package-json.js @@ -24,7 +24,7 @@ test("sorting dependencies", function (t) { var before = JSON.parse(fs.readFileSync(packageJson).toString()) - mr({port: common.port}, function (s) { + mr(common.port, function (s) { // underscore is already in the package.json, // but --save will trigger a rewrite with sort var child = spawn(node, [npm, "install", "--save", "underscore@1.3.3"], { From 4601e7c8927ba5655f0872f1f1794aec2b9a4d56 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Thu, 24 Apr 2014 10:19:30 +0400 Subject: [PATCH 07/15] Revert "deps: backport b5135bbc from c-ares repo" This reverts commit 896e19330ad06ace8973c5d7b75d2de538228062. Proper handling of TXT records requires API change, we can't afford it in v0.10. See #7371 for details. --- deps/cares/src/ares_parse_txt_reply.c | 76 ++++++++++++++------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/deps/cares/src/ares_parse_txt_reply.c b/deps/cares/src/ares_parse_txt_reply.c index e1ebbbea90d..51653328eb0 100644 --- a/deps/cares/src/ares_parse_txt_reply.c +++ b/deps/cares/src/ares_parse_txt_reply.c @@ -54,7 +54,7 @@ int ares_parse_txt_reply (const unsigned char *abuf, int alen, struct ares_txt_reply **txt_out) { - size_t substr_len; + size_t substr_len, str_len; unsigned int qdcount, ancount, i; const unsigned char *aptr; const unsigned char *strptr; @@ -116,6 +116,23 @@ ares_parse_txt_reply (const unsigned char *abuf, int alen, /* Check if we are really looking at a TXT record */ if (rr_class == C_IN && rr_type == T_TXT) { + /* Allocate storage for this TXT answer appending it to the list */ + txt_curr = ares_malloc_data(ARES_DATATYPE_TXT_REPLY); + if (!txt_curr) + { + status = ARES_ENOMEM; + break; + } + if (txt_last) + { + txt_last->next = txt_curr; + } + else + { + txt_head = txt_curr; + } + txt_last = txt_curr; + /* * There may be multiple substrings in a single TXT record. Each * substring may be up to 255 characters in length, with a @@ -124,49 +141,36 @@ ares_parse_txt_reply (const unsigned char *abuf, int alen, * substrings contained therein. */ + /* Compute total length to allow a single memory allocation */ strptr = aptr; while (strptr < (aptr + rr_len)) { substr_len = (unsigned char)*strptr; - if (strptr + substr_len + 1 > aptr + rr_len) - { - status = ARES_EBADRESP; - break; - } + txt_curr->length += substr_len; + strptr += substr_len + 1; + } - ++strptr; - - /* Allocate storage for this TXT answer appending it to the list */ - txt_curr = ares_malloc_data(ARES_DATATYPE_TXT_REPLY); - if (!txt_curr) - { - status = ARES_ENOMEM; - break; - } - if (txt_last) - { - txt_last->next = txt_curr; - } - else - { - txt_head = txt_curr; - } - txt_last = txt_curr; - - txt_curr->length = substr_len; - txt_curr->txt = malloc (substr_len + 1/* Including null byte */); - if (txt_curr->txt == NULL) - { - status = ARES_ENOMEM; - break; - } - memcpy ((char *) txt_curr->txt, strptr, substr_len); - - /* Make sure we NULL-terminate */ - txt_curr->txt[substr_len] = 0; + /* Including null byte */ + txt_curr->txt = malloc (txt_curr->length + 1); + if (txt_curr->txt == NULL) + { + status = ARES_ENOMEM; + break; + } + /* Step through the list of substrings, concatenating them */ + str_len = 0; + strptr = aptr; + while (strptr < (aptr + rr_len)) + { + substr_len = (unsigned char)*strptr; + strptr++; + memcpy ((char *) txt_curr->txt + str_len, strptr, substr_len); + str_len += substr_len; strptr += substr_len; } + /* Make sure we NULL-terminate */ + *((char *) txt_curr->txt + txt_curr->length) = '\0'; } /* Don't lose memory in the next iteration */ From b0fa931e0751df74242b9f069388b628e1ab43c2 Mon Sep 17 00:00:00 2001 From: Julian Gruber Date: Thu, 24 Apr 2014 04:18:31 -0700 Subject: [PATCH 08/15] doc: fix order in net api Signed-off-by: Fedor Indutny --- doc/api/net.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/api/net.markdown b/doc/api/net.markdown index 9cd6ddf5196..7e1412ea0f8 100644 --- a/doc/api/net.markdown +++ b/doc/api/net.markdown @@ -235,8 +235,6 @@ This becomes `null` when sending a socket to a child with `child_process.fork()`. To poll forks and get current number of active connections use asynchronous `server.getConnections` instead. -`net.Server` is an [EventEmitter][] with the following events: - ### server.getConnections(callback) Asynchronously get the number of concurrent connections on the server. Works @@ -244,6 +242,8 @@ when sockets were sent to forks. Callback should take two arguments `err` and `count`. +`net.Server` is an [EventEmitter][] with the following events: + ### Event: 'listening' Emitted when the server has been bound after calling `server.listen`. From 0ee99565f9dd41225fd5d4084403db82733c575e Mon Sep 17 00:00:00 2001 From: Julian Gruber Date: Thu, 24 Apr 2014 04:19:14 -0700 Subject: [PATCH 09/15] doc: fix missing link in net api Signed-off-by: Fedor Indutny --- doc/api/net.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/api/net.markdown b/doc/api/net.markdown index 7e1412ea0f8..7d23b680c9d 100644 --- a/doc/api/net.markdown +++ b/doc/api/net.markdown @@ -526,5 +526,6 @@ Returns true if input is a version 6 IP address, otherwise returns false. ['end']: #net_event_end [EventEmitter]: events.html#events_class_events_eventemitter ['listening']: #net_event_listening +[server.getConnections()]: #net_server_getconnections_callback [Readable Stream]: stream.html#stream_readable_stream [stream.setEncoding()]: stream.html#stream_stream_setencoding_encoding From f9ced08de30c37838756e8227bd091f80ad9cafa Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 24 Apr 2014 04:27:40 +0200 Subject: [PATCH 10/15] deps: make v8 use CLOCK_REALTIME_COARSE Date.now() indirectly calls gettimeofday() on Linux and that's a system call that is extremely expensive on virtualized systems when the host operating system has to emulate access to the hardware clock. Case in point: output from `perf record -c 10000 -e cycles:u -g -i` for a benchmark/http_simple bytes/8 benchmark with a light load of 50 concurrent clients: 53.69% node node [.] v8::internal::OS::TimeCurrentMillis() | --- v8::internal::OS::TimeCurrentMillis() | |--99.77%-- v8::internal::Runtime_DateCurrentTime(v8::internal::Arguments, v8::internal::Isolate*) | 0x23587880618e That's right - over half of user time spent inside the V8 function that calls gettimeofday(). Notably, nearly all system time gets attributed to acpi_pm_read(), the kernel function that reads the ACPI power management timer: 32.49% node [kernel.kallsyms] [k] acpi_pm_read | --- acpi_pm_read | |--98.40%-- __getnstimeofday | getnstimeofday | | | |--71.61%-- do_gettimeofday | | sys_gettimeofday | | system_call_fastpath | | 0x7fffbbaf6dbc | | | | | |--98.72%-- v8::internal::OS::TimeCurrentMillis() The cost of the gettimeofday() system call is normally measured in nanoseconds but we were seeing 100 us averages and spikes >= 1000 us. The numbers were so bad, my initial hunch was that the node process was continuously getting rescheduled inside the system call... v8::internal::OS::TimeCurrentMillis()'s most frequent caller is v8::internal::Runtime_DateCurrentTime(), the V8 run-time function that's behind Date.now(). The timeout handling logic in lib/http.js and lib/net.js calls into lib/timers.js and that module will happily call Date.now() hundreds or even thousands of times per second. If you saw exports._unrefActive() show up in --prof output a lot, now you know why. That's why this commit makes V8 switch over to clock_gettime() on Linux. In particular, it checks if CLOCK_REALTIME_COARSE is available and has a resolution <= 1 ms because in that case the clock_gettime() call can be fully serviced from the vDSO. It speeds up the aforementioned benchmark by about 100% on the affected systems and should go a long way toward addressing the latency issues that StrongLoop customers have been reporting. This patch will be upstreamed as a CR against V8 3.26. I'm sending it as a pull request for v0.10 first because that's what our users are running and because the delta between 3.26 and 3.14 is too big to reasonably back-port the patch. I'll open a pull request for the master branch once the CR lands upstream. Signed-off-by: Trevor Norris Signed-off-by: Fedor Indutny --- deps/v8/src/platform-posix.cc | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/deps/v8/src/platform-posix.cc b/deps/v8/src/platform-posix.cc index ad74eba8d99..3c868688ae7 100644 --- a/deps/v8/src/platform-posix.cc +++ b/deps/v8/src/platform-posix.cc @@ -188,19 +188,37 @@ int OS::GetUserTime(uint32_t* secs, uint32_t* usecs) { double OS::TimeCurrentMillis() { - struct timeval tv; - if (gettimeofday(&tv, NULL) < 0) return 0.0; - return (static_cast(tv.tv_sec) * 1000) + - (static_cast(tv.tv_usec) / 1000); + return static_cast(Ticks()) / 1000; } int64_t OS::Ticks() { +#if defined(__linux__) + static clockid_t clock_id = static_cast(-1); + struct timespec spec; + if (clock_id == static_cast(-1)) { + // CLOCK_REALTIME_COARSE may not be defined by the system headers but + // might still be supported by the kernel so use the clock id directly. + // Only use CLOCK_REALTIME_COARSE when its granularity <= 1 ms. + const clockid_t clock_realtime_coarse = 5; + if (clock_getres(clock_realtime_coarse, &spec) == 0 && + spec.tv_nsec <= 1000 * 1000) { + clock_id = clock_realtime_coarse; + } else { + clock_id = CLOCK_REALTIME; + } + } + if (clock_gettime(clock_id, &spec) != 0) { + return 0; // Not really possible. + } + return static_cast(spec.tv_sec) * 1000000 + (spec.tv_nsec / 1000); +#else // gettimeofday has microsecond resolution. struct timeval tv; if (gettimeofday(&tv, NULL) < 0) return 0; return (static_cast(tv.tv_sec) * 1000000) + tv.tv_usec; +#endif } From 250782d139ccec276ec24e401a78423a66dcf97a Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Tue, 15 Oct 2013 12:26:18 +1100 Subject: [PATCH 11/15] util: format as Error if instanceof Error Conflicts: lib/util.js test/simple/test-util-format.js This is a backport to fix #7253 Signed-off-by: Fedor Indutny --- lib/util.js | 3 ++- test/simple/test-util-format.js | 10 ++++++++++ test/simple/test-util.js | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/util.js b/lib/util.js index 40b0680b37f..3e3411e29e2 100644 --- a/lib/util.js +++ b/lib/util.js @@ -452,7 +452,8 @@ exports.isDate = isDate; function isError(e) { - return typeof e === 'object' && objectToString(e) === '[object Error]'; + return typeof e === 'object' && + (objectToString(e) === '[object Error]' || e instanceof Error); } exports.isError = isError; diff --git a/test/simple/test-util-format.js b/test/simple/test-util-format.js index b5592203a39..16c3c56dd16 100644 --- a/test/simple/test-util-format.js +++ b/test/simple/test-util-format.js @@ -60,3 +60,13 @@ assert.equal(util.format('%s:%s', 'foo', 'bar'), 'foo:bar'); assert.equal(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz'); assert.equal(util.format('%%%s%%', 'hi'), '%hi%'); assert.equal(util.format('%%%s%%%%', 'hi'), '%hi%%'); + +// Errors +assert.equal(util.format(new Error('foo')), '[Error: foo]'); +function CustomError(msg) { + Error.call(this); + Object.defineProperty(this, 'message', { value: msg, enumerable: false }); + Object.defineProperty(this, 'name', { value: 'CustomError', enumerable: false }); +} +util.inherits(CustomError, Error); +assert.equal(util.format(new CustomError('bar')), '[CustomError: bar]'); diff --git a/test/simple/test-util.js b/test/simple/test-util.js index 7c30f5e83e5..f4c4d82f577 100644 --- a/test/simple/test-util.js +++ b/test/simple/test-util.js @@ -68,7 +68,7 @@ assert.equal(true, util.isError(new (context('SyntaxError')))); assert.equal(false, util.isError({})); assert.equal(false, util.isError({ name: 'Error', message: '' })); assert.equal(false, util.isError([])); -assert.equal(false, util.isError(Object.create(Error.prototype))); +assert.equal(true, util.isError(Object.create(Error.prototype))); // _extend assert.deepEqual(util._extend({a:1}), {a:1}); From 3f3a71e61e90d45293704f21c98bc0ea53bb09ff Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 28 Apr 2014 13:05:00 +0200 Subject: [PATCH 12/15] deps: fix v8 link error with glibc < 2.17 Commit f9ced08 switches V8 on Linux over from gettimeofday() to clock_getres() and clock_gettime(). As of glibc 2.17, those functions live in libc. For older versions, we need to pull them in from librt. Fixes the following link-time error; Release/obj.target/deps/v8/tools/gyp/libv8_base.a(platform-posix.o): In function `v8::internal::OS::Ticks()': platform-posix.cc:(.text+0x93c): undefined reference to `clock_gettime' platform-posix.cc:(.text+0x989): undefined reference to `clock_getres' Fixes #7514. Signed-off-by: Fedor Indutny --- deps/v8/tools/gyp/v8.gyp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp index 7a54ef4fce9..71cf36649ad 100644 --- a/deps/v8/tools/gyp/v8.gyp +++ b/deps/v8/tools/gyp/v8.gyp @@ -643,6 +643,12 @@ '../../src/platform-linux.cc', '../../src/platform-posix.cc' ], + # XXX(bnoordhuis) Pull in definitions for clock_getres() + # and clock_gettime() with glibc < 2.17. + 'libraries': [ '-lrt' ], + 'direct_dependent_settings': { + 'libraries': [ '-lrt' ], + }, } ], ['OS=="android"', { From 793c76e5c65031009525fcb6e5e4af78c28d1c4f Mon Sep 17 00:00:00 2001 From: Forrest L Norvell Date: Mon, 28 Apr 2014 12:38:06 -0700 Subject: [PATCH 13/15] docs: add cautionary note to emitter.removeAllListeners Signed-off-by: Fedor Indutny --- doc/api/events.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/api/events.markdown b/doc/api/events.markdown index 77d0418e217..07c5b0e2b21 100644 --- a/doc/api/events.markdown +++ b/doc/api/events.markdown @@ -69,7 +69,9 @@ Returns emitter, so calls can be chained. ### emitter.removeAllListeners([event]) -Removes all listeners, or those of the specified event. +Removes all listeners, or those of the specified event. It's not a good idea to +remove listeners that were added elsewhere in the code, especially when it's on +an emitter that you didn't create (e.g. sockets or file streams). Returns emitter, so calls can be chained. From 1038959dbf70800545df319715e5d89dbd8ad8af Mon Sep 17 00:00:00 2001 From: Timothy J Fontaine Date: Thu, 1 May 2014 09:27:39 -0700 Subject: [PATCH 14/15] uv: update to v0.10.27 --- deps/uv/.mailmap | 8 +++ deps/uv/AUTHORS | 36 ++++++++++++ deps/uv/ChangeLog | 30 +++++++++- deps/uv/include/uv.h | 6 ++ deps/uv/src/unix/error.c | 6 ++ deps/uv/src/unix/kqueue.c | 6 +- deps/uv/src/unix/linux-core.c | 20 +++++-- deps/uv/src/unix/process.c | 7 +-- deps/uv/src/version.c | 2 +- deps/uv/src/win/pipe.c | 6 +- deps/uv/src/win/signal.c | 4 +- deps/uv/src/win/util.c | 1 + deps/uv/test/test-list.h | 4 ++ deps/uv/test/test-spawn.c | 107 ++++++++++++++++++++++++++++++++++ deps/uv/vcbuild.bat | 19 ++++-- 15 files changed, 236 insertions(+), 26 deletions(-) diff --git a/deps/uv/.mailmap b/deps/uv/.mailmap index 9975da08617..7ece4373822 100644 --- a/deps/uv/.mailmap +++ b/deps/uv/.mailmap @@ -1,15 +1,23 @@ Alan Gutierrez +Andrius Bentkus Bert Belder Bert Belder Brandon Philips Brian White Brian White +Fedor Indutny Frank Denis Isaac Z. Schlueter +Justin Venus +Keno Fischer +Keno Fischer +Maciej Małecki Marc Schlaich +Rasmus Pedersen Robert Mustacchi Ryan Dahl Ryan Emery +Sam Roberts San-Tai Hsu Saúl Ibarra Corretgé Shigeki Ohtsu diff --git a/deps/uv/AUTHORS b/deps/uv/AUTHORS index dcb99318185..060701ffa77 100644 --- a/deps/uv/AUTHORS +++ b/deps/uv/AUTHORS @@ -94,3 +94,39 @@ Luca Bruno Trevor Norris Oguz Bastemur Alexis Campailla +Justin Venus +Ben Kelly +Kristian Evensen +Sean Silva +Linus Mårtensson +Navaneeth Kedaram Nambiathan +Brent Cook +Brian Kaisner +Reini Urban +Maks Naumov +Sean Farrell +Christoph Iserlohn +Steven Kabbes +Tenor Biel +Andrej Manduch +Joshua Neuheisel +Yorkie +Sam Roberts +River Tarnell +Nathan Sweet +Dylan Cali +Austin Foxley +Geoffry Song +Benjamin Saunders +Rasmus Pedersen +William Light +Oleg Efimov +Lars Gierth +StarWing +thierry-FreeBSD +Isaiah Norton +Raul Martins +David Capello +Paul Tan +Javier Hernández +Tonis Tiigi diff --git a/deps/uv/ChangeLog b/deps/uv/ChangeLog index b41636dd53e..87c5d99b2b2 100644 --- a/deps/uv/ChangeLog +++ b/deps/uv/ChangeLog @@ -1,4 +1,32 @@ -2014.02.19, Version 0.10.25 (Stable) +2014.05.02, Version 0.10.27 (Stable) + +Changes since version 0.10.26: + +* windows: fix console signal handler refcount (Saúl Ibarra Corretgé) + +* win: always leave crit section in get_proc_title (Fedor Indutny) + + +2014.04.07, Version 0.10.26 (Stable), d864907611c25ec986c5e77d4d6d6dee88f26926 + +Changes since version 0.10.25: + +* process: don't close stdio fds during spawn (Tonis Tiigi) + +* build, windows: do not fail on Windows SDK Prompt (Marc Schlaich) + +* build, windows: fix x64 configuration issue (Marc Schlaich) + +* win: fix buffer leak on error in pipe.c (Fedor Indutny) + +* kqueue: invalidate fd in uv_fs_event_t (Fedor Indutny) + +* linux: always deregister closing fds from epoll (Geoffry Song) + +* error: add ENXIO for O_NONBLOCK FIFO open() (Fedor Indutny) + + +2014.02.19, Version 0.10.25 (Stable), d778dc588507588b12b9f9d2905078db542ed751 Changes since version 0.10.24: diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h index 3978def5c46..7022bc669fd 100644 --- a/deps/uv/include/uv.h +++ b/deps/uv/include/uv.h @@ -130,6 +130,12 @@ extern "C" { XX( 57, ENODEV, "no such device") \ XX( 58, ESPIPE, "invalid seek") \ XX( 59, ECANCELED, "operation canceled") \ + XX( 60, EFBIG, "file too large") \ + XX( 61, ENOPROTOOPT, "protocol not available") \ + XX( 62, ETXTBSY, "text file is busy") \ + XX( 63, ERANGE, "result too large") \ + XX( 64, ENXIO, "no such device or address") \ + XX( 65, EMLINK, "too many links") \ #define UV_ERRNO_GEN(val, name, s) UV_##name = val, diff --git a/deps/uv/src/unix/error.c b/deps/uv/src/unix/error.c index 05ab4820250..f54ffdbcc83 100644 --- a/deps/uv/src/unix/error.c +++ b/deps/uv/src/unix/error.c @@ -104,6 +104,12 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case EROFS: return UV_EROFS; case ENOMEM: return UV_ENOMEM; case EDQUOT: return UV_ENOSPC; + case EFBIG: return UV_EFBIG; + case ENOPROTOOPT: return UV_ENOPROTOOPT; + case ETXTBSY: return UV_ETXTBSY; + case ERANGE: return UV_ERANGE; + case ENXIO: return UV_ENXIO; + case EMLINK: return UV_EMLINK; default: return UV_UNKNOWN; } UNREACHABLE(); diff --git a/deps/uv/src/unix/kqueue.c b/deps/uv/src/unix/kqueue.c index dc64203452a..124f4fd5764 100644 --- a/deps/uv/src/unix/kqueue.c +++ b/deps/uv/src/unix/kqueue.c @@ -359,10 +359,10 @@ fallback: void uv__fs_event_close(uv_fs_event_t* handle) { #if defined(__APPLE__) if (uv__fsevents_close(handle)) - uv__io_stop(handle->loop, &handle->event_watcher, UV__POLLIN); -#else - uv__io_stop(handle->loop, &handle->event_watcher, UV__POLLIN); #endif /* defined(__APPLE__) */ + { + uv__io_close(handle->loop, &handle->event_watcher); + } uv__handle_stop(handle); diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c index 7a8fcd3548f..69a60b05b39 100644 --- a/deps/uv/src/unix/linux-core.c +++ b/deps/uv/src/unix/linux-core.c @@ -99,6 +99,7 @@ void uv__platform_loop_delete(uv_loop_t* loop) { void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { struct uv__epoll_event* events; + struct uv__epoll_event dummy; uintptr_t i; uintptr_t nfds; @@ -106,13 +107,20 @@ void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { events = (struct uv__epoll_event*) loop->watchers[loop->nwatchers]; nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1]; - if (events == NULL) - return; + if (events != NULL) + /* Invalidate events with same file descriptor */ + for (i = 0; i < nfds; i++) + if ((int) events[i].data == fd) + events[i].data = -1; - /* Invalidate events with same file descriptor */ - for (i = 0; i < nfds; i++) - if ((int) events[i].data == fd) - events[i].data = -1; + /* Remove the file descriptor from the epoll. + * This avoids a problem where the same file description remains open + * in another process, causing repeated junk epoll events. + * + * We pass in a dummy epoll_event, to work around a bug in old kernels. + */ + if (loop->backend_fd >= 0) + uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_DEL, fd, &dummy); } diff --git a/deps/uv/src/unix/process.c b/deps/uv/src/unix/process.c index ca029b1cee8..19686a291f0 100644 --- a/deps/uv/src/unix/process.c +++ b/deps/uv/src/unix/process.c @@ -302,7 +302,6 @@ static void uv__process_child_init(uv_process_options_t options, if (use_fd == -1) { uv__write_int(error_fd, errno); - perror("failed to open stdio"); _exit(127); } } @@ -316,7 +315,7 @@ static void uv__process_child_init(uv_process_options_t options, if (fd <= 2) uv__nonblock(fd, 0); - if (close_fd != -1) + if (close_fd >= stdio_count) close(close_fd); } @@ -329,19 +328,16 @@ static void uv__process_child_init(uv_process_options_t options, if (options.cwd && chdir(options.cwd)) { uv__write_int(error_fd, errno); - perror("chdir()"); _exit(127); } if ((options.flags & UV_PROCESS_SETGID) && setgid(options.gid)) { uv__write_int(error_fd, errno); - perror("setgid()"); _exit(127); } if ((options.flags & UV_PROCESS_SETUID) && setuid(options.uid)) { uv__write_int(error_fd, errno); - perror("setuid()"); _exit(127); } @@ -351,7 +347,6 @@ static void uv__process_child_init(uv_process_options_t options, execvp(options.file, options.args); uv__write_int(error_fd, errno); - perror("execvp()"); _exit(127); } diff --git a/deps/uv/src/version.c b/deps/uv/src/version.c index 8ea385ed58b..0c35b1b3cba 100644 --- a/deps/uv/src/version.c +++ b/deps/uv/src/version.c @@ -34,7 +34,7 @@ #define UV_VERSION_MAJOR 0 #define UV_VERSION_MINOR 10 -#define UV_VERSION_PATCH 25 +#define UV_VERSION_PATCH 27 #define UV_VERSION_IS_RELEASE 1 diff --git a/deps/uv/src/win/pipe.c b/deps/uv/src/win/pipe.c index cce1d99057d..ee0c0f88428 100644 --- a/deps/uv/src/win/pipe.c +++ b/deps/uv/src/win/pipe.c @@ -1240,9 +1240,9 @@ static void uv_pipe_read_eof(uv_loop_t* loop, uv_pipe_t* handle, uv__set_artificial_error(loop, UV_EOF); if (handle->read2_cb) { - handle->read2_cb(handle, -1, uv_null_buf_, UV_UNKNOWN_HANDLE); + handle->read2_cb(handle, -1, buf, UV_UNKNOWN_HANDLE); } else { - handle->read_cb((uv_stream_t*) handle, -1, uv_null_buf_); + handle->read_cb((uv_stream_t*) handle, -1, buf); } } @@ -1404,7 +1404,7 @@ void uv_process_pipe_read_req(uv_loop_t* loop, uv_pipe_t* handle, break; } } else { - uv_pipe_read_error_or_eof(loop, handle, GetLastError(), uv_null_buf_); + uv_pipe_read_error_or_eof(loop, handle, GetLastError(), buf); break; } } diff --git a/deps/uv/src/win/signal.c b/deps/uv/src/win/signal.c index e630cd38bc1..f2938355b8c 100644 --- a/deps/uv/src/win/signal.c +++ b/deps/uv/src/win/signal.c @@ -129,8 +129,10 @@ static uv_err_t uv__signal_register_control_handler() { /* If the console control handler has already been hooked, just add a */ /* reference. */ - if (uv__signal_control_handler_refs > 0) + if (uv__signal_control_handler_refs > 0) { + uv__signal_control_handler_refs++; return uv_ok_; + } if (!SetConsoleCtrlHandler(uv__signal_control_handler, TRUE)) return uv__new_sys_error(GetLastError()); diff --git a/deps/uv/src/win/util.c b/deps/uv/src/win/util.c index 898dcb490e3..6e6f6201c3a 100644 --- a/deps/uv/src/win/util.c +++ b/deps/uv/src/win/util.c @@ -425,6 +425,7 @@ uv_err_t uv_get_process_title(char* buffer, size_t size) { * we must query it with getConsoleTitleW */ if (!process_title && uv__get_process_title() == -1) { + LeaveCriticalSection(&process_title_lock); return uv__new_sys_error(GetLastError()); } diff --git a/deps/uv/test/test-list.h b/deps/uv/test/test-list.h index f60eab30b33..c280ca95eb2 100644 --- a/deps/uv/test/test-list.h +++ b/deps/uv/test/test-list.h @@ -163,6 +163,7 @@ TEST_DECLARE (spawn_setgid_fails) TEST_DECLARE (spawn_stdout_to_file) TEST_DECLARE (spawn_stdout_and_stderr_to_file) TEST_DECLARE (spawn_auto_unref) +TEST_DECLARE (spawn_closed_process_io) TEST_DECLARE (fs_poll) TEST_DECLARE (kill) TEST_DECLARE (fs_file_noent) @@ -226,6 +227,7 @@ TEST_DECLARE (spawn_setuid_setgid) TEST_DECLARE (we_get_signal) TEST_DECLARE (we_get_signals) TEST_DECLARE (signal_multiple_loops) +TEST_DECLARE (closed_fd_events) #endif #ifdef __APPLE__ TEST_DECLARE (osx_select) @@ -442,6 +444,7 @@ TASK_LIST_START TEST_ENTRY (spawn_stdout_to_file) TEST_ENTRY (spawn_stdout_and_stderr_to_file) TEST_ENTRY (spawn_auto_unref) + TEST_ENTRY (spawn_closed_process_io) TEST_ENTRY (fs_poll) TEST_ENTRY (kill) @@ -458,6 +461,7 @@ TASK_LIST_START TEST_ENTRY (we_get_signal) TEST_ENTRY (we_get_signals) TEST_ENTRY (signal_multiple_loops) + TEST_ENTRY (closed_fd_events) #endif #ifdef __APPLE__ diff --git a/deps/uv/test/test-spawn.c b/deps/uv/test/test-spawn.c index 4388987800a..3afe0cbcbe3 100644 --- a/deps/uv/test/test-spawn.c +++ b/deps/uv/test/test-spawn.c @@ -40,6 +40,7 @@ static char exepath[1024]; static size_t exepath_size = 1024; static char* args[3]; static int no_term_signal; +static int timer_counter; #define OUTPUT_SIZE 1024 static char output[OUTPUT_SIZE]; @@ -118,6 +119,12 @@ static void on_read(uv_stream_t* tcp, ssize_t nread, uv_buf_t buf) { } +static void on_read_once(uv_stream_t* tcp, ssize_t nread, const uv_buf_t buf) { + uv_read_stop(tcp); + on_read(tcp, nread, buf); +} + + static void write_cb(uv_write_t* req, int status) { ASSERT(status == 0); uv_close((uv_handle_t*)req->handle, close_cb); @@ -145,6 +152,11 @@ static void timer_cb(uv_timer_t* handle, int status) { } +static void timer_counter_cb(uv_timer_t* handle, int status) { + ++timer_counter; +} + + TEST_IMPL(spawn_fails) { init_process_options("", exit_cb_failure_expected); options.file = options.args[0] = "program-that-had-better-not-exist"; @@ -664,6 +676,39 @@ TEST_IMPL(spawn_same_stdout_stderr) { } +TEST_IMPL(spawn_closed_process_io) { + uv_pipe_t in; + uv_write_t write_req; + uv_buf_t buf; + uv_stdio_container_t stdio[2]; + static char buffer[] = "hello-from-spawn_stdin"; + + init_process_options("spawn_helper1", exit_cb); + + uv_pipe_init(uv_default_loop(), &in, 0); + options.stdio = stdio; + options.stdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE; + options.stdio[0].data.stream = (uv_stream_t*) ∈ + options.stdio_count = 1; + + close(0); /* Close process stdin. */ + + ASSERT(0 == uv_spawn(uv_default_loop(), &process, options)); + + buf.base = buffer; + buf.len = sizeof(buffer); + ASSERT(0 == uv_write(&write_req, (uv_stream_t*) &in, &buf, 1, write_cb)); + + ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_DEFAULT)); + + ASSERT(exit_cb_called == 1); + ASSERT(close_cb_called == 2); /* process, child stdin */ + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + TEST_IMPL(kill) { int r; uv_err_t err; @@ -1038,3 +1083,65 @@ TEST_IMPL(spawn_auto_unref) { MAKE_VALGRIND_HAPPY(); return 0; } + + +#ifndef _WIN32 +TEST_IMPL(closed_fd_events) { + uv_stdio_container_t stdio[3]; + uv_pipe_t pipe_handle; + int fd[2]; + + /* create a pipe and share it with a child process */ + ASSERT(0 == pipe(fd)); + ASSERT(0 == fcntl(fd[0], F_SETFL, O_NONBLOCK)); + + /* spawn_helper4 blocks indefinitely. */ + init_process_options("spawn_helper4", exit_cb); + options.stdio_count = 3; + options.stdio = stdio; + options.stdio[0].data.fd = fd[0]; + options.stdio[0].flags = UV_INHERIT_FD; + options.stdio[1].flags = UV_IGNORE; + options.stdio[2].flags = UV_IGNORE; + + ASSERT(0 == uv_spawn(uv_default_loop(), &process, options)); + uv_unref((uv_handle_t*) &process); + + /* read from the pipe with uv */ + ASSERT(0 == uv_pipe_init(uv_default_loop(), &pipe_handle, 0)); + ASSERT(0 == uv_pipe_open(&pipe_handle, fd[0])); + fd[0] = -1; + + ASSERT(0 == uv_read_start((uv_stream_t*) &pipe_handle, on_alloc, on_read_once)); + + ASSERT(1 == write(fd[1], "", 1)); + + ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_ONCE)); + + /* should have received just one byte */ + ASSERT(output_used == 1); + + /* close the pipe and see if we still get events */ + uv_close((uv_handle_t*) &pipe_handle, close_cb); + + ASSERT(1 == write(fd[1], "", 1)); + + ASSERT(0 == uv_timer_init(uv_default_loop(), &timer)); + ASSERT(0 == uv_timer_start(&timer, timer_counter_cb, 10, 0)); + + /* see if any spurious events interrupt the timer */ + if (1 == uv_run(uv_default_loop(), UV_RUN_ONCE)) { + if (1 == uv_run(uv_default_loop(), UV_RUN_ONCE)) + ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_ONCE)); + } + + ASSERT(timer_counter == 1); + + /* cleanup */ + ASSERT(0 == uv_process_kill(&process, /* SIGTERM */ 15)); + ASSERT(0 == close(fd[1])); + + MAKE_VALGRIND_HAPPY(); + return 0; +} +#endif /* !_WIN32 */ diff --git a/deps/uv/vcbuild.bat b/deps/uv/vcbuild.bat index 0b7ea481117..42b0b947922 100644 --- a/deps/uv/vcbuild.bat +++ b/deps/uv/vcbuild.bat @@ -33,7 +33,7 @@ if /i "%1"=="noprojgen" set noprojgen=1&goto arg-ok if /i "%1"=="nobuild" set nobuild=1&goto arg-ok if /i "%1"=="x86" set target_arch=ia32&set platform=WIN32&set vs_toolset=x86&goto arg-ok if /i "%1"=="ia32" set target_arch=ia32&set platform=WIN32&set vs_toolset=x86&goto arg-ok -if /i "%1"=="x64" set target_arch=x64&set platform=amd64&set vs_toolset=x64&goto arg-ok +if /i "%1"=="x64" set target_arch=x64&set platform=x64&set vs_toolset=x64&goto arg-ok if /i "%1"=="shared" set library=shared_library&goto arg-ok if /i "%1"=="static" set library=static_library&goto arg-ok :arg-ok @@ -41,6 +41,17 @@ shift goto next-arg :args-done +if defined WindowsSDKDir goto select-target +if defined VCINSTALLDIR goto select-target + +@rem Look for Visual Studio 2013 +if not defined VS120COMNTOOLS goto vc-set-2012 +if not exist "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2012 +call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset% +set GYP_MSVS_VERSION=2013 +goto select-target + +:vc-set-2012 @rem Look for Visual Studio 2012 if not defined VS110COMNTOOLS goto vc-set-2010 if not exist "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2010 @@ -101,10 +112,8 @@ echo Project files generated. if defined nobuild goto run @rem Check if VS build env is available -if not defined VCINSTALLDIR goto msbuild-not-found -goto msbuild-found - -:msbuild-not-found +if defined VCINSTALLDIR goto msbuild-found +if defined WindowsSDKDir goto msbuild-found echo Build skipped. To build, this file needs to run from VS cmd prompt. goto run From f76c3938d0660378017bf276a72ea60e9adfe62c Mon Sep 17 00:00:00 2001 From: isaacs Date: Thu, 1 May 2014 11:09:00 -0700 Subject: [PATCH 15/15] npm: upgrade to v1.4.8 * Check SHA before using files from cache * adduser: allow change of the saved password * Make `npm install` respect `config.unicode` * Fix lifecycle to pass `Infinity` for config env value * Don't return 0 exit code on invalid command * cache: Handle 404s and other HTTP errors as errors * bump tap dep, make tests stderr a bit quieter * Resolve ~ in path configs to env.HOME * Include npm version in default user-agent conf * npm init: Use ISC as default license, use save-prefix for deps * Many test and doc fixes --- deps/npm/README.md | 4 + deps/npm/doc/api/npm.md | 2 +- deps/npm/doc/cli/npm-install.md | 3 +- deps/npm/doc/cli/npm-run-script.md | 6 +- deps/npm/doc/files/package.json.md | 1 + deps/npm/html/doc/README.html | 8 +- deps/npm/html/doc/api/npm-bin.html | 2 +- deps/npm/html/doc/api/npm-bugs.html | 2 +- deps/npm/html/doc/api/npm-commands.html | 2 +- deps/npm/html/doc/api/npm-config.html | 2 +- deps/npm/html/doc/api/npm-deprecate.html | 2 +- deps/npm/html/doc/api/npm-docs.html | 2 +- deps/npm/html/doc/api/npm-edit.html | 2 +- deps/npm/html/doc/api/npm-explore.html | 2 +- deps/npm/html/doc/api/npm-help-search.html | 2 +- deps/npm/html/doc/api/npm-init.html | 2 +- deps/npm/html/doc/api/npm-install.html | 2 +- deps/npm/html/doc/api/npm-link.html | 2 +- deps/npm/html/doc/api/npm-load.html | 2 +- deps/npm/html/doc/api/npm-ls.html | 2 +- deps/npm/html/doc/api/npm-outdated.html | 2 +- deps/npm/html/doc/api/npm-owner.html | 2 +- deps/npm/html/doc/api/npm-pack.html | 2 +- deps/npm/html/doc/api/npm-prefix.html | 2 +- deps/npm/html/doc/api/npm-prune.html | 2 +- deps/npm/html/doc/api/npm-publish.html | 2 +- deps/npm/html/doc/api/npm-rebuild.html | 2 +- deps/npm/html/doc/api/npm-repo.html | 2 +- deps/npm/html/doc/api/npm-restart.html | 2 +- deps/npm/html/doc/api/npm-root.html | 2 +- deps/npm/html/doc/api/npm-run-script.html | 2 +- deps/npm/html/doc/api/npm-search.html | 2 +- deps/npm/html/doc/api/npm-shrinkwrap.html | 2 +- deps/npm/html/doc/api/npm-start.html | 2 +- deps/npm/html/doc/api/npm-stop.html | 2 +- deps/npm/html/doc/api/npm-submodule.html | 2 +- deps/npm/html/doc/api/npm-tag.html | 2 +- deps/npm/html/doc/api/npm-test.html | 2 +- deps/npm/html/doc/api/npm-uninstall.html | 2 +- deps/npm/html/doc/api/npm-unpublish.html | 2 +- deps/npm/html/doc/api/npm-update.html | 2 +- deps/npm/html/doc/api/npm-version.html | 2 +- deps/npm/html/doc/api/npm-view.html | 2 +- deps/npm/html/doc/api/npm-whoami.html | 2 +- deps/npm/html/doc/api/npm.html | 6 +- deps/npm/html/doc/cli/npm-adduser.html | 2 +- deps/npm/html/doc/cli/npm-bin.html | 2 +- deps/npm/html/doc/cli/npm-bugs.html | 2 +- deps/npm/html/doc/cli/npm-build.html | 2 +- deps/npm/html/doc/cli/npm-bundle.html | 2 +- deps/npm/html/doc/cli/npm-cache.html | 2 +- deps/npm/html/doc/cli/npm-completion.html | 2 +- deps/npm/html/doc/cli/npm-config.html | 2 +- deps/npm/html/doc/cli/npm-dedupe.html | 2 +- deps/npm/html/doc/cli/npm-deprecate.html | 2 +- deps/npm/html/doc/cli/npm-docs.html | 2 +- deps/npm/html/doc/cli/npm-edit.html | 2 +- deps/npm/html/doc/cli/npm-explore.html | 2 +- deps/npm/html/doc/cli/npm-help-search.html | 2 +- deps/npm/html/doc/cli/npm-help.html | 2 +- deps/npm/html/doc/cli/npm-init.html | 2 +- deps/npm/html/doc/cli/npm-install.html | 6 +- deps/npm/html/doc/cli/npm-link.html | 2 +- deps/npm/html/doc/cli/npm-ls.html | 4 +- deps/npm/html/doc/cli/npm-outdated.html | 2 +- deps/npm/html/doc/cli/npm-owner.html | 2 +- deps/npm/html/doc/cli/npm-pack.html | 2 +- deps/npm/html/doc/cli/npm-prefix.html | 2 +- deps/npm/html/doc/cli/npm-prune.html | 2 +- deps/npm/html/doc/cli/npm-publish.html | 2 +- deps/npm/html/doc/cli/npm-rebuild.html | 2 +- deps/npm/html/doc/cli/npm-repo.html | 2 +- deps/npm/html/doc/cli/npm-restart.html | 2 +- deps/npm/html/doc/cli/npm-rm.html | 2 +- deps/npm/html/doc/cli/npm-root.html | 2 +- deps/npm/html/doc/cli/npm-run-script.html | 8 +- deps/npm/html/doc/cli/npm-search.html | 2 +- deps/npm/html/doc/cli/npm-shrinkwrap.html | 2 +- deps/npm/html/doc/cli/npm-star.html | 2 +- deps/npm/html/doc/cli/npm-stars.html | 2 +- deps/npm/html/doc/cli/npm-start.html | 2 +- deps/npm/html/doc/cli/npm-stop.html | 2 +- deps/npm/html/doc/cli/npm-submodule.html | 2 +- deps/npm/html/doc/cli/npm-tag.html | 2 +- deps/npm/html/doc/cli/npm-test.html | 2 +- deps/npm/html/doc/cli/npm-uninstall.html | 2 +- deps/npm/html/doc/cli/npm-unpublish.html | 2 +- deps/npm/html/doc/cli/npm-update.html | 2 +- deps/npm/html/doc/cli/npm-version.html | 2 +- deps/npm/html/doc/cli/npm-view.html | 2 +- deps/npm/html/doc/cli/npm-whoami.html | 2 +- deps/npm/html/doc/cli/npm.html | 4 +- deps/npm/html/doc/files/npm-folders.html | 2 +- deps/npm/html/doc/files/npm-global.html | 2 +- deps/npm/html/doc/files/npm-json.html | 4 +- deps/npm/html/doc/files/npmrc.html | 2 +- deps/npm/html/doc/files/package.json.html | 4 +- deps/npm/html/doc/index.html | 2 +- deps/npm/html/doc/misc/npm-coding-style.html | 2 +- deps/npm/html/doc/misc/npm-config.html | 2 +- deps/npm/html/doc/misc/npm-developers.html | 2 +- deps/npm/html/doc/misc/npm-disputes.html | 2 +- deps/npm/html/doc/misc/npm-faq.html | 2 +- deps/npm/html/doc/misc/npm-index.html | 2 +- deps/npm/html/doc/misc/npm-registry.html | 2 +- deps/npm/html/doc/misc/npm-scripts.html | 2 +- deps/npm/html/doc/misc/removing-npm.html | 2 +- deps/npm/html/doc/misc/semver.html | 2 +- deps/npm/lib/adduser.js | 18 ++++- deps/npm/lib/cache.js | 24 ++++++ deps/npm/lib/help.js | 11 ++- deps/npm/lib/install.js | 2 +- deps/npm/lib/npm.js | 8 ++ deps/npm/lib/utils/error-handler.js | 2 +- deps/npm/lib/utils/lifecycle.js | 2 + deps/npm/man/man1/npm-README.1 | 14 +++- deps/npm/man/man1/npm-adduser.1 | 2 +- deps/npm/man/man1/npm-bin.1 | 2 +- deps/npm/man/man1/npm-bugs.1 | 2 +- deps/npm/man/man1/npm-build.1 | 2 +- deps/npm/man/man1/npm-bundle.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 2 +- deps/npm/man/man1/npm-completion.1 | 2 +- deps/npm/man/man1/npm-config.1 | 2 +- deps/npm/man/man1/npm-dedupe.1 | 2 +- deps/npm/man/man1/npm-deprecate.1 | 2 +- deps/npm/man/man1/npm-docs.1 | 2 +- deps/npm/man/man1/npm-edit.1 | 2 +- deps/npm/man/man1/npm-explore.1 | 2 +- deps/npm/man/man1/npm-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-init.1 | 2 +- deps/npm/man/man1/npm-install.1 | 7 +- deps/npm/man/man1/npm-link.1 | 2 +- deps/npm/man/man1/npm-ls.1 | 4 +- deps/npm/man/man1/npm-outdated.1 | 2 +- deps/npm/man/man1/npm-owner.1 | 2 +- deps/npm/man/man1/npm-pack.1 | 2 +- deps/npm/man/man1/npm-prefix.1 | 2 +- deps/npm/man/man1/npm-prune.1 | 2 +- deps/npm/man/man1/npm-publish.1 | 2 +- deps/npm/man/man1/npm-rebuild.1 | 2 +- deps/npm/man/man1/npm-repo.1 | 2 +- deps/npm/man/man1/npm-restart.1 | 2 +- deps/npm/man/man1/npm-rm.1 | 2 +- deps/npm/man/man1/npm-root.1 | 2 +- deps/npm/man/man1/npm-run-script.1 | 8 +- deps/npm/man/man1/npm-search.1 | 2 +- deps/npm/man/man1/npm-shrinkwrap.1 | 2 +- deps/npm/man/man1/npm-star.1 | 2 +- deps/npm/man/man1/npm-stars.1 | 2 +- deps/npm/man/man1/npm-start.1 | 2 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-submodule.1 | 2 +- deps/npm/man/man1/npm-tag.1 | 2 +- deps/npm/man/man1/npm-test.1 | 2 +- deps/npm/man/man1/npm-uninstall.1 | 2 +- deps/npm/man/man1/npm-unpublish.1 | 2 +- deps/npm/man/man1/npm-update.1 | 2 +- deps/npm/man/man1/npm-version.1 | 2 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 4 +- deps/npm/man/man3/npm-bin.3 | 2 +- deps/npm/man/man3/npm-bugs.3 | 2 +- deps/npm/man/man3/npm-commands.3 | 2 +- deps/npm/man/man3/npm-config.3 | 2 +- deps/npm/man/man3/npm-deprecate.3 | 2 +- deps/npm/man/man3/npm-docs.3 | 2 +- deps/npm/man/man3/npm-edit.3 | 2 +- deps/npm/man/man3/npm-explore.3 | 2 +- deps/npm/man/man3/npm-help-search.3 | 2 +- deps/npm/man/man3/npm-init.3 | 2 +- deps/npm/man/man3/npm-install.3 | 2 +- deps/npm/man/man3/npm-link.3 | 2 +- deps/npm/man/man3/npm-load.3 | 2 +- deps/npm/man/man3/npm-ls.3 | 2 +- deps/npm/man/man3/npm-outdated.3 | 2 +- deps/npm/man/man3/npm-owner.3 | 2 +- deps/npm/man/man3/npm-pack.3 | 2 +- deps/npm/man/man3/npm-prefix.3 | 2 +- deps/npm/man/man3/npm-prune.3 | 2 +- deps/npm/man/man3/npm-publish.3 | 2 +- deps/npm/man/man3/npm-rebuild.3 | 2 +- deps/npm/man/man3/npm-repo.3 | 2 +- deps/npm/man/man3/npm-restart.3 | 2 +- deps/npm/man/man3/npm-root.3 | 2 +- deps/npm/man/man3/npm-run-script.3 | 2 +- deps/npm/man/man3/npm-search.3 | 2 +- deps/npm/man/man3/npm-shrinkwrap.3 | 2 +- deps/npm/man/man3/npm-start.3 | 2 +- deps/npm/man/man3/npm-stop.3 | 2 +- deps/npm/man/man3/npm-submodule.3 | 2 +- deps/npm/man/man3/npm-tag.3 | 2 +- deps/npm/man/man3/npm-test.3 | 2 +- deps/npm/man/man3/npm-uninstall.3 | 2 +- deps/npm/man/man3/npm-unpublish.3 | 2 +- deps/npm/man/man3/npm-update.3 | 2 +- deps/npm/man/man3/npm-version.3 | 2 +- deps/npm/man/man3/npm-view.3 | 2 +- deps/npm/man/man3/npm-whoami.3 | 2 +- deps/npm/man/man3/npm.3 | 6 +- deps/npm/man/man5/npm-folders.5 | 2 +- deps/npm/man/man5/npm-global.5 | 2 +- deps/npm/man/man5/npm-json.5 | 5 +- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package.json.5 | 5 +- deps/npm/man/man7/npm-coding-style.7 | 2 +- deps/npm/man/man7/npm-config.7 | 2 +- deps/npm/man/man7/npm-developers.7 | 2 +- deps/npm/man/man7/npm-disputes.7 | 2 +- deps/npm/man/man7/npm-faq.7 | 2 +- deps/npm/man/man7/npm-index.7 | 2 +- deps/npm/man/man7/npm-registry.7 | 2 +- deps/npm/man/man7/npm-scripts.7 | 2 +- deps/npm/man/man7/removing-npm.7 | 2 +- deps/npm/man/man7/semver.7 | 2 +- .../github-url-from-username-repo/index.js | 6 +- .../package.json | 11 ++- .../test/index.js | 27 +++++-- .../init-package-json/default-input.js | 4 +- .../node_modules/promzard/package.json | 4 +- .../init-package-json/package.json | 11 +-- deps/npm/node_modules/nopt/lib/nopt.js | 5 ++ deps/npm/node_modules/nopt/package.json | 5 +- deps/npm/node_modules/nopt/test/basic.js | 8 ++ deps/npm/node_modules/npmconf/config-defs.js | 7 +- deps/npm/node_modules/npmconf/package.json | 6 +- .../normalize-package-data/.travis.yml | 1 - .../normalize-package-data/lib/fixer.js | 66 +++++++-------- .../lib/make_warning.js | 23 ++++++ .../normalize-package-data/lib/normalize.js | 3 +- .../normalize-package-data/package.json | 11 +-- .../read-package-json/package.json | 7 +- deps/npm/node_modules/uid-number/LICENCE | 25 ++++++ deps/npm/package.json | 14 ++-- deps/npm/scripts/doc-build.sh | 2 +- deps/npm/test/common-tap.js | 30 +++++++ deps/npm/test/tap/cache-add-unpublished.js | 61 ++++++++++++++ deps/npm/test/tap/circular-dep.js | 23 +++--- deps/npm/test/tap/config-meta.js | 2 - deps/npm/test/tap/ignore-install-link.js | 9 +-- deps/npm/test/tap/install-cli-unicode.js | 38 +++++++++ deps/npm/test/tap/install-cli/README.md | 1 + deps/npm/test/tap/install-cli/index.js | 1 + deps/npm/test/tap/install-cli/package.json | 10 +++ deps/npm/test/tap/invalid-cmd-exit-code.js | 29 +++++++ deps/npm/test/tap/lifecycle.js | 12 +++ deps/npm/test/tap/ls-depth-cli.js | 79 ++++++++++++++++++ deps/npm/test/tap/ls-depth/package.json | 8 ++ deps/npm/test/tap/peer-deps-invalid.js | 81 +++++-------------- .../test/tap/peer-deps-invalid/file-fail.js | 10 +++ .../npm/test/tap/peer-deps-invalid/file-ok.js | 11 +++ .../tap/peer-deps-without-package-json.js | 65 ++++++--------- .../peer-deps-without-package-json/file-js.js | 11 +++ deps/npm/test/tap/startstop.js | 58 +++++-------- deps/npm/wercker.yml | 22 +++++ 257 files changed, 879 insertions(+), 486 deletions(-) create mode 100644 deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/make_warning.js create mode 100644 deps/npm/node_modules/uid-number/LICENCE create mode 100644 deps/npm/test/tap/cache-add-unpublished.js create mode 100644 deps/npm/test/tap/install-cli-unicode.js create mode 100644 deps/npm/test/tap/install-cli/README.md create mode 100644 deps/npm/test/tap/install-cli/index.js create mode 100644 deps/npm/test/tap/install-cli/package.json create mode 100644 deps/npm/test/tap/invalid-cmd-exit-code.js create mode 100644 deps/npm/test/tap/lifecycle.js create mode 100644 deps/npm/test/tap/ls-depth-cli.js create mode 100644 deps/npm/test/tap/ls-depth/package.json create mode 100644 deps/npm/test/tap/peer-deps-invalid/file-fail.js create mode 100644 deps/npm/test/tap/peer-deps-invalid/file-ok.js create mode 100644 deps/npm/test/tap/peer-deps-without-package-json/file-js.js create mode 100644 deps/npm/wercker.yml diff --git a/deps/npm/README.md b/deps/npm/README.md index 2383245b88b..0c08862fce9 100644 --- a/deps/npm/README.md +++ b/deps/npm/README.md @@ -38,6 +38,10 @@ paths, etc.) then read on. There's a pretty robust install script at . You can download that and run it. +Here's an example using curl: + + curl -L https://npmjs.org/install.sh | sh + ### Slightly Fancier You can set any npm configuration params with that script: diff --git a/deps/npm/doc/api/npm.md b/deps/npm/doc/api/npm.md index dea8773b80b..d05684e8b9d 100644 --- a/deps/npm/doc/api/npm.md +++ b/deps/npm/doc/api/npm.md @@ -4,7 +4,7 @@ npm(3) -- node package manager ## SYNOPSIS var npm = require("npm") - npm.load([configObject], function (er, npm) { + npm.load([configObject, ]function (er, npm) { // use the npm object, now that it's loaded. npm.config.set(key, val) diff --git a/deps/npm/doc/cli/npm-install.md b/deps/npm/doc/cli/npm-install.md index 47820a73c0e..62eec2d8e34 100644 --- a/deps/npm/doc/cli/npm-install.md +++ b/deps/npm/doc/cli/npm-install.md @@ -24,7 +24,7 @@ A `package` is: * a) a folder containing a program described by a package.json file * b) a gzipped tarball containing (a) * c) a url that resolves to (b) -* d) a `@` that is published on the registry with (c) +* d) a `@` that is published on the registry (see `npm-registry(7)`) with (c) * e) a `@` that points to (d) * f) a `` that has a "latest" tag satisfying (e) * g) a `` that resolves to (b) @@ -254,7 +254,6 @@ affects a real use-case, it will be investigated. * npm-config(7) * npmrc(5) * npm-registry(7) -* npm-folders(5) * npm-tag(1) * npm-rm(1) * npm-shrinkwrap(1) diff --git a/deps/npm/doc/cli/npm-run-script.md b/deps/npm/doc/cli/npm-run-script.md index 6c3c2b7a9cf..80b813cff7f 100644 --- a/deps/npm/doc/cli/npm-run-script.md +++ b/deps/npm/doc/cli/npm-run-script.md @@ -3,11 +3,13 @@ npm-run-script(1) -- Run arbitrary package scripts ## SYNOPSIS - npm run-script @@ -49,6 +49,10 @@ paths, etc.) then read on.

    There's a pretty robust install script at https://www.npmjs.org/install.sh. You can download that and run it.

    +

    Here's an example using curl:

    + +
    curl -L https://npmjs.org/install.sh | sh
    +

    Slightly Fancier

    You can set any npm configuration params with that script:

    @@ -256,5 +260,5 @@ will no doubt tell you to put the output in a gist or email.

           - + diff --git a/deps/npm/html/doc/api/npm-bin.html b/deps/npm/html/doc/api/npm-bin.html index e8d570c3803..50bc54e4a9a 100644 --- a/deps/npm/html/doc/api/npm-bin.html +++ b/deps/npm/html/doc/api/npm-bin.html @@ -32,5 +32,5 @@ to the npm.bin member.

           - + diff --git a/deps/npm/html/doc/api/npm-bugs.html b/deps/npm/html/doc/api/npm-bugs.html index 0849c7bad4d..d0cf9f376f3 100644 --- a/deps/npm/html/doc/api/npm-bugs.html +++ b/deps/npm/html/doc/api/npm-bugs.html @@ -38,5 +38,5 @@ friendly for programmatic use.

           - + diff --git a/deps/npm/html/doc/api/npm-commands.html b/deps/npm/html/doc/api/npm-commands.html index 8e28ec1c2fb..735905e295a 100644 --- a/deps/npm/html/doc/api/npm-commands.html +++ b/deps/npm/html/doc/api/npm-commands.html @@ -41,5 +41,5 @@ usage, or man 3 npm-<command> for programmatic usage.

           - + diff --git a/deps/npm/html/doc/api/npm-config.html b/deps/npm/html/doc/api/npm-config.html index 2b424e094c6..e1d685560e9 100644 --- a/deps/npm/html/doc/api/npm-config.html +++ b/deps/npm/html/doc/api/npm-config.html @@ -46,5 +46,5 @@ functions instead.

           - + diff --git a/deps/npm/html/doc/api/npm-deprecate.html b/deps/npm/html/doc/api/npm-deprecate.html index 7a44a2e4fe9..2513519559a 100644 --- a/deps/npm/html/doc/api/npm-deprecate.html +++ b/deps/npm/html/doc/api/npm-deprecate.html @@ -45,5 +45,5 @@ install the package.

           - + diff --git a/deps/npm/html/doc/api/npm-docs.html b/deps/npm/html/doc/api/npm-docs.html index cb3ad991dfb..ad50e542221 100644 --- a/deps/npm/html/doc/api/npm-docs.html +++ b/deps/npm/html/doc/api/npm-docs.html @@ -38,5 +38,5 @@ friendly for programmatic use.

           - + diff --git a/deps/npm/html/doc/api/npm-edit.html b/deps/npm/html/doc/api/npm-edit.html index 6eae8b48d3d..38e691567f0 100644 --- a/deps/npm/html/doc/api/npm-edit.html +++ b/deps/npm/html/doc/api/npm-edit.html @@ -43,5 +43,5 @@ and how this is used.

           - + diff --git a/deps/npm/html/doc/api/npm-explore.html b/deps/npm/html/doc/api/npm-explore.html index ea2c890c686..7991f75139c 100644 --- a/deps/npm/html/doc/api/npm-explore.html +++ b/deps/npm/html/doc/api/npm-explore.html @@ -37,5 +37,5 @@ sure to use npm rebuild <pkg> if you make any changes.

           - + diff --git a/deps/npm/html/doc/api/npm-help-search.html b/deps/npm/html/doc/api/npm-help-search.html index 52539869bf2..4bfb677ebc4 100644 --- a/deps/npm/html/doc/api/npm-help-search.html +++ b/deps/npm/html/doc/api/npm-help-search.html @@ -45,5 +45,5 @@ Name of the file that matched        - + diff --git a/deps/npm/html/doc/api/npm-init.html b/deps/npm/html/doc/api/npm-init.html index 7a51f6462b7..90eac28a0cc 100644 --- a/deps/npm/html/doc/api/npm-init.html +++ b/deps/npm/html/doc/api/npm-init.html @@ -48,5 +48,5 @@ then go ahead and use this programmatically.

           - + diff --git a/deps/npm/html/doc/api/npm-install.html b/deps/npm/html/doc/api/npm-install.html index f128d43e14e..d78b3f41dcb 100644 --- a/deps/npm/html/doc/api/npm-install.html +++ b/deps/npm/html/doc/api/npm-install.html @@ -38,5 +38,5 @@ installed or when an error has been encountered.

           - + diff --git a/deps/npm/html/doc/api/npm-link.html b/deps/npm/html/doc/api/npm-link.html index 57eb24fa8c0..24461c092aa 100644 --- a/deps/npm/html/doc/api/npm-link.html +++ b/deps/npm/html/doc/api/npm-link.html @@ -52,5 +52,5 @@ the package in the current working directory

           - + diff --git a/deps/npm/html/doc/api/npm-load.html b/deps/npm/html/doc/api/npm-load.html index 067262214ef..55e4500b34a 100644 --- a/deps/npm/html/doc/api/npm-load.html +++ b/deps/npm/html/doc/api/npm-load.html @@ -45,5 +45,5 @@ config object.

           - + diff --git a/deps/npm/html/doc/api/npm-ls.html b/deps/npm/html/doc/api/npm-ls.html index 06b1be091d9..56553d2b239 100644 --- a/deps/npm/html/doc/api/npm-ls.html +++ b/deps/npm/html/doc/api/npm-ls.html @@ -72,5 +72,5 @@ dependency will only be output once.

           - + diff --git a/deps/npm/html/doc/api/npm-outdated.html b/deps/npm/html/doc/api/npm-outdated.html index 81383f9cda8..311922f7c0d 100644 --- a/deps/npm/html/doc/api/npm-outdated.html +++ b/deps/npm/html/doc/api/npm-outdated.html @@ -32,5 +32,5 @@ currently outdated.

           - + diff --git a/deps/npm/html/doc/api/npm-owner.html b/deps/npm/html/doc/api/npm-owner.html index 95a46c2c4d3..fbaef4359f7 100644 --- a/deps/npm/html/doc/api/npm-owner.html +++ b/deps/npm/html/doc/api/npm-owner.html @@ -47,5 +47,5 @@ that is not implemented at this time.

           - + diff --git a/deps/npm/html/doc/api/npm-pack.html b/deps/npm/html/doc/api/npm-pack.html index bb911e8e092..7af6b832301 100644 --- a/deps/npm/html/doc/api/npm-pack.html +++ b/deps/npm/html/doc/api/npm-pack.html @@ -38,5 +38,5 @@ overwritten the second time.

           - + diff --git a/deps/npm/html/doc/api/npm-prefix.html b/deps/npm/html/doc/api/npm-prefix.html index 218f02f5b36..808290ca2e1 100644 --- a/deps/npm/html/doc/api/npm-prefix.html +++ b/deps/npm/html/doc/api/npm-prefix.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-prune.html b/deps/npm/html/doc/api/npm-prune.html index c125b641ee6..1ade79fab4e 100644 --- a/deps/npm/html/doc/api/npm-prune.html +++ b/deps/npm/html/doc/api/npm-prune.html @@ -36,5 +36,5 @@ package's dependencies list.

           - + diff --git a/deps/npm/html/doc/api/npm-publish.html b/deps/npm/html/doc/api/npm-publish.html index 0fcd6f81304..1220fd6080d 100644 --- a/deps/npm/html/doc/api/npm-publish.html +++ b/deps/npm/html/doc/api/npm-publish.html @@ -45,5 +45,5 @@ the registry. Overwrites when the "force" environment variable is set        - + diff --git a/deps/npm/html/doc/api/npm-rebuild.html b/deps/npm/html/doc/api/npm-rebuild.html index b15b33e27f0..0e22893c402 100644 --- a/deps/npm/html/doc/api/npm-rebuild.html +++ b/deps/npm/html/doc/api/npm-rebuild.html @@ -35,5 +35,5 @@ the new binary. If no 'packages' parameter is specify, every package wil        - + diff --git a/deps/npm/html/doc/api/npm-repo.html b/deps/npm/html/doc/api/npm-repo.html index 2e9ba10a42f..a4a98208041 100644 --- a/deps/npm/html/doc/api/npm-repo.html +++ b/deps/npm/html/doc/api/npm-repo.html @@ -38,5 +38,5 @@ friendly for programmatic use.

           - + diff --git a/deps/npm/html/doc/api/npm-restart.html b/deps/npm/html/doc/api/npm-restart.html index 0466c9b5f31..71cad00b944 100644 --- a/deps/npm/html/doc/api/npm-restart.html +++ b/deps/npm/html/doc/api/npm-restart.html @@ -40,5 +40,5 @@ in the packages parameter.

           - + diff --git a/deps/npm/html/doc/api/npm-root.html b/deps/npm/html/doc/api/npm-root.html index e9736533e5c..e1dd216bbde 100644 --- a/deps/npm/html/doc/api/npm-root.html +++ b/deps/npm/html/doc/api/npm-root.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-run-script.html b/deps/npm/html/doc/api/npm-run-script.html index cadce60e18d..c6be4c6fe21 100644 --- a/deps/npm/html/doc/api/npm-run-script.html +++ b/deps/npm/html/doc/api/npm-run-script.html @@ -42,5 +42,5 @@ assumed to be the command to run. All other elements are ignored.

           - + diff --git a/deps/npm/html/doc/api/npm-search.html b/deps/npm/html/doc/api/npm-search.html index 05894ce20b4..dcb5e0fde92 100644 --- a/deps/npm/html/doc/api/npm-search.html +++ b/deps/npm/html/doc/api/npm-search.html @@ -45,5 +45,5 @@ like).

           - + diff --git a/deps/npm/html/doc/api/npm-shrinkwrap.html b/deps/npm/html/doc/api/npm-shrinkwrap.html index ee76b5f3831..cce22640fae 100644 --- a/deps/npm/html/doc/api/npm-shrinkwrap.html +++ b/deps/npm/html/doc/api/npm-shrinkwrap.html @@ -39,5 +39,5 @@ been saved.

           - + diff --git a/deps/npm/html/doc/api/npm-start.html b/deps/npm/html/doc/api/npm-start.html index a6d069ea2c7..ec2f3694193 100644 --- a/deps/npm/html/doc/api/npm-start.html +++ b/deps/npm/html/doc/api/npm-start.html @@ -32,5 +32,5 @@ in the packages parameter.

           - + diff --git a/deps/npm/html/doc/api/npm-stop.html b/deps/npm/html/doc/api/npm-stop.html index 0eb6fe91172..882ebbe02a9 100644 --- a/deps/npm/html/doc/api/npm-stop.html +++ b/deps/npm/html/doc/api/npm-stop.html @@ -32,5 +32,5 @@ in the packages parameter.

           - + diff --git a/deps/npm/html/doc/api/npm-submodule.html b/deps/npm/html/doc/api/npm-submodule.html index 0180f6c777b..42b82ac15de 100644 --- a/deps/npm/html/doc/api/npm-submodule.html +++ b/deps/npm/html/doc/api/npm-submodule.html @@ -46,5 +46,5 @@ dependencies into the submodule folder.

           - + diff --git a/deps/npm/html/doc/api/npm-tag.html b/deps/npm/html/doc/api/npm-tag.html index d4331c3c173..dbf97be1aed 100644 --- a/deps/npm/html/doc/api/npm-tag.html +++ b/deps/npm/html/doc/api/npm-tag.html @@ -42,5 +42,5 @@ used. For more information about how to set this config, check        - + diff --git a/deps/npm/html/doc/api/npm-test.html b/deps/npm/html/doc/api/npm-test.html index 57dc2520180..2820fa70965 100644 --- a/deps/npm/html/doc/api/npm-test.html +++ b/deps/npm/html/doc/api/npm-test.html @@ -35,5 +35,5 @@ in the packages parameter.

           - + diff --git a/deps/npm/html/doc/api/npm-uninstall.html b/deps/npm/html/doc/api/npm-uninstall.html index e3e60e0bdb0..2a568d9e6a9 100644 --- a/deps/npm/html/doc/api/npm-uninstall.html +++ b/deps/npm/html/doc/api/npm-uninstall.html @@ -35,5 +35,5 @@ uninstalled or when an error has been encountered.

           - + diff --git a/deps/npm/html/doc/api/npm-unpublish.html b/deps/npm/html/doc/api/npm-unpublish.html index a95d7a4ff46..09748b7cc20 100644 --- a/deps/npm/html/doc/api/npm-unpublish.html +++ b/deps/npm/html/doc/api/npm-unpublish.html @@ -39,5 +39,5 @@ the root package entry is removed from the registry entirely.

           - + diff --git a/deps/npm/html/doc/api/npm-update.html b/deps/npm/html/doc/api/npm-update.html index 26e79de713a..b929ad73926 100644 --- a/deps/npm/html/doc/api/npm-update.html +++ b/deps/npm/html/doc/api/npm-update.html @@ -31,5 +31,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-version.html b/deps/npm/html/doc/api/npm-version.html index aada25a45b5..ffe2a4093fa 100644 --- a/deps/npm/html/doc/api/npm-version.html +++ b/deps/npm/html/doc/api/npm-version.html @@ -37,5 +37,5 @@ not have exactly one element. The only element should be a version number.

           - + diff --git a/deps/npm/html/doc/api/npm-view.html b/deps/npm/html/doc/api/npm-view.html index 685445b84f3..09dfffce1ad 100644 --- a/deps/npm/html/doc/api/npm-view.html +++ b/deps/npm/html/doc/api/npm-view.html @@ -112,5 +112,5 @@ the field name.

           - + diff --git a/deps/npm/html/doc/api/npm-whoami.html b/deps/npm/html/doc/api/npm-whoami.html index 37c3721b046..cccc2f5555f 100644 --- a/deps/npm/html/doc/api/npm-whoami.html +++ b/deps/npm/html/doc/api/npm-whoami.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/api/npm.html b/deps/npm/html/doc/api/npm.html index fab4dc18525..75f85657d73 100644 --- a/deps/npm/html/doc/api/npm.html +++ b/deps/npm/html/doc/api/npm.html @@ -14,7 +14,7 @@

    SYNOPSIS

    var npm = require("npm")
    -npm.load([configObject], function (er, npm) {
    +npm.load([configObject, ]function (er, npm) {
       // use the npm object, now that it's loaded.
     
       npm.config.set(key, val)
    @@ -27,7 +27,7 @@ npm.load([configObject], function (er, npm) {
     
     

    VERSION

    -

    1.4.7

    +

    1.4.8

    DESCRIPTION

    @@ -105,5 +105,5 @@ method names. Use the npm.deref method to find the real name.

           - + diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html index 2a18cfd9f96..e97c3c21b1c 100644 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ b/deps/npm/html/doc/cli/npm-adduser.html @@ -52,5 +52,5 @@ authorize on a new machine.

           - + diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html index 8d107f2e639..f753966fe8f 100644 --- a/deps/npm/html/doc/cli/npm-bin.html +++ b/deps/npm/html/doc/cli/npm-bin.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html index 3f4473e1016..821dbb3a640 100644 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ b/deps/npm/html/doc/cli/npm-bugs.html @@ -51,5 +51,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html index 46ea9081564..89d75f1f714 100644 --- a/deps/npm/html/doc/cli/npm-build.html +++ b/deps/npm/html/doc/cli/npm-build.html @@ -38,5 +38,5 @@ A folder containing a package.json file in its root.        - + diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html index c76024e205f..4c1de8ceedf 100644 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ b/deps/npm/html/doc/cli/npm-bundle.html @@ -33,5 +33,5 @@ install packages into the local space.

           - + diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html index 60a7e30b63a..90013f941e8 100644 --- a/deps/npm/html/doc/cli/npm-cache.html +++ b/deps/npm/html/doc/cli/npm-cache.html @@ -79,5 +79,5 @@ they do not make an HTTP request to the registry.

           - + diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html index f79d2c48eca..357d095d78d 100644 --- a/deps/npm/html/doc/cli/npm-completion.html +++ b/deps/npm/html/doc/cli/npm-completion.html @@ -46,5 +46,5 @@ completions based on the arguments.

           - + diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html index c369ab5e853..ad93e7803d7 100644 --- a/deps/npm/html/doc/cli/npm-config.html +++ b/deps/npm/html/doc/cli/npm-config.html @@ -86,5 +86,5 @@ global config.

           - + diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html index c069b85dab8..2576a78c6ca 100644 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ b/deps/npm/html/doc/cli/npm-dedupe.html @@ -75,5 +75,5 @@ versions.

           - + diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html index f7a8ad446b1..13a9b3b0f68 100644 --- a/deps/npm/html/doc/cli/npm-deprecate.html +++ b/deps/npm/html/doc/cli/npm-deprecate.html @@ -44,5 +44,5 @@ something like this:

           - + diff --git a/deps/npm/html/doc/cli/npm-docs.html b/deps/npm/html/doc/cli/npm-docs.html index 0be91683245..af1fcc0ba4f 100644 --- a/deps/npm/html/doc/cli/npm-docs.html +++ b/deps/npm/html/doc/cli/npm-docs.html @@ -54,5 +54,5 @@ the current folder and use the name property.

           - + diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html index abb78679230..91b064cd49e 100644 --- a/deps/npm/html/doc/cli/npm-edit.html +++ b/deps/npm/html/doc/cli/npm-edit.html @@ -50,5 +50,5 @@ or "notepad" on Windows.
  • Type: path
  •        - + diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html index 7a615f7444b..7febeee318a 100644 --- a/deps/npm/html/doc/cli/npm-explore.html +++ b/deps/npm/html/doc/cli/npm-explore.html @@ -53,5 +53,5 @@ Windows
  • Type: path
  •        - + diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html index 524301abaed..16e3773de84 100644 --- a/deps/npm/html/doc/cli/npm-help-search.html +++ b/deps/npm/html/doc/cli/npm-help-search.html @@ -51,5 +51,5 @@ where the terms were found in the documentation.

           - + diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html index 625c093413d..24ec2533014 100644 --- a/deps/npm/html/doc/cli/npm-help.html +++ b/deps/npm/html/doc/cli/npm-help.html @@ -49,5 +49,5 @@ matches are equivalent to specifying a topic name.

           - + diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html index ed4fc858a23..fe2d1af96fa 100644 --- a/deps/npm/html/doc/cli/npm-init.html +++ b/deps/npm/html/doc/cli/npm-init.html @@ -42,5 +42,5 @@ without a really good reason to do so.

           - + diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html index 50a1d814137..3e0a78f3f6f 100644 --- a/deps/npm/html/doc/cli/npm-install.html +++ b/deps/npm/html/doc/cli/npm-install.html @@ -31,7 +31,7 @@ by that. See npm-shrinkwrap(1).

    A package is:

    -
    • a) a folder containing a program described by a package.json file
    • b) a gzipped tarball containing (a)
    • c) a url that resolves to (b)
    • d) a <name>@<version> that is published on the registry with (c)
    • e) a <name>@<tag> that points to (d)
    • f) a <name> that has a "latest" tag satisfying (e)
    • g) a <git remote url> that resolves to (b)
    +
    • a) a folder containing a program described by a package.json file
    • b) a gzipped tarball containing (a)
    • c) a url that resolves to (b)
    • d) a <name>@<version> that is published on the registry (see npm-registry(7)) with (c)
    • e) a <name>@<tag> that points to (d)
    • f) a <name> that has a "latest" tag satisfying (e)
    • g) a <git remote url> that resolves to (b)

    Even if you never publish your package, you can still get a lot of benefits of using npm if you just want to write a node program (a), and @@ -154,7 +154,7 @@ affects a real use-case, it will be investigated.

    SEE ALSO

    - + @@ -166,5 +166,5 @@ affects a real use-case, it will be investigated.

    - + diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html index 85bcc057fef..063b2a4c4a9 100644 --- a/deps/npm/html/doc/cli/npm-link.html +++ b/deps/npm/html/doc/cli/npm-link.html @@ -75,5 +75,5 @@ installation target into your project's node_modules folder.

           - + diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html index 260033b23d7..568e4e142de 100644 --- a/deps/npm/html/doc/cli/npm-ls.html +++ b/deps/npm/html/doc/cli/npm-ls.html @@ -28,7 +28,7 @@ limit the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

    -
    npm@1.4.7 /path/to/npm
    +
    npm@1.4.8 /path/to/npm
     └─┬ init-package-json@0.0.4
       └── promzard@0.1.5
    @@ -87,5 +87,5 @@ project.

           - + diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html index 52f46b27daf..ee938ac08a2 100644 --- a/deps/npm/html/doc/cli/npm-outdated.html +++ b/deps/npm/html/doc/cli/npm-outdated.html @@ -71,5 +71,5 @@ project.

           - + diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html index 9887040b88a..2fba0e09310 100644 --- a/deps/npm/html/doc/cli/npm-owner.html +++ b/deps/npm/html/doc/cli/npm-owner.html @@ -47,5 +47,5 @@ that is not implemented at this time.

           - + diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html index d3ebdba9c54..323da3e70f2 100644 --- a/deps/npm/html/doc/cli/npm-pack.html +++ b/deps/npm/html/doc/cli/npm-pack.html @@ -42,5 +42,5 @@ overwritten the second time.

           - + diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html index 35ea1ab30df..fce8f433976 100644 --- a/deps/npm/html/doc/cli/npm-prefix.html +++ b/deps/npm/html/doc/cli/npm-prefix.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html index 8fc7298b4c8..e7ee0ee6ae6 100644 --- a/deps/npm/html/doc/cli/npm-prune.html +++ b/deps/npm/html/doc/cli/npm-prune.html @@ -42,5 +42,5 @@ packages specified in your devDependencies.

           - + diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html index 3ff10e9d94c..14572af70c6 100644 --- a/deps/npm/html/doc/cli/npm-publish.html +++ b/deps/npm/html/doc/cli/npm-publish.html @@ -49,5 +49,5 @@ it is removed with npm-unpublish(1).

           - + diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html index 0dc90210b23..bc4061bd910 100644 --- a/deps/npm/html/doc/cli/npm-rebuild.html +++ b/deps/npm/html/doc/cli/npm-rebuild.html @@ -39,5 +39,5 @@ the new binary.

           - + diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html index 7d6bda4fca5..17851420675 100644 --- a/deps/npm/html/doc/cli/npm-repo.html +++ b/deps/npm/html/doc/cli/npm-repo.html @@ -45,5 +45,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html index 17caa3c6afd..df666ff85f9 100644 --- a/deps/npm/html/doc/cli/npm-restart.html +++ b/deps/npm/html/doc/cli/npm-restart.html @@ -37,5 +37,5 @@ the "start" script.

           - + diff --git a/deps/npm/html/doc/cli/npm-rm.html b/deps/npm/html/doc/cli/npm-rm.html index aa98f3f2699..5a66704a338 100644 --- a/deps/npm/html/doc/cli/npm-rm.html +++ b/deps/npm/html/doc/cli/npm-rm.html @@ -37,5 +37,5 @@ on its behalf.

           - + diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html index 85b7f6d87ce..527667f7294 100644 --- a/deps/npm/html/doc/cli/npm-root.html +++ b/deps/npm/html/doc/cli/npm-root.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html index e410640ac15..c602aeb6985 100644 --- a/deps/npm/html/doc/cli/npm-run-script.html +++ b/deps/npm/html/doc/cli/npm-run-script.html @@ -13,11 +13,13 @@

    SYNOPSIS

    -
    npm run-script <script> <name>
    +
    npm run-script [<pkg>] <command>

    DESCRIPTION

    -

    This runs an arbitrary command from a package's "scripts" object.

    +

    This runs an arbitrary command from a package's "scripts" object. +If no package name is provided, it will search for a package.json +in the current folder and use its "scripts" object.

    It is used by the test, start, restart, and stop commands, but can be called directly, as well.

    @@ -36,5 +38,5 @@ called directly, as well.

           - + diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html index 6fc04160651..7df4e26149e 100644 --- a/deps/npm/html/doc/cli/npm-search.html +++ b/deps/npm/html/doc/cli/npm-search.html @@ -50,5 +50,5 @@ fall on multiple lines.

           - + diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html index a882921091b..1f0464e0b8d 100644 --- a/deps/npm/html/doc/cli/npm-shrinkwrap.html +++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html @@ -196,5 +196,5 @@ contents rather than versions.

           - + diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html index 034b5eac5ba..a02ba32c02d 100644 --- a/deps/npm/html/doc/cli/npm-star.html +++ b/deps/npm/html/doc/cli/npm-star.html @@ -39,5 +39,5 @@ a vaguely positive way to show that you care.

           - + diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html index b8d3f7f53d7..9f1568fc249 100644 --- a/deps/npm/html/doc/cli/npm-stars.html +++ b/deps/npm/html/doc/cli/npm-stars.html @@ -38,5 +38,5 @@ you will most certainly enjoy this command.

           - + diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html index 0756eb6bb28..c8e48649576 100644 --- a/deps/npm/html/doc/cli/npm-start.html +++ b/deps/npm/html/doc/cli/npm-start.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html index d7d66ecfc39..b746a6111f8 100644 --- a/deps/npm/html/doc/cli/npm-stop.html +++ b/deps/npm/html/doc/cli/npm-stop.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-submodule.html b/deps/npm/html/doc/cli/npm-submodule.html index ed73b38bb90..f4358281afa 100644 --- a/deps/npm/html/doc/cli/npm-submodule.html +++ b/deps/npm/html/doc/cli/npm-submodule.html @@ -46,5 +46,5 @@ dependencies into the submodule folder.

           - + diff --git a/deps/npm/html/doc/cli/npm-tag.html b/deps/npm/html/doc/cli/npm-tag.html index 51f529fd9e2..26c36d4f8f7 100644 --- a/deps/npm/html/doc/cli/npm-tag.html +++ b/deps/npm/html/doc/cli/npm-tag.html @@ -47,5 +47,5 @@ of using a specific version number:

           - + diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html index 0afbd5b8229..d36b4df7fbc 100644 --- a/deps/npm/html/doc/cli/npm-test.html +++ b/deps/npm/html/doc/cli/npm-test.html @@ -37,5 +37,5 @@ true.

           - + diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html index bfdeca120b9..f77e270b37a 100644 --- a/deps/npm/html/doc/cli/npm-uninstall.html +++ b/deps/npm/html/doc/cli/npm-uninstall.html @@ -53,5 +53,5 @@ npm uninstall dtrace-provider --save-optional
           - + diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html index de3e2f54b4a..e7864dca839 100644 --- a/deps/npm/html/doc/cli/npm-unpublish.html +++ b/deps/npm/html/doc/cli/npm-unpublish.html @@ -51,5 +51,5 @@ package again, a new version number must be used.

           - + diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html index 3f15e4e09da..ca7974d2ca2 100644 --- a/deps/npm/html/doc/cli/npm-update.html +++ b/deps/npm/html/doc/cli/npm-update.html @@ -39,5 +39,5 @@ If no package name is specified, all packages in the specified location (global        - + diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html index b90a64287c9..88fc4e6470e 100644 --- a/deps/npm/html/doc/cli/npm-version.html +++ b/deps/npm/html/doc/cli/npm-version.html @@ -62,5 +62,5 @@ Enter passphrase:
           - + diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html index b332c4a0da2..83a295aa532 100644 --- a/deps/npm/html/doc/cli/npm-view.html +++ b/deps/npm/html/doc/cli/npm-view.html @@ -104,5 +104,5 @@ the field name.

           - + diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html index aecaf14e6a1..9330dc3b214 100644 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ b/deps/npm/html/doc/cli/npm-whoami.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html index 8770da02fec..50a4bb65bd4 100644 --- a/deps/npm/html/doc/cli/npm.html +++ b/deps/npm/html/doc/cli/npm.html @@ -17,7 +17,7 @@

    VERSION

    -

    1.4.7

    +

    1.4.8

    DESCRIPTION

    @@ -144,5 +144,5 @@ will no doubt tell you to put the output in a gist or email.

           - + diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html index 75e44e25409..eb9606b5c5b 100644 --- a/deps/npm/html/doc/files/npm-folders.html +++ b/deps/npm/html/doc/files/npm-folders.html @@ -218,5 +218,5 @@ cannot be found elsewhere. See packa        - + diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html index 75e44e25409..eb9606b5c5b 100644 --- a/deps/npm/html/doc/files/npm-global.html +++ b/deps/npm/html/doc/files/npm-global.html @@ -218,5 +218,5 @@ cannot be found elsewhere. See packa        - + diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html index b8dc0d46b29..bcb0a56bf8b 100644 --- a/deps/npm/html/doc/files/npm-json.html +++ b/deps/npm/html/doc/files/npm-json.html @@ -311,7 +311,7 @@ a tarball or git URL.

    See semver(7) for more details about specifying version ranges.

    -
    • version Must match version exactly
    • >version Must be greater than version
    • >=version etc
    • <version
    • <=version
    • ~version "Approximately equivalent to version" See semver(7)
    • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
    • http://... See 'URLs as Dependencies' below
    • * Matches any version
    • "" (just an empty string) Same as *
    • version1 - version2 Same as >=version1 <=version2.
    • range1 || range2 Passes if either range1 or range2 are satisfied.
    • git... See 'Git URLs as Dependencies' below
    • user/repo See 'GitHub URLs' below
    +
    • version Must match version exactly
    • >version Must be greater than version
    • >=version etc
    • <version
    • <=version
    • ~version "Approximately equivalent to version" See semver(7)
    • ^version "Compatible with version" See semver(7)
    • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
    • http://... See 'URLs as Dependencies' below
    • * Matches any version
    • "" (just an empty string) Same as *
    • version1 - version2 Same as >=version1 <=version2.
    • range1 || range2 Passes if either range1 or range2 are satisfied.
    • git... See 'Git URLs as Dependencies' below
    • user/repo See 'GitHub URLs' below

    For example, these are all valid:

    @@ -589,5 +589,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html index 608c4976c4f..10dff0f1b6f 100644 --- a/deps/npm/html/doc/files/npmrc.html +++ b/deps/npm/html/doc/files/npmrc.html @@ -72,5 +72,5 @@ manner.

           - + diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html index b8dc0d46b29..bcb0a56bf8b 100644 --- a/deps/npm/html/doc/files/package.json.html +++ b/deps/npm/html/doc/files/package.json.html @@ -311,7 +311,7 @@ a tarball or git URL.

    See semver(7) for more details about specifying version ranges.

    -
    • version Must match version exactly
    • >version Must be greater than version
    • >=version etc
    • <version
    • <=version
    • ~version "Approximately equivalent to version" See semver(7)
    • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
    • http://... See 'URLs as Dependencies' below
    • * Matches any version
    • "" (just an empty string) Same as *
    • version1 - version2 Same as >=version1 <=version2.
    • range1 || range2 Passes if either range1 or range2 are satisfied.
    • git... See 'Git URLs as Dependencies' below
    • user/repo See 'GitHub URLs' below
    +
    • version Must match version exactly
    • >version Must be greater than version
    • >=version etc
    • <version
    • <=version
    • ~version "Approximately equivalent to version" See semver(7)
    • ^version "Compatible with version" See semver(7)
    • 1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
    • http://... See 'URLs as Dependencies' below
    • * Matches any version
    • "" (just an empty string) Same as *
    • version1 - version2 Same as >=version1 <=version2.
    • range1 || range2 Passes if either range1 or range2 are satisfied.
    • git... See 'Git URLs as Dependencies' below
    • user/repo See 'GitHub URLs' below

    For example, these are all valid:

    @@ -589,5 +589,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html index a8897284d8c..8ddfe6853d8 100644 --- a/deps/npm/html/doc/index.html +++ b/deps/npm/html/doc/index.html @@ -429,5 +429,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html index b3c373ca114..718683cc64e 100644 --- a/deps/npm/html/doc/misc/npm-coding-style.html +++ b/deps/npm/html/doc/misc/npm-coding-style.html @@ -195,5 +195,5 @@ set to anything."

           - + diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html index 1c44de37f3e..54ff62e0717 100644 --- a/deps/npm/html/doc/misc/npm-config.html +++ b/deps/npm/html/doc/misc/npm-config.html @@ -743,5 +743,5 @@ hash, and exit successfully.

           - + diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html index a3cfc32b89b..c079166bd9f 100644 --- a/deps/npm/html/doc/misc/npm-developers.html +++ b/deps/npm/html/doc/misc/npm-developers.html @@ -187,5 +187,5 @@ from a fresh checkout.

           - + diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html index 15dfd2a3c80..b6fa66273f6 100644 --- a/deps/npm/html/doc/misc/npm-disputes.html +++ b/deps/npm/html/doc/misc/npm-disputes.html @@ -105,5 +105,5 @@ things into it.        - + diff --git a/deps/npm/html/doc/misc/npm-faq.html b/deps/npm/html/doc/misc/npm-faq.html index 7e310072daa..556f1cb8e0e 100644 --- a/deps/npm/html/doc/misc/npm-faq.html +++ b/deps/npm/html/doc/misc/npm-faq.html @@ -361,5 +361,5 @@ good folks at npm, Inc.

           - + diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html index 4afdf117e09..b4892a7bb0d 100644 --- a/deps/npm/html/doc/misc/npm-index.html +++ b/deps/npm/html/doc/misc/npm-index.html @@ -429,5 +429,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html index 3c0fea26890..0828d93f8c5 100644 --- a/deps/npm/html/doc/misc/npm-registry.html +++ b/deps/npm/html/doc/misc/npm-registry.html @@ -84,5 +84,5 @@ effectively implement the entire CouchDB API anyway.

           - + diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html index 1e41008cdce..c1e77d6fb53 100644 --- a/deps/npm/html/doc/misc/npm-scripts.html +++ b/deps/npm/html/doc/misc/npm-scripts.html @@ -236,5 +236,5 @@ the user will sudo the npm command in question.        - + diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html index 40dab55b444..08d7a4f7d87 100644 --- a/deps/npm/html/doc/misc/removing-npm.html +++ b/deps/npm/html/doc/misc/removing-npm.html @@ -71,5 +71,5 @@ modules. To track those down, you can do the following:

           - + diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html index 51473c703a9..3dae36b08e2 100644 --- a/deps/npm/html/doc/misc/semver.html +++ b/deps/npm/html/doc/misc/semver.html @@ -130,5 +130,5 @@ range, use the satisfies(version, range) function.

           - + diff --git a/deps/npm/lib/adduser.js b/deps/npm/lib/adduser.js index 739f14243f1..94a119683a7 100644 --- a/deps/npm/lib/adduser.js +++ b/deps/npm/lib/adduser.js @@ -66,15 +66,24 @@ function readUsername (c, u, cb) { function readPassword (c, u, cb) { var v = userValidate.pw - if (!c.changed) { - u.p = c.p - return cb() + var prompt + if (c.p && !c.changed) { + prompt = "Password: (or leave unchanged) " + } else { + prompt = "Password: " } - read({prompt: "Password: ", silent: true}, function (er, pw) { + + read({prompt: prompt, silent: true}, function (er, pw) { if (er) { return cb(er.message === "cancelled" ? er.message : er) } + if (!c.changed && pw === "") { + // when the username was not changed, + // empty response means "use the old value" + pw = c.p + } + if (!pw) { return readPassword(c, u, cb) } @@ -85,6 +94,7 @@ function readPassword (c, u, cb) { return readPassword(c, u, cb) } + c.changed = c.changed || c.p != pw u.p = pw cb(er) }) diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js index b17da0cf925..5c2d07840ea 100644 --- a/deps/npm/lib/cache.js +++ b/deps/npm/lib/cache.js @@ -84,6 +84,7 @@ var mkdir = require("mkdirp") , which = require("which") , isGitUrl = require("./utils/is-git-url.js") , pathIsInside = require("path-is-inside") + , http = require("http") cache.usage = "npm cache add " + "\nnpm cache add " @@ -709,6 +710,9 @@ function addNameTag (name, tag, data, cb_) { } registry.get(name, function (er, data, json, response) { + if (!er) { + er = errorResponse(name, resp) + } if (er) return cb(er) engineFilter(data) if (data["dist-tags"] && data["dist-tags"][tag] @@ -744,6 +748,16 @@ function engineFilter (data) { }) } +function errorResponse (name, response) { + if (response.statusCode >= 400) { + var er = new Error(http.STATUS_CODES[response.statusCode]) + er.statusCode = response.statusCode + er.code = "E" + er.statusCode + er.pkgid = name + } + return er +} + function addNameRange (name, range, data, cb) { if (typeof cb !== "function") cb = data, data = null @@ -755,6 +769,9 @@ function addNameRange (name, range, data, cb) { if (data) return next() registry.get(name, function (er, d, json, response) { + if (!er) { + er = errorResponse(name, response) + } if (er) return cb(er) data = d next() @@ -820,6 +837,9 @@ function addNameVersion (name, v, data, cb) { return next() } registry.get(name, function (er, d, json, resp) { + if (!er) { + er = errorResponse(name, resp) + } if (er) return cb(er) data = d && d.versions[ver] if (!data) { @@ -857,6 +877,10 @@ function addNameVersion (name, v, data, cb) { if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) if (er) return fetchit() + // check the SHA of the package we have, to ensure it wasn't installed + // from somewhere other than the registry (eg, a fork) + if (data._shasum && dist.shasum && data._shasum !== dist.shasum) + return fetchit() return cb(null, data) }) } else return fetchit() diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js index ea3970b2409..72b4393b6af 100644 --- a/deps/npm/lib/help.js +++ b/deps/npm/lib/help.js @@ -30,8 +30,11 @@ function help (args, cb) { var section = npm.deref(args[0]) || args[0] // npm help : show basic usage - if (!section) - return npmUsage(cb) + if (!section) { + var valid = argv[0] === 'help' ? 0 : 1 + return npmUsage(valid, cb) + } + // npm -h: show command usage if ( npm.config.get("usage") @@ -147,7 +150,7 @@ function htmlMan (man) { return path.resolve(__dirname, "..", "html", "doc", sect, f) } -function npmUsage (cb) { +function npmUsage (valid, cb) { npm.config.set("loglevel", "silent") log.level = "silent" console.log @@ -170,7 +173,7 @@ function npmUsage (cb) { , "" , "npm@" + npm.version + " " + path.dirname(__dirname) ].join("\n")) - cb() + cb(valid) } function usages () { diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js index 8bc009349b6..3e319fa6734 100644 --- a/deps/npm/lib/install.js +++ b/deps/npm/lib/install.js @@ -448,7 +448,7 @@ function prettify (tree, installed) { if (g) g = " (" + g + ")" return c.what + g }) - }) + }, "", { unicode: npm.config.get("unicode") }) }).join("\n") } diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js index c443b64998b..a529862d5ad 100644 --- a/deps/npm/lib/npm.js +++ b/deps/npm/lib/npm.js @@ -288,6 +288,14 @@ function load (npm, cli, cb) { npmconf.load(cli, builtin, function (er, config) { if (er === config) er = null + // Include npm-version and node-version in user-agent + var ua = config.get("user-agent") || "" + ua = ua.replace(/\{node-version\}/gi, process.version) + ua = ua.replace(/\{npm-version\}/gi, npm.version) + ua = ua.replace(/\{platform\}/gi, process.platform) + ua = ua.replace(/\{arch\}/gi, process.arch) + config.set("user-agent", ua) + npm.config = config var color = config.get("color") diff --git a/deps/npm/lib/utils/error-handler.js b/deps/npm/lib/utils/error-handler.js index 9777c6a50b0..b025fdd371c 100644 --- a/deps/npm/lib/utils/error-handler.js +++ b/deps/npm/lib/utils/error-handler.js @@ -279,7 +279,7 @@ function errorHandler (er) { var os = require("os") // just a line break - console.error("") + if (log.levels[log.level] <= log.levels.error) console.error("") log.error("System", os.type() + " " + os.release()) log.error("command", process.argv .map(JSON.stringify).join(" ")) diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js index d1493700d04..1af5bddca71 100644 --- a/deps/npm/lib/utils/lifecycle.js +++ b/deps/npm/lib/utils/lifecycle.js @@ -1,5 +1,6 @@ exports = module.exports = lifecycle exports.cmd = cmd +exports.makeEnv = makeEnv var log = require("npmlog") , spawn = require("child_process").spawn @@ -314,6 +315,7 @@ function makeEnv (data, prefix, env) { var value = npm.config.get(i) if (value instanceof Stream || Array.isArray(value)) return if (!value) value = "" + else if (typeof value === "number") value = "" + value else if (typeof value !== "string") value = JSON.stringify(value) value = -1 !== value.indexOf("\n") diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 index 6118efec7a0..0f8bef3d71d 100644 --- a/deps/npm/man/man1/npm-README.1 +++ b/deps/npm/man/man1/npm-README.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM" "1" "April 2014" "" "" +.TH "NPM" "1" "May 2014" "" "" . .SH "NAME" \fBnpm\fR \-\- node package manager![Build Status \fIhttps://img\.shields\.io/travis/npm/npm/master\.svg)](https://travis\-ci\.org/npm/npm\fR @@ -39,6 +39,18 @@ paths, etc\.) then read on\. .SH "Fancy Install (Unix)" There\'s a pretty robust install script at \fIhttps://www\.npmjs\.org/install\.sh\fR\|\. You can download that and run it\. . +.P +Here\'s an example using curl: +. +.IP "" 4 +. +.nf +curl \-L https://npmjs\.org/install\.sh | sh +. +.fi +. +.IP "" 0 +. .SS "Slightly Fancier" You can set any npm configuration params with that script: . diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index 32fb4e258db..594330a415b 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-ADDUSER" "1" "April 2014" "" "" +.TH "NPM\-ADDUSER" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-adduser\fR \-\- Add a registry user account diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 index 7b84d493afd..af5468b59dc 100644 --- a/deps/npm/man/man1/npm-bin.1 +++ b/deps/npm/man/man1/npm-bin.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BIN" "1" "April 2014" "" "" +.TH "NPM\-BIN" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-bin\fR \-\- Display npm bin folder diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index 5d55899f7e2..b3a953bfe64 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUGS" "1" "April 2014" "" "" +.TH "NPM\-BUGS" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 index 7fa37e86423..152caf79cca 100644 --- a/deps/npm/man/man1/npm-build.1 +++ b/deps/npm/man/man1/npm-build.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUILD" "1" "April 2014" "" "" +.TH "NPM\-BUILD" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-build\fR \-\- Build a package diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1 index 6060b3c342a..5f2f85a3f55 100644 --- a/deps/npm/man/man1/npm-bundle.1 +++ b/deps/npm/man/man1/npm-bundle.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-BUNDLE" "1" "April 2014" "" "" +.TH "NPM\-BUNDLE" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-bundle\fR \-\- REMOVED diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index cbedf547fda..0e5b949c2b8 100644 --- a/deps/npm/man/man1/npm-cache.1 +++ b/deps/npm/man/man1/npm-cache.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CACHE" "1" "April 2014" "" "" +.TH "NPM\-CACHE" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-cache\fR \-\- Manipulates packages cache diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index 1a4bc30e1de..6d1ec8d972c 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-COMPLETION" "1" "April 2014" "" "" +.TH "NPM\-COMPLETION" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-completion\fR \-\- Tab Completion for npm diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index 166acddd287..38490724d72 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-CONFIG" "1" "April 2014" "" "" +.TH "NPM\-CONFIG" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-config\fR \-\- Manage the npm configuration files diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 6f65a68e977..e60192178b0 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DEDUPE" "1" "April 2014" "" "" +.TH "NPM\-DEDUPE" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-dedupe\fR \-\- Reduce duplication diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index d823ee309a7..e4a19b23bc2 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DEPRECATE" "1" "April 2014" "" "" +.TH "NPM\-DEPRECATE" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-deprecate\fR \-\- Deprecate a version of a package diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index 5c19cb41ac3..27cbb05c8d7 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-DOCS" "1" "April 2014" "" "" +.TH "NPM\-DOCS" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-docs\fR \-\- Docs for a package in a web browser maybe diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 1dd706140f0..678c9128b2c 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-EDIT" "1" "April 2014" "" "" +.TH "NPM\-EDIT" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-edit\fR \-\- Edit an installed package diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index 2bf1de761a7..2baac8f2fee 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-EXPLORE" "1" "April 2014" "" "" +.TH "NPM\-EXPLORE" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-explore\fR \-\- Browse an installed package diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 5450e75cd1c..cf723d2f417 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-HELP\-SEARCH" "1" "April 2014" "" "" +.TH "NPM\-HELP\-SEARCH" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-help-search\fR \-\- Search npm help documentation diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index 5b010bde4e1..9e6c240fd14 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-HELP" "1" "April 2014" "" "" +.TH "NPM\-HELP" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-help\fR \-\- Get help on npm diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 2a9fb3a1f00..795a8db9b47 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-INIT" "1" "April 2014" "" "" +.TH "NPM\-INIT" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-init\fR \-\- Interactively create a package\.json file diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index 8ffb4e663a3..d98b55b12d1 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-INSTALL" "1" "April 2014" "" "" +.TH "NPM\-INSTALL" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-install\fR \-\- Install a package @@ -39,7 +39,7 @@ b) a gzipped tarball containing (a) c) a url that resolves to (b) . .IP "\(bu" 4 -d) a \fB@\fR that is published on the registry with (c) +d) a \fB@\fR that is published on the registry (npm help see \fBnpm\-registry\fR) with (c) . .IP "\(bu" 4 e) a \fB@\fR that points to (d) @@ -429,9 +429,6 @@ npm help npmrc npm help registry . .IP "\(bu" 4 -npm help folders -. -.IP "\(bu" 4 npm help tag . .IP "\(bu" 4 diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index 49a9030254c..389dd82d53e 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LINK" "1" "April 2014" "" "" +.TH "NPM\-LINK" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-link\fR \-\- Symlink a package folder diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index 32ae9dd781f..ddd00f58549 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-LS" "1" "April 2014" "" "" +.TH "NPM\-LS" "1" "May 2014" "" "" . .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.4.7 /path/to/npm +npm@1.4.8 /path/to/npm └─┬ init\-package\-json@0\.0\.4 └── promzard@0\.1\.5 . diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index 7a9d3afb94f..f0e7ce6d976 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-OUTDATED" "1" "April 2014" "" "" +.TH "NPM\-OUTDATED" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-outdated\fR \-\- Check for outdated packages diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index f137e430016..dbb41b7b8a7 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-OWNER" "1" "April 2014" "" "" +.TH "NPM\-OWNER" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-owner\fR \-\- Manage package owners diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index 302617e5d1d..c23b617e0af 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PACK" "1" "April 2014" "" "" +.TH "NPM\-PACK" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-pack\fR \-\- Create a tarball from a package diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index 2354b1c17ca..66849742bf3 100644 --- a/deps/npm/man/man1/npm-prefix.1 +++ b/deps/npm/man/man1/npm-prefix.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PREFIX" "1" "April 2014" "" "" +.TH "NPM\-PREFIX" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-prefix\fR \-\- Display prefix diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index 052cad9d3cf..710438d1062 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PRUNE" "1" "April 2014" "" "" +.TH "NPM\-PRUNE" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-prune\fR \-\- Remove extraneous packages diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index 6fc6743ac97..19271c82a71 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-PUBLISH" "1" "April 2014" "" "" +.TH "NPM\-PUBLISH" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-publish\fR \-\- Publish a package diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index 4a63d3d27ca..7dda41232ee 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REBUILD" "1" "April 2014" "" "" +.TH "NPM\-REBUILD" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-rebuild\fR \-\- Rebuild a package diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 3f9fb3251f6..e79f8826a27 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-REPO" "1" "April 2014" "" "" +.TH "NPM\-REPO" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-repo\fR \-\- Open package repository page in the browser diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index 47a032ebeab..d7ebaf7c097 100644 --- a/deps/npm/man/man1/npm-restart.1 +++ b/deps/npm/man/man1/npm-restart.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RESTART" "1" "April 2014" "" "" +.TH "NPM\-RESTART" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-restart\fR \-\- Start a package diff --git a/deps/npm/man/man1/npm-rm.1 b/deps/npm/man/man1/npm-rm.1 index b8d010964c0..a41689777fb 100644 --- a/deps/npm/man/man1/npm-rm.1 +++ b/deps/npm/man/man1/npm-rm.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RM" "1" "April 2014" "" "" +.TH "NPM\-RM" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-rm\fR \-\- Remove a package diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index 1a78a2e718a..ec6a2391bb3 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-ROOT" "1" "April 2014" "" "" +.TH "NPM\-ROOT" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-root\fR \-\- Display npm root diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index f7ec7f01c4c..b81fa80b873 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -1,7 +1,7 @@ .\" Generated with Ronnjs 0.3.8 .\" http://github.com/kapouer/ronnjs/ . -.TH "NPM\-RUN\-SCRIPT" "1" "April 2014" "" "" +.TH "NPM\-RUN\-SCRIPT" "1" "May 2014" "" "" . .SH "NAME" \fBnpm-run-script\fR \-\- Run arbitrary package scripts @@ -9,12 +9,14 @@ .SH "SYNOPSIS" . .nf -npm run\-script