deps: upgrade npm to 2.7.0
authorForrest L Norvell <forrest@npmjs.com>
Fri, 6 Mar 2015 08:57:32 +0000 (02:57 -0600)
committercjihrig <cjihrig@gmail.com>
Fri, 6 Mar 2015 16:20:05 +0000 (11:20 -0500)
PR-URL: https://github.com/iojs/io.js/pull/1080
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
294 files changed:
deps/npm/CHANGELOG.md
deps/npm/bin/node-gyp-bin/node-gyp
deps/npm/bin/node-gyp-bin/node-gyp.cmd
deps/npm/doc/api/npm-update.md
deps/npm/doc/cli/npm-init.md
deps/npm/doc/cli/npm-install.md
deps/npm/doc/cli/npm-ls.md
deps/npm/doc/cli/npm-run-script.md
deps/npm/doc/cli/npm-update.md
deps/npm/doc/cli/npm-version.md
deps/npm/doc/misc/npm-config.md
deps/npm/doc/misc/npm-scripts.md
deps/npm/html/doc/README.html
deps/npm/html/doc/api/npm-bin.html
deps/npm/html/doc/api/npm-bugs.html
deps/npm/html/doc/api/npm-cache.html
deps/npm/html/doc/api/npm-commands.html
deps/npm/html/doc/api/npm-config.html
deps/npm/html/doc/api/npm-deprecate.html
deps/npm/html/doc/api/npm-docs.html
deps/npm/html/doc/api/npm-edit.html
deps/npm/html/doc/api/npm-explore.html
deps/npm/html/doc/api/npm-help-search.html
deps/npm/html/doc/api/npm-init.html
deps/npm/html/doc/api/npm-install.html
deps/npm/html/doc/api/npm-link.html
deps/npm/html/doc/api/npm-load.html
deps/npm/html/doc/api/npm-ls.html
deps/npm/html/doc/api/npm-outdated.html
deps/npm/html/doc/api/npm-owner.html
deps/npm/html/doc/api/npm-pack.html
deps/npm/html/doc/api/npm-prefix.html
deps/npm/html/doc/api/npm-prune.html
deps/npm/html/doc/api/npm-publish.html
deps/npm/html/doc/api/npm-rebuild.html
deps/npm/html/doc/api/npm-repo.html
deps/npm/html/doc/api/npm-restart.html
deps/npm/html/doc/api/npm-root.html
deps/npm/html/doc/api/npm-run-script.html
deps/npm/html/doc/api/npm-search.html
deps/npm/html/doc/api/npm-shrinkwrap.html
deps/npm/html/doc/api/npm-start.html
deps/npm/html/doc/api/npm-stop.html
deps/npm/html/doc/api/npm-tag.html
deps/npm/html/doc/api/npm-test.html
deps/npm/html/doc/api/npm-uninstall.html
deps/npm/html/doc/api/npm-unpublish.html
deps/npm/html/doc/api/npm-update.html
deps/npm/html/doc/api/npm-version.html
deps/npm/html/doc/api/npm-view.html
deps/npm/html/doc/api/npm-whoami.html
deps/npm/html/doc/api/npm.html
deps/npm/html/doc/cli/npm-access.html
deps/npm/html/doc/cli/npm-adduser.html
deps/npm/html/doc/cli/npm-bin.html
deps/npm/html/doc/cli/npm-bugs.html
deps/npm/html/doc/cli/npm-build.html
deps/npm/html/doc/cli/npm-bundle.html
deps/npm/html/doc/cli/npm-cache.html
deps/npm/html/doc/cli/npm-completion.html
deps/npm/html/doc/cli/npm-config.html
deps/npm/html/doc/cli/npm-dedupe.html
deps/npm/html/doc/cli/npm-deprecate.html
deps/npm/html/doc/cli/npm-dist-tag.html
deps/npm/html/doc/cli/npm-docs.html
deps/npm/html/doc/cli/npm-edit.html
deps/npm/html/doc/cli/npm-explore.html
deps/npm/html/doc/cli/npm-help-search.html
deps/npm/html/doc/cli/npm-help.html
deps/npm/html/doc/cli/npm-init.html
deps/npm/html/doc/cli/npm-install.html
deps/npm/html/doc/cli/npm-link.html
deps/npm/html/doc/cli/npm-logout.html
deps/npm/html/doc/cli/npm-ls.html
deps/npm/html/doc/cli/npm-outdated.html
deps/npm/html/doc/cli/npm-owner.html
deps/npm/html/doc/cli/npm-pack.html
deps/npm/html/doc/cli/npm-prefix.html
deps/npm/html/doc/cli/npm-prune.html
deps/npm/html/doc/cli/npm-publish.html
deps/npm/html/doc/cli/npm-rebuild.html
deps/npm/html/doc/cli/npm-repo.html
deps/npm/html/doc/cli/npm-restart.html
deps/npm/html/doc/cli/npm-rm.html
deps/npm/html/doc/cli/npm-root.html
deps/npm/html/doc/cli/npm-run-script.html
deps/npm/html/doc/cli/npm-search.html
deps/npm/html/doc/cli/npm-shrinkwrap.html
deps/npm/html/doc/cli/npm-star.html
deps/npm/html/doc/cli/npm-stars.html
deps/npm/html/doc/cli/npm-start.html
deps/npm/html/doc/cli/npm-stop.html
deps/npm/html/doc/cli/npm-tag.html
deps/npm/html/doc/cli/npm-test.html
deps/npm/html/doc/cli/npm-uninstall.html
deps/npm/html/doc/cli/npm-unpublish.html
deps/npm/html/doc/cli/npm-update.html
deps/npm/html/doc/cli/npm-version.html
deps/npm/html/doc/cli/npm-view.html
deps/npm/html/doc/cli/npm-whoami.html
deps/npm/html/doc/cli/npm.html
deps/npm/html/doc/files/npm-folders.html
deps/npm/html/doc/files/npm-global.html
deps/npm/html/doc/files/npm-json.html
deps/npm/html/doc/files/npmrc.html
deps/npm/html/doc/files/package.json.html
deps/npm/html/doc/index.html
deps/npm/html/doc/misc/npm-coding-style.html
deps/npm/html/doc/misc/npm-config.html
deps/npm/html/doc/misc/npm-developers.html
deps/npm/html/doc/misc/npm-disputes.html
deps/npm/html/doc/misc/npm-faq.html
deps/npm/html/doc/misc/npm-index.html
deps/npm/html/doc/misc/npm-registry.html
deps/npm/html/doc/misc/npm-scope.html
deps/npm/html/doc/misc/npm-scripts.html
deps/npm/html/doc/misc/removing-npm.html
deps/npm/html/doc/misc/semver.html
deps/npm/html/partial/doc/README.html
deps/npm/html/partial/doc/api/npm-update.html
deps/npm/html/partial/doc/api/npm.html
deps/npm/html/partial/doc/cli/npm-init.html
deps/npm/html/partial/doc/cli/npm-install.html
deps/npm/html/partial/doc/cli/npm-ls.html
deps/npm/html/partial/doc/cli/npm-run-script.html
deps/npm/html/partial/doc/cli/npm-update.html
deps/npm/html/partial/doc/cli/npm-version.html
deps/npm/html/partial/doc/cli/npm.html
deps/npm/html/partial/doc/misc/npm-config.html
deps/npm/html/partial/doc/misc/npm-disputes.html
deps/npm/html/partial/doc/misc/npm-faq.html
deps/npm/html/partial/doc/misc/npm-scripts.html
deps/npm/lib/bugs.js
deps/npm/lib/cache/add-remote-git.js
deps/npm/lib/cache/maybe-github.js
deps/npm/lib/config/defaults.js
deps/npm/lib/docs.js
deps/npm/lib/help.js
deps/npm/lib/install.js
deps/npm/lib/ls.js
deps/npm/lib/npm.js
deps/npm/lib/owner.js
deps/npm/lib/repo.js
deps/npm/lib/run-script.js
deps/npm/lib/star.js
deps/npm/lib/uninstall.js
deps/npm/lib/utils/completion.sh
deps/npm/lib/utils/error-handler.js
deps/npm/lib/utils/git.js
deps/npm/lib/view.js
deps/npm/man/man1/npm-README.1
deps/npm/man/man1/npm-access.1
deps/npm/man/man1/npm-adduser.1
deps/npm/man/man1/npm-bin.1
deps/npm/man/man1/npm-bugs.1
deps/npm/man/man1/npm-build.1
deps/npm/man/man1/npm-bundle.1
deps/npm/man/man1/npm-cache.1
deps/npm/man/man1/npm-completion.1
deps/npm/man/man1/npm-config.1
deps/npm/man/man1/npm-dedupe.1
deps/npm/man/man1/npm-deprecate.1
deps/npm/man/man1/npm-dist-tag.1
deps/npm/man/man1/npm-docs.1
deps/npm/man/man1/npm-edit.1
deps/npm/man/man1/npm-explore.1
deps/npm/man/man1/npm-help-search.1
deps/npm/man/man1/npm-help.1
deps/npm/man/man1/npm-init.1
deps/npm/man/man1/npm-install.1
deps/npm/man/man1/npm-link.1
deps/npm/man/man1/npm-logout.1
deps/npm/man/man1/npm-ls.1
deps/npm/man/man1/npm-outdated.1
deps/npm/man/man1/npm-owner.1
deps/npm/man/man1/npm-pack.1
deps/npm/man/man1/npm-prefix.1
deps/npm/man/man1/npm-prune.1
deps/npm/man/man1/npm-publish.1
deps/npm/man/man1/npm-rebuild.1
deps/npm/man/man1/npm-repo.1
deps/npm/man/man1/npm-restart.1
deps/npm/man/man1/npm-rm.1
deps/npm/man/man1/npm-root.1
deps/npm/man/man1/npm-run-script.1
deps/npm/man/man1/npm-search.1
deps/npm/man/man1/npm-shrinkwrap.1
deps/npm/man/man1/npm-star.1
deps/npm/man/man1/npm-stars.1
deps/npm/man/man1/npm-start.1
deps/npm/man/man1/npm-stop.1
deps/npm/man/man1/npm-tag.1
deps/npm/man/man1/npm-test.1
deps/npm/man/man1/npm-uninstall.1
deps/npm/man/man1/npm-unpublish.1
deps/npm/man/man1/npm-update.1
deps/npm/man/man1/npm-version.1
deps/npm/man/man1/npm-view.1
deps/npm/man/man1/npm-whoami.1
deps/npm/man/man1/npm.1
deps/npm/man/man3/npm-bin.3
deps/npm/man/man3/npm-bugs.3
deps/npm/man/man3/npm-cache.3
deps/npm/man/man3/npm-commands.3
deps/npm/man/man3/npm-config.3
deps/npm/man/man3/npm-deprecate.3
deps/npm/man/man3/npm-docs.3
deps/npm/man/man3/npm-edit.3
deps/npm/man/man3/npm-explore.3
deps/npm/man/man3/npm-help-search.3
deps/npm/man/man3/npm-init.3
deps/npm/man/man3/npm-install.3
deps/npm/man/man3/npm-link.3
deps/npm/man/man3/npm-load.3
deps/npm/man/man3/npm-ls.3
deps/npm/man/man3/npm-outdated.3
deps/npm/man/man3/npm-owner.3
deps/npm/man/man3/npm-pack.3
deps/npm/man/man3/npm-prefix.3
deps/npm/man/man3/npm-prune.3
deps/npm/man/man3/npm-publish.3
deps/npm/man/man3/npm-rebuild.3
deps/npm/man/man3/npm-repo.3
deps/npm/man/man3/npm-restart.3
deps/npm/man/man3/npm-root.3
deps/npm/man/man3/npm-run-script.3
deps/npm/man/man3/npm-search.3
deps/npm/man/man3/npm-shrinkwrap.3
deps/npm/man/man3/npm-start.3
deps/npm/man/man3/npm-stop.3
deps/npm/man/man3/npm-tag.3
deps/npm/man/man3/npm-test.3
deps/npm/man/man3/npm-uninstall.3
deps/npm/man/man3/npm-unpublish.3
deps/npm/man/man3/npm-update.3
deps/npm/man/man3/npm-version.3
deps/npm/man/man3/npm-view.3
deps/npm/man/man3/npm-whoami.3
deps/npm/man/man3/npm.3
deps/npm/man/man5/npm-folders.5
deps/npm/man/man5/npm-global.5
deps/npm/man/man5/npm-json.5
deps/npm/man/man5/npmrc.5
deps/npm/man/man5/package.json.5
deps/npm/man/man7/npm-coding-style.7
deps/npm/man/man7/npm-config.7
deps/npm/man/man7/npm-developers.7
deps/npm/man/man7/npm-disputes.7
deps/npm/man/man7/npm-faq.7
deps/npm/man/man7/npm-index.7
deps/npm/man/man7/npm-registry.7
deps/npm/man/man7/npm-scope.7
deps/npm/man/man7/npm-scripts.7
deps/npm/man/man7/removing-npm.7
deps/npm/man/man7/semver.7
deps/npm/node_modules/glob/package.json
deps/npm/node_modules/glob/sync.js
deps/npm/node_modules/inflight/.eslintrc [deleted file]
deps/npm/node_modules/init-package-json/default-input.js
deps/npm/node_modules/init-package-json/package.json
deps/npm/node_modules/init-package-json/test/npm-defaults.js
deps/npm/node_modules/init-package-json/test/scope.js [new file with mode: 0644]
deps/npm/node_modules/node-gyp/addon.gypi
deps/npm/node_modules/node-gyp/lib/build.js
deps/npm/node_modules/node-gyp/lib/install.js
deps/npm/node_modules/normalize-git-url/.eslintrc [deleted file]
deps/npm/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json [deleted file]
deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json [deleted file]
deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz [deleted file]
deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/cache.json [deleted file]
deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/.eslintrc [deleted file]
deps/npm/node_modules/request/.eslintrc [deleted file]
deps/npm/node_modules/request/node_modules/bl/.jshintrc [deleted file]
deps/npm/node_modules/request/node_modules/isstream/.jshintrc [deleted file]
deps/npm/node_modules/request/node_modules/qs/.jshintrc [deleted file]
deps/npm/node_modules/request/node_modules/tunnel-agent/.jshintrc [deleted file]
deps/npm/node_modules/semver/package.json
deps/npm/node_modules/which/package.json
deps/npm/node_modules/which/which.js
deps/npm/package.json
deps/npm/test/common-tap.js
deps/npm/test/disabled/outdated-depth-integer/README.md [deleted file]
deps/npm/test/disabled/outdated-depth-integer/index.js [deleted file]
deps/npm/test/disabled/outdated-depth-integer/package.json [deleted file]
deps/npm/test/tap/add-remote-git-file.js [new file with mode: 0644]
deps/npm/test/tap/build-already-built.js
deps/npm/test/tap/graceful-restart.js [new file with mode: 0644]
deps/npm/test/tap/lifecycle-signal.js
deps/npm/test/tap/ls-env.js [new file with mode: 0644]
deps/npm/test/tap/outdated-depth-integer.js [moved from deps/npm/test/disabled/outdated-depth-integer.js with 53% similarity]
deps/npm/test/tap/run-script.js
deps/npm/test/tap/run-script/package.json [deleted file]
deps/npm/test/tap/shrinkwrap-dev-dependency.js
deps/npm/test/tap/update-examples.js [new file with mode: 0644]

index aebf144..006eb06 100644 (file)
@@ -1,3 +1,159 @@
+### v2.7.0 (2015-02-26):
+
+#### SOMETIMES SEMVER MEANS "SUBJECTIVE-EMPATHETIC VERSIONING"
+
+For a very long time (maybe forever?), the documentation for `npm run-script`
+has said that `npm restart` will only call `npm stop` and `npm start` when
+there is no command defined as `npm restart` in `package.json`. The problem
+with this documentation is that `npm run-script` was apparently never wired up
+to actually work this way.
+
+Until now.
+
+If the patch below were landed on its own, free of context, it would be a
+breaking change. But, since the "new" behavior is how the documentation claims
+this feature has always worked, I'm classifying it as a patch-level bug fix. I
+apologize in advance if this breaks anybody's deployment scripts, and if it
+turns out to be a significant regression in practics, we can revert this change
+and move it to `npm@3`, which is allowed to make breaking changes due to being
+a new major version of semver.
+
+* [`2f6a1df`](https://github.com/npm/npm/commit/2f6a1df3e1e3e0a3bc4abb69e40f59a64204e7aa)
+  [#1999](https://github.com/npm/npm/issues/1999) Only run `stop` and `start`
+  scripts (plus their pre- and post- scripts) when there's no `restart` script
+  defined. This makes it easier to support graceful restarts of services
+  managed by npm.  ([@watilde](https://github.com/watilde) /
+  [@scien](https://github.com/scien))
+
+#### A SMALL FEATURE WITH BIG IMPLICATIONS
+
+* [`145af65`](https://github.com/npm/npm/commit/145af6587f45de135cc876be2027ed818ed4ca6a)
+  [#4887](https://github.com/npm/npm/issues/4887) Replace calls to the
+  `node-gyp` script bundled with npm by passing the
+  `--node-gyp=/path/to/node-gyp` option to npm. Swap in `pangyp` or a version
+  of `node-gyp` modified to work better with io.js without having to touch
+  npm's code!  ([@ackalker](https://github.com/ackalker))
+
+#### [@WATILDE'S](https://github.com/watilde) NPM USABILITY CORNER
+
+Following `npm@2.6.1`'s unexpected fix of many of the issues with `npm update
+-g` simply by making `--depth=0` the default for `npm outdated`, friend of npm
+[@watilde](https://github.com/watilde) has made several modest changes to npm's
+behavior that together justify bumping npm's minor version, as well as making
+npm significantly more pleasant to use:
+
+* [`448efd0`](https://github.com/npm/npm/commit/448efd0eaa6f97af0889bf47efc543a1ea2f8d7e)
+  [#2853](https://github.com/npm/npm/issues/2853) Add support for `--dev` and
+  `--prod` to `npm ls`, so that you can list only the trees of production or
+  development dependencies, as desired.
+  ([@watilde](https://github.com/watilde))
+* [`a0a8777`](https://github.com/npm/npm/commit/a0a87777af8bee180e4e9321699f050c29ed5ac4)
+  [#7463](https://github.com/npm/npm/issues/7463) Split the list printed by
+  `npm run-script` into lifecycle scripts and scripts directly invoked via `npm
+  run-script`. ([@watilde](https://github.com/watilde))
+* [`a5edc17`](https://github.com/npm/npm/commit/a5edc17d5ef1435b468a445156a4a109df80f92b)
+  [#6749](https://github.com/npm/npm/issues/6749) `init-package-json@1.3.1`:
+  Support for passing scopes to `npm init` so packages are initialized as part
+  of that scope / organization / team. ([@watilde](https://github.com/watilde))
+
+#### SMALLER FEATURES AND FIXES
+
+It turns out that quite a few pull requests had piled up on npm's issue
+tracker, and they included some nice small features and fixes:
+
+* [`f33e8b8`](https://github.com/npm/npm/commit/f33e8b8ff2de094071c5976be95e35110cf2ab1a)
+  [#7354](https://github.com/npm/npm/issues/7354) Add `--if-present` flag to
+  allow e.g. CI systems to call (semi-) standard build tasks defined in
+  `package.json`, but don't raise an error if no such script is defined.
+  ([@jussi](https://github.com/jussi)-kalliokoski)
+* [`7bf85cc`](https://github.com/npm/npm/commit/7bf85cc372ab5698593b01e139c383fa62c92516)
+  [#4005](https://github.com/npm/npm/issues/4005)
+  [#6248](https://github.com/npm/npm/issues/6248) Globally unlink a package
+  when `npm rm` / `npm unlink` is called with no arguments.
+  ([@isaacs](https://github.com/isaacs))
+* [`a2e04bd`](https://github.com/npm/npm/commit/a2e04bd921feab8f9e40a27e180ca9308eb709d7)
+  [#7294](https://github.com/npm/npm/issues/7294) Ensure that when depending on
+  `git+<proto>` URLs, npm doesn't keep tacking additional `git+` prefixes onto
+  the front. ([@twhid](https://github.com/twhid))
+* [`0f87f5e`](https://github.com/npm/npm/commit/0f87f5ed28960d962f34977953561d22983da4f9)
+  [#6422](https://github.com/npm/npm/issues/6422) When depending on GitHub
+  private repositories, make sure we construct the Git URLS correctly.
+  ([@othiym23](https://github.com/othiym23))
+* [`50f461d`](https://github.com/npm/npm/commit/50f461d248c4d22e881a9535dccc1d57d994dbc7)
+  [#4595](https://github.com/npm/npm/issues/4595) Support finding compressed
+  manpages. It's still up to the system to figure out how to display them,
+  though. ([@pshevtsov](https://github.com/pshevtsov))
+* [`44da664`](https://github.com/npm/npm/commit/44da66456b530c049ff50953f78368460df87461)
+  [#7465](https://github.com/npm/npm/issues/7465) When calling git, log the
+  **full** command, with all arguments, on error.
+  ([@thriqon](https://github.com/thriqon))
+* [`9748d5c`](https://github.com/npm/npm/commit/9748d5cd195d0269b32caf45129a93d29359a796)
+  Add parent to error on `ETARGET` error.
+  ([@davglass](https://github.com/davglass))
+* [`37038d7`](https://github.com/npm/npm/commit/37038d7db47a986001f77ac17b3e164000fc8ff3)
+  [#4663](https://github.com/npm/npm/issues/4663) Remove hackaround for Linux
+  tests, as it's evidently no longer necessary.
+  ([@mmalecki](https://github.com/mmalecki))
+* [`d7b7853`](https://github.com/npm/npm/commit/d7b785393dffce93bb70317fbc039a6428ca37c5)
+  [#2612](https://github.com/npm/npm/issues/2612) Add support for path
+  completion on `npm install`, which narrows completion to only directories
+  containing `package.json` files. ([@deestan](https://github.com/deestan))
+* [`628fcdb`](https://github.com/npm/npm/commit/628fcdb0be4e14c0312085a50dc2ae01dc713fa6)
+  Remove all command completion calls to `-/short`, because it's been removed
+  from the primary registry for quite some time, and is generally a poor idea
+  on any registry with more than a few hundred packages.
+  ([@othiym23](https://github.com/othiym23))
+* [`3f6061d`](https://github.com/npm/npm/commit/3f6061d75650441ee690472d1fa9c8dd7a7b1b28)
+  [#6659](https://github.com/npm/npm/issues/6659) Instead of removing zsh
+  completion global, make it a local instead.
+  ([@othiym23](https://github.com/othiym23))
+
+#### DOCUMENTATION TWEAKS
+
+* [`5bc70e6`](https://github.com/npm/npm/commit/5bc70e6cfb3598da433806c6f447fc94c8e1d35d)
+  [#7417](https://github.com/npm/npm/issues/7417) Provide concrete examples of
+  how the new `npm update` defaults work in practice, tied to actual test
+  cases. Everyone interested in using `npm update -g` now that it's been fixed
+  should read these documents, as should anyone interested in writing
+  documentation for npm. ([@smikes](https://github.com/smikes))
+* [`8ac6f21`](https://github.com/npm/npm/commit/8ac6f2123a6af13dc9447fad96ec9cb583c45a71)
+  [#6543](https://github.com/npm/npm/issues/6543) Clarify `npm-scripts`
+  warnings to de-emphasize dangers of using `install` scripts.
+  ([@zeke](https://github.com/zeke))
+* [`ebe3b37`](https://github.com/npm/npm/commit/ebe3b37098efdada41dcc4c52a291e29296ea242)
+  [#6711](https://github.com/npm/npm/issues/6711) Note that git tagging of
+  versions can be disabled via `--no-git-tag-verson`.
+  ([@smikes](https://github.com/smikes))
+* [`2ef5771`](https://github.com/npm/npm/commit/2ef5771632006e6cee8cf17f836c0f98ab494bd1)
+  [#6711](https://github.com/npm/npm/issues/6711) Document `git-tag-version`
+  configuration option. ([@KenanY](https://github.com/KenanY))
+* [`95e59b2`](https://github.com/npm/npm/commit/95e59b287c9517780318e145371a859e8ebb2d20)
+  Document that `NODE_ENV=production` behaves analogously to `--production` on
+  `npm install`. ([@stefaneg](https://github.com/stefaneg))
+* [`687117a`](https://github.com/npm/npm/commit/687117a5bcd6a838cd1532ea7020ec6fcf0c33c0)
+  [#7463](https://github.com/npm/npm/issues/7463) Document the new script
+  grouping behavior in the man page for `npm run-script`.
+  ([@othiym23](https://github.com/othiym23))
+* [`536b2b6`](https://github.com/npm/npm/commit/536b2b6f55c349247b3e79b5d11b4c033ef5a3df)
+  Rescue one of the the disabled tests and make it work properly.
+  ([@smikes](https://github.com/smikes))
+
+#### DEPENDENCY UPDATES
+
+* [`89fc6a4`](https://github.com/npm/npm/commit/89fc6a4e7ff8c524675fcc14493ca0a1e3a76d38)
+  `which@1.0.9`: Test for being run as root, as well as the current user.
+  ([@isaacs](https://github.com/isaacs))
+* [`5d0612f`](https://github.com/npm/npm/commit/5d0612f31e226cba32a05351c47b055c0ab6c557)
+  `glob@4.4.1`: Better error message to explain why calling sync glob with a
+  callback results in an error. ([@isaacs](https://github.com/isaacs))
+* [`64b07f6`](https://github.com/npm/npm/commit/64b07f6caf6cb07e4102f1e4e5f2ff2b944e452e)
+  `tap@0.7.1`: More accurate counts of pending & skipped tests.
+  ([@rmg](https://github.com/rmg))
+* [`8fda451`](https://github.com/npm/npm/commit/8fda45195dae1d6f792be556abe87f7763fab09b)
+  `semver@4.3.1`: Make official the fact that `node-semver` has moved from
+  [@isaacs](https://github.com/isaacs)'s organization to
+  [@npm](https://github.com/npm)'s. ([@isaacs](https://github.com/isaacs))
+
 ### v2.6.1 (2015-02-19):
 
 * [`8b98f0e`](https://github.com/npm/npm/commit/8b98f0e709d77a8616c944aebd48ab726f726f76)
index 345f07a..70efb6f 100755 (executable)
@@ -1,2 +1,6 @@
 #!/usr/bin/env sh
-node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
+if [ "x$npm_config_node_gyp" = "x" ]; then
+  node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
+else
+  "$npm_config_node_gyp" "$@"
+fi
index c2563ea..a05fd8c 100755 (executable)
@@ -1 +1,5 @@
-node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %*\r
+if not defined npm_config_node_gyp (\r
+  node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %*\r
+) else (\r
+  %npm_config_node_gyp% %*\r
+)\r
index bf02fd3..52d7ec3 100644 (file)
@@ -2,10 +2,17 @@ npm-update(3) -- Update a package
 =================================
 
 ## SYNOPSIS
+
     npm.commands.update(packages, callback)
 
 # DESCRIPTION
 
-Updates a package, upgrading it to the latest version. It also installs any missing packages.
+Updates a package, upgrading it to the latest version. It also installs any
+missing packages.
+
+The `packages` argument is an array of packages to update. The `callback`
+parameter will be called when done or when an error occurs.
+
+## SEE ALSO
 
-The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.
+* npm-update(1)
index 08e517d..ec4c25b 100644 (file)
@@ -21,8 +21,18 @@ without a really good reason to do so.
 If you invoke it with `-f`, `--force`, `-y`, or `--yes`, it will use only
 defaults and not prompt you for any options.
 
+## CONFIGURATION
+
+### scope
+
+* Default: none
+* Type: String
+
+The scope under which the new module should be created.
+
 ## SEE ALSO
 
 * <https://github.com/isaacs/init-package-json>
 * package.json(5)
 * npm-version(1)
+* npm-scope(7)
index 2d42716..6b2ac77 100644 (file)
@@ -43,9 +43,10 @@ after packing it up into a tarball (b).
     it installs the current package context (ie, the current working
     directory) as a global package.
 
-    By default, `npm install` will install all modules listed as
-    dependencies. With the `--production` flag,
-    npm will not install modules listed in `devDependencies`.
+    By default, `npm install` will install all modules listed as dependencies.
+    With the `--production` flag (or when the `NODE_ENV` environment variable
+    is set to `production`), npm will not install modules listed in
+    `devDependencies`.
 
 * `npm install <folder>`:
 
index 0f0d794..318cdd8 100644 (file)
@@ -67,6 +67,20 @@ project.
 
 Max display depth of the dependency tree.
 
+### prod / production
+
+* Type: Boolean
+* Default: false
+
+Display only the dependency tree for packages in `dependencies`.
+
+### dev
+
+* Type: Boolean
+* Default: false
+
+Display only the dependency tree for packages in `devDependencies`.
+
 ## SEE ALSO
 
 * npm-config(1)
index c218c84..9e6e17e 100644 (file)
@@ -8,16 +8,11 @@ npm-run-script(1) -- Run arbitrary package scripts
 
 ## DESCRIPTION
 
-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. If no `"command"`
-is provided, it will list the available top level scripts. The `env` command
-can be used to list environment variables that will be available to the script
-at runtime. If an "env" command is defined in your package it will have
-precedence instead.
-
-`run[-script]` is used by the test, start, restart, and stop commands, but can
-be called directly, as well.
+This runs an arbitrary command from a package's `"scripts"` object.  If no
+`"command"` is provided, it will list the available scripts.  `run[-script]` is
+used by the test, start, restart, and stop commands, but can be called
+directly, as well. When the scripts in the package are printed out, they're
+separated into lifecycle (test, start, restart) and directly-run scripts.
 
 As of [`npm@2.0.0`](http://blog.npmjs.org/post/98131109725/npm-2-0-0), you can
 use custom arguments when executing scripts. The special option `--` is used by
@@ -29,6 +24,11 @@ all the arguments after the `--` directly to your script:
 The arguments will only be passed to the script specified after ```npm run```
 and not to any pre or post script.
 
+The `env` script is a special built-in command that can be used to list
+environment variables that will be available to the script at runtime. If an
+"env" command is defined in your package it will take precedence over the
+built-in.
+
 ## SEE ALSO
 
 * npm-scripts(7)
index 2aa0f36..ce31c28 100644 (file)
@@ -8,7 +8,7 @@ npm-update(1) -- Update a package
 ## DESCRIPTION
 
 This command will update all the packages listed to the latest version
-(specified by the `tag` config).
+(specified by the `tag` config), respecting semver.
 
 It will also install missing packages. As with all commands that install
 packages, the `--dev` flag will cause `devDependencies` to be processed
@@ -20,10 +20,135 @@ packages.
 If no package name is specified, all packages in the specified location (global
 or local) will be updated.
 
+As of `npm@2.6.1`, the `npm update` will only inspect top-level packages.
+Prior versions of `npm` would also recursively inspect all dependencies.
+To get the old behavior, use `npm --depth 9999 update`, but be warned that
+simultaneous asynchronous update of all packages, including `npm` itself
+and packages that `npm` depends on, often causes problems up to and including
+the uninstallation of `npm` itself.
+
+To restore a missing `npm`, use the command:
+
+```
+curl -L https://npmjs.com/install.sh | sh
+```
+
+## EXAMPLES
+
+IMPORTANT VERSION NOTE: these examples assume `npm@2.6.1` or later.  For
+older versions of `npm`, you must specify `--depth 0` to get the behavior
+described below.
+
+For the examples below, assume that the current package is `app` and it depends
+on dependencies, `dep1` (`dep2`, .. etc.).  The published versions of `dep1` are:
+
+```
+{
+  dist-tags: { latest: "1.2.2" },
+  versions: { "1.2.2",
+              "1.2.1",
+              "1.2.0",
+              "1.1.2",
+              "1.1.1",
+              "1.0.0",
+              "0.4.1",
+              "0.4.0",
+              "0.2.0"
+  }
+}
+```
+
+### Caret Dependencies
+
+If `app`'s `package.json` contains:
+
+```
+dependencies: {
+  dep1: "^1.1.1"
+}
+```
+
+Then `npm update` will install `dep1@1.2.2`, because `1.2.2` is `latest` and
+`1.2.2` satisfies `^1.1.1`.
+
+### Tilde Dependencies
+
+However, if `app`'s `package.json` contains:
+
+```
+dependencies: {
+  dep1: "~1.1.1"
+}
+```
+
+In this case, running `npm update` will install `dep1@1.1.2`.  Even though the `latest`
+tag points to `1.2.2`, this version does not satisfy `~1.1.1`, which is equivalent
+to `>=1.1.1 <1.2.0`.  So the highest-sorting version that satisfies `~1.1.1` is used,
+which is `1.1.2`.
+
+### Caret Dependencies below 1.0.0
+
+Suppose `app` has a caret dependency on a version below `1.0.0`, for example:
+
+```
+dependencies: {
+  dep1: "^0.2.0"
+}
+```
+
+`npm update` will install `dep1@0.2.0`, because there are no other
+versions which satisfy `^0.2.0`.
+
+If the dependence were on `^0.4.0`:
+
+```
+dependencies: {
+  dep1: "^0.4.0"
+}
+```
+
+Then `npm update` will install `dep1@0.4.1`, because that is the highest-sorting
+version that satisfies `^0.4.0` (`>= 0.4.0 <0.5.0`)
+
+### Recording Updates with `--save`
+
+When you want to update a package and save the new version as
+the minimum required dependency in `package.json`, you can use
+`npm update --save`.  For example if `package.json` contains
+
+```
+dependencies: {
+  dep1: "^1.1.1"
+}
+```
+
+Then `npm update --save` will install `dep1@1.2.2` (i.e., `latest`),
+and `package.json` will be modified:
+
+```
+dependencies: {
+  dep1: "^1.2.2"
+}
+```
+
+Note that `npm` will only write an updated version to `package.json`
+if it installs a new package.
+
+### Updating Globally-Installed Packages
+
+`npm update -g` will apply the `update` action to each globally- installed
+package that is `outdated` -- that is, has a version that is different from
+`latest`.
+
+NOTE: If a package has been upgraded to a version newer than `latest`, it will
+be _downgraded_.
+
+
 ## SEE ALSO
 
 * npm-install(1)
 * npm-outdated(1)
+* npm-shrinkwrap(1)
 * npm-registry(7)
 * npm-folders(5)
 * npm-ls(1)
index 69f3581..545bce6 100644 (file)
@@ -15,8 +15,10 @@ valid second argument to semver.inc (one of "patch", "minor", "major",
 "prepatch", "preminor", "premajor", "prerelease"). In the second case,
 the existing version will be incremented by 1 in the specified field.
 
-If run in a git repo, it will also create a version commit and tag, and
-fail if the repo is not clean.
+If run in a git repo, it will also create a version commit and tag, and fail if
+the repo is not clean.  This behavior is controlled by `git-tag-version` (see
+below), and can be disabled on the command line by running `npm
+--no-git-tag-version version`
 
 If supplied with `--message` (shorthand: `-m`) config option, npm will
 use it as a commit message when creating a version commit.  If the
@@ -38,9 +40,18 @@ in your git config for this to work properly.  For example:
 
     Enter passphrase:
 
+## CONFIGURATION
+
+### git-tag-version
+
+* Default: true
+* Type: Boolean
+
+Commit and tag the version change.
 
 ## SEE ALSO
 
 * npm-init(1)
 * package.json(5)
 * semver(7)
+* config(7)
index 7e4c10a..e727e16 100644 (file)
@@ -243,7 +243,7 @@ If true, then only prints color codes for tty file descriptors.
 * Default: Infinity
 * Type: Number
 
-The depth to go when recursing directories for `npm ls`, 
+The depth to go when recursing directories for `npm ls`,
 `npm cache ls`, and `npm outdated`.
 
 For `npm outdated`, a setting of `Infinity` will be treated as `0`
@@ -390,6 +390,17 @@ A proxy to use for outgoing https requests. If the `HTTPS_PROXY` or
 `https_proxy` or `HTTP_PROXY` or `http_proxy` environment variables are set,
 proxy settings will be honored by the underlying `request` library.
 
+### if-present
+
+* Default: false
+* Type: Boolean
+
+If true, npm will not exit with an error code when `run-script` is invoked for
+a script that isn't defined in the `scripts` section of `package.json`. This
+option can be used when it's desirable to optionally run a script when it's
+present and fail if the script fails. This is useful, for example, when running
+scripts that may only apply for some builds in an otherwise generic CI setup.
+
 ### ignore-scripts
 
 * Default: false
index 3be4af3..e1380d1 100644 (file)
@@ -34,46 +34,24 @@ run-script <pkg> <stage>`. *Pre* and *post* commands with matching
 names will be run for those as well (e.g. `premyscript`, `myscript`,
 `postmyscript`).
 
-## NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN
-
-**tl;dr** Don't use `install`.  Use a `.gyp` file for compilation, and
-`prepublish` for anything else.
-
-You should almost never have to explicitly set a `preinstall` or
-`install` script.  If you are doing this, please consider if there is
-another option.
-
-The only valid use of `install` or `preinstall` scripts is for
-compilation which must be done on the target architecture.  In early
-versions of node, this was often done using the `node-waf` scripts, or
-a standalone `Makefile`, and early versions of npm required that it be
-explicitly set in package.json.  This was not portable, and harder to
-do properly.
-
-In the current version of node, the standard way to do this is using a
-`.gyp` file.  If you have a file with a `.gyp` extension in the root
-of your package, then npm will run the appropriate `node-gyp` commands
-automatically at install time.  This is the only officially supported
-method for compiling binary addons, and does not require that you add
-anything to your package.json file.
-
-If you have to do other things before your package is used, in a way
+## COMMON USES
+
+If you need to perform operations on your package before it is used, in a way
 that is not dependent on the operating system or architecture of the
-target system, then use a `prepublish` script instead.  This includes
+target system, use a `prepublish` script.  This includes
 tasks such as:
 
-* Compile CoffeeScript source code into JavaScript.
-* Create minified versions of JavaScript source code.
+* Compiling CoffeeScript source code into JavaScript.
+* Creating minified versions of JavaScript source code.
 * Fetching remote resources that your package will use.
 
-The advantage of doing these things at `prepublish` time instead of
-`preinstall` or `install` time is that they can be done once, in a
-single place, and thus greatly reduce complexity and variability.
+The advantage of doing these things at `prepublish` time is that they can be done once, in a
+single place, thus reducing complexity and variability.
 Additionally, this means that:
 
 * You can depend on `coffee-script` as a `devDependency`, and thus
   your users don't need to have it installed.
-* You don't need to include the minifiers in your package, reducing
+* You don't need to include minifiers in your package, reducing
   the size for your users.
 * You don't need to rely on your users having `curl` or `wget` or
   other system tools on the target machines.
@@ -234,6 +212,11 @@ above.
 * Don't prefix your script commands with "sudo".  If root permissions
   are required for some reason, then it'll fail with that error, and
   the user will sudo the npm command in question.
+* Don't use `install`. Use a `.gyp` file for compilation, and `prepublish`
+  for anything else. You should almost never have to explicitly set a
+  preinstall or install script. If you are doing this, please consider if
+  there is another option. The only valid use of `install` or `preinstall`
+  scripts is for compilation which must be done on the target architecture.
 
 ## SEE ALSO
 
index e8e1351..a85c865 100644 (file)
@@ -126,7 +126,7 @@ specific purpose, or lack of malice in any given npm package.</p>
 <p>If you have a complaint about a package in the public npm registry,
 and cannot <a href="https://docs.npmjs.com/misc/disputes">resolve it with the package
 owner</a>, please email
-<a href="&#109;&#97;&#105;&#x6c;&#x74;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#109;">&#115;&#x75;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#109;</a> and explain the situation.</p>
+<a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#109;">&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#109;</a> and explain the situation.</p>
 <p>Any data published to The npm Registry (including user account
 information) may be removed or modified at the sole discretion of the
 npm server administrators.</p>
@@ -169,5 +169,5 @@ will no doubt tell you to put the output in a gist or email.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.6.1</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.7.0</p>
 
index 7fc52f8..40b07e5 100644 (file)
@@ -28,5 +28,5 @@ to the <code>npm.bin</code> property.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-bin &mdash; npm@2.6.1</p>
+<p id="footer">npm-bin &mdash; npm@2.7.0</p>
 
index 6f4ca09..d39cf24 100644 (file)
@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-bugs &mdash; npm@2.6.1</p>
+<p id="footer">npm-bugs &mdash; npm@2.7.0</p>
 
index f3a0feb..4f0c96b 100644 (file)
@@ -42,5 +42,5 @@ incrementation.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-cache &mdash; npm@2.6.1</p>
+<p id="footer">npm-cache &mdash; npm@2.7.0</p>
 
index dbf2281..ebf5b0e 100644 (file)
@@ -36,5 +36,5 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-commands &mdash; npm@2.6.1</p>
+<p id="footer">npm-commands &mdash; npm@2.7.0</p>
 
index 8aa8c84..11877eb 100644 (file)
@@ -57,5 +57,5 @@ functions instead.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-config &mdash; npm@2.6.1</p>
+<p id="footer">npm-config &mdash; npm@2.7.0</p>
 
index 4d61806..a8d8753 100644 (file)
@@ -47,5 +47,5 @@ a deprecation warning to all who attempt to install it.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-deprecate &mdash; npm@2.6.1</p>
+<p id="footer">npm-deprecate &mdash; npm@2.7.0</p>
 
index ccfe64e..f3fce38 100644 (file)
@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-docs &mdash; npm@2.6.1</p>
+<p id="footer">npm-docs &mdash; npm@2.7.0</p>
 
index a03d00b..1b8b226 100644 (file)
@@ -36,5 +36,5 @@ and how this is used.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-edit &mdash; npm@2.6.1</p>
+<p id="footer">npm-edit &mdash; npm@2.7.0</p>
 
index e35e36f..b26c04a 100644 (file)
@@ -31,5 +31,5 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-explore &mdash; npm@2.6.1</p>
+<p id="footer">npm-explore &mdash; npm@2.7.0</p>
 
index 305cf6f..99f7a5e 100644 (file)
@@ -44,5 +44,5 @@ Name of the file that matched</li>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-help-search &mdash; npm@2.6.1</p>
+<p id="footer">npm-help-search &mdash; npm@2.7.0</p>
 
index 1705011..ffeae2c 100644 (file)
@@ -39,5 +39,5 @@ then go ahead and use this programmatically.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-init &mdash; npm@2.6.1</p>
+<p id="footer">npm-init &mdash; npm@2.7.0</p>
 
index dabe669..a2267a5 100644 (file)
@@ -32,5 +32,5 @@ installed or when an error has been encountered.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-install &mdash; npm@2.6.1</p>
+<p id="footer">npm-install &mdash; npm@2.7.0</p>
 
index b985388..67caab6 100644 (file)
@@ -42,5 +42,5 @@ the package in the current working directory</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-link &mdash; npm@2.6.1</p>
+<p id="footer">npm-link &mdash; npm@2.7.0</p>
 
index a5eebc6..e3b6641 100644 (file)
@@ -37,5 +37,5 @@ config object.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-load &mdash; npm@2.6.1</p>
+<p id="footer">npm-load &mdash; npm@2.7.0</p>
 
index 7998d6c..1040339 100644 (file)
@@ -63,5 +63,5 @@ dependency will only be output once.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-ls &mdash; npm@2.6.1</p>
+<p id="footer">npm-ls &mdash; npm@2.7.0</p>
 
index 4911ba2..2fbda56 100644 (file)
@@ -28,5 +28,5 @@ currently outdated.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-outdated &mdash; npm@2.6.1</p>
+<p id="footer">npm-outdated &mdash; npm@2.7.0</p>
 
index 0ba5749..3a86a8b 100644 (file)
@@ -47,5 +47,5 @@ that is not implemented at this time.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-owner &mdash; npm@2.6.1</p>
+<p id="footer">npm-owner &mdash; npm@2.7.0</p>
 
index c5e0ffe..7dbdf46 100644 (file)
@@ -33,5 +33,5 @@ overwritten the second time.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-pack &mdash; npm@2.6.1</p>
+<p id="footer">npm-pack &mdash; npm@2.7.0</p>
 
index e87d602..62c91d8 100644 (file)
@@ -29,5 +29,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-prefix &mdash; npm@2.6.1</p>
+<p id="footer">npm-prefix &mdash; npm@2.7.0</p>
 
index 1202fea..ae9cf1c 100644 (file)
@@ -30,5 +30,5 @@ package&#39;s dependencies list.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-prune &mdash; npm@2.6.1</p>
+<p id="footer">npm-prune &mdash; npm@2.7.0</p>
 
index 8a46be5..d0ae43f 100644 (file)
@@ -46,5 +46,5 @@ the registry.  Overwrites when the &quot;force&quot; environment variable is set
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-publish &mdash; npm@2.6.1</p>
+<p id="footer">npm-publish &mdash; npm@2.7.0</p>
 
index 515d55b..4ae5944 100644 (file)
@@ -30,5 +30,5 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-rebuild &mdash; npm@2.6.1</p>
+<p id="footer">npm-rebuild &mdash; npm@2.7.0</p>
 
index 65b6641..60b8a9a 100644 (file)
@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-repo &mdash; npm@2.6.1</p>
+<p id="footer">npm-repo &mdash; npm@2.7.0</p>
 
index 75804ea..b657e5e 100644 (file)
@@ -52,5 +52,5 @@ behavior will be accompanied by an increase in major version number</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-restart &mdash; npm@2.6.1</p>
+<p id="footer">npm-restart &mdash; npm@2.7.0</p>
 
index 1854926..a409330 100644 (file)
@@ -29,5 +29,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-root &mdash; npm@2.6.1</p>
+<p id="footer">npm-root &mdash; npm@2.7.0</p>
 
index e4b8168..5e3eaf8 100644 (file)
@@ -41,5 +41,5 @@ assumed to be the command to run. All other elements are ignored.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-run-script &mdash; npm@2.6.1</p>
+<p id="footer">npm-run-script &mdash; npm@2.7.0</p>
 
index 2c16352..9e5a72e 100644 (file)
@@ -53,5 +53,5 @@ like).</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-search &mdash; npm@2.6.1</p>
+<p id="footer">npm-search &mdash; npm@2.7.0</p>
 
index af8a1f7..47bba84 100644 (file)
@@ -33,5 +33,5 @@ been saved.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-shrinkwrap &mdash; npm@2.6.1</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@2.7.0</p>
 
index b0521e1..cca572f 100644 (file)
@@ -28,5 +28,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-start &mdash; npm@2.6.1</p>
+<p id="footer">npm-start &mdash; npm@2.7.0</p>
 
index bf8cb60..cb2ae75 100644 (file)
@@ -28,5 +28,5 @@ in the <code>packages</code> parameter.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-stop &mdash; npm@2.6.1</p>
+<p id="footer">npm-stop &mdash; npm@2.7.0</p>
 
index 70da695..14dfbd3 100644 (file)
@@ -36,5 +36,5 @@ used. For more information about how to set this config, check
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-tag &mdash; npm@2.6.1</p>
+<p id="footer">npm-tag &mdash; npm@2.7.0</p>
 
index 78e2b83..e60d561 100644 (file)
@@ -30,5 +30,5 @@ in the <code>packages</code> parameter.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-test &mdash; npm@2.6.1</p>
+<p id="footer">npm-test &mdash; npm@2.7.0</p>
 
index 3c0de6d..3eea11c 100644 (file)
@@ -30,5 +30,5 @@ uninstalled or when an error has been encountered.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-uninstall &mdash; npm@2.6.1</p>
+<p id="footer">npm-uninstall &mdash; npm@2.7.0</p>
 
index 4ba1a52..f9abc23 100644 (file)
@@ -33,5 +33,5 @@ the root package entry is removed from the registry entirely.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-unpublish &mdash; npm@2.6.1</p>
+<p id="footer">npm-unpublish &mdash; npm@2.7.0</p>
 
index 4faf76f..851fbda 100644 (file)
 <h2 id="synopsis">SYNOPSIS</h2>
 <pre><code>npm.commands.update(packages, callback)
 </code></pre><h1 id="description">DESCRIPTION</h1>
-<p>Updates a package, upgrading it to the latest version. It also installs any missing packages.</p>
-<p>The &#39;packages&#39; argument is an array of packages to update. The &#39;callback&#39; parameter will be called when done or when an error occurs.</p>
+<p>Updates a package, upgrading it to the latest version. It also installs any
+missing packages.</p>
+<p>The <code>packages</code> argument is an array of packages to update. The <code>callback</code>
+parameter will be called when done or when an error occurs.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-update.html"><a href="../cli/npm-update.html">npm-update(1)</a></a></li>
+</ul>
 
 </div>
 
@@ -27,5 +33,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-update &mdash; npm@2.6.1</p>
+<p id="footer">npm-update &mdash; npm@2.7.0</p>
 
index 30025b8..0277a27 100644 (file)
@@ -32,5 +32,5 @@ not have exactly one element. The only element should be a version number.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-version &mdash; npm@2.6.1</p>
+<p id="footer">npm-version &mdash; npm@2.7.0</p>
 
index 48a9d4b..f68cec8 100644 (file)
@@ -81,5 +81,5 @@ the field name.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-view &mdash; npm@2.6.1</p>
+<p id="footer">npm-view &mdash; npm@2.7.0</p>
 
index 9538913..8eac49b 100644 (file)
@@ -29,5 +29,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-whoami &mdash; npm@2.6.1</p>
+<p id="footer">npm-whoami &mdash; npm@2.7.0</p>
 
index 5a0afac..69585f5 100644 (file)
@@ -23,7 +23,7 @@ npm.load([configObject, ]function (er, npm) {
   npm.commands.install([&quot;package&quot;], cb)
 })
 </code></pre><h2 id="version">VERSION</h2>
-<p>2.6.1</p>
+<p>2.7.0</p>
 <h2 id="description">DESCRIPTION</h2>
 <p>This is the API documentation for npm.
 To find documentation of the command line
@@ -109,5 +109,5 @@ method names.  Use the <code>npm.deref</code> method to find the real name.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm &mdash; npm@2.6.1</p>
+<p id="footer">npm &mdash; npm@2.7.0</p>
 
index 683fdd2..836ef8c 100644 (file)
@@ -75,5 +75,5 @@ with an HTTP 402 status code (logically enough), unless you use
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-access &mdash; npm@2.6.1</p>
+<p id="footer">npm-access &mdash; npm@2.7.0</p>
 
index 75e6d90..93818e9 100644 (file)
@@ -68,5 +68,5 @@ precedence over any global configuration.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-adduser &mdash; npm@2.6.1</p>
+<p id="footer">npm-adduser &mdash; npm@2.7.0</p>
 
index 8c5b9e5..c9b43ad 100644 (file)
@@ -35,5 +35,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-bin &mdash; npm@2.6.1</p>
+<p id="footer">npm-bin &mdash; npm@2.7.0</p>
 
index c108f74..f19b04c 100644 (file)
@@ -54,5 +54,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-bugs &mdash; npm@2.6.1</p>
+<p id="footer">npm-bugs &mdash; npm@2.7.0</p>
 
index e973ef5..21d010e 100644 (file)
@@ -38,5 +38,5 @@ A folder containing a <code>package.json</code> file in its root.</li>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-build &mdash; npm@2.6.1</p>
+<p id="footer">npm-build &mdash; npm@2.7.0</p>
 
index f36b495..35b0903 100644 (file)
@@ -31,5 +31,5 @@ install packages into the local space.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-bundle &mdash; npm@2.6.1</p>
+<p id="footer">npm-bundle &mdash; npm@2.7.0</p>
 
index e9e2e9e..516e769 100644 (file)
@@ -81,5 +81,5 @@ they do not make an HTTP request to the registry.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-cache &mdash; npm@2.6.1</p>
+<p id="footer">npm-cache &mdash; npm@2.7.0</p>
 
index 73b5ac9..5854888 100644 (file)
@@ -42,5 +42,5 @@ completions based on the arguments.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-completion &mdash; npm@2.6.1</p>
+<p id="footer">npm-completion &mdash; npm@2.7.0</p>
 
index 370e5ea..4b55be2 100644 (file)
@@ -66,5 +66,5 @@ global config.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-config &mdash; npm@2.6.1</p>
+<p id="footer">npm-config &mdash; npm@2.7.0</p>
 
index 5ef2995..1c06741 100644 (file)
@@ -63,5 +63,5 @@ versions.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-dedupe &mdash; npm@2.6.1</p>
+<p id="footer">npm-dedupe &mdash; npm@2.7.0</p>
 
index aee4d4b..6411329 100644 (file)
@@ -38,5 +38,5 @@ something like this:</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-deprecate &mdash; npm@2.6.1</p>
+<p id="footer">npm-deprecate &mdash; npm@2.7.0</p>
 
index adb4a0b..0b679b8 100644 (file)
@@ -76,5 +76,5 @@ begin with a number or the letter <code>v</code>.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-dist-tag &mdash; npm@2.6.1</p>
+<p id="footer">npm-dist-tag &mdash; npm@2.7.0</p>
 
index c697e3b..3ea861d 100644 (file)
@@ -56,5 +56,5 @@ the current folder and use the <code>name</code> property.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-docs &mdash; npm@2.6.1</p>
+<p id="footer">npm-docs &mdash; npm@2.7.0</p>
 
index ddd3b1b..d3d535d 100644 (file)
@@ -49,5 +49,5 @@ or <code>&quot;notepad&quot;</code> on Windows.</li>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-edit &mdash; npm@2.6.1</p>
+<p id="footer">npm-edit &mdash; npm@2.7.0</p>
 
index ce4b159..835290f 100644 (file)
@@ -49,5 +49,5 @@ Windows</li>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-explore &mdash; npm@2.6.1</p>
+<p id="footer">npm-explore &mdash; npm@2.7.0</p>
 
index ee61cae..17b3f5d 100644 (file)
@@ -46,5 +46,5 @@ where the terms were found in the documentation.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-help-search &mdash; npm@2.6.1</p>
+<p id="footer">npm-help-search &mdash; npm@2.7.0</p>
 
index 686ab92..5c0efe0 100644 (file)
@@ -52,5 +52,5 @@ matches are equivalent to specifying a topic name.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-help &mdash; npm@2.6.1</p>
+<p id="footer">npm-help &mdash; npm@2.7.0</p>
 
index 5b04770..3aa29a8 100644 (file)
@@ -22,11 +22,19 @@ the options in there.</p>
 without a really good reason to do so.</p>
 <p>If you invoke it with <code>-f</code>, <code>--force</code>, <code>-y</code>, or <code>--yes</code>, it will use only
 defaults and not prompt you for any options.</p>
+<h2 id="configuration">CONFIGURATION</h2>
+<h3 id="scope">scope</h3>
+<ul>
+<li>Default: none</li>
+<li>Type: String</li>
+</ul>
+<p>The scope under which the new module should be created.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li>
 <li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
 <li><a href="../cli/npm-version.html"><a href="../cli/npm-version.html">npm-version(1)</a></a></li>
+<li><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></li>
 </ul>
 
 </div>
@@ -40,5 +48,5 @@ defaults and not prompt you for any options.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-init &mdash; npm@2.6.1</p>
+<p id="footer">npm-init &mdash; npm@2.7.0</p>
 
index 4c4d3e1..e43c2d0 100644 (file)
@@ -44,9 +44,10 @@ after packing it up into a tarball (b).</p>
 <p>  In global mode (ie, with <code>-g</code> or <code>--global</code> appended to the command),
   it installs the current package context (ie, the current working
   directory) as a global package.</p>
-<p>  By default, <code>npm install</code> will install all modules listed as
-  dependencies. With the <code>--production</code> flag,
-  npm will not install modules listed in <code>devDependencies</code>.</p>
+<p>  By default, <code>npm install</code> will install all modules listed as dependencies.
+  With the <code>--production</code> flag (or when the <code>NODE_ENV</code> environment variable
+  is set to <code>production</code>), npm will not install modules listed in
+  <code>devDependencies</code>.</p>
 </li>
 <li><p><code>npm install &lt;folder&gt;</code>:</p>
 <p>  Install a package that is sitting in a folder on the filesystem.</p>
@@ -239,5 +240,5 @@ affects a real use-case, it will be investigated.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-install &mdash; npm@2.6.1</p>
+<p id="footer">npm-install &mdash; npm@2.7.0</p>
 
index 0c54bdf..818d660 100644 (file)
@@ -71,5 +71,5 @@ include that scope, e.g.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-link &mdash; npm@2.6.1</p>
+<p id="footer">npm-link &mdash; npm@2.7.0</p>
 
index 581809f..4a77e01 100644 (file)
@@ -55,5 +55,5 @@ that registry at the same time.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-logout &mdash; npm@2.6.1</p>
+<p id="footer">npm-logout &mdash; npm@2.7.0</p>
 
index e68131f..861aad2 100644 (file)
@@ -22,7 +22,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
 limit the results to only the paths to the packages named.  Note that
 nested packages will <em>also</em> show the paths to the specified packages.
 For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@2.6.1 /path/to/npm
+<pre><code>npm@2.7.0 /path/to/npm
 â””─┬ init-package-json@0.0.4
   â””── promzard@0.1.5
 </code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
@@ -61,6 +61,18 @@ project.</p>
 <li>Type: Int</li>
 </ul>
 <p>Max display depth of the dependency tree.</p>
+<h3 id="prod-production">prod / production</h3>
+<ul>
+<li>Type: Boolean</li>
+<li>Default: false</li>
+</ul>
+<p>Display only the dependency tree for packages in <code>dependencies</code>.</p>
+<h3 id="dev">dev</h3>
+<ul>
+<li>Type: Boolean</li>
+<li>Default: false</li>
+</ul>
+<p>Display only the dependency tree for packages in <code>devDependencies</code>.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
@@ -85,5 +97,5 @@ project.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-ls &mdash; npm@2.6.1</p>
+<p id="footer">npm-ls &mdash; npm@2.7.0</p>
 
index d8418a4..10df0aa 100644 (file)
@@ -67,5 +67,5 @@ project.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-outdated &mdash; npm@2.6.1</p>
+<p id="footer">npm-outdated &mdash; npm@2.7.0</p>
 
index 58cc895..01b8380 100644 (file)
@@ -49,5 +49,5 @@ that is not implemented at this time.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-owner &mdash; npm@2.6.1</p>
+<p id="footer">npm-owner &mdash; npm@2.7.0</p>
 
index e61d433..b3f7093 100644 (file)
@@ -41,5 +41,5 @@ overwritten the second time.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-pack &mdash; npm@2.6.1</p>
+<p id="footer">npm-pack &mdash; npm@2.7.0</p>
 
index 23f77c0..caef551 100644 (file)
@@ -38,5 +38,5 @@ to contain a package.json file unless <code>-g</code> is also specified.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-prefix &mdash; npm@2.6.1</p>
+<p id="footer">npm-prefix &mdash; npm@2.7.0</p>
 
index 579f0b3..fbf0aaf 100644 (file)
@@ -39,5 +39,5 @@ packages specified in your <code>devDependencies</code>.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-prune &mdash; npm@2.6.1</p>
+<p id="footer">npm-prune &mdash; npm@2.7.0</p>
 
index 6e48c16..3cd7406 100644 (file)
@@ -66,5 +66,5 @@ it is removed with <a href="../cli/npm-unpublish.html"><a href="../cli/npm-unpub
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-publish &mdash; npm@2.6.1</p>
+<p id="footer">npm-publish &mdash; npm@2.7.0</p>
 
index 5d303f4..898d904 100644 (file)
@@ -38,5 +38,5 @@ the new binary.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-rebuild &mdash; npm@2.6.1</p>
+<p id="footer">npm-rebuild &mdash; npm@2.7.0</p>
 
index 14affbe..50840d5 100644 (file)
@@ -42,5 +42,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-repo &mdash; npm@2.6.1</p>
+<p id="footer">npm-repo &mdash; npm@2.7.0</p>
 
index f94762e..c09e103 100644 (file)
@@ -53,5 +53,5 @@ behavior will be accompanied by an increase in major version number</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-restart &mdash; npm@2.6.1</p>
+<p id="footer">npm-restart &mdash; npm@2.7.0</p>
 
index ed20e04..09ef110 100644 (file)
@@ -39,5 +39,5 @@ on its behalf.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-rm &mdash; npm@2.6.1</p>
+<p id="footer">npm-rm &mdash; npm@2.7.0</p>
 
index 327bc76..39b6e6c 100644 (file)
@@ -35,5 +35,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-root &mdash; npm@2.6.1</p>
+<p id="footer">npm-root &mdash; npm@2.7.0</p>
 
index ae7cced..ca0f575 100644 (file)
 <pre><code>npm run-script [command] [-- &lt;args&gt;]
 npm run [command] [-- &lt;args&gt;]
 </code></pre><h2 id="description">DESCRIPTION</h2>
-<p>This runs an arbitrary command from a package&#39;s <code>&quot;scripts&quot;</code> object.
-If no package name is provided, it will search for a <code>package.json</code>
-in the current folder and use its <code>&quot;scripts&quot;</code> object. If no <code>&quot;command&quot;</code>
-is provided, it will list the available top level scripts. The <code>env</code> command
-can be used to list environment variables that will be available to the script
-at runtime. If an &quot;env&quot; command is defined in your package it will have
-precedence instead.</p>
-<p><code>run[-script]</code> is used by the test, start, restart, and stop commands, but can
-be called directly, as well.</p>
+<p>This runs an arbitrary command from a package&#39;s <code>&quot;scripts&quot;</code> object.  If no
+<code>&quot;command&quot;</code> is provided, it will list the available scripts.  <code>run[-script]</code> is
+used by the test, start, restart, and stop commands, but can be called
+directly, as well. When the scripts in the package are printed out, they&#39;re
+separated into lifecycle (test, start, restart) and directly-run scripts.</p>
 <p>As of <a href="http://blog.npmjs.org/post/98131109725/npm-2-0-0"><code>npm@2.0.0</code></a>, you can
 use custom arguments when executing scripts. The special option <code>--</code> is used by
 <a href="http://goo.gl/KxMmtG">getopt</a> to delimit the end of the options. npm will pass
@@ -30,6 +26,10 @@ all the arguments after the <code>--</code> directly to your script:</p>
 <pre><code>npm run test -- --grep=&quot;pattern&quot;
 </code></pre><p>The arguments will only be passed to the script specified after <code>npm run</code>
 and not to any pre or post script.</p>
+<p>The <code>env</code> script is a special built-in command that can be used to list
+environment variables that will be available to the script at runtime. If an
+&quot;env&quot; command is defined in your package it will take precedence over the
+built-in.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../misc/npm-scripts.html"><a href="../misc/npm-scripts.html">npm-scripts(7)</a></a></li>
@@ -50,5 +50,5 @@ and not to any pre or post script.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-run-script &mdash; npm@2.6.1</p>
+<p id="footer">npm-run-script &mdash; npm@2.7.0</p>
 
index d158f06..eb4c522 100644 (file)
@@ -49,5 +49,5 @@ fall on multiple lines.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-search &mdash; npm@2.6.1</p>
+<p id="footer">npm-search &mdash; npm@2.7.0</p>
 
index 6930d09..3676105 100644 (file)
@@ -164,5 +164,5 @@ contents rather than versions.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-shrinkwrap &mdash; npm@2.6.1</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@2.7.0</p>
 
index d56f711..0a31eb6 100644 (file)
@@ -36,5 +36,5 @@ a vaguely positive way to show that you care.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-star &mdash; npm@2.6.1</p>
+<p id="footer">npm-star &mdash; npm@2.7.0</p>
 
index ce95dac..3d893db 100644 (file)
@@ -37,5 +37,5 @@ you will most certainly enjoy this command.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-stars &mdash; npm@2.6.1</p>
+<p id="footer">npm-stars &mdash; npm@2.7.0</p>
 
index f4b7200..5a163f6 100644 (file)
@@ -34,5 +34,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-start &mdash; npm@2.6.1</p>
+<p id="footer">npm-start &mdash; npm@2.7.0</p>
 
index 8c41f7c..8b401e7 100644 (file)
@@ -34,5 +34,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-stop &mdash; npm@2.6.1</p>
+<p id="footer">npm-stop &mdash; npm@2.7.0</p>
 
index c26dacd..dae1ecc 100644 (file)
@@ -62,5 +62,5 @@ that do not begin with a number or the letter <code>v</code>.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-tag &mdash; npm@2.6.1</p>
+<p id="footer">npm-tag &mdash; npm@2.7.0</p>
 
index 3e8f43f..8ae25dd 100644 (file)
@@ -37,5 +37,5 @@ true.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-test &mdash; npm@2.6.1</p>
+<p id="footer">npm-test &mdash; npm@2.7.0</p>
 
index 29ba5fe..9cd72c7 100644 (file)
@@ -57,5 +57,5 @@ npm uninstall dtrace-provider --save-optional
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-uninstall &mdash; npm@2.6.1</p>
+<p id="footer">npm-uninstall &mdash; npm@2.7.0</p>
 
index baf7c05..e363c0a 100644 (file)
@@ -47,5 +47,5 @@ package again, a new version number must be used.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-unpublish &mdash; npm@2.6.1</p>
+<p id="footer">npm-unpublish &mdash; npm@2.7.0</p>
 
index 9912bca..2a132bb 100644 (file)
@@ -14,7 +14,7 @@
 <pre><code>npm update [-g] [&lt;name&gt; [&lt;name&gt; ...]]
 </code></pre><h2 id="description">DESCRIPTION</h2>
 <p>This command will update all the packages listed to the latest version
-(specified by the <code>tag</code> config).</p>
+(specified by the <code>tag</code> config), respecting semver.</p>
 <p>It will also install missing packages. As with all commands that install
 packages, the <code>--dev</code> flag will cause <code>devDependencies</code> to be processed
 as well.</p>
@@ -22,10 +22,87 @@ as well.</p>
 packages.</p>
 <p>If no package name is specified, all packages in the specified location (global
 or local) will be updated.</p>
+<p>As of <code>npm@2.6.1</code>, the <code>npm update</code> will only inspect top-level packages.
+Prior versions of <code>npm</code> would also recursively inspect all dependencies.
+To get the old behavior, use <code>npm --depth 9999 update</code>, but be warned that
+simultaneous asynchronous update of all packages, including <code>npm</code> itself
+and packages that <code>npm</code> depends on, often causes problems up to and including
+the uninstallation of <code>npm</code> itself.</p>
+<p>To restore a missing <code>npm</code>, use the command:</p>
+<pre><code>curl -L https://npmjs.com/install.sh | sh
+</code></pre><h2 id="examples">EXAMPLES</h2>
+<p>IMPORTANT VERSION NOTE: these examples assume <code>npm@2.6.1</code> or later.  For
+older versions of <code>npm</code>, you must specify <code>--depth 0</code> to get the behavior
+described below.</p>
+<p>For the examples below, assume that the current package is <code>app</code> and it depends
+on dependencies, <code>dep1</code> (<code>dep2</code>, .. etc.).  The published versions of <code>dep1</code> are:</p>
+<pre><code>{
+  dist-tags: { latest: &quot;1.2.2&quot; },
+  versions: { &quot;1.2.2&quot;,
+              &quot;1.2.1&quot;,
+              &quot;1.2.0&quot;,
+              &quot;1.1.2&quot;,
+              &quot;1.1.1&quot;,
+              &quot;1.0.0&quot;,
+              &quot;0.4.1&quot;,
+              &quot;0.4.0&quot;,
+              &quot;0.2.0&quot;
+  }
+}
+</code></pre><h3 id="caret-dependencies">Caret Dependencies</h3>
+<p>If <code>app</code>&#39;s <code>package.json</code> contains:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^1.1.1&quot;
+}
+</code></pre><p>Then <code>npm update</code> will install <code>dep1@1.2.2</code>, because <code>1.2.2</code> is <code>latest</code> and
+<code>1.2.2</code> satisfies <code>^1.1.1</code>.</p>
+<h3 id="tilde-dependencies">Tilde Dependencies</h3>
+<p>However, if <code>app</code>&#39;s <code>package.json</code> contains:</p>
+<pre><code>dependencies: {
+  dep1: &quot;~1.1.1&quot;
+}
+</code></pre><p>In this case, running <code>npm update</code> will install <code>dep1@1.1.2</code>.  Even though the <code>latest</code>
+tag points to <code>1.2.2</code>, this version does not satisfy <code>~1.1.1</code>, which is equivalent
+to <code>&gt;=1.1.1 &lt;1.2.0</code>.  So the highest-sorting version that satisfies <code>~1.1.1</code> is used,
+which is <code>1.1.2</code>.</p>
+<h3 id="caret-dependencies-below-1-0-0">Caret Dependencies below 1.0.0</h3>
+<p>Suppose <code>app</code> has a caret dependency on a version below <code>1.0.0</code>, for example:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^0.2.0&quot;
+}
+</code></pre><p><code>npm update</code> will install <code>dep1@0.2.0</code>, because there are no other
+versions which satisfy <code>^0.2.0</code>.</p>
+<p>If the dependence were on <code>^0.4.0</code>:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^0.4.0&quot;
+}
+</code></pre><p>Then <code>npm update</code> will install <code>dep1@0.4.1</code>, because that is the highest-sorting
+version that satisfies <code>^0.4.0</code> (<code>&gt;= 0.4.0 &lt;0.5.0</code>)</p>
+<h3 id="recording-updates-with-save-">Recording Updates with <code>--save</code></h3>
+<p>When you want to update a package and save the new version as
+the minimum required dependency in <code>package.json</code>, you can use
+<code>npm update --save</code>.  For example if <code>package.json</code> contains</p>
+<pre><code>dependencies: {
+  dep1: &quot;^1.1.1&quot;
+}
+</code></pre><p>Then <code>npm update --save</code> will install <code>dep1@1.2.2</code> (i.e., <code>latest</code>),
+and <code>package.json</code> will be modified:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^1.2.2&quot;
+}
+</code></pre><p>Note that <code>npm</code> will only write an updated version to <code>package.json</code>
+if it installs a new package.</p>
+<h3 id="updating-globally-installed-packages">Updating Globally-Installed Packages</h3>
+<p><code>npm update -g</code> will apply the <code>update</code> action to each globally- installed
+package that is <code>outdated</code> -- that is, has a version that is different from
+<code>latest</code>.</p>
+<p>NOTE: If a package has been upgraded to a version newer than <code>latest</code>, it will
+be <em>downgraded</em>.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
 <li><a href="../cli/npm-outdated.html"><a href="../cli/npm-outdated.html">npm-outdated(1)</a></a></li>
+<li><a href="../cli/npm-shrinkwrap.html"><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></a></li>
 <li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
 <li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
 <li><a href="../cli/npm-ls.html"><a href="../cli/npm-ls.html">npm-ls(1)</a></a></li>
@@ -42,5 +119,5 @@ or local) will be updated.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-update &mdash; npm@2.6.1</p>
+<p id="footer">npm-update &mdash; npm@2.7.0</p>
 
index 9a512ca..d167770 100644 (file)
@@ -19,8 +19,10 @@ data back to <code>package.json</code> and, if present, <code>npm-shrinkwrap.jso
 valid second argument to semver.inc (one of &quot;patch&quot;, &quot;minor&quot;, &quot;major&quot;,
 &quot;prepatch&quot;, &quot;preminor&quot;, &quot;premajor&quot;, &quot;prerelease&quot;). In the second case,
 the existing version will be incremented by 1 in the specified field.</p>
-<p>If run in a git repo, it will also create a version commit and tag, and
-fail if the repo is not clean.</p>
+<p>If run in a git repo, it will also create a version commit and tag, and fail if
+the repo is not clean.  This behavior is controlled by <code>git-tag-version</code> (see
+below), and can be disabled on the command line by running <code>npm
+--no-git-tag-version version</code></p>
 <p>If supplied with <code>--message</code> (shorthand: <code>-m</code>) config option, npm will
 use it as a commit message when creating a version commit.  If the
 <code>message</code> config contains <code>%s</code> then that will be replaced with the
@@ -37,11 +39,19 @@ user: &quot;isaacs (http://blog.izs.me/) &lt;i@izs.me&gt;&quot;
 2048-bit RSA key, ID 6C481CF6, created 2010-08-31
 
 Enter passphrase:
-</code></pre><h2 id="see-also">SEE ALSO</h2>
+</code></pre><h2 id="configuration">CONFIGURATION</h2>
+<h3 id="git-tag-version">git-tag-version</h3>
+<ul>
+<li>Default: true</li>
+<li>Type: Boolean</li>
+</ul>
+<p>Commit and tag the version change.</p>
+<h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-init.html"><a href="../cli/npm-init.html">npm-init(1)</a></a></li>
 <li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
 <li><a href="../misc/semver.html"><a href="../misc/semver.html">semver(7)</a></a></li>
+<li><a href="../misc/config.html"><a href="../misc/config.html">config(7)</a></a></li>
 </ul>
 
 </div>
@@ -55,5 +65,5 @@ Enter passphrase:
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-version &mdash; npm@2.6.1</p>
+<p id="footer">npm-version &mdash; npm@2.7.0</p>
 
index e7c5d8b..99ffc89 100644 (file)
@@ -82,5 +82,5 @@ the field name.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-view &mdash; npm@2.6.1</p>
+<p id="footer">npm-view &mdash; npm@2.7.0</p>
 
index fd484f1..d284a41 100644 (file)
@@ -33,5 +33,5 @@
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-whoami &mdash; npm@2.6.1</p>
+<p id="footer">npm-whoami &mdash; npm@2.7.0</p>
 
index c340841..8b67cac 100644 (file)
@@ -13,7 +13,7 @@
 <h2 id="synopsis">SYNOPSIS</h2>
 <pre><code>npm &lt;command&gt; [args]
 </code></pre><h2 id="version">VERSION</h2>
-<p>2.6.1</p>
+<p>2.7.0</p>
 <h2 id="description">DESCRIPTION</h2>
 <p>npm is the package manager for the Node JavaScript platform.  It puts
 modules in place so that node can find them, and manages dependency
@@ -110,7 +110,7 @@ easily by doing <code>npm view npm contributors</code>.</p>
 the issues list or ask on the mailing list.</p>
 <ul>
 <li><a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
-<li><a href="&#x6d;&#97;&#x69;&#108;&#116;&#111;&#x3a;&#110;&#112;&#x6d;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#x70;&#x73;&#x2e;&#x63;&#x6f;&#x6d;">&#110;&#112;&#x6d;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#x70;&#x73;&#x2e;&#x63;&#x6f;&#x6d;</a></li>
+<li><a href="&#109;&#97;&#105;&#x6c;&#116;&#x6f;&#58;&#110;&#x70;&#109;&#45;&#64;&#x67;&#x6f;&#111;&#x67;&#x6c;&#101;&#x67;&#114;&#111;&#117;&#112;&#115;&#46;&#99;&#111;&#x6d;">&#110;&#x70;&#109;&#45;&#64;&#x67;&#x6f;&#111;&#x67;&#x6c;&#101;&#x67;&#114;&#111;&#117;&#112;&#115;&#46;&#99;&#111;&#x6d;</a></li>
 </ul>
 <h2 id="bugs">BUGS</h2>
 <p>When you find issues, please report them:</p>
@@ -118,7 +118,7 @@ the issues list or ask on the mailing list.</p>
 <li>web:
 <a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
 <li>email:
-<a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#58;&#x6e;&#x70;&#x6d;&#x2d;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#115;&#46;&#99;&#x6f;&#109;">&#x6e;&#x70;&#x6d;&#x2d;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#115;&#46;&#99;&#x6f;&#109;</a></li>
+<a href="&#x6d;&#x61;&#105;&#x6c;&#x74;&#111;&#x3a;&#x6e;&#112;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#x67;&#114;&#111;&#x75;&#112;&#115;&#x2e;&#x63;&#x6f;&#109;">&#x6e;&#112;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#x67;&#114;&#111;&#x75;&#112;&#115;&#x2e;&#x63;&#x6f;&#109;</a></li>
 </ul>
 <p>Be sure to include <em>all</em> of the output from the npm command that didn&#39;t work
 as expected.  The <code>npm-debug.log</code> file is also helpful to provide.</p>
@@ -128,7 +128,7 @@ will no doubt tell you to put the output in a gist or email.</p>
 <p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
 <a href="https://github.com/isaacs/">isaacs</a> ::
 <a href="http://twitter.com/izs">@izs</a> ::
-<a href="&#x6d;&#x61;&#105;&#108;&#116;&#111;&#58;&#x69;&#64;&#105;&#x7a;&#115;&#x2e;&#x6d;&#x65;">&#x69;&#64;&#105;&#x7a;&#115;&#x2e;&#x6d;&#x65;</a></p>
+<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#x69;&#x40;&#x69;&#122;&#115;&#x2e;&#x6d;&#101;">&#x69;&#x40;&#x69;&#122;&#115;&#x2e;&#x6d;&#101;</a></p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-help.html"><a href="../cli/npm-help.html">npm-help(1)</a></a></li>
@@ -154,5 +154,5 @@ will no doubt tell you to put the output in a gist or email.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm &mdash; npm@2.6.1</p>
+<p id="footer">npm &mdash; npm@2.7.0</p>
 
index a418865..6b1d6d0 100644 (file)
@@ -184,5 +184,5 @@ cannot be found elsewhere.  See <code><a href="../files/package.json.html"><a hr
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-folders &mdash; npm@2.6.1</p>
+<p id="footer">npm-folders &mdash; npm@2.7.0</p>
 
index 3debb67..e642f4f 100644 (file)
@@ -184,5 +184,5 @@ cannot be found elsewhere.  See <code><a href="../files/package.json.html"><a hr
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-global &mdash; npm@2.6.1</p>
+<p id="footer">npm-global &mdash; npm@2.7.0</p>
 
index e1015ec..9a9e134 100644 (file)
@@ -496,5 +496,5 @@ ignored.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-json &mdash; npm@2.6.1</p>
+<p id="footer">npm-json &mdash; npm@2.7.0</p>
 
index 805393d..d9b6dd3 100644 (file)
@@ -77,5 +77,5 @@ manner.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npmrc &mdash; npm@2.6.1</p>
+<p id="footer">npmrc &mdash; npm@2.7.0</p>
 
index dafec95..9494757 100644 (file)
@@ -496,5 +496,5 @@ ignored.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">package.json &mdash; npm@2.6.1</p>
+<p id="footer">package.json &mdash; npm@2.7.0</p>
 
index 8de0b1b..65c6795 100644 (file)
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">index &mdash; npm@2.6.1</p>
+<p id="footer">index &mdash; npm@2.7.0</p>
 
index 7212d3e..195ae02 100644 (file)
@@ -147,5 +147,5 @@ set to anything.&quot;</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-coding-style &mdash; npm@2.6.1</p>
+<p id="footer">npm-coding-style &mdash; npm@2.7.0</p>
 
index 21af45f..11b7793 100644 (file)
@@ -206,7 +206,7 @@ If true, then only prints color codes for tty file descriptors.</p>
 <li>Default: Infinity</li>
 <li>Type: Number</li>
 </ul>
-<p>The depth to go when recursing directories for <code>npm ls</code>, 
+<p>The depth to go when recursing directories for <code>npm ls</code>,
 <code>npm cache ls</code>, and <code>npm outdated</code>.</p>
 <p>For <code>npm outdated</code>, a setting of <code>Infinity</code> will be treated as <code>0</code>
 since that gives more useful information.  To show the outdated status
@@ -336,6 +336,16 @@ user.</p>
 <p>A proxy to use for outgoing https requests. If the <code>HTTPS_PROXY</code> or
 <code>https_proxy</code> or <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variables are set,
 proxy settings will be honored by the underlying <code>request</code> library.</p>
+<h3 id="if-present">if-present</h3>
+<ul>
+<li>Default: false</li>
+<li>Type: Boolean</li>
+</ul>
+<p>If true, npm will not exit with an error code when <code>run-script</code> is invoked for
+a script that isn&#39;t defined in the <code>scripts</code> section of <code>package.json</code>. This
+option can be used when it&#39;s desirable to optionally run a script when it&#39;s
+present and fail if the script fails. This is useful, for example, when running
+scripts that may only apply for some builds in an otherwise generic CI setup.</p>
 <h3 id="ignore-scripts">ignore-scripts</h3>
 <ul>
 <li>Default: false</li>
@@ -778,5 +788,5 @@ exit successfully.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-config &mdash; npm@2.6.1</p>
+<p id="footer">npm-config &mdash; npm@2.7.0</p>
 
index 3381052..e91f9f3 100644 (file)
@@ -189,5 +189,5 @@ from a fresh checkout.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-developers &mdash; npm@2.6.1</p>
+<p id="footer">npm-developers &mdash; npm@2.7.0</p>
 
index c707bbc..b4efe49 100644 (file)
@@ -13,7 +13,7 @@
 <h2 id="synopsis">SYNOPSIS</h2>
 <ol>
 <li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
-<li>Email the author, CC <a href="&#x6d;&#x61;&#105;&#x6c;&#x74;&#x6f;&#x3a;&#x73;&#117;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;">&#x73;&#117;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;</a></li>
+<li>Email the author, CC <a href="&#x6d;&#97;&#x69;&#108;&#116;&#x6f;&#x3a;&#x73;&#x75;&#x70;&#x70;&#x6f;&#114;&#x74;&#64;&#110;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#111;&#x6d;">&#x73;&#x75;&#x70;&#x70;&#x6f;&#114;&#x74;&#64;&#110;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#111;&#x6d;</a></li>
 <li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
 </ol>
 <p>Don&#39;t squat on package names.  Publish code or move out of the way.</p>
@@ -51,12 +51,12 @@ Joe&#39;s appropriate course of action in each case is the same.</p>
 owner (Bob).</li>
 <li>Joe emails Bob, explaining the situation <strong>as respectfully as
 possible</strong>, and what he would like to do with the module name.  He
-adds the npm support staff <a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#x6f;&#x6d;">&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#x6f;&#x6d;</a> to the CC list of
+adds the npm support staff <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#111;&#58;&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#46;&#99;&#111;&#x6d;">&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#46;&#99;&#111;&#x6d;</a> to the CC list of
 the email.  Mention in the email that Bob can run <code>npm owner add
 joe foo</code> to add Joe as an owner of the <code>foo</code> package.</li>
 <li>After a reasonable amount of time, if Bob has not responded, or if
 Bob and Joe can&#39;t come to any sort of resolution, email support
-<a href="&#x6d;&#97;&#x69;&#x6c;&#x74;&#111;&#x3a;&#x73;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#112;&#x6d;&#106;&#x73;&#x2e;&#99;&#111;&#x6d;">&#x73;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#112;&#x6d;&#106;&#x73;&#x2e;&#99;&#111;&#x6d;</a> and we&#39;ll sort it out.  (&quot;Reasonable&quot; is
+<a href="&#109;&#x61;&#x69;&#108;&#116;&#111;&#58;&#x73;&#117;&#112;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#x6d;">&#x73;&#117;&#112;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#x6d;</a> and we&#39;ll sort it out.  (&quot;Reasonable&quot; is
 usually at least 4 weeks, but extra time is allowed around common
 holidays.)</li>
 </ol>
@@ -112,5 +112,5 @@ things into it.</li>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-disputes &mdash; npm@2.6.1</p>
+<p id="footer">npm-disputes &mdash; npm@2.7.0</p>
 
index bc6af67..cfc8ef6 100644 (file)
@@ -236,7 +236,7 @@ that has a package.json in its root, or a git url.
 <p>To check if the registry is down, open up
 <a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a> in a web browser.  This will also tell
 you if you are just unable to access the internet for some reason.</p>
-<p>If the registry IS down, let us know by emailing <a href="&#109;&#x61;&#105;&#x6c;&#x74;&#111;&#58;&#x73;&#x75;&#x70;&#x70;&#111;&#x72;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#x6d;">&#x73;&#x75;&#x70;&#x70;&#111;&#x72;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#x6d;</a>
+<p>If the registry IS down, let us know by emailing <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#x6f;&#x3a;&#115;&#x75;&#112;&#x70;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#x6f;&#109;">&#115;&#x75;&#112;&#x70;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#x6f;&#109;</a>
 or posting an issue at <a href="https://github.com/npm/npm/issues">https://github.com/npm/npm/issues</a>.  If it&#39;s
 down for the world (and not just on your local network) then we&#39;re
 probably already being pinged about it.</p>
@@ -307,5 +307,5 @@ good folks at <a href="http://www.npmjs.com">npm, Inc.</a></p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-faq &mdash; npm@2.6.1</p>
+<p id="footer">npm-faq &mdash; npm@2.7.0</p>
 
index bfda7de..dd0540e 100644 (file)
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-index &mdash; npm@2.6.1</p>
+<p id="footer">npm-index &mdash; npm@2.7.0</p>
 
index 52a2d9e..f1751c8 100644 (file)
@@ -70,5 +70,5 @@ effectively implement the entire CouchDB API anyway.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-registry &mdash; npm@2.6.1</p>
+<p id="footer">npm-registry &mdash; npm@2.7.0</p>
 
index 21a2ea6..f1aef4a 100644 (file)
@@ -78,5 +78,5 @@ that registry instead.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-scope &mdash; npm@2.6.1</p>
+<p id="footer">npm-scope &mdash; npm@2.7.0</p>
 
index 12ed3f2..e2b675b 100644 (file)
@@ -41,41 +41,23 @@ stop and start scripts if no <code>restart</code> script is provided.</li>
 run-script &lt;pkg&gt; &lt;stage&gt;</code>. <em>Pre</em> and <em>post</em> commands with matching
 names will be run for those as well (e.g. <code>premyscript</code>, <code>myscript</code>,
 <code>postmyscript</code>).</p>
-<h2 id="note-install-scripts-are-an-antipattern">NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN</h2>
-<p><strong>tl;dr</strong> Don&#39;t use <code>install</code>.  Use a <code>.gyp</code> file for compilation, and
-<code>prepublish</code> for anything else.</p>
-<p>You should almost never have to explicitly set a <code>preinstall</code> or
-<code>install</code> script.  If you are doing this, please consider if there is
-another option.</p>
-<p>The only valid use of <code>install</code> or <code>preinstall</code> scripts is for
-compilation which must be done on the target architecture.  In early
-versions of node, this was often done using the <code>node-waf</code> scripts, or
-a standalone <code>Makefile</code>, and early versions of npm required that it be
-explicitly set in package.json.  This was not portable, and harder to
-do properly.</p>
-<p>In the current version of node, the standard way to do this is using a
-<code>.gyp</code> file.  If you have a file with a <code>.gyp</code> extension in the root
-of your package, then npm will run the appropriate <code>node-gyp</code> commands
-automatically at install time.  This is the only officially supported
-method for compiling binary addons, and does not require that you add
-anything to your package.json file.</p>
-<p>If you have to do other things before your package is used, in a way
+<h2 id="common-uses">COMMON USES</h2>
+<p>If you need to perform operations on your package before it is used, in a way
 that is not dependent on the operating system or architecture of the
-target system, then use a <code>prepublish</code> script instead.  This includes
+target system, use a <code>prepublish</code> script.  This includes
 tasks such as:</p>
 <ul>
-<li>Compile CoffeeScript source code into JavaScript.</li>
-<li>Create minified versions of JavaScript source code.</li>
+<li>Compiling CoffeeScript source code into JavaScript.</li>
+<li>Creating minified versions of JavaScript source code.</li>
 <li>Fetching remote resources that your package will use.</li>
 </ul>
-<p>The advantage of doing these things at <code>prepublish</code> time instead of
-<code>preinstall</code> or <code>install</code> time is that they can be done once, in a
-single place, and thus greatly reduce complexity and variability.
+<p>The advantage of doing these things at <code>prepublish</code> time is that they can be done once, in a
+single place, thus reducing complexity and variability.
 Additionally, this means that:</p>
 <ul>
 <li>You can depend on <code>coffee-script</code> as a <code>devDependency</code>, and thus
 your users don&#39;t need to have it installed.</li>
-<li>You don&#39;t need to include the minifiers in your package, reducing
+<li>You don&#39;t need to include minifiers in your package, reducing
 the size for your users.</li>
 <li>You don&#39;t need to rely on your users having <code>curl</code> or <code>wget</code> or
 other system tools on the target machines.</li>
@@ -196,6 +178,11 @@ probably set it up that way for a reason.</li>
 <li>Don&#39;t prefix your script commands with &quot;sudo&quot;.  If root permissions
 are required for some reason, then it&#39;ll fail with that error, and
 the user will sudo the npm command in question.</li>
+<li>Don&#39;t use <code>install</code>. Use a <code>.gyp</code> file for compilation, and <code>prepublish</code>
+for anything else. You should almost never have to explicitly set a
+preinstall or install script. If you are doing this, please consider if
+there is another option. The only valid use of <code>install</code> or <code>preinstall</code>
+scripts is for compilation which must be done on the target architecture.</li>
 </ul>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
@@ -216,5 +203,5 @@ the user will sudo the npm command in question.</li>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">npm-scripts &mdash; npm@2.6.1</p>
+<p id="footer">npm-scripts &mdash; npm@2.7.0</p>
 
index 9572761..f9a9be6 100644 (file)
@@ -57,5 +57,5 @@ modules.  To track those down, you can do the following:</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">removing-npm &mdash; npm@2.6.1</p>
+<p id="footer">removing-npm &mdash; npm@2.7.0</p>
 
index 659a505..9b445e3 100644 (file)
@@ -282,5 +282,5 @@ range, use the <code>satisfies(version, range)</code> function.</p>
 <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
 <tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
 </table>
-<p id="footer">semver &mdash; npm@2.6.1</p>
+<p id="footer">semver &mdash; npm@2.7.0</p>
 
index a356aaf..76974ea 100644 (file)
@@ -115,7 +115,7 @@ specific purpose, or lack of malice in any given npm package.</p>
 <p>If you have a complaint about a package in the public npm registry,
 and cannot <a href="https://docs.npmjs.com/misc/disputes">resolve it with the package
 owner</a>, please email
-<a href="&#109;&#97;&#105;&#x6c;&#x74;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#109;">&#115;&#x75;&#x70;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#109;</a> and explain the situation.</p>
+<a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#109;">&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#109;</a> and explain the situation.</p>
 <p>Any data published to The npm Registry (including user account
 information) may be removed or modified at the sole discretion of the
 npm server administrators.</p>
index d057711..5d48bc0 100644 (file)
@@ -2,6 +2,12 @@
 <h2 id="synopsis">SYNOPSIS</h2>
 <pre><code>npm.commands.update(packages, callback)
 </code></pre><h1 id="description">DESCRIPTION</h1>
-<p>Updates a package, upgrading it to the latest version. It also installs any missing packages.</p>
-<p>The &#39;packages&#39; argument is an array of packages to update. The &#39;callback&#39; parameter will be called when done or when an error occurs.</p>
+<p>Updates a package, upgrading it to the latest version. It also installs any
+missing packages.</p>
+<p>The <code>packages</code> argument is an array of packages to update. The <code>callback</code>
+parameter will be called when done or when an error occurs.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
+</ul>
 
index 44c3340..a3d22dc 100644 (file)
@@ -12,7 +12,7 @@ npm.load([configObject, ]function (er, npm) {
   npm.commands.install([&quot;package&quot;], cb)
 })
 </code></pre><h2 id="version">VERSION</h2>
-<p>2.6.1</p>
+<p>2.7.0</p>
 <h2 id="description">DESCRIPTION</h2>
 <p>This is the API documentation for npm.
 To find documentation of the command line
index 4f41ea8..ff363fa 100644 (file)
@@ -11,10 +11,18 @@ the options in there.</p>
 without a really good reason to do so.</p>
 <p>If you invoke it with <code>-f</code>, <code>--force</code>, <code>-y</code>, or <code>--yes</code>, it will use only
 defaults and not prompt you for any options.</p>
+<h2 id="configuration">CONFIGURATION</h2>
+<h3 id="scope">scope</h3>
+<ul>
+<li>Default: none</li>
+<li>Type: String</li>
+</ul>
+<p>The scope under which the new module should be created.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li>
 <li><a href="../files/package.json.html">package.json(5)</a></li>
 <li><a href="../cli/npm-version.html">npm-version(1)</a></li>
+<li><a href="../misc/npm-scope.html">npm-scope(7)</a></li>
 </ul>
 
index bd1932e..a8e84d1 100644 (file)
@@ -33,9 +33,10 @@ after packing it up into a tarball (b).</p>
 <p>  In global mode (ie, with <code>-g</code> or <code>--global</code> appended to the command),
   it installs the current package context (ie, the current working
   directory) as a global package.</p>
-<p>  By default, <code>npm install</code> will install all modules listed as
-  dependencies. With the <code>--production</code> flag,
-  npm will not install modules listed in <code>devDependencies</code>.</p>
+<p>  By default, <code>npm install</code> will install all modules listed as dependencies.
+  With the <code>--production</code> flag (or when the <code>NODE_ENV</code> environment variable
+  is set to <code>production</code>), npm will not install modules listed in
+  <code>devDependencies</code>.</p>
 </li>
 <li><p><code>npm install &lt;folder&gt;</code>:</p>
 <p>  Install a package that is sitting in a folder on the filesystem.</p>
index e7e2748..a3cab85 100644 (file)
@@ -11,7 +11,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
 limit the results to only the paths to the packages named.  Note that
 nested packages will <em>also</em> show the paths to the specified packages.
 For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@2.6.1 /path/to/npm
+<pre><code>npm@2.7.0 /path/to/npm
 â””─┬ init-package-json@0.0.4
   â””── promzard@0.1.5
 </code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
@@ -50,6 +50,18 @@ project.</p>
 <li>Type: Int</li>
 </ul>
 <p>Max display depth of the dependency tree.</p>
+<h3 id="prod-production">prod / production</h3>
+<ul>
+<li>Type: Boolean</li>
+<li>Default: false</li>
+</ul>
+<p>Display only the dependency tree for packages in <code>dependencies</code>.</p>
+<h3 id="dev">dev</h3>
+<ul>
+<li>Type: Boolean</li>
+<li>Default: false</li>
+</ul>
+<p>Display only the dependency tree for packages in <code>devDependencies</code>.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-config.html">npm-config(1)</a></li>
index 13ff259..5ee7644 100644 (file)
@@ -3,15 +3,11 @@
 <pre><code>npm run-script [command] [-- &lt;args&gt;]
 npm run [command] [-- &lt;args&gt;]
 </code></pre><h2 id="description">DESCRIPTION</h2>
-<p>This runs an arbitrary command from a package&#39;s <code>&quot;scripts&quot;</code> object.
-If no package name is provided, it will search for a <code>package.json</code>
-in the current folder and use its <code>&quot;scripts&quot;</code> object. If no <code>&quot;command&quot;</code>
-is provided, it will list the available top level scripts. The <code>env</code> command
-can be used to list environment variables that will be available to the script
-at runtime. If an &quot;env&quot; command is defined in your package it will have
-precedence instead.</p>
-<p><code>run[-script]</code> is used by the test, start, restart, and stop commands, but can
-be called directly, as well.</p>
+<p>This runs an arbitrary command from a package&#39;s <code>&quot;scripts&quot;</code> object.  If no
+<code>&quot;command&quot;</code> is provided, it will list the available scripts.  <code>run[-script]</code> is
+used by the test, start, restart, and stop commands, but can be called
+directly, as well. When the scripts in the package are printed out, they&#39;re
+separated into lifecycle (test, start, restart) and directly-run scripts.</p>
 <p>As of <a href="http://blog.npmjs.org/post/98131109725/npm-2-0-0"><code>npm@2.0.0</code></a>, you can
 use custom arguments when executing scripts. The special option <code>--</code> is used by
 <a href="http://goo.gl/KxMmtG">getopt</a> to delimit the end of the options. npm will pass
@@ -19,6 +15,10 @@ all the arguments after the <code>--</code> directly to your script:</p>
 <pre><code>npm run test -- --grep=&quot;pattern&quot;
 </code></pre><p>The arguments will only be passed to the script specified after <code>npm run</code>
 and not to any pre or post script.</p>
+<p>The <code>env</code> script is a special built-in command that can be used to list
+environment variables that will be available to the script at runtime. If an
+&quot;env&quot; command is defined in your package it will take precedence over the
+built-in.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
index 6e35abd..ecc6640 100644 (file)
@@ -3,7 +3,7 @@
 <pre><code>npm update [-g] [&lt;name&gt; [&lt;name&gt; ...]]
 </code></pre><h2 id="description">DESCRIPTION</h2>
 <p>This command will update all the packages listed to the latest version
-(specified by the <code>tag</code> config).</p>
+(specified by the <code>tag</code> config), respecting semver.</p>
 <p>It will also install missing packages. As with all commands that install
 packages, the <code>--dev</code> flag will cause <code>devDependencies</code> to be processed
 as well.</p>
@@ -11,10 +11,87 @@ as well.</p>
 packages.</p>
 <p>If no package name is specified, all packages in the specified location (global
 or local) will be updated.</p>
+<p>As of <code>npm@2.6.1</code>, the <code>npm update</code> will only inspect top-level packages.
+Prior versions of <code>npm</code> would also recursively inspect all dependencies.
+To get the old behavior, use <code>npm --depth 9999 update</code>, but be warned that
+simultaneous asynchronous update of all packages, including <code>npm</code> itself
+and packages that <code>npm</code> depends on, often causes problems up to and including
+the uninstallation of <code>npm</code> itself.</p>
+<p>To restore a missing <code>npm</code>, use the command:</p>
+<pre><code>curl -L https://npmjs.com/install.sh | sh
+</code></pre><h2 id="examples">EXAMPLES</h2>
+<p>IMPORTANT VERSION NOTE: these examples assume <code>npm@2.6.1</code> or later.  For
+older versions of <code>npm</code>, you must specify <code>--depth 0</code> to get the behavior
+described below.</p>
+<p>For the examples below, assume that the current package is <code>app</code> and it depends
+on dependencies, <code>dep1</code> (<code>dep2</code>, .. etc.).  The published versions of <code>dep1</code> are:</p>
+<pre><code>{
+  dist-tags: { latest: &quot;1.2.2&quot; },
+  versions: { &quot;1.2.2&quot;,
+              &quot;1.2.1&quot;,
+              &quot;1.2.0&quot;,
+              &quot;1.1.2&quot;,
+              &quot;1.1.1&quot;,
+              &quot;1.0.0&quot;,
+              &quot;0.4.1&quot;,
+              &quot;0.4.0&quot;,
+              &quot;0.2.0&quot;
+  }
+}
+</code></pre><h3 id="caret-dependencies">Caret Dependencies</h3>
+<p>If <code>app</code>&#39;s <code>package.json</code> contains:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^1.1.1&quot;
+}
+</code></pre><p>Then <code>npm update</code> will install <code>dep1@1.2.2</code>, because <code>1.2.2</code> is <code>latest</code> and
+<code>1.2.2</code> satisfies <code>^1.1.1</code>.</p>
+<h3 id="tilde-dependencies">Tilde Dependencies</h3>
+<p>However, if <code>app</code>&#39;s <code>package.json</code> contains:</p>
+<pre><code>dependencies: {
+  dep1: &quot;~1.1.1&quot;
+}
+</code></pre><p>In this case, running <code>npm update</code> will install <code>dep1@1.1.2</code>.  Even though the <code>latest</code>
+tag points to <code>1.2.2</code>, this version does not satisfy <code>~1.1.1</code>, which is equivalent
+to <code>&gt;=1.1.1 &lt;1.2.0</code>.  So the highest-sorting version that satisfies <code>~1.1.1</code> is used,
+which is <code>1.1.2</code>.</p>
+<h3 id="caret-dependencies-below-1-0-0">Caret Dependencies below 1.0.0</h3>
+<p>Suppose <code>app</code> has a caret dependency on a version below <code>1.0.0</code>, for example:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^0.2.0&quot;
+}
+</code></pre><p><code>npm update</code> will install <code>dep1@0.2.0</code>, because there are no other
+versions which satisfy <code>^0.2.0</code>.</p>
+<p>If the dependence were on <code>^0.4.0</code>:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^0.4.0&quot;
+}
+</code></pre><p>Then <code>npm update</code> will install <code>dep1@0.4.1</code>, because that is the highest-sorting
+version that satisfies <code>^0.4.0</code> (<code>&gt;= 0.4.0 &lt;0.5.0</code>)</p>
+<h3 id="recording-updates-with-save-">Recording Updates with <code>--save</code></h3>
+<p>When you want to update a package and save the new version as
+the minimum required dependency in <code>package.json</code>, you can use
+<code>npm update --save</code>.  For example if <code>package.json</code> contains</p>
+<pre><code>dependencies: {
+  dep1: &quot;^1.1.1&quot;
+}
+</code></pre><p>Then <code>npm update --save</code> will install <code>dep1@1.2.2</code> (i.e., <code>latest</code>),
+and <code>package.json</code> will be modified:</p>
+<pre><code>dependencies: {
+  dep1: &quot;^1.2.2&quot;
+}
+</code></pre><p>Note that <code>npm</code> will only write an updated version to <code>package.json</code>
+if it installs a new package.</p>
+<h3 id="updating-globally-installed-packages">Updating Globally-Installed Packages</h3>
+<p><code>npm update -g</code> will apply the <code>update</code> action to each globally- installed
+package that is <code>outdated</code> -- that is, has a version that is different from
+<code>latest</code>.</p>
+<p>NOTE: If a package has been upgraded to a version newer than <code>latest</code>, it will
+be <em>downgraded</em>.</p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-install.html">npm-install(1)</a></li>
 <li><a href="../cli/npm-outdated.html">npm-outdated(1)</a></li>
+<li><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></li>
 <li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
 <li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
 <li><a href="../cli/npm-ls.html">npm-ls(1)</a></li>
index 0cc3a21..e446006 100644 (file)
@@ -8,8 +8,10 @@ data back to <code>package.json</code> and, if present, <code>npm-shrinkwrap.jso
 valid second argument to semver.inc (one of &quot;patch&quot;, &quot;minor&quot;, &quot;major&quot;,
 &quot;prepatch&quot;, &quot;preminor&quot;, &quot;premajor&quot;, &quot;prerelease&quot;). In the second case,
 the existing version will be incremented by 1 in the specified field.</p>
-<p>If run in a git repo, it will also create a version commit and tag, and
-fail if the repo is not clean.</p>
+<p>If run in a git repo, it will also create a version commit and tag, and fail if
+the repo is not clean.  This behavior is controlled by <code>git-tag-version</code> (see
+below), and can be disabled on the command line by running <code>npm
+--no-git-tag-version version</code></p>
 <p>If supplied with <code>--message</code> (shorthand: <code>-m</code>) config option, npm will
 use it as a commit message when creating a version commit.  If the
 <code>message</code> config contains <code>%s</code> then that will be replaced with the
@@ -26,10 +28,18 @@ user: &quot;isaacs (http://blog.izs.me/) &lt;i@izs.me&gt;&quot;
 2048-bit RSA key, ID 6C481CF6, created 2010-08-31
 
 Enter passphrase:
-</code></pre><h2 id="see-also">SEE ALSO</h2>
+</code></pre><h2 id="configuration">CONFIGURATION</h2>
+<h3 id="git-tag-version">git-tag-version</h3>
+<ul>
+<li>Default: true</li>
+<li>Type: Boolean</li>
+</ul>
+<p>Commit and tag the version change.</p>
+<h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-init.html">npm-init(1)</a></li>
 <li><a href="../files/package.json.html">package.json(5)</a></li>
 <li><a href="../misc/semver.html">semver(7)</a></li>
+<li><a href="../misc/config.html">config(7)</a></li>
 </ul>
 
index 224c7e0..a290535 100644 (file)
@@ -2,7 +2,7 @@
 <h2 id="synopsis">SYNOPSIS</h2>
 <pre><code>npm &lt;command&gt; [args]
 </code></pre><h2 id="version">VERSION</h2>
-<p>2.6.1</p>
+<p>2.7.0</p>
 <h2 id="description">DESCRIPTION</h2>
 <p>npm is the package manager for the Node JavaScript platform.  It puts
 modules in place so that node can find them, and manages dependency
@@ -99,7 +99,7 @@ easily by doing <code>npm view npm contributors</code>.</p>
 the issues list or ask on the mailing list.</p>
 <ul>
 <li><a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
-<li><a href="&#x6d;&#97;&#x69;&#108;&#116;&#111;&#x3a;&#110;&#112;&#x6d;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#x70;&#x73;&#x2e;&#x63;&#x6f;&#x6d;">&#110;&#112;&#x6d;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#108;&#x65;&#103;&#114;&#x6f;&#117;&#x70;&#x73;&#x2e;&#x63;&#x6f;&#x6d;</a></li>
+<li><a href="&#109;&#97;&#105;&#x6c;&#116;&#x6f;&#58;&#110;&#x70;&#109;&#45;&#64;&#x67;&#x6f;&#111;&#x67;&#x6c;&#101;&#x67;&#114;&#111;&#117;&#112;&#115;&#46;&#99;&#111;&#x6d;">&#110;&#x70;&#109;&#45;&#64;&#x67;&#x6f;&#111;&#x67;&#x6c;&#101;&#x67;&#114;&#111;&#117;&#112;&#115;&#46;&#99;&#111;&#x6d;</a></li>
 </ul>
 <h2 id="bugs">BUGS</h2>
 <p>When you find issues, please report them:</p>
@@ -107,7 +107,7 @@ the issues list or ask on the mailing list.</p>
 <li>web:
 <a href="http://github.com/npm/npm/issues">http://github.com/npm/npm/issues</a></li>
 <li>email:
-<a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#58;&#x6e;&#x70;&#x6d;&#x2d;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#115;&#46;&#99;&#x6f;&#109;">&#x6e;&#x70;&#x6d;&#x2d;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#115;&#46;&#99;&#x6f;&#109;</a></li>
+<a href="&#x6d;&#x61;&#105;&#x6c;&#x74;&#111;&#x3a;&#x6e;&#112;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#x67;&#114;&#111;&#x75;&#112;&#115;&#x2e;&#x63;&#x6f;&#109;">&#x6e;&#112;&#x6d;&#45;&#64;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#x67;&#114;&#111;&#x75;&#112;&#115;&#x2e;&#x63;&#x6f;&#109;</a></li>
 </ul>
 <p>Be sure to include <em>all</em> of the output from the npm command that didn&#39;t work
 as expected.  The <code>npm-debug.log</code> file is also helpful to provide.</p>
@@ -117,7 +117,7 @@ will no doubt tell you to put the output in a gist or email.</p>
 <p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
 <a href="https://github.com/isaacs/">isaacs</a> ::
 <a href="http://twitter.com/izs">@izs</a> ::
-<a href="&#x6d;&#x61;&#105;&#108;&#116;&#111;&#58;&#x69;&#64;&#105;&#x7a;&#115;&#x2e;&#x6d;&#x65;">&#x69;&#64;&#105;&#x7a;&#115;&#x2e;&#x6d;&#x65;</a></p>
+<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#x69;&#x40;&#x69;&#122;&#115;&#x2e;&#x6d;&#101;">&#x69;&#x40;&#x69;&#122;&#115;&#x2e;&#x6d;&#101;</a></p>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
 <li><a href="../cli/npm-help.html">npm-help(1)</a></li>
index bd2299c..0c33459 100644 (file)
@@ -195,7 +195,7 @@ If true, then only prints color codes for tty file descriptors.</p>
 <li>Default: Infinity</li>
 <li>Type: Number</li>
 </ul>
-<p>The depth to go when recursing directories for <code>npm ls</code>, 
+<p>The depth to go when recursing directories for <code>npm ls</code>,
 <code>npm cache ls</code>, and <code>npm outdated</code>.</p>
 <p>For <code>npm outdated</code>, a setting of <code>Infinity</code> will be treated as <code>0</code>
 since that gives more useful information.  To show the outdated status
@@ -325,6 +325,16 @@ user.</p>
 <p>A proxy to use for outgoing https requests. If the <code>HTTPS_PROXY</code> or
 <code>https_proxy</code> or <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variables are set,
 proxy settings will be honored by the underlying <code>request</code> library.</p>
+<h3 id="if-present">if-present</h3>
+<ul>
+<li>Default: false</li>
+<li>Type: Boolean</li>
+</ul>
+<p>If true, npm will not exit with an error code when <code>run-script</code> is invoked for
+a script that isn&#39;t defined in the <code>scripts</code> section of <code>package.json</code>. This
+option can be used when it&#39;s desirable to optionally run a script when it&#39;s
+present and fail if the script fails. This is useful, for example, when running
+scripts that may only apply for some builds in an otherwise generic CI setup.</p>
 <h3 id="ignore-scripts">ignore-scripts</h3>
 <ul>
 <li>Default: false</li>
index 5cd1848..2a9cb82 100644 (file)
@@ -2,7 +2,7 @@
 <h2 id="synopsis">SYNOPSIS</h2>
 <ol>
 <li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
-<li>Email the author, CC <a href="&#x6d;&#x61;&#105;&#x6c;&#x74;&#x6f;&#x3a;&#x73;&#117;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;">&#x73;&#117;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#x6d;</a></li>
+<li>Email the author, CC <a href="&#x6d;&#97;&#x69;&#108;&#116;&#x6f;&#x3a;&#x73;&#x75;&#x70;&#x70;&#x6f;&#114;&#x74;&#64;&#110;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#111;&#x6d;">&#x73;&#x75;&#x70;&#x70;&#x6f;&#114;&#x74;&#64;&#110;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#111;&#x6d;</a></li>
 <li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
 </ol>
 <p>Don&#39;t squat on package names.  Publish code or move out of the way.</p>
@@ -40,12 +40,12 @@ Joe&#39;s appropriate course of action in each case is the same.</p>
 owner (Bob).</li>
 <li>Joe emails Bob, explaining the situation <strong>as respectfully as
 possible</strong>, and what he would like to do with the module name.  He
-adds the npm support staff <a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#x6f;&#x6d;">&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#x6f;&#x6d;</a> to the CC list of
+adds the npm support staff <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#111;&#58;&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#46;&#99;&#111;&#x6d;">&#115;&#117;&#x70;&#112;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#46;&#99;&#111;&#x6d;</a> to the CC list of
 the email.  Mention in the email that Bob can run <code>npm owner add
 joe foo</code> to add Joe as an owner of the <code>foo</code> package.</li>
 <li>After a reasonable amount of time, if Bob has not responded, or if
 Bob and Joe can&#39;t come to any sort of resolution, email support
-<a href="&#x6d;&#97;&#x69;&#x6c;&#x74;&#111;&#x3a;&#x73;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#112;&#x6d;&#106;&#x73;&#x2e;&#99;&#111;&#x6d;">&#x73;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#112;&#x6d;&#106;&#x73;&#x2e;&#99;&#111;&#x6d;</a> and we&#39;ll sort it out.  (&quot;Reasonable&quot; is
+<a href="&#109;&#x61;&#x69;&#108;&#116;&#111;&#58;&#x73;&#117;&#112;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#x6d;">&#x73;&#117;&#112;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#x6d;</a> and we&#39;ll sort it out.  (&quot;Reasonable&quot; is
 usually at least 4 weeks, but extra time is allowed around common
 holidays.)</li>
 </ol>
index e497646..60db91f 100644 (file)
@@ -225,7 +225,7 @@ that has a package.json in its root, or a git url.
 <p>To check if the registry is down, open up
 <a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a> in a web browser.  This will also tell
 you if you are just unable to access the internet for some reason.</p>
-<p>If the registry IS down, let us know by emailing <a href="&#109;&#x61;&#105;&#x6c;&#x74;&#111;&#58;&#x73;&#x75;&#x70;&#x70;&#111;&#x72;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#x6d;">&#x73;&#x75;&#x70;&#x70;&#111;&#x72;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#x6d;</a>
+<p>If the registry IS down, let us know by emailing <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#x6f;&#x3a;&#115;&#x75;&#112;&#x70;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#x6f;&#109;">&#115;&#x75;&#112;&#x70;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#x6f;&#109;</a>
 or posting an issue at <a href="https://github.com/npm/npm/issues">https://github.com/npm/npm/issues</a>.  If it&#39;s
 down for the world (and not just on your local network) then we&#39;re
 probably already being pinged about it.</p>
index 1e68be4..8a152f3 100644 (file)
@@ -30,41 +30,23 @@ stop and start scripts if no <code>restart</code> script is provided.</li>
 run-script &lt;pkg&gt; &lt;stage&gt;</code>. <em>Pre</em> and <em>post</em> commands with matching
 names will be run for those as well (e.g. <code>premyscript</code>, <code>myscript</code>,
 <code>postmyscript</code>).</p>
-<h2 id="note-install-scripts-are-an-antipattern">NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN</h2>
-<p><strong>tl;dr</strong> Don&#39;t use <code>install</code>.  Use a <code>.gyp</code> file for compilation, and
-<code>prepublish</code> for anything else.</p>
-<p>You should almost never have to explicitly set a <code>preinstall</code> or
-<code>install</code> script.  If you are doing this, please consider if there is
-another option.</p>
-<p>The only valid use of <code>install</code> or <code>preinstall</code> scripts is for
-compilation which must be done on the target architecture.  In early
-versions of node, this was often done using the <code>node-waf</code> scripts, or
-a standalone <code>Makefile</code>, and early versions of npm required that it be
-explicitly set in package.json.  This was not portable, and harder to
-do properly.</p>
-<p>In the current version of node, the standard way to do this is using a
-<code>.gyp</code> file.  If you have a file with a <code>.gyp</code> extension in the root
-of your package, then npm will run the appropriate <code>node-gyp</code> commands
-automatically at install time.  This is the only officially supported
-method for compiling binary addons, and does not require that you add
-anything to your package.json file.</p>
-<p>If you have to do other things before your package is used, in a way
+<h2 id="common-uses">COMMON USES</h2>
+<p>If you need to perform operations on your package before it is used, in a way
 that is not dependent on the operating system or architecture of the
-target system, then use a <code>prepublish</code> script instead.  This includes
+target system, use a <code>prepublish</code> script.  This includes
 tasks such as:</p>
 <ul>
-<li>Compile CoffeeScript source code into JavaScript.</li>
-<li>Create minified versions of JavaScript source code.</li>
+<li>Compiling CoffeeScript source code into JavaScript.</li>
+<li>Creating minified versions of JavaScript source code.</li>
 <li>Fetching remote resources that your package will use.</li>
 </ul>
-<p>The advantage of doing these things at <code>prepublish</code> time instead of
-<code>preinstall</code> or <code>install</code> time is that they can be done once, in a
-single place, and thus greatly reduce complexity and variability.
+<p>The advantage of doing these things at <code>prepublish</code> time is that they can be done once, in a
+single place, thus reducing complexity and variability.
 Additionally, this means that:</p>
 <ul>
 <li>You can depend on <code>coffee-script</code> as a <code>devDependency</code>, and thus
 your users don&#39;t need to have it installed.</li>
-<li>You don&#39;t need to include the minifiers in your package, reducing
+<li>You don&#39;t need to include minifiers in your package, reducing
 the size for your users.</li>
 <li>You don&#39;t need to rely on your users having <code>curl</code> or <code>wget</code> or
 other system tools on the target machines.</li>
@@ -185,6 +167,11 @@ probably set it up that way for a reason.</li>
 <li>Don&#39;t prefix your script commands with &quot;sudo&quot;.  If root permissions
 are required for some reason, then it&#39;ll fail with that error, and
 the user will sudo the npm command in question.</li>
+<li>Don&#39;t use <code>install</code>. Use a <code>.gyp</code> file for compilation, and <code>prepublish</code>
+for anything else. You should almost never have to explicitly set a
+preinstall or install script. If you are doing this, please consider if
+there is another option. The only valid use of <code>install</code> or <code>preinstall</code>
+scripts is for compilation which must be done on the target architecture.</li>
 </ul>
 <h2 id="see-also">SEE ALSO</h2>
 <ul>
index fabbbaf..306d9bb 100644 (file)
@@ -13,14 +13,9 @@ var npm = require("./npm.js")
   , mapToRegistry = require("./utils/map-to-registry.js")
 
 bugs.completion = function (opts, cb) {
-  if (opts.conf.argv.remain.length > 2) return cb()
-  mapToRegistry("-/short", npm.config, function (er, uri, auth) {
-    if (er) return cb(er)
-
-    npm.registry.get(uri, { timeout : 60000, auth : auth }, function (er, list) {
-      return cb(null, list || [])
-    })
-  })
+  // FIXME: there used to be registry completion here, but it stopped making
+  // sense somewhere around 50,000 packages on the registry
+  cb()
 }
 
 function bugs (args, cb) {
index c829a4f..974c158 100644 (file)
@@ -188,7 +188,9 @@ function resolveHead (p, u, co, origUrl, cb) {
       parsed.hash = stdout
       var resolved = url.format(parsed)
 
-      if (parsed.protocol !== "git:") resolved = "git+" + resolved
+      if (!/^git[+:]/.test(parsed.protocol)) {
+        resolved = "git+" + resolved
+      }
 
       // https://github.com/npm/npm/issues/3224
       // node incorrectly sticks a / at the start of the path We know that the
index 5ecdb69..e240991 100644 (file)
@@ -11,7 +11,7 @@ module.exports = function maybeGithub (p, cb) {
 
   return addRemoteGit(u, true, function (er, data) {
     if (er) {
-      var upriv = "git+ssh://git@github.com:" + p
+      var upriv = "ssh://git@github.com:" + p
       log.info("maybeGithub", "Attempting %s from %s", p, upriv)
 
       return addRemoteGit(upriv, false, function (er, data) {
index a46e74b..e49ce21 100644 (file)
@@ -160,6 +160,7 @@ Object.defineProperty(exports, "defaults", {get: function () {
     , group : process.platform === "win32" ? 0
             : process.env.SUDO_GID || (process.getgid && process.getgid())
     , heading: "npm"
+    , "if-present": false
     , "ignore-scripts": false
     , "init-module": path.resolve(home, ".npm-init.js")
     , "init-author-name" : ""
@@ -262,6 +263,7 @@ exports.types =
   , "https-proxy" : [null, url]
   , "user-agent" : String
   , "heading": String
+  , "if-present": Boolean
   , "ignore-scripts": Boolean
   , "init-module": path
   , "init-author-name" : String
index 9abe740..0de2349 100644 (file)
@@ -11,13 +11,9 @@ var npm = require("./npm.js")
   , mapToRegistry = require("./utils/map-to-registry.js")
 
 docs.completion = function (opts, cb) {
-  mapToRegistry("/-/short", npm.config, function (er, uri, auth) {
-    if (er) return cb(er)
-
-    npm.registry.get(uri, { timeout : 60000, auth : auth }, function (er, list) {
-      return cb(null, list || [])
-    })
-  })
+  // FIXME: there used to be registry completion here, but it stopped making
+  // sense somewhere around 50,000 packages on the registry
+  cb()
 }
 
 function url (json) {
index 07d9219..cb1d571 100644 (file)
@@ -59,19 +59,23 @@ function help (args, cb) {
   var manroot = path.resolve(__dirname, "..", "man")
 
   // legacy
-  if (section === "global")
-    section = "folders"
-  else if (section === "json")
-    section = "package.json"
+  if (section === "global") section = "folders"
+  else if (section === "json") section = "package.json"
 
   // find either /section.n or /npm-section.n
-  var f = "+(npm-" + section + "|" + section + ").[0-9]"
+  var compext = "\\.+(gz|bz2|lzma|[FYzZ]|xz)$"
+  var f = "+(npm-" + section + "|" + section + ").[0-9]?(" + compext + ")"
   return glob(manroot + "/*/" + f, function (er, mans) {
-    if (er)
-      return cb(er)
+    if (er) return cb(er)
+
+    if (!mans.length) return npm.commands["help-search"](args, cb)
 
-    if (!mans.length)
-      return npm.commands["help-search"](args, cb)
+    mans = mans.map(function (man) {
+      var ext = path.extname(man)
+      if (man.match(new RegExp(compext))) man = path.basename(man, ext)
+
+      return man
+    })
 
     viewMan(pickMan(mans, pref), cb)
   })
index 7fa9058..73580e5 100644 (file)
@@ -32,38 +32,58 @@ install.completion = function (opts, cb) {
   // install can complete to a folder with a package.json, or any package.
   // if it has a slash, then it's gotta be a folder
   // if it starts with https?://, then just give up, because it's a url
-  // for now, not yet implemented.
-  mapToRegistry("-/short", npm.config, function (er, uri, auth) {
-    if (er) return cb(er)
-
-    var options = { auth : auth }
-    npm.registry.get(uri, options, function (er, pkgs) {
-      if (er) return cb()
-      if (!opts.partialWord) return cb(null, pkgs)
+  if (/^https?:\/\//.test(opts.partialWord)) {
+    // do not complete to URLs
+    return cb(null, [])
+  }
 
-      var name = npa(opts.partialWord).name
-      pkgs = pkgs.filter(function (p) {
-        return p.indexOf(name) === 0
+  if (/\//.test(opts.partialWord)) {
+    // Complete fully to folder if there is exactly one match and it
+    // is a folder containing a package.json file.  If that is not the
+    // case we return 0 matches, which will trigger the default bash
+    // complete.
+    var lastSlashIdx = opts.partialWord.lastIndexOf("/")
+    var partialName = opts.partialWord.slice(lastSlashIdx + 1)
+    var partialPath = opts.partialWord.slice(0, lastSlashIdx)
+    if (partialPath === "") partialPath = "/"
+
+    function annotatePackageDirMatch (sibling, cb) {
+      var fullPath = path.join(partialPath, sibling)
+      if (sibling.slice(0, partialName.length) !== partialName) {
+        return cb(null, null) // not name match
+      }
+      fs.readdir(fullPath, function (err, contents) {
+        if (err) return cb(null, { isPackage: false })
+
+        cb(
+          null,
+          {
+            fullPath: fullPath,
+            isPackage: contents.indexOf("package.json") !== -1
+          }
+        )
       })
+    }
 
-      if (pkgs.length !== 1 && opts.partialWord === name) {
-        return cb(null, pkgs)
-      }
+    return fs.readdir(partialPath, function (err, siblings) {
+      if (err) return cb(null, []) // invalid dir: no matching
 
-      mapToRegistry(pkgs[0], npm.config, function (er, uri) {
-        if (er) return cb(er)
+      asyncMap(siblings, annotatePackageDirMatch, function (err, matches) {
+        if (err) return cb(err)
 
-        npm.registry.get(uri, options, function (er, d) {
-          if (er) return cb()
-          return cb(null, Object.keys(d["dist-tags"] || {})
-                    .concat(Object.keys(d.versions || {}))
-                    .map(function (t) {
-                      return pkgs[0] + "@" + t
-                    }))
-        })
+        var cleaned = matches.filter(function (x) { return x !== null })
+        if (cleaned.length !== 1) return cb(null, [])
+        if (!cleaned[0].isPackage) return cb(null, [])
+
+        // Success - only one match and it is a package dir
+        return cb(null, [cleaned[0].fullPath])
       })
     })
-  })
+  }
+
+  // FIXME: there used to be registry completion here, but it stopped making
+  // sense somewhere around 50,000 packages on the registry
+  cb()
 }
 
 var npm = require("./npm.js")
index eee4f27..05166ee 100644 (file)
@@ -40,6 +40,7 @@ function ls (args, silent, cb) {
   var opt = { depth: depth, log: log.warn, dev: true }
   readInstalled(dir, opt, function (er, data) {
     pruneNestedExtraneous(data)
+    filterByEnv(data)
     var bfs = bfsify(data, args)
       , lite = getLite(bfs)
 
@@ -88,6 +89,21 @@ function pruneNestedExtraneous (data, visited) {
   }
 }
 
+function filterByEnv (data) {
+  var dev = npm.config.get("dev")
+  var production = npm.config.get("production")
+  if (dev === production) return
+  var dependencies = {}
+  var devDependencies = data.devDependencies || []
+  Object.keys(data.dependencies).forEach(function (name) {
+    var keys = Object.keys(devDependencies)
+    if (production && keys.indexOf(name) !== -1) return
+    if (dev && keys.indexOf(name) === -1) return
+    dependencies[name] = data.dependencies[name]
+  })
+  data.dependencies = dependencies
+}
+
 function alphasort (a, b) {
   a = a.toLowerCase()
   b = b.toLowerCase()
index 25b7fea..3cd21ca 100644 (file)
@@ -224,7 +224,7 @@ Object.keys(abbrevs).concat(plumbing).forEach(function addCommand (c) {
     })
 
     return commandCache[a]
-  }, enumerable: fullList.indexOf(c) !== -1 })
+  }, enumerable: fullList.indexOf(c) !== -1, configurable: true })
 
   // make css-case commands callable via camelCase as well
   if (c.match(/\-([a-z])/)) {
index 3d33a93..c9adb79 100644 (file)
@@ -26,12 +26,9 @@ owner.completion = function (opts, cb) {
     var byUser, theUser
     switch (argv[2]) {
       case "ls":
-        if (argv.length > 3) return cb()
-        return mapToRegistry("-/short", npm.config, function (er, uri, auth) {
-          if (er) return cb(er)
-
-          npm.registry.get(uri, { auth : auth }, cb)
-        })
+        // FIXME: there used to be registry completion here, but it stopped
+        // making sense somewhere around 50,000 packages on the registry
+        return cb()
 
       case "rm":
         if (argv.length > 3) {
index 3db4a16..1b04547 100644 (file)
@@ -15,14 +15,9 @@ var npm = require("./npm.js")
   , npa = require("npm-package-arg")
 
 repo.completion = function (opts, cb) {
-  if (opts.conf.argv.remain.length > 2) return cb()
-  mapToRegistry("/-/short", npm.config, function (er, uri) {
-    if (er) return cb(er)
-
-    npm.registry.get(uri, { timeout : 60000 }, function (er, list) {
-      return cb(null, list || [])
-    })
-  })
+  // FIXME: there used to be registry completion here, but it stopped making
+  // sense somewhere around 50,000 packages on the registry
+  cb()
 }
 
 function repo (args, cb) {
index ce8ea0f..b6aa5fe 100644 (file)
@@ -84,31 +84,56 @@ function runScript (args, cb) {
 
 function list(cb) {
   var json = path.join(npm.localPrefix, "package.json")
+  var cmdList = [ "publish", "install", "uninstall"
+                , "test", "stop", "start", "restart"
+                ].reduce(function (l, p) {
+                  return l.concat(["pre" + p, p, "post" + p])
+                }, [])
   return readJson(json, function(er, d) {
     if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
     if (er) d = {}
-    var scripts = Object.keys(d.scripts || {})
+    var allScripts = Object.keys(d.scripts || {})
+    var scripts = []
+    var runScripts = []
+    allScripts.forEach(function (script) {
+      if (cmdList.indexOf(script) !== -1) scripts.push(script)
+      else runScripts.push(script)
+    })
 
     if (log.level === "silent") {
-      return cb(null, scripts)
+      return cb(null, allScripts)
     }
 
     if (npm.config.get("json")) {
       console.log(JSON.stringify(d.scripts || {}, null, 2))
-      return cb(null, scripts)
+      return cb(null, allScripts)
+    }
+
+    if (npm.config.get("parseable")) {
+      allScripts.forEach(function(script) {
+        console.log(script + ":" + d.scripts[script])
+      })
+      return cb(null, allScripts)
     }
 
-    var s = ":"
-    var prefix = ""
-    if (!npm.config.get("parseable")) {
-      s = "\n    "
-      prefix = "  "
-      console.log("Available scripts in the %s package:", d.name)
+    var s = "\n    "
+    var prefix = "  "
+    if (scripts.length) {
+      console.log("Lifecycle scripts included in %s:", d.name)
     }
     scripts.forEach(function(script) {
       console.log(prefix + script + s + d.scripts[script])
     })
-    return cb(null, scripts)
+    if (!scripts.length && runScripts.length) {
+      console.log("Scripts available in %s via `npm run-script`:", d.name)
+    }
+    else if (runScripts.length) {
+      console.log("\navailable via `npm run-script`:")
+    }
+    runScripts.forEach(function(script) {
+      console.log(prefix + script + s + d.scripts[script])
+    })
+    return cb(null, allScripts)
   })
 }
 
@@ -116,7 +141,7 @@ function run (pkg, wd, cmd, args, cb) {
   if (!pkg.scripts) pkg.scripts = {}
 
   var cmds
-  if (cmd === "restart") {
+  if (cmd === "restart" && !pkg.scripts.restart) {
     cmds = [
       "prestop", "stop", "poststop",
       "restart",
@@ -134,6 +159,8 @@ function run (pkg, wd, cmd, args, cb) {
           log.verbose("run-script using default platform env: env (Unix)")
           pkg.scripts[cmd] = "env"
         }
+      } else if (npm.config.get("if-present")) {
+        return cb(null);
       } else {
         return cb(new Error("missing script: " + cmd))
       }
index d2e69de..1f32433 100644 (file)
@@ -10,17 +10,9 @@ star.usage = "npm star <package> [pkg, pkg, ...]\n"
            + "npm unstar <package> [pkg, pkg, ...]"
 
 star.completion = function (opts, cb) {
-  mapToRegistry("-/short", npm.config, function (er, uri, auth) {
-    if (er) return cb(er)
-
-    var params = {
-      timeout : 60000,
-      auth    : auth
-    }
-    npm.registry.get(uri, params, function (er, list) {
-      return cb(null, list || [])
-    })
-  })
+  // FIXME: there used to be registry completion here, but it stopped making
+  // sense somewhere around 50,000 packages on the registry
+  cb()
 }
 
 function star (args, cb) {
index 68869f5..600c681 100644 (file)
@@ -28,12 +28,11 @@ function uninstall (args, cb) {
   if (args.length) return uninstall_(args, nm, cb)
 
   // remove this package from the global space, if it's installed there
-  if (npm.config.get("global")) return cb(uninstall.usage)
-  readJson(path.resolve(npm.prefix, "package.json"), function (er, pkg) {
+  readJson(path.resolve(npm.localPrefix, "package.json"), function (er, pkg) {
     if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
     if (er) return cb(uninstall.usage)
     uninstall_( [pkg.name]
-              , npm.dir
+              , npm.globalDir
               , cb )
   })
 
index d027590..3c7a359 100755 (executable)
@@ -21,10 +21,10 @@ if type complete &>/dev/null; then
                            2>/dev/null)) || return $?
     IFS="$si"
   }
-  complete -F _npm_completion npm
+  complete -o default -F _npm_completion npm
 elif type compdef &>/dev/null; then
   _npm_completion() {
-    si=$IFS
+    local si=$IFS
     compadd -- $(COMP_CWORD=$((CURRENT-1)) \
                  COMP_LINE=$BUFFER \
                  COMP_POINT=0 \
index 12c6dd4..de12c63 100644 (file)
@@ -304,11 +304,15 @@ function errorHandler (er) {
     break
 
   case "ETARGET":
-    log.error("notarget", [er.message
+    var msg = [er.message
               ,"This is most likely not a problem with npm itself."
               ,"In most cases you or one of your dependencies are requesting"
               ,"a package version that doesn't exist."
-              ].join("\n"))
+              ]
+      if (er.parent) {
+        msg.push("\nIt was specified as a dependency of '"+er.parent+"'\n")
+      }
+      log.error("notarget", msg.join("\n"))
     break
 
   case "ENOTSUP":
index 78cb083..a312770 100644 (file)
@@ -18,8 +18,13 @@ function prefixGitArgs () {
 }
 
 function execGit (args, options, cb) {
-  log.info("git", args)
-  return exec(git, prefixGitArgs().concat(args || []), options, cb)
+  log.info('git', args)
+  var fullArgs = prefixGitArgs().concat(args || [])
+  return exec(git, fullArgs, options, function (err) {
+    if (err) log.error('git', fullArgs.join(' '))
+
+    cb.apply(null, arguments)
+  })
 }
 
 function spawnGit (args, options) {
index bd20ab5..47da39b 100644 (file)
@@ -14,11 +14,9 @@ var npm = require("./npm.js")
 
 view.completion = function (opts, cb) {
   if (opts.conf.argv.remain.length <= 2) {
-    return mapToRegistry("-/short", npm.config, function (er, uri, auth) {
-      if (er) return cb(er)
-
-      npm.registry.get(uri, { auth : auth }, cb)
-    })
+    // FIXME: there used to be registry completion here, but it stopped making
+    // sense somewhere around 50,000 packages on the registry
+    return cb()
   }
   // have the package, get the fields.
   var tag = npm.config.get("tag")
index aa6c297..6f1d12f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "February 2015" "" ""
+.TH "NPM" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm\fR \- a JavaScript package manager
 .P
index 2ea011b..a8ac57e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-ACCESS" "1" "February 2015" "" ""
+.TH "NPM\-ACCESS" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-access\fR \- Set access level on published packages
 .SH SYNOPSIS
index df4372e..ed2a8bc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-ADDUSER" "1" "February 2015" "" ""
+.TH "NPM\-ADDUSER" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-adduser\fR \- Add a registry user account
 .SH SYNOPSIS
index 26d14df..5b604fa 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-BIN" "1" "February 2015" "" ""
+.TH "NPM\-BIN" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-bin\fR \- Display npm bin folder
 .SH SYNOPSIS
index 94eec9f..a0fdc0d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-BUGS" "1" "February 2015" "" ""
+.TH "NPM\-BUGS" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
 .SH SYNOPSIS
index 42f084d..4653ccc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-BUILD" "1" "February 2015" "" ""
+.TH "NPM\-BUILD" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-build\fR \- Build a package
 .SH SYNOPSIS
index 4da2943..a8b2e21 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-BUNDLE" "1" "February 2015" "" ""
+.TH "NPM\-BUNDLE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-bundle\fR \- REMOVED
 .SH DESCRIPTION
index 5ebf49d..4beaf5d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-CACHE" "1" "February 2015" "" ""
+.TH "NPM\-CACHE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-cache\fR \- Manipulates packages cache
 .SH SYNOPSIS
index 22110a3..42142ac 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-COMPLETION" "1" "February 2015" "" ""
+.TH "NPM\-COMPLETION" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-completion\fR \- Tab Completion for npm
 .SH SYNOPSIS
index 0b14aef..0c9334f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "1" "February 2015" "" ""
+.TH "NPM\-CONFIG" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-config\fR \- Manage the npm configuration files
 .SH SYNOPSIS
index 3ffdf83..0f0f8d1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DEDUPE" "1" "February 2015" "" ""
+.TH "NPM\-DEDUPE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-dedupe\fR \- Reduce duplication
 .SH SYNOPSIS
index d2a6c89..936713e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DEPRECATE" "1" "February 2015" "" ""
+.TH "NPM\-DEPRECATE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-deprecate\fR \- Deprecate a version of a package
 .SH SYNOPSIS
index 28c3c3d..1833529 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DIST\-TAG" "1" "February 2015" "" ""
+.TH "NPM\-DIST\-TAG" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-dist-tag\fR \- Modify package distribution tags
 .SH SYNOPSIS
index 2835d04..3b6dfa0 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCS" "1" "February 2015" "" ""
+.TH "NPM\-DOCS" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-docs\fR \- Docs for a package in a web browser maybe
 .SH SYNOPSIS
index c260554..e5ca2b3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-EDIT" "1" "February 2015" "" ""
+.TH "NPM\-EDIT" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-edit\fR \- Edit an installed package
 .SH SYNOPSIS
index 527a9f2..e1fd0a0 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLORE" "1" "February 2015" "" ""
+.TH "NPM\-EXPLORE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-explore\fR \- Browse an installed package
 .SH SYNOPSIS
index 3c95739..17a5346 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP\-SEARCH" "1" "February 2015" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-help-search\fR \- Search npm help documentation
 .SH SYNOPSIS
index 3a43adc..eddc08b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP" "1" "February 2015" "" ""
+.TH "NPM\-HELP" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-help\fR \- Get help on npm
 .SH SYNOPSIS
index c145287..1161f17 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-INIT" "1" "February 2015" "" ""
+.TH "NPM\-INIT" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-init\fR \- Interactively create a package\.json file
 .SH SYNOPSIS
@@ -23,6 +23,17 @@ without a really good reason to do so\.
 .P
 If you invoke it with \fB\-f\fR, \fB\-\-force\fR, \fB\-y\fR, or \fB\-\-yes\fR, it will use only
 defaults and not prompt you for any options\.
+.SH CONFIGURATION
+.SS scope
+.RS 0
+.IP \(bu 2
+Default: none
+.IP \(bu 2
+Type: String
+
+.RE
+.P
+The scope under which the new module should be created\.
 .SH SEE ALSO
 .RS 0
 .IP \(bu 2
@@ -31,6 +42,8 @@ https://github\.com/isaacs/init\-package\-json
 npm help 5 package\.json
 .IP \(bu 2
 npm help version
+.IP \(bu 2
+npm help 7 scope
 
 .RE
 
index db564b2..3f01a60 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL" "1" "February 2015" "" ""
+.TH "NPM\-INSTALL" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-install\fR \- Install a package
 .SH SYNOPSIS
@@ -52,9 +52,10 @@ after packing it up into a tarball (b)\.
   In global mode (ie, with \fB\-g\fR or \fB\-\-global\fR appended to the command),
   it installs the current package context (ie, the current working
   directory) as a global package\.
-  By default, \fBnpm install\fR will install all modules listed as
-  dependencies\. With the \fB\-\-production\fR flag,
-  npm will not install modules listed in \fBdevDependencies\fR\|\.
+  By default, \fBnpm install\fR will install all modules listed as dependencies\.
+  With the \fB\-\-production\fR flag (or when the \fBNODE_ENV\fR environment variable
+  is set to \fBproduction\fR), npm will not install modules listed in
+  \fBdevDependencies\fR\|\.
 .IP \(bu 2
 \fBnpm install <folder>\fR:
   Install a package that is sitting in a folder on the filesystem\.
index 6c4f04f..57bd6d9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-LINK" "1" "February 2015" "" ""
+.TH "NPM\-LINK" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-link\fR \- Symlink a package folder
 .SH SYNOPSIS
index 9d56285..1ad6b90 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-LOGOUT" "1" "February 2015" "" ""
+.TH "NPM\-LOGOUT" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-logout\fR \- Log out of the registry
 .SH SYNOPSIS
index 553afb6..4f0b0e9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-LS" "1" "February 2015" "" ""
+.TH "NPM\-LS" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-ls\fR \- List installed packages
 .SH SYNOPSIS
@@ -23,7 +23,7 @@ For example, running \fBnpm ls promzard\fR in npm's source tree will show:
 .P
 .RS 2
 .nf
-npm@2.6.1 /path/to/npm
+npm@2.7.0 /path/to/npm
 â””─┬ init\-package\-json@0\.0\.4
   â””── promzard@0\.1\.5
 .fi
@@ -86,6 +86,26 @@ Type: Int
 .RE
 .P
 Max display depth of the dependency tree\.
+.SS prod / production
+.RS 0
+.IP \(bu 2
+Type: Boolean
+.IP \(bu 2
+Default: false
+
+.RE
+.P
+Display only the dependency tree for packages in \fBdependencies\fR\|\.
+.SS dev
+.RS 0
+.IP \(bu 2
+Type: Boolean
+.IP \(bu 2
+Default: false
+
+.RE
+.P
+Display only the dependency tree for packages in \fBdevDependencies\fR\|\.
 .SH SEE ALSO
 .RS 0
 .IP \(bu 2
index 002fe88..c510fea 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-OUTDATED" "1" "February 2015" "" ""
+.TH "NPM\-OUTDATED" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-outdated\fR \- Check for outdated packages
 .SH SYNOPSIS
index adb6d9d..7ceaddc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-OWNER" "1" "February 2015" "" ""
+.TH "NPM\-OWNER" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-owner\fR \- Manage package owners
 .SH SYNOPSIS
index b52ee1c..96e6f70 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PACK" "1" "February 2015" "" ""
+.TH "NPM\-PACK" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-pack\fR \- Create a tarball from a package
 .SH SYNOPSIS
index d22601a..339896a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PREFIX" "1" "February 2015" "" ""
+.TH "NPM\-PREFIX" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-prefix\fR \- Display prefix
 .SH SYNOPSIS
index 31d1c5c..7a34afe 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PRUNE" "1" "February 2015" "" ""
+.TH "NPM\-PRUNE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-prune\fR \- Remove extraneous packages
 .SH SYNOPSIS
index 0ffb528..c763aa6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PUBLISH" "1" "February 2015" "" ""
+.TH "NPM\-PUBLISH" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-publish\fR \- Publish a package
 .SH SYNOPSIS
index b5b89c9..e6cb6c1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-REBUILD" "1" "February 2015" "" ""
+.TH "NPM\-REBUILD" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-rebuild\fR \- Rebuild a package
 .SH SYNOPSIS
index d9cd844..5097e10 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-REPO" "1" "February 2015" "" ""
+.TH "NPM\-REPO" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-repo\fR \- Open package repository page in the browser
 .SH SYNOPSIS
index a769e21..0cdde8b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-RESTART" "1" "February 2015" "" ""
+.TH "NPM\-RESTART" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-restart\fR \- Restart a package
 .SH SYNOPSIS
index e2441e4..26f4dad 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-RM" "1" "February 2015" "" ""
+.TH "NPM\-RM" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-rm\fR \- Remove a package
 .SH SYNOPSIS
index 43f28d4..10855e1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-ROOT" "1" "February 2015" "" ""
+.TH "NPM\-ROOT" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-root\fR \- Display npm root
 .SH SYNOPSIS
index 879fcca..b095ddb 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-RUN\-SCRIPT" "1" "February 2015" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-run-script\fR \- Run arbitrary package scripts
 .SH SYNOPSIS
@@ -11,16 +11,11 @@ npm run [command] [\-\- <args>]
 .RE
 .SH DESCRIPTION
 .P
-This runs an arbitrary command from a package's \fB"scripts"\fR object\.
-If no package name is provided, it will search for a \fBpackage\.json\fR
-in the current folder and use its \fB"scripts"\fR object\. If no \fB"command"\fR
-is provided, it will list the available top level scripts\. The \fBenv\fR command
-can be used to list environment variables that will be available to the script
-at runtime\. If an "env" command is defined in your package it will have
-precedence instead\.
-.P
-\fBrun[\-script]\fR is used by the test, start, restart, and stop commands, but can
-be called directly, as well\.
+This runs an arbitrary command from a package's \fB"scripts"\fR object\.  If no
+\fB"command"\fR is provided, it will list the available scripts\.  \fBrun[\-script]\fR is
+used by the test, start, restart, and stop commands, but can be called
+directly, as well\. When the scripts in the package are printed out, they're
+separated into lifecycle (test, start, restart) and directly\-run scripts\.
 .P
 As of \fBnpm@2\.0\.0\fR \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can
 use custom arguments when executing scripts\. The special option \fB\-\-\fR is used by
@@ -35,6 +30,11 @@ npm run test \-\- \-\-grep="pattern"
 .P
 The arguments will only be passed to the script specified after \fBnpm run\fR
 and not to any pre or post script\.
+.P
+The \fBenv\fR script is a special built\-in command that can be used to list
+environment variables that will be available to the script at runtime\. If an
+"env" command is defined in your package it will take precedence over the
+built\-in\.
 .SH SEE ALSO
 .RS 0
 .IP \(bu 2
index 316060d..0498953 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-SEARCH" "1" "February 2015" "" ""
+.TH "NPM\-SEARCH" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-search\fR \- Search for packages
 .SH SYNOPSIS
index 5d3649e..d416f66 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP" "1" "February 2015" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-shrinkwrap\fR \- Lock down dependency versions
 .SH SYNOPSIS
index 0912712..b249df6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-STAR" "1" "February 2015" "" ""
+.TH "NPM\-STAR" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-star\fR \- Mark your favorite packages
 .SH SYNOPSIS
index 8aa6ae2..2320a0c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-STARS" "1" "February 2015" "" ""
+.TH "NPM\-STARS" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-stars\fR \- View packages marked as favorites
 .SH SYNOPSIS
index 574281b..5cd7012 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-START" "1" "February 2015" "" ""
+.TH "NPM\-START" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-start\fR \- Start a package
 .SH SYNOPSIS
index f0fb715..6f4de89 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-STOP" "1" "February 2015" "" ""
+.TH "NPM\-STOP" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-stop\fR \- Stop a package
 .SH SYNOPSIS
index eb0549e..91530fc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-TAG" "1" "February 2015" "" ""
+.TH "NPM\-TAG" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-tag\fR \- Tag a published version
 .SH SYNOPSIS
index c0b873f..0a4e9e0 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-TEST" "1" "February 2015" "" ""
+.TH "NPM\-TEST" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-test\fR \- Test a package
 .SH SYNOPSIS
index d79721b..29fe20a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-RM" "1" "February 2015" "" ""
+.TH "NPM\-RM" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-rm\fR \- Remove a package
 .SH SYNOPSIS
index 906f630..463e925 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-UNPUBLISH" "1" "February 2015" "" ""
+.TH "NPM\-UNPUBLISH" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-unpublish\fR \- Remove a package from the registry
 .SH SYNOPSIS
index b200ad9..a8ee566 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-UPDATE" "1" "February 2015" "" ""
+.TH "NPM\-UPDATE" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-update\fR \- Update a package
 .SH SYNOPSIS
@@ -11,7 +11,7 @@ npm update [\-g] [<name> [<name> \.\.\.]]
 .SH DESCRIPTION
 .P
 This command will update all the packages listed to the latest version
-(specified by the \fBtag\fR config)\.
+(specified by the \fBtag\fR config), respecting semver\.
 .P
 It will also install missing packages\. As with all commands that install
 packages, the \fB\-\-dev\fR flag will cause \fBdevDependencies\fR to be processed
@@ -22,6 +22,139 @@ packages\.
 .P
 If no package name is specified, all packages in the specified location (global
 or local) will be updated\.
+.P
+As of \fBnpm@2\.6\.1\fR, the \fBnpm update\fR will only inspect top\-level packages\.
+Prior versions of \fBnpm\fR would also recursively inspect all dependencies\.
+To get the old behavior, use \fBnpm \-\-depth 9999 update\fR, but be warned that
+simultaneous asynchronous update of all packages, including \fBnpm\fR itself
+and packages that \fBnpm\fR depends on, often causes problems up to and including
+the uninstallation of \fBnpm\fR itself\.
+.P
+To restore a missing \fBnpm\fR, use the command:
+.P
+.RS 2
+.nf
+curl \-L https://npmjs\.com/install\.sh | sh
+.fi
+.RE
+.SH EXAMPLES
+.P
+IMPORTANT VERSION NOTE: these examples assume \fBnpm@2\.6\.1\fR or later\.  For
+older versions of \fBnpm\fR, you must specify \fB\-\-depth 0\fR to get the behavior
+described below\.
+.P
+For the examples below, assume that the current package is \fBapp\fR and it depends
+on dependencies, \fBdep1\fR (\fBdep2\fR, \.\. etc\.)\.  The published versions of \fBdep1\fR are:
+.P
+.RS 2
+.nf
+{
+  dist\-tags: { latest: "1\.2\.2" },
+  versions: { "1\.2\.2",
+              "1\.2\.1",
+              "1\.2\.0",
+              "1\.1\.2",
+              "1\.1\.1",
+              "1\.0\.0",
+              "0\.4\.1",
+              "0\.4\.0",
+              "0\.2\.0"
+  }
+}
+.fi
+.RE
+.SS Caret Dependencies
+.P
+If \fBapp\fR\|'s \fBpackage\.json\fR contains:
+.P
+.RS 2
+.nf
+dependencies: {
+  dep1: "^1\.1\.1"
+}
+.fi
+.RE
+.P
+Then \fBnpm update\fR will install \fBdep1@1\.2\.2\fR, because \fB1\.2\.2\fR is \fBlatest\fR and
+\fB1\.2\.2\fR satisfies \fB^1\.1\.1\fR\|\.
+.SS Tilde Dependencies
+.P
+However, if \fBapp\fR\|'s \fBpackage\.json\fR contains:
+.P
+.RS 2
+.nf
+dependencies: {
+  dep1: "~1\.1\.1"
+}
+.fi
+.RE
+.P
+In this case, running \fBnpm update\fR will install \fBdep1@1\.1\.2\fR\|\.  Even though the \fBlatest\fR
+tag points to \fB1\.2\.2\fR, this version does not satisfy \fB~1\.1\.1\fR, which is equivalent
+to \fB>=1\.1\.1 <1\.2\.0\fR\|\.  So the highest\-sorting version that satisfies \fB~1\.1\.1\fR is used,
+which is \fB1\.1\.2\fR\|\.
+.SS Caret Dependencies below 1\.0\.0
+.P
+Suppose \fBapp\fR has a caret dependency on a version below \fB1\.0\.0\fR, for example:
+.P
+.RS 2
+.nf
+dependencies: {
+  dep1: "^0\.2\.0"
+}
+.fi
+.RE
+.P
+\fBnpm update\fR will install \fBdep1@0\.2\.0\fR, because there are no other
+versions which satisfy \fB^0\.2\.0\fR\|\.
+.P
+If the dependence were on \fB^0\.4\.0\fR:
+.P
+.RS 2
+.nf
+dependencies: {
+  dep1: "^0\.4\.0"
+}
+.fi
+.RE
+.P
+Then \fBnpm update\fR will install \fBdep1@0\.4\.1\fR, because that is the highest\-sorting
+version that satisfies \fB^0\.4\.0\fR (\fB>= 0\.4\.0 <0\.5\.0\fR)
+.SS Recording Updates with \fB\-\-save\fR
+.P
+When you want to update a package and save the new version as
+the minimum required dependency in \fBpackage\.json\fR, you can use
+\fBnpm update \-\-save\fR\|\.  For example if \fBpackage\.json\fR contains
+.P
+.RS 2
+.nf
+dependencies: {
+  dep1: "^1\.1\.1"
+}
+.fi
+.RE
+.P
+Then \fBnpm update \-\-save\fR will install \fBdep1@1\.2\.2\fR (i\.e\., \fBlatest\fR),
+and \fBpackage\.json\fR will be modified:
+.P
+.RS 2
+.nf
+dependencies: {
+  dep1: "^1\.2\.2"
+}
+.fi
+.RE
+.P
+Note that \fBnpm\fR will only write an updated version to \fBpackage\.json\fR
+if it installs a new package\.
+.SS Updating Globally\-Installed Packages
+.P
+\fBnpm update \-g\fR will apply the \fBupdate\fR action to each globally\- installed
+package that is \fBoutdated\fR \-\- that is, has a version that is different from
+\fBlatest\fR\|\.
+.P
+NOTE: If a package has been upgraded to a version newer than \fBlatest\fR, it will
+be \fIdowngraded\fR\|\.
 .SH SEE ALSO
 .RS 0
 .IP \(bu 2
@@ -29,6 +162,8 @@ npm help install
 .IP \(bu 2
 npm help outdated
 .IP \(bu 2
+npm help shrinkwrap
+.IP \(bu 2
 npm help 7 registry
 .IP \(bu 2
 npm help 5 folders
index bbe6784..78921ac 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "1" "February 2015" "" ""
+.TH "NPM\-VERSION" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-version\fR \- Bump a package version
 .SH SYNOPSIS
@@ -18,8 +18,10 @@ valid second argument to semver\.inc (one of "patch", "minor", "major",
 "prepatch", "preminor", "premajor", "prerelease")\. In the second case,
 the existing version will be incremented by 1 in the specified field\.
 .P
-If run in a git repo, it will also create a version commit and tag, and
-fail if the repo is not clean\.
+If run in a git repo, it will also create a version commit and tag, and fail if
+the repo is not clean\.  This behavior is controlled by \fBgit\-tag\-version\fR (see
+below), and can be disabled on the command line by running \fBnpm
+\-\-no\-git\-tag\-version version\fR
 .P
 If supplied with \fB\-\-message\fR (shorthand: \fB\-m\fR) config option, npm will
 use it as a commit message when creating a version commit\.  If the
@@ -48,6 +50,17 @@ user: "isaacs (http://blog\.izs\.me/) <i@izs\.me>"
 Enter passphrase:
 .fi
 .RE
+.SH CONFIGURATION
+.SS git\-tag\-version
+.RS 0
+.IP \(bu 2
+Default: true
+.IP \(bu 2
+Type: Boolean
+
+.RE
+.P
+Commit and tag the version change\.
 .SH SEE ALSO
 .RS 0
 .IP \(bu 2
@@ -56,6 +69,8 @@ npm help init
 npm help 5 package\.json
 .IP \(bu 2
 npm help 7 semver
+.IP \(bu 2
+npm help 7 config
 
 .RE
 
index 187c215..372696f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-VIEW" "1" "February 2015" "" ""
+.TH "NPM\-VIEW" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-view\fR \- View registry info
 .SH SYNOPSIS
index fe2af1e..0d50afb 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-WHOAMI" "1" "February 2015" "" ""
+.TH "NPM\-WHOAMI" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-whoami\fR \- Display npm username
 .SH SYNOPSIS
index bf47dee..4dc3796 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "February 2015" "" ""
+.TH "NPM" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm\fR \- javascript package manager
 .SH SYNOPSIS
@@ -10,7 +10,7 @@ npm <command> [args]
 .RE
 .SH VERSION
 .P
-2.6.1
+2.7.0
 .SH DESCRIPTION
 .P
 npm is the package manager for the Node JavaScript platform\.  It puts
index 667f718..ac236ad 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-BIN" "3" "February 2015" "" ""
+.TH "NPM\-BIN" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-bin\fR \- Display npm bin folder
 .SH SYNOPSIS
index eb8eff1..7b4597e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-BUGS" "3" "February 2015" "" ""
+.TH "NPM\-BUGS" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
 .SH SYNOPSIS
index 88a6c8c..bdd4322 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-CACHE" "3" "February 2015" "" ""
+.TH "NPM\-CACHE" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-cache\fR \- manage the npm cache programmatically
 .SH SYNOPSIS
index e9725c9..61ce8a1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-COMMANDS" "3" "February 2015" "" ""
+.TH "NPM\-COMMANDS" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-commands\fR \- npm commands
 .SH SYNOPSIS
index e0f838a..bd1ab1a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "3" "February 2015" "" ""
+.TH "NPM\-CONFIG" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-config\fR \- Manage the npm configuration files
 .SH SYNOPSIS
index fbbaa69..2abbb24 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DEPRECATE" "3" "February 2015" "" ""
+.TH "NPM\-DEPRECATE" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-deprecate\fR \- Deprecate a version of a package
 .SH SYNOPSIS
index d772f53..e33b356 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCS" "3" "February 2015" "" ""
+.TH "NPM\-DOCS" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-docs\fR \- Docs for a package in a web browser maybe
 .SH SYNOPSIS
index 763c78a..faae5eb 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-EDIT" "3" "February 2015" "" ""
+.TH "NPM\-EDIT" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-edit\fR \- Edit an installed package
 .SH SYNOPSIS
index 4d55360..042b8a5 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLORE" "3" "February 2015" "" ""
+.TH "NPM\-EXPLORE" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-explore\fR \- Browse an installed package
 .SH SYNOPSIS
index 68d29f5..c10fd68 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP\-SEARCH" "3" "February 2015" "" ""
+.TH "NPM\-HELP\-SEARCH" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-help-search\fR \- Search the help pages
 .SH SYNOPSIS
index 9033614..340cf3f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM" "" "February 2015" "" ""
+.TH "NPM" "" "March 2015" "" ""
 .SH "NAME"
 \fBnpm\fR
 .SH SYNOPSIS
index b69cbf9..6c14010 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL" "3" "February 2015" "" ""
+.TH "NPM\-INSTALL" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-install\fR \- install a package programmatically
 .SH SYNOPSIS
index 9db0439..86fef62 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-LINK" "3" "February 2015" "" ""
+.TH "NPM\-LINK" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-link\fR \- Symlink a package folder
 .SH SYNOPSIS
index c5ca93a..fd57800 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-LOAD" "3" "February 2015" "" ""
+.TH "NPM\-LOAD" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-load\fR \- Load config settings
 .SH SYNOPSIS
index df41a3a..eb3eb53 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-LS" "3" "February 2015" "" ""
+.TH "NPM\-LS" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-ls\fR \- List installed packages
 .SH SYNOPSIS
index 2efa235..4921108 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-OUTDATED" "3" "February 2015" "" ""
+.TH "NPM\-OUTDATED" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-outdated\fR \- Check for outdated packages
 .SH SYNOPSIS
index 238f3c5..f95c79a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-OWNER" "3" "February 2015" "" ""
+.TH "NPM\-OWNER" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-owner\fR \- Manage package owners
 .SH SYNOPSIS
index 13fc83a..1a0f591 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PACK" "3" "February 2015" "" ""
+.TH "NPM\-PACK" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-pack\fR \- Create a tarball from a package
 .SH SYNOPSIS
index 68c9f10..5289c9e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PREFIX" "3" "February 2015" "" ""
+.TH "NPM\-PREFIX" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-prefix\fR \- Display prefix
 .SH SYNOPSIS
index 614a551..b50fc9e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PRUNE" "3" "February 2015" "" ""
+.TH "NPM\-PRUNE" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-prune\fR \- Remove extraneous packages
 .SH SYNOPSIS
index cf2be78..2ca3987 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-PUBLISH" "3" "February 2015" "" ""
+.TH "NPM\-PUBLISH" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-publish\fR \- Publish a package
 .SH SYNOPSIS
index b79d996..f0bf761 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-REBUILD" "3" "February 2015" "" ""
+.TH "NPM\-REBUILD" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-rebuild\fR \- Rebuild a package
 .SH SYNOPSIS
index bd0d915..e36b160 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-REPO" "3" "February 2015" "" ""
+.TH "NPM\-REPO" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-repo\fR \- Open package repository page in the browser
 .SH SYNOPSIS
index 5c24f61..8027bd4 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-RESTART" "3" "February 2015" "" ""
+.TH "NPM\-RESTART" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-restart\fR \- Restart a package
 .SH SYNOPSIS
index 5c64d99..0932b77 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-ROOT" "3" "February 2015" "" ""
+.TH "NPM\-ROOT" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-root\fR \- Display npm root
 .SH SYNOPSIS
index e874053..411ffee 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-RUN\-SCRIPT" "3" "February 2015" "" ""
+.TH "NPM\-RUN\-SCRIPT" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-run-script\fR \- Run arbitrary package scripts
 .SH SYNOPSIS
index 895e8ec..071cab9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-SEARCH" "3" "February 2015" "" ""
+.TH "NPM\-SEARCH" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-search\fR \- Search for packages
 .SH SYNOPSIS
index 042e394..da7134c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP" "3" "February 2015" "" ""
+.TH "NPM\-SHRINKWRAP" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-shrinkwrap\fR \- programmatically generate package shrinkwrap file
 .SH SYNOPSIS
index bba1166..fee3872 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-START" "3" "February 2015" "" ""
+.TH "NPM\-START" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-start\fR \- Start a package
 .SH SYNOPSIS
index e1e5363..c177660 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-STOP" "3" "February 2015" "" ""
+.TH "NPM\-STOP" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-stop\fR \- Stop a package
 .SH SYNOPSIS
index ef7e835..4aec0b1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-TAG" "3" "February 2015" "" ""
+.TH "NPM\-TAG" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-tag\fR \- Tag a published version
 .SH SYNOPSIS
index 0e9dfdc..71d40fa 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-TEST" "3" "February 2015" "" ""
+.TH "NPM\-TEST" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-test\fR \- Test a package
 .SH SYNOPSIS
index 7920b01..dacca63 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-UNINSTALL" "3" "February 2015" "" ""
+.TH "NPM\-UNINSTALL" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-uninstall\fR \- uninstall a package programmatically
 .SH SYNOPSIS
index 17c3228..073435f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-UNPUBLISH" "3" "February 2015" "" ""
+.TH "NPM\-UNPUBLISH" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-unpublish\fR \- Remove a package from the registry
 .SH SYNOPSIS
index 81e8690..f5d6885 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-UPDATE" "3" "February 2015" "" ""
+.TH "NPM\-UPDATE" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-update\fR \- Update a package
 .SH SYNOPSIS
@@ -8,11 +8,19 @@
 npm\.commands\.update(packages, callback)
 .fi
 .RE
-.TH "DESCRIPTION" "" "February 2015" "" ""
+.TH "DESCRIPTION" "" "March 2015" "" ""
 .SH "NAME"
 \fBDESCRIPTION\fR
 .P
-Updates a package, upgrading it to the latest version\. It also installs any missing packages\.
+Updates a package, upgrading it to the latest version\. It also installs any
+missing packages\.
 .P
-The 'packages' argument is an array of packages to update\. The 'callback' parameter will be called when done or when an error occurs\.
+The \fBpackages\fR argument is an array of packages to update\. The \fBcallback\fR
+parameter will be called when done or when an error occurs\.
+.SH SEE ALSO
+.RS 0
+.IP \(bu 2
+npm help update
+
+.RE
 
index be5def8..e032f96 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "3" "February 2015" "" ""
+.TH "NPM\-VERSION" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-version\fR \- Bump a package version
 .SH SYNOPSIS
index cbd2dae..1267ff2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-VIEW" "3" "February 2015" "" ""
+.TH "NPM\-VIEW" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-view\fR \- View registry info
 .SH SYNOPSIS
index 81cda1b..6e42700 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-WHOAMI" "3" "February 2015" "" ""
+.TH "NPM\-WHOAMI" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-whoami\fR \- Display npm username
 .SH SYNOPSIS
index dbb61b0..cd71b11 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM" "3" "February 2015" "" ""
+.TH "NPM" "3" "March 2015" "" ""
 .SH "NAME"
 \fBnpm\fR \- javascript package manager
 .SH SYNOPSIS
@@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) {
 .RE
 .SH VERSION
 .P
-2.6.1
+2.7.0
 .SH DESCRIPTION
 .P
 This is the API documentation for npm\.
index 2a945b1..b01d924 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-FOLDERS" "5" "February 2015" "" ""
+.TH "NPM\-FOLDERS" "5" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-folders\fR \- Folder Structures Used by npm
 .SH DESCRIPTION
index 2a945b1..b01d924 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-FOLDERS" "5" "February 2015" "" ""
+.TH "NPM\-FOLDERS" "5" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-folders\fR \- Folder Structures Used by npm
 .SH DESCRIPTION
index fcdfa16..61420de 100644 (file)
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "February 2015" "" ""
+.TH "PACKAGE\.JSON" "5" "March 2015" "" ""
 .SH "NAME"
 \fBpackage.json\fR \- Specifics of npm's package\.json handling
 .SH DESCRIPTION
index a6b00e8..150729d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPMRC" "5" "February 2015" "" ""
+.TH "NPMRC" "5" "March 2015" "" ""
 .SH "NAME"
 \fBnpmrc\fR \- The npm config files
 .SH DESCRIPTION
index fcdfa16..61420de 100644 (file)
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "February 2015" "" ""
+.TH "PACKAGE\.JSON" "5" "March 2015" "" ""
 .SH "NAME"
 \fBpackage.json\fR \- Specifics of npm's package\.json handling
 .SH DESCRIPTION
index 3607b86..bbe6dcc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-CODING\-STYLE" "7" "February 2015" "" ""
+.TH "NPM\-CODING\-STYLE" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-coding-style\fR \- npm's "funny" coding style
 .SH DESCRIPTION
index 77e554f..591da2c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "7" "February 2015" "" ""
+.TH "NPM\-CONFIG" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-config\fR \- More than you probably want to know about npm configuration
 .SH DESCRIPTION
@@ -340,7 +340,7 @@ Type: Number
 
 .RE
 .P
-The depth to go when recursing directories for \fBnpm ls\fR, 
+The depth to go when recursing directories for \fBnpm ls\fR,
 \fBnpm cache ls\fR, and \fBnpm outdated\fR\|\.
 .P
 For \fBnpm outdated\fR, a setting of \fBInfinity\fR will be treated as \fB0\fR
@@ -545,6 +545,20 @@ Type: url
 A proxy to use for outgoing https requests\. If the \fBHTTPS_PROXY\fR or
 \fBhttps_proxy\fR or \fBHTTP_PROXY\fR or \fBhttp_proxy\fR environment variables are set,
 proxy settings will be honored by the underlying \fBrequest\fR library\.
+.SS if\-present
+.RS 0
+.IP \(bu 2
+Default: false
+.IP \(bu 2
+Type: Boolean
+
+.RE
+.P
+If true, npm will not exit with an error code when \fBrun\-script\fR is invoked for
+a script that isn't defined in the \fBscripts\fR section of \fBpackage\.json\fR\|\. This
+option can be used when it's desirable to optionally run a script when it's
+present and fail if the script fails\. This is useful, for example, when running
+scripts that may only apply for some builds in an otherwise generic CI setup\.
 .SS ignore\-scripts
 .RS 0
 .IP \(bu 2
index 76eda3c..9b55e2a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DEVELOPERS" "7" "February 2015" "" ""
+.TH "NPM\-DEVELOPERS" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-developers\fR \- Developer Guide
 .SH DESCRIPTION
index 136d670..de9b873 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-DISPUTES" "7" "February 2015" "" ""
+.TH "NPM\-DISPUTES" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-disputes\fR \- Handling Module Name Disputes
 .SH SYNOPSIS
index 45daad6..39958c3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-FAQ" "7" "February 2015" "" ""
+.TH "NPM\-FAQ" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-faq\fR \- Frequently Asked Questions
 .SH Where can I find these docs in HTML?
index c1491c9..a923d53 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-INDEX" "7" "February 2015" "" ""
+.TH "NPM\-INDEX" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-index\fR \- Index of all npm documentation
 .SS npm help README
index 8e53a12..7612480 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-REGISTRY" "7" "February 2015" "" ""
+.TH "NPM\-REGISTRY" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-registry\fR \- The JavaScript Package Registry
 .SH DESCRIPTION
index 5a32862..0a68fc3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-SCOPE" "7" "February 2015" "" ""
+.TH "NPM\-SCOPE" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-scope\fR \- Scoped packages
 .SH DESCRIPTION
index b90484d..bdd0813 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-SCRIPTS" "7" "February 2015" "" ""
+.TH "NPM\-SCRIPTS" "7" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-scripts\fR \- How npm handles the "scripts" field
 .SH DESCRIPTION
@@ -45,53 +45,31 @@ Additionally, arbitrary scripts can be executed by running \fBnpm
 run\-script <pkg> <stage>\fR\|\. \fIPre\fR and \fIpost\fR commands with matching
 names will be run for those as well (e\.g\. \fBpremyscript\fR, \fBmyscript\fR,
 \fBpostmyscript\fR)\.
-.SH NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN
-.P
-\fBtl;dr\fR Don't use \fBinstall\fR\|\.  Use a \fB\|\.gyp\fR file for compilation, and
-\fBprepublish\fR for anything else\.
-.P
-You should almost never have to explicitly set a \fBpreinstall\fR or
-\fBinstall\fR script\.  If you are doing this, please consider if there is
-another option\.
-.P
-The only valid use of \fBinstall\fR or \fBpreinstall\fR scripts is for
-compilation which must be done on the target architecture\.  In early
-versions of node, this was often done using the \fBnode\-waf\fR scripts, or
-a standalone \fBMakefile\fR, and early versions of npm required that it be
-explicitly set in package\.json\.  This was not portable, and harder to
-do properly\.
-.P
-In the current version of node, the standard way to do this is using a
-\fB\|\.gyp\fR file\.  If you have a file with a \fB\|\.gyp\fR extension in the root
-of your package, then npm will run the appropriate \fBnode\-gyp\fR commands
-automatically at install time\.  This is the only officially supported
-method for compiling binary addons, and does not require that you add
-anything to your package\.json file\.
-.P
-If you have to do other things before your package is used, in a way
+.SH COMMON USES
+.P
+If you need to perform operations on your package before it is used, in a way
 that is not dependent on the operating system or architecture of the
-target system, then use a \fBprepublish\fR script instead\.  This includes
+target system, use a \fBprepublish\fR script\.  This includes
 tasks such as:
 .RS 0
 .IP \(bu 2
-Compile CoffeeScript source code into JavaScript\.
+Compiling CoffeeScript source code into JavaScript\.
 .IP \(bu 2
-Create minified versions of JavaScript source code\.
+Creating minified versions of JavaScript source code\.
 .IP \(bu 2
 Fetching remote resources that your package will use\.
 
 .RE
 .P
-The advantage of doing these things at \fBprepublish\fR time instead of
-\fBpreinstall\fR or \fBinstall\fR time is that they can be done once, in a
-single place, and thus greatly reduce complexity and variability\.
+The advantage of doing these things at \fBprepublish\fR time is that they can be done once, in a
+single place, thus reducing complexity and variability\.
 Additionally, this means that:
 .RS 0
 .IP \(bu 2
 You can depend on \fBcoffee\-script\fR as a \fBdevDependency\fR, and thus
 your users don't need to have it installed\.
 .IP \(bu 2
-You don't need to include the minifiers in your package, reducing
+You don't need to include minifiers in your package, reducing
 the size for your users\.
 .IP \(bu 2
 You don't need to rely on your users having \fBcurl\fR or \fBwget\fR or
@@ -275,6 +253,12 @@ probably set it up that way for a reason\.
 Don't prefix your script commands with "sudo"\.  If root permissions
 are required for some reason, then it'll fail with that error, and
 the user will sudo the npm command in question\.
+.IP \(bu 2
+Don't use \fBinstall\fR\|\. Use a \fB\|\.gyp\fR file for compilation, and \fBprepublish\fR
+for anything else\. You should almost never have to explicitly set a
+preinstall or install script\. If you are doing this, please consider if
+there is another option\. The only valid use of \fBinstall\fR or \fBpreinstall\fR
+scripts is for compilation which must be done on the target architecture\.
 
 .RE
 .SH SEE ALSO
index e3f8b02..a63c66b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "NPM\-REMOVAL" "1" "February 2015" "" ""
+.TH "NPM\-REMOVAL" "1" "March 2015" "" ""
 .SH "NAME"
 \fBnpm-removal\fR \- Cleaning the Slate
 .SH SYNOPSIS
index d15e0de..7378be9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "SEMVER" "7" "February 2015" "" ""
+.TH "SEMVER" "7" "March 2015" "" ""
 .SH "NAME"
 \fBsemver\fR \- The semantic versioner for npm
 .SH Usage
index c503268..8c11fbb 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "glob",
   "description": "a little globber",
-  "version": "4.4.0",
+  "version": "4.4.1",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/node-glob.git"
     "benchclean": "bash benchclean.sh"
   },
   "license": "ISC",
-  "gitHead": "57e6b293108b48d9771a05e2b9a6a1b12cb81c12",
+  "gitHead": "a10b0294183788c0e9f56fc3ac88832e2c3513bc",
   "bugs": {
     "url": "https://github.com/isaacs/node-glob/issues"
   },
   "homepage": "https://github.com/isaacs/node-glob",
-  "_id": "glob@4.4.0",
-  "_shasum": "91d63dc1ed1d82b52ba2cb76044852ccafc2130f",
-  "_from": "glob@>=4.4.0 <4.5.0",
+  "_id": "glob@4.4.1",
+  "_shasum": "8395b16d01f4a58f0bf3f6359174997b78d74197",
+  "_from": "glob@>=4.4.1 <4.5.0",
   "_npmVersion": "2.6.0",
   "_nodeVersion": "1.1.0",
   "_npmUser": {
     }
   ],
   "dist": {
-    "shasum": "91d63dc1ed1d82b52ba2cb76044852ccafc2130f",
-    "tarball": "http://registry.npmjs.org/glob/-/glob-4.4.0.tgz"
+    "shasum": "8395b16d01f4a58f0bf3f6359174997b78d74197",
+    "tarball": "http://registry.npmjs.org/glob/-/glob-4.4.1.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/glob/-/glob-4.4.0.tgz",
-  "readme": "ERROR: No README data found!"
+  "_resolved": "https://registry.npmjs.org/glob/-/glob-4.4.1.tgz"
 }
index 686f2c3..7aa0d07 100644 (file)
@@ -18,7 +18,8 @@ var childrenIgnored = common.childrenIgnored
 
 function globSync (pattern, options) {
   if (typeof options === 'function' || arguments.length === 3)
-    throw new TypeError('callback provided to sync glob')
+    throw new TypeError('callback provided to sync glob\n'+
+                        'See: https://github.com/isaacs/node-glob/issues/167')
 
   return new GlobSync(pattern, options).found
 }
@@ -28,7 +29,8 @@ function GlobSync (pattern, options) {
     throw new Error('must provide pattern')
 
   if (typeof options === 'function' || arguments.length === 3)
-    throw new TypeError('callback provided to sync glob')
+    throw new TypeError('callback provided to sync glob\n'+
+                        'See: https://github.com/isaacs/node-glob/issues/167')
 
   if (!(this instanceof GlobSync))
     return new GlobSync(pattern, options)
diff --git a/deps/npm/node_modules/inflight/.eslintrc b/deps/npm/node_modules/inflight/.eslintrc
deleted file mode 100644 (file)
index b7a1550..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "env" : {
-    "node" : true
-  },
-  "rules" : {
-    "semi": [2, "never"],
-    "strict": 0,
-    "quotes": [1, "single", "avoid-escape"],
-    "no-use-before-define": 0,
-    "curly": 0,
-    "no-underscore-dangle": 0,
-    "no-lonely-if": 1,
-    "no-unused-vars": [2, {"vars" : "all", "args" : "after-used"}],
-    "no-mixed-requires": 0,
-    "space-infix-ops": 0
-  }
-}
index 1b7d2c0..95c799e 100644 (file)
@@ -39,6 +39,9 @@ function readDeps (test) { return function (cb) {
 }}
 
 var name = package.name || basename
+if (config.get('scope')) {
+  name = '@' + config.get('scope') + '/' + name
+}
 exports.name = yes ? name : prompt('name', name)
 
 var version = package.version ||
index f3cadb4..34e10ef 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "init-package-json",
-  "version": "1.2.0",
+  "version": "1.3.0",
   "main": "init-package-json.js",
   "scripts": {
     "test": "tap test/*.js"
     "prompt",
     "start"
   ],
-  "gitHead": "6c0743199706494a190c0b47d2e2567dc86055a3",
+  "readme": "# init-package-json\n\nA node module to get your node module started.\n\n## Usage\n\n```javascript\nvar init = require('init-package-json')\nvar path = require('path')\n\n// a path to a promzard module.  In the event that this file is\n// not found, one will be provided for you.\nvar initFile = path.resolve(process.env.HOME, '.npm-init')\n\n// the dir where we're doin stuff.\nvar dir = process.cwd()\n\n// extra stuff that gets put into the PromZard module's context.\n// In npm, this is the resolved config object.  Exposed as 'config'\n// Optional.\nvar configData = { some: 'extra stuff' }\n\n// Any existing stuff from the package.json file is also exposed in the\n// PromZard module as the `package` object.  There will also be free\n// vars for:\n// * `filename` path to the package.json file\n// * `basename` the tip of the package dir\n// * `dirname` the parent of the package dir\n\ninit(dir, initFile, configData, function (er, data) {\n  // the data's already been written to {dir}/package.json\n  // now you can do stuff with it\n})\n```\n\nOr from the command line:\n\n```\n$ npm-init\n```\n\nSee [PromZard](https://github.com/isaacs/promzard) for details about\nwhat can go in the config file.\n",
+  "readmeFilename": "README.md",
+  "gitHead": "53273513f3fbaa017435ca6254d717cc27a85ddc",
   "bugs": {
     "url": "https://github.com/isaacs/init-package-json/issues"
   },
   "homepage": "https://github.com/isaacs/init-package-json",
-  "_id": "init-package-json@1.2.0",
-  "_shasum": "b9f027514403b3b3f582c148592ab75214003348",
-  "_from": "init-package-json@>=1.2.0 <1.3.0",
-  "_npmVersion": "2.3.0",
-  "_nodeVersion": "0.10.35",
-  "_npmUser": {
-    "name": "othiym23",
-    "email": "ogd@aoaioxxysz.net"
-  },
-  "maintainers": [
-    {
-      "name": "isaacs",
-      "email": "i@izs.me"
-    },
-    {
-      "name": "othiym23",
-      "email": "ogd@aoaioxxysz.net"
-    }
-  ],
-  "dist": {
-    "shasum": "b9f027514403b3b3f582c148592ab75214003348",
-    "tarball": "http://registry.npmjs.org/init-package-json/-/init-package-json-1.2.0.tgz"
-  },
-  "directories": {},
-  "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.2.0.tgz"
+  "_id": "init-package-json@1.3.0",
+  "_shasum": "6bb76ed69dd1359581a6f1507d37d309658074d6",
+  "_from": "init-package-json@>=1.3.0 <1.4.0"
 }
index 666e9a1..f65f646 100644 (file)
@@ -14,7 +14,7 @@ var EXPECTED = {
     test          : 'echo "Error: no test specified" && exit 1'
   },
   keywords        : [],
-  author          : "npmbot <n@p.m> (http://npm.im/)",
+  author          : "npmbot <n@p.m> (http://npm.im)",
   license         : "WTFPL"
 }
 
diff --git a/deps/npm/node_modules/init-package-json/test/scope.js b/deps/npm/node_modules/init-package-json/test/scope.js
new file mode 100644 (file)
index 0000000..7049a4d
--- /dev/null
@@ -0,0 +1,35 @@
+var tap = require('tap')
+var init = require('../')
+var rimraf = require('rimraf')
+
+tap.test('the scope', function (t) {
+  var i = __dirname + '/basic.input'
+  var dir = __dirname
+  init(dir, i, {scope: 'foo'}, function (er, data) {
+    if (er) throw er
+    var expect =
+      { name: '@foo/test',
+        version: '1.2.5',
+        description: 'description',
+        author: 'me <em@i.l> (http://url)',
+        scripts: { test: 'make test' },
+        main: 'main.js',
+        config: { scope: 'foo' },
+        package: {} }
+    t.same(data, expect)
+    t.end()
+  })
+  setTimeout(function () {
+    process.stdin.emit('data', '@foo/test\n')
+  }, 50)
+  setTimeout(function () {
+    process.stdin.emit('data', 'description\n')
+  }, 100)
+  setTimeout(function () {
+    process.stdin.emit('data', 'yes\n')
+  }, 150)
+})
+
+tap.test('teardown', function (t) {
+  rimraf(__dirname + '/package.json', t.end.bind(t))
+})
index 63fefe3..0b81fab 100644 (file)
@@ -42,7 +42,7 @@
           '-luuid.lib',
           '-lodbc32.lib',
           '-lDelayImp.lib',
-          '-l"<(node_root_dir)/$(ConfigurationName)/iojs.lib"'
+          '-l"<(node_root_dir)/$(ConfigurationName)/node.lib"'
         ],
         # warning C4251: 'node::ObjectWrap::handle_' : class 'v8::Persistent<T>'
         # needs to have dll-interface to be used by clients of class 'node::ObjectWrap'
index 3d3c587..f360590 100644 (file)
@@ -173,7 +173,7 @@ function build (gyp, argv, callback) {
   }
 
   /**
-   * Copies the iojs.lib file for the current target architecture into the
+   * Copies the node.lib file for the current target architecture into the
    * current proper dev dir location.
    */
 
@@ -181,15 +181,15 @@ function build (gyp, argv, callback) {
     if (!win || !copyDevLib) return doBuild()
 
     var buildDir = path.resolve(nodeDir, buildType)
-      , archNodeLibPath = path.resolve(nodeDir, arch, 'iojs.lib')
-      , buildNodeLibPath = path.resolve(buildDir, 'iojs.lib')
+      , archNodeLibPath = path.resolve(nodeDir, arch, 'node.lib')
+      , buildNodeLibPath = path.resolve(buildDir, 'node.lib')
 
     mkdirp(buildDir, function (err, isNew) {
       if (err) return callback(err)
       log.verbose('"' + buildType + '" dir needed to be created?', isNew)
       var rs = fs.createReadStream(archNodeLibPath)
         , ws = fs.createWriteStream(buildNodeLibPath)
-      log.verbose('copying "iojs.lib" for ' + arch, buildNodeLibPath)
+      log.verbose('copying "node.lib" for ' + arch, buildNodeLibPath)
       rs.pipe(ws)
       rs.on('error', callback)
       ws.on('error', callback)
index f9176b3..6f72e6a 100644 (file)
@@ -39,7 +39,7 @@ function install (gyp, argv, callback) {
     }
   }
 
-  var distUrl = gyp.opts['dist-url'] || gyp.opts.disturl || 'https://iojs.org/dist'
+  var distUrl = gyp.opts['dist-url'] || gyp.opts.disturl || 'http://nodejs.org/dist'
 
 
   // Determine which node dev files version we are installing
@@ -185,7 +185,7 @@ function install (gyp, argv, callback) {
 
       // now download the node tarball
       var tarPath = gyp.opts['tarball']
-      var tarballUrl = tarPath ? tarPath : distUrl + '/v' + version + '/iojs-v' + version + '.tar.gz'
+      var tarballUrl = tarPath ? tarPath : distUrl + '/v' + version + '/node-v' + version + '.tar.gz'
         , badDownload = false
         , extractCount = 0
         , gunzip = zlib.createGunzip()
@@ -267,7 +267,7 @@ function install (gyp, argv, callback) {
         var async = 0
 
         if (win) {
-          // need to download iojs.lib
+          // need to download node.lib
           async++
           downloadNodeLib(deref)
         }
@@ -343,36 +343,36 @@ function install (gyp, argv, callback) {
       }
 
       function downloadNodeLib (done) {
-        log.verbose('on Windows; need to download `iojs.lib`...')
+        log.verbose('on Windows; need to download `node.lib`...')
         var dir32 = path.resolve(devDir, 'ia32')
           , dir64 = path.resolve(devDir, 'x64')
-          , nodeLibPath32 = path.resolve(dir32, 'iojs.lib')
-          , nodeLibPath64 = path.resolve(dir64, 'iojs.lib')
-          , nodeLibUrl32 = distUrl + '/v' + version + '/win-x86/iojs.lib'
-          , nodeLibUrl64 = distUrl + '/v' + version + '/win-x64/iojs.lib'
+          , nodeLibPath32 = path.resolve(dir32, 'node.lib')
+          , nodeLibPath64 = path.resolve(dir64, 'node.lib')
+          , nodeLibUrl32 = distUrl + '/v' + version + '/node.lib'
+          , nodeLibUrl64 = distUrl + '/v' + version + '/x64/node.lib'
 
-        log.verbose('32-bit iojs.lib dir', dir32)
-        log.verbose('64-bit iojs.lib dir', dir64)
-        log.verbose('`iojs.lib` 32-bit url', nodeLibUrl32)
-        log.verbose('`iojs.lib` 64-bit url', nodeLibUrl64)
+        log.verbose('32-bit node.lib dir', dir32)
+        log.verbose('64-bit node.lib dir', dir64)
+        log.verbose('`node.lib` 32-bit url', nodeLibUrl32)
+        log.verbose('`node.lib` 64-bit url', nodeLibUrl64)
 
         var async = 2
         mkdir(dir32, function (err) {
           if (err) return done(err)
-          log.verbose('streaming 32-bit iojs.lib to:', nodeLibPath32)
+          log.verbose('streaming 32-bit node.lib to:', nodeLibPath32)
 
           var req = download(nodeLibUrl32)
           if (!req) return
           req.on('error', done)
           req.on('response', function (res) {
             if (res.statusCode !== 200) {
-              done(new Error(res.statusCode + ' status code downloading 32-bit iojs.lib'))
+              done(new Error(res.statusCode + ' status code downloading 32-bit node.lib'))
               return
             }
 
             getContentSha(res, function (_, checksum) {
-              contentShasums['win-x86/iojs.lib'] = checksum
-              log.verbose('content checksum', 'win-x86/iojs.lib', checksum)
+              contentShasums['node.lib'] = checksum
+              log.verbose('content checksum', 'node.lib', checksum)
             })
 
             var ws = fs.createWriteStream(nodeLibPath32)
@@ -385,20 +385,20 @@ function install (gyp, argv, callback) {
         })
         mkdir(dir64, function (err) {
           if (err) return done(err)
-          log.verbose('streaming 64-bit iojs.lib to:', nodeLibPath64)
+          log.verbose('streaming 64-bit node.lib to:', nodeLibPath64)
 
           var req = download(nodeLibUrl64)
           if (!req) return
           req.on('error', done)
           req.on('response', function (res) {
             if (res.statusCode !== 200) {
-              done(new Error(res.statusCode + ' status code downloading 64-bit iojs.lib'))
+              done(new Error(res.statusCode + ' status code downloading 64-bit node.lib'))
               return
             }
 
             getContentSha(res, function (_, checksum) {
-              contentShasums['win-x64/iojs.lib'] = checksum
-              log.verbose('content checksum', 'win-x64/iojs.lib', checksum)
+              contentShasums['x64/node.lib'] = checksum
+              log.verbose('content checksum', 'x64/node.lib', checksum)
             })
 
             var ws = fs.createWriteStream(nodeLibPath64)
diff --git a/deps/npm/node_modules/normalize-git-url/.eslintrc b/deps/npm/node_modules/normalize-git-url/.eslintrc
deleted file mode 100644 (file)
index b54e30f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "env" : {
-    "node" : true
-  },
-  "rules" : {
-    "semi": [2, "never"],
-    "strict": 0,
-    "quotes": [1, "double", "avoid-escape"],
-    "no-use-before-define": 0,
-    "curly": 0,
-    "no-underscore-dangle": 0,
-    "no-lonely-if": 1,
-    "no-unused-vars": [2, {"vars" : "all", "args" : "after-used"}],
-    "no-mixed-requires": 0,
-    "space-infix-ops": 0,
-    "key-spacing": 0,
-    "no-multi-spaces": 0
-  }
-}
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json b/deps/npm/node_modules/npm-registry-client/test/fixtures/@npm/npm-registry-client/cache.json
deleted file mode 100644 (file)
index 4561db5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"_id":"@npm%2fnpm-registry-client","_rev":"213-0a1049cf56172b7d9a1184742c6477b9","name":"@npm/npm-registry-client","description":"Client for the npm registry","dist-tags":{"latest":"2.0.4","v2.0":"2.0.3"},"versions":{"0.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.1","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"693a08f6d2faea22bbd2bf412508a63d3e6229a7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.2","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"b48c0ec5563c6a6fdc253454fc56d2c60c5a26f4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.3","_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"ccc0254c2d59e3ea9b9050e2b16edef78df1a1e8","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_npmUser":{"name":"isaacs","email":"i@izs.me"},"_id":"@npm%2fnpm-registry-client@0.0.4","_engineSupported":true,"_npmVersion":"1.1.25","_nodeVersion":"v0.7.10-pre","_defaultsLoaded":true,"dist":{"shasum":"faabd25ef477521c74ac21e0f4cf3a2f66d18fb3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.4.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.5","dist":{"shasum":"85219810c9d89ae8d28ea766e7cf74efbd9f1e52","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.5.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"The code that npm uses to talk to the registry","version":"0.0.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.6","dist":{"shasum":"cc6533b3b41df65e6e9db2601fbbf1a509a7e94c","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.6.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"The code that npm uses to talk to the registry","version":"0.0.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"engines":{"node":"*"},"_id":"@npm%2fnpm-registry-client@0.0.7","dist":{"shasum":"0cee1d1c61f1c8e483774fe1f7bbb81c4f394a3a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.7.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.8","dist":{"shasum":"1b7411c3f7310ec2a96b055b00e7ca606e47bd07","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.8.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.9","dist":{"shasum":"6d5bfde431559ac9e2e52a7db85f5839b874f022","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.9.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.10","dist":{"shasum":"0c8b6a4615bce82aa6cc04a0d1f7dc89921f7a38","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.10.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.0.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.0.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.0.11","dist":{"shasum":"afab40be5bed1faa946d8e1827844698f2ec1db7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.0.11.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.0","dist":{"shasum":"1077d6bbb5e432450239dc6622a59474953ffbea","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.0.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.1","dist":{"shasum":"759765361d09b715270f59cf50f10908e4e9c5fc","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.1.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.2","dist":{"shasum":"541ce93abb3d35f5c325545c718dd3bbeaaa9ff0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.2.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.3","dist":{"shasum":"e9a40d7031e8f809af5fd85aa9aac979e17efc97","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.3.tgz"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.1.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.1.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.1.4","dist":{"shasum":"b211485b046191a1085362376530316f0cab0420","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.1.4.tgz"},"_npmVersion":"1.1.48","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.0","dist":{"shasum":"6508a4b4d96f31057d5200ca5779531bafd2b840","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.0.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"node-uuid":"~1.3.3","request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.1","dist":{"shasum":"1bc8c4576c368cd88253d8a52daf40c55b89bb1a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.1.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.5","dist":{"shasum":"2f55d675dfb977403b1ad0d96874c1d30e8058d7","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.5.tgz"},"_npmVersion":"1.1.51","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.6","dist":{"shasum":"f05df6695360360ad220e6e13a6a7bace7165fbe","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.6.tgz"},"_npmVersion":"1.1.56","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.0.14","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.7","dist":{"shasum":"867bad8854cae82ed89ee3b7f1d391af59491671","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.7.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.6","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.8","dist":{"shasum":"ef194cdb70f1ea03a576cff2c97392fa96e36563","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.8.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.9","dist":{"shasum":"3cec10431dfed1594adaf99c50f482ee56ecf9e4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.9.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2.0.1","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.10","dist":{"shasum":"1e69726dae0944e78562fd77243f839c6a2ced1e","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.10.tgz"},"_npmVersion":"1.1.64","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.11","dist":{"shasum":"d92f33c297eb1bbd57fd597c3d8f5f7e9340a0b5","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.11.tgz"},"_npmVersion":"1.1.70","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.12":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.12","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.1.8","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.12","dist":{"shasum":"3bfb6fc0e4b131d665580cd1481c341fe521bfd3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.12.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.13":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.13","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.13","dist":{"shasum":"e03f2a4340065511b7184a3e2862cd5d459ef027","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.13.tgz"},"_from":".","_npmVersion":"1.2.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.14":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.14","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.14","dist":{"shasum":"186874a7790417a340d582b1cd4a7c338087ee12","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.14.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.15":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.15","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.15","dist":{"shasum":"f71f32b7185855f1f8b7a5ef49e49d2357c2c552","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.15.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.16":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.16","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.16","dist":{"shasum":"3331323b5050fc5afdf77c3a35913c16f3e43964","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.16.tgz"},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.17":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.17","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.17","dist":{"shasum":"1df2bbecac6751f5d9600fb43722aef96d956773","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.17.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.18":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.18","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.9.202","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.18","dist":{"shasum":"198c8d15ed9b1ed546faf6e431eb63a6b18193ad","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.18.tgz"},"_from":".","_npmVersion":"1.2.13","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.19":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.19","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.19","dist":{"shasum":"106da826f0d2007f6e081f2b68fb6f26fa951b20","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.19.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.20":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.20","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","_id":"@npm%2fnpm-registry-client@0.2.20","dist":{"shasum":"3fff194331e26660be2cf8ebf45ddf7d36add5f6","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.20.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.21":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.21","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.16","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.21","dist":{"shasum":"d85dd32525f193925c46ff9eb0e0f529dfd1b254","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.21.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.22":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.22","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"~2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.22","dist":{"shasum":"caa22ff40a1ccd632a660b8b80c333c8f92d5a17","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.22.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.23":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.23","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.23","dist":{"shasum":"a320ab2b1d048b4f7b88e40bd86974ca322b4c24","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.23.tgz"},"_from":".","_npmVersion":"1.2.19","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.24":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.24","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~1.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.24","dist":{"shasum":"e12f644338619319ee7f233363a1714a87f3c72d","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.24.tgz"},"_from":".","_npmVersion":"1.2.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.25":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.25","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.25","dist":{"shasum":"c2caeb1dcf937d6fcc4a187765d401f5e2f54027","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.25.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.26":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.26","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~1.2.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.26","dist":{"shasum":"4c5a2b3de946e383032f10fa497d0c15ee5f4c60","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.26.tgz"},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.27":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.27","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.20.0","graceful-fs":"~2.0.0","semver":"~2.0.5","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.15","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.27","dist":{"shasum":"8f338189d32769267886a07ad7b7fd2267446adf","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.27.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.28":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.28","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"~2.1.0","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"_id":"@npm%2fnpm-registry-client@0.2.28","dist":{"shasum":"959141fc0180d7b1ad089e87015a8a2142a8bffc","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.28.tgz"},"_from":".","_npmVersion":"1.3.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.29":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.29","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.29","dist":{"shasum":"66ff2766f0c61d41e8a6139d3692d8833002c686","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.29.tgz"},"_from":".","_npmVersion":"1.3.12","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.30":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.30","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.30","dist":{"shasum":"f01cae5c51aa0a1c5dc2516cbad3ebde068d3eaa","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.30.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.2.31":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.2.31","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.2.31","dist":{"shasum":"24a23e24e43246677cb485f8391829e9536563d4","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.2.31.tgz"},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.0","dist":{"shasum":"66eab02a69be67f232ac14023eddfb8308c2eccd","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.1","dist":{"shasum":"16dba07cc304442edcece378218672d0a1258ef8","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.1.tgz"},"_from":".","_npmVersion":"1.3.18","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.2","dist":{"shasum":"ea3060bd0a87fb1d97b87433b50f38f7272b1686","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.2.tgz"},"_from":".","_npmVersion":"1.3.20","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.3","dist":{"shasum":"da08bb681fb24aa5c988ca71f8c10f27f09daf4a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.3.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.4","dist":{"shasum":"25d771771590b1ca39277aea4506af234c5f4342","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.4.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","couch-login":"~0.1.18","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.5","dist":{"shasum":"98ba1ac851a3939a3fb9917c28fa8da522dc635f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.5.tgz"},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.3.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.3.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.3.6","dist":{"shasum":"c48a2a03643769acc49672860f7920ec6bffac6e","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.3.6.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.0","dist":{"shasum":"30d0c178b7f2e54183a6a3fc9fe4071eb10290bf","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.1","dist":{"shasum":"9c49b3e44558e2072158fb085be8a083c5f83537","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.0","_npmUser":{"name":"npm-www","email":"npm@npmjs.com"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.2","dist":{"shasum":"d9568a9413bee14951201ce73f3b3992ec6658c0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.2.tgz"},"_from":".","_npmVersion":"1.4.1","_npmUser":{"name":"npm-www","email":"npm@npmjs.com"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.3","dist":{"shasum":"aa188fc5067158e991a57f4697c54994108f5389","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.3.tgz"},"_from":".","_npmVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.4","dist":{"shasum":"f9dbc383a49069d8c7f67755a3ff6e424aff584f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.4.tgz"},"_from":".","_npmVersion":"1.4.2","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.5","dist":{"shasum":"7d6fdca46139470715f9477ddb5ad3e770d4de7b","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.6","_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"657f69a79543fc4cc264c3b2de958bd15f7140fe","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.6.tgz"},"directories":{}},"0.4.7":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.7","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.7","dist":{"shasum":"f4369b59890da7882527eb7c427dd95d43707afb","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.7.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"directories":{}},"0.4.8":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.8","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.8","_shasum":"a6685a161033101be6064b7af887ab440e8695d0","_from":".","_npmVersion":"1.4.8","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"a6685a161033101be6064b7af887ab440e8695d0","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.8.tgz"},"directories":{}},"0.4.9":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.9","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.9","_shasum":"304d3d4726a58e33d8cc965afdc9ed70b996580c","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"304d3d4726a58e33d8cc965afdc9ed70b996580c","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.9.tgz"},"directories":{}},"0.4.10":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.10","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"^2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.10","_shasum":"ab7bf1be3ba07d769eaf74dee3c9347e02283116","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"ab7bf1be3ba07d769eaf74dee3c9347e02283116","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.10.tgz"},"directories":{}},"0.4.11":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.11","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"2 >=2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.11","_shasum":"032e9b6b050ed052ee9441841a945a184ea6bc33","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"032e9b6b050ed052ee9441841a945a184ea6bc33","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.11.tgz"},"directories":{}},"0.4.12":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"0.4.12","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"request":"2 >=2.25.0","graceful-fs":"~2.0.0","semver":"2 >=2.2.1","slide":"~1.1.3","chownr":"0","mkdirp":"~0.3.3","rimraf":"~2","retry":"0.6.0","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@0.4.12","_shasum":"34303422f6a3da93ca3a387a2650d707c8595b99","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"34303422f6a3da93ca3a387a2650d707c8595b99","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-0.4.12.tgz"},"directories":{}},"1.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"1.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@1.0.0","_shasum":"2a6f9dfdce5f8ebf4b9af4dbfd738384d25014e5","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"2a6f9dfdce5f8ebf4b9af4dbfd738384d25014e5","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-1.0.0.tgz"},"directories":{}},"1.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"1.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"98b1278c230cf6c159f189e2f8c69daffa727ab8","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@1.0.1","_shasum":"c5f6a87d285f2005a35d3f67d9c724bce551b0f1","_from":".","_npmVersion":"1.4.13","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"c5f6a87d285f2005a35d3f67d9c724bce551b0f1","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-1.0.1.tgz"},"directories":{}},"2.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"~2.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"47a98069b6a34e751cbd5b84ce92858cae5abe70","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.0","_shasum":"88810dac2d534c0df1d905c79e723392fcfc791a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"}],"dist":{"shasum":"88810dac2d534c0df1d905c79e723392fcfc791a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.0.tgz"},"directories":{}},"2.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"123e40131f83f7265f66ecd2a558cce44a3aea86","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.1","_shasum":"611c7cb7c8f7ff22be2ebc6398423b5de10db0e2","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"611c7cb7c8f7ff22be2ebc6398423b5de10db0e2","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.1.tgz"},"directories":{}},"2.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"6ecc311c9dd4890f2d9b6bae60447070a3321e12","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.2","_shasum":"a82b000354c7f830114fb18444764bc477d5740f","_from":".","_npmVersion":"1.4.15","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"a82b000354c7f830114fb18444764bc477d5740f","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.2.tgz"},"directories":{}},"3.0.0":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.0","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"6bb1aec1e85fa82ee075bd997d6fb9f2dbb7f643","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.0","_shasum":"4febc5cdb274e9fa06bc3008910e3fa1ec007994","_from":".","_npmVersion":"1.5.0-pre","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"4febc5cdb274e9fa06bc3008910e3fa1ec007994","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.0.tgz"},"directories":{}},"3.0.1":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.1","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"fe8382dde609ea1e3580fcdc5bc3d0bba119cfc6","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.1","_shasum":"5f3ee362ce5c237cfb798fce22c77875fc1a63c2","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"5f3ee362ce5c237cfb798fce22c77875fc1a63c2","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.1.tgz"},"directories":{}},"2.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"2578fb9a807d77417554ba235ba8fac39405e832","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.3","_shasum":"93dad3d9a162c99404badb71739c622c0f3b9a72","_from":".","_npmVersion":"1.5.0-alpha-1","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"93dad3d9a162c99404badb71739c622c0f3b9a72","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.3.tgz"},"directories":{}},"3.0.2":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.2","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"15343019160ace0b9874cf0ec186b3425dbc7301","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.2","_shasum":"5dd0910157ce55f4286a1871d39f9a2128cd3c99","_from":".","_npmVersion":"1.5.0-alpha-2","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"5dd0910157ce55f4286a1871d39f9a2128cd3c99","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.2.tgz"},"directories":{}},"3.0.3":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.3","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.3.3","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1 || 3.x","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"b18a780d1185f27c06c27812147b83aba0d4a2f5","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.3","_shasum":"2377dc1cf69b4d374b3a95fb7feba8c804d8cb30","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"2377dc1cf69b4d374b3a95fb7feba8c804d8cb30","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.3.tgz"},"directories":{}},"3.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"~0.5.0","normalize-package-data":"^0.4.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1 || 3.x","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"54900fe4b2eb5b99ee6dfe173f145732fdfae80e","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.4","_shasum":"d4a177d1f25615cfaef9b6844fa366ffbf5f578a","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"d4a177d1f25615cfaef9b6844fa366ffbf5f578a","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.4.tgz"},"directories":{}},"3.0.5":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.5","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"0.5","normalize-package-data":"0.4","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"2","semver":"2 >=2.2.1 || 3.x","slide":"^1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"BSD","gitHead":"635db1654346bc86473df7b39626601425f46177","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.5","_shasum":"cdabaefa399b81ac8a86a48718aefd80e7b19ff3","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"cdabaefa399b81ac8a86a48718aefd80e7b19ff3","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.5.tgz"},"directories":{}},"3.0.6":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"3.0.6","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"^0.5.0","normalize-package-data":"0.4","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"2","semver":"2 >=2.2.1 || 3.x","slide":"^1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"ISC","gitHead":"eba30fadd724ed5cad1aec95ac3ee907a59b7317","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@3.0.6","_shasum":"14a17d9a60ed2a80b04edcbc596dbce0d96540ee","_from":".","_npmVersion":"1.4.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"14a17d9a60ed2a80b04edcbc596dbce0d96540ee","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-3.0.6.tgz"},"directories":{}},"2.0.4":{"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"name":"@npm/npm-registry-client","description":"Client for the npm registry","version":"2.0.4","repository":{"url":"git://github.com/isaacs/npm-registry-client"},"main":"index.js","scripts":{"test":"tap test/*.js"},"dependencies":{"chownr":"0","graceful-fs":"^3.0.0","mkdirp":"^0.5.0","npm-cache-filename":"^1.0.0","request":"2 >=2.25.0","retry":"0.6.0","rimraf":"~2","semver":"2 >=2.2.1","slide":"~1.1.3","npmlog":""},"devDependencies":{"tap":""},"optionalDependencies":{"npmlog":""},"license":"ISC","gitHead":"a10f621d9cdc813b9d3092a14b661f65bfa6d40d","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"homepage":"https://github.com/isaacs/npm-registry-client","_id":"@npm%2fnpm-registry-client@2.0.4","_shasum":"528e08900d7655c12096d1637d1c3a7a5b451019","_from":".","_npmVersion":"1.4.22","_npmUser":{"name":"isaacs","email":"i@izs.me"},"maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"dist":{"shasum":"528e08900d7655c12096d1637d1c3a7a5b451019","tarball":"http://registry.npmjs.org/@npm%2fnpm-registry-client/-/@npm%2fnpm-registry-client-2.0.4.tgz"},"directories":{}}},"readme":"# npm-registry-client\u000a\u000aThe code that npm uses to talk to the registry.\u000a\u000aIt handles all the caching and HTTP calls.\u000a\u000a## Usage\u000a\u000a```javascript\u000avar RegClient = require('npm-registry-client')\u000avar client = new RegClient(config)\u000avar uri = \"npm://registry.npmjs.org/npm\"\u000avar options = {timeout: 1000}\u000a\u000aclient.get(uri, options, function (error, data, raw, res) {\u000a  // error is an error if there was a problem.\u000a  // data is the parsed data object\u000a  // raw is the json string\u000a  // res is the response from couch\u000a})\u000a```\u000a\u000a# Registry URLs\u000a\u000aThe registry calls take either a full URL pointing to a resource in the\u000aregistry, or a base URL for the registry as a whole (for the base URL, any path\u000awill be ignored). In addition to `http` and `https`, `npm` URLs are allowed.\u000a`npm` URLs are `https` URLs with the additional restrictions that they will\u000aalways include authorization credentials, and the response is always registry\u000ametadata (and not tarballs or other attachments).\u000a\u000a# Configuration\u000a\u000aThis program is designed to work with\u000a[npmconf](https://npmjs.org/package/npmconf), but you can also pass in\u000aa plain-jane object with the appropriate configs, and it'll shim it\u000afor you.  Any configuration thingie that has get/set/del methods will\u000aalso be accepted.\u000a\u000a* `cache` **Required** {String} Path to the cache folder\u000a* `always-auth` {Boolean} Auth even for GET requests.\u000a* `auth` {String} A base64-encoded `username:password`\u000a* `email` {String} User's email address\u000a* `tag` {String} The default tag to use when publishing new packages.\u000a  Default = `\"latest\"`\u000a* `ca` {String} Cerficate signing authority certificates to trust.\u000a* `cert` {String} Client certificate (PEM encoded). Enable access\u000a  to servers that require client certificates\u000a* `key` {String} Private key (PEM encoded) for client certificate 'cert'\u000a* `strict-ssl` {Boolean} Whether or not to be strict with SSL\u000a  certificates.  Default = `true`\u000a* `user-agent` {String} User agent header to send.  Default =\u000a  `\"node/{process.version} {process.platform} {process.arch}\"`\u000a* `log` {Object} The logger to use.  Defaults to `require(\"npmlog\")` if\u000a  that works, otherwise logs are disabled.\u000a* `fetch-retries` {Number} Number of times to retry on GET failures.\u000a  Default=2\u000a* `fetch-retry-factor` {Number} `factor` setting for `node-retry`. Default=10\u000a* `fetch-retry-mintimeout` {Number} `minTimeout` setting for `node-retry`.\u000a  Default=10000 (10 seconds)\u000a* `fetch-retry-maxtimeout` {Number} `maxTimeout` setting for `node-retry`.\u000a  Default=60000 (60 seconds)\u000a* `proxy` {URL} The url to proxy requests through.\u000a* `https-proxy` {URL} The url to proxy https requests through.\u000a  Defaults to be the same as `proxy` if unset.\u000a* `_auth` {String} The base64-encoded authorization header.\u000a* `username` `_password` {String} Username/password to use to generate\u000a  `_auth` if not supplied.\u000a* `_token` {Object} A token for use with\u000a  [couch-login](https://npmjs.org/package/couch-login)\u000a\u000a# client.request(method, uri, options, cb)\u000a\u000a* `method` {String} HTTP method\u000a* `uri` {String} URI pointing to the resource to request\u000a* `options` {Object} Object containing optional per-request properties.\u000a  * `what` {Stream | Buffer | String | Object} The request body.  Objects\u000a    that are not Buffers or Streams are encoded as JSON.\u000a  * `etag` {String} The cached ETag\u000a  * `follow` {Boolean} Follow 302/301 responses (defaults to true)\u000a* `cb` {Function}\u000a  * `error` {Error | null}\u000a  * `data` {Object} the parsed data object\u000a  * `raw` {String} the json\u000a  * `res` {Response Object} response from couch\u000a\u000aMake a request to the registry.  All the other methods are wrappers around\u000a`request`.\u000a\u000a# client.adduser(base, username, password, email, cb)\u000a\u000a* `base` {String} Base registry URL\u000a* `username` {String}\u000a* `password` {String}\u000a* `email` {String}\u000a* `cb` {Function}\u000a\u000aAdd a user account to the registry, or verify the credentials.\u000a\u000a# client.deprecate(uri, version, message, cb)\u000a\u000a* `uri` {String} Full registry URI for the deprecated package\u000a* `version` {String} Semver version range\u000a* `message` {String} The message to use as a deprecation warning\u000a* `cb` {Function}\u000a\u000aDeprecate a version of a package in the registry.\u000a\u000a# client.bugs(uri, cb)\u000a\u000a* `uri` {String} Full registry URI for the package\u000a* `cb` {Function}\u000a\u000aGet the url for bugs of a package\u000a\u000a# client.get(uri, options, cb)\u000a\u000a* `uri` {String} The complete registry URI to fetch\u000a* `options` {Object} Object containing optional per-request properties.\u000a  * `timeout` {Number} Duration before the request times out.\u000a  * `follow` {Boolean} Follow 302/301 responses (defaults to true)\u000a  * `staleOk` {Boolean} If there's cached data available, then return that\u000a    to the callback quickly, and update the cache the background.\u000a\u000aFetches data from the registry via a GET request, saving it in the cache folder\u000awith the ETag.\u000a\u000a# client.publish(uri, data, tarball, cb)\u000a\u000a* `uri` {String} The registry URI to publish to\u000a* `data` {Object} Package data\u000a* `tarball` {String | Stream} Filename or stream of the package tarball\u000a* `cb` {Function}\u000a\u000aPublish a package to the registry.\u000a\u000aNote that this does not create the tarball from a folder.  However, it can\u000aaccept a gzipped tar stream or a filename to a tarball.\u000a\u000a# client.star(uri, starred, cb)\u000a\u000a* `uri` {String} The complete registry URI to star\u000a* `starred` {Boolean} True to star the package, false to unstar it.\u000a* `cb` {Function}\u000a\u000aStar or unstar a package.\u000a\u000aNote that the user does not have to be the package owner to star or unstar a\u000apackage, though other writes do require that the user be the package owner.\u000a\u000a# client.stars(base, username, cb)\u000a\u000a* `base` {String} The base URL for the registry\u000a* `username` {String} Name of user to fetch starred packages for.\u000a* `cb` {Function}\u000a\u000aView your own or another user's starred packages.\u000a\u000a# client.tag(uri, version, tag, cb)\u000a\u000a* `uri` {String} The complete registry URI to tag\u000a* `version` {String} Version to tag\u000a* `tag` {String} Tag name to apply\u000a* `cb` {Function}\u000a\u000aMark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the\u000aspecified version.\u000a\u000a# client.unpublish(uri, [ver], cb)\u000a\u000a* `uri` {String} The complete registry URI to unpublish\u000a* `ver` {String} version to unpublish. Leave blank to unpublish all\u000a  versions.\u000a* `cb` {Function}\u000a\u000aRemove a version of a package (or all versions) from the registry.  When the\u000alast version us unpublished, the entire document is removed from the database.\u000a\u000a# client.upload(uri, file, [etag], [nofollow], cb)\u000a\u000a* `uri` {String} The complete registry URI to upload to\u000a* `file` {String | Stream} Either the filename or a readable stream\u000a* `etag` {String} Cache ETag\u000a* `nofollow` {Boolean} Do not follow 301/302 responses\u000a* `cb` {Function}\u000a\u000aUpload an attachment.  Mostly used by `client.publish()`.\u000a","maintainers":[{"name":"isaacs","email":"i@izs.me"},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"time":{"modified":"2014-07-31T21:59:52.896Z","created":"2012-06-07T04:43:36.581Z","0.0.1":"2012-06-07T04:43:38.123Z","0.0.2":"2012-06-07T05:35:05.937Z","0.0.3":"2012-06-09T00:55:25.861Z","0.0.4":"2012-06-11T03:53:26.548Z","0.0.5":"2012-06-11T23:48:11.235Z","0.0.6":"2012-06-17T06:23:27.320Z","0.0.7":"2012-06-18T19:19:38.315Z","0.0.8":"2012-06-28T20:40:20.563Z","0.0.9":"2012-07-10T03:28:04.651Z","0.0.10":"2012-07-11T17:03:45.151Z","0.0.11":"2012-07-17T14:06:37.489Z","0.1.0":"2012-07-23T18:17:38.007Z","0.1.1":"2012-07-23T21:21:28.196Z","0.1.2":"2012-07-24T06:14:12.831Z","0.1.3":"2012-08-07T02:02:20.564Z","0.1.4":"2012-08-15T03:04:52.822Z","0.1.5":"2012-08-17T21:59:33.310Z","0.2.0":"2012-08-17T22:00:18.081Z","0.2.1":"2012-08-17T22:07:28.827Z","0.2.2":"2012-08-17T22:37:24.352Z","0.2.3":"2012-08-19T19:16:44.808Z","0.2.4":"2012-08-19T19:18:51.792Z","0.2.5":"2012-08-20T16:54:50.794Z","0.2.6":"2012-08-22T00:25:04.766Z","0.2.7":"2012-08-27T19:07:34.829Z","0.2.8":"2012-10-02T19:53:50.661Z","0.2.9":"2012-10-03T22:09:50.766Z","0.2.10":"2012-10-25T14:55:54.216Z","0.2.11":"2012-12-21T16:26:38.094Z","0.2.12":"2013-01-18T22:22:41.668Z","0.2.13":"2013-02-06T00:16:35.939Z","0.2.14":"2013-02-10T02:44:02.764Z","0.2.15":"2013-02-11T19:18:55.678Z","0.2.16":"2013-02-15T17:09:03.249Z","0.2.17":"2013-02-16T03:47:13.898Z","0.2.18":"2013-03-06T22:09:23.536Z","0.2.19":"2013-03-20T06:27:39.128Z","0.2.20":"2013-03-28T00:43:07.558Z","0.2.21":"2013-04-29T15:46:54.094Z","0.2.22":"2013-04-29T15:51:02.178Z","0.2.23":"2013-05-11T00:28:14.198Z","0.2.24":"2013-05-24T21:27:50.693Z","0.2.25":"2013-06-20T15:36:46.277Z","0.2.26":"2013-07-06T17:12:54.670Z","0.2.27":"2013-07-11T07:14:45.740Z","0.2.28":"2013-08-02T20:27:41.732Z","0.2.29":"2013-10-28T18:23:24.477Z","0.2.30":"2013-11-18T23:12:00.540Z","0.2.31":"2013-12-16T08:36:43.044Z","0.3.0":"2013-12-17T07:03:10.699Z","0.3.1":"2013-12-17T16:53:27.867Z","0.3.2":"2013-12-17T22:25:14.882Z","0.3.3":"2013-12-21T16:07:06.773Z","0.3.4":"2014-01-29T15:24:05.163Z","0.3.5":"2014-01-31T01:53:19.656Z","0.3.6":"2014-02-07T00:17:21.362Z","0.4.0":"2014-02-13T01:17:18.973Z","0.4.1":"2014-02-13T23:47:37.892Z","0.4.2":"2014-02-14T00:29:13.086Z","0.4.3":"2014-02-16T03:40:54.640Z","0.4.4":"2014-02-16T03:41:48.856Z","0.4.5":"2014-03-12T05:09:17.474Z","0.4.6":"2014-03-29T19:44:15.041Z","0.4.7":"2014-04-02T19:41:07.149Z","0.4.8":"2014-05-01T22:24:54.980Z","0.4.9":"2014-05-12T21:52:55.127Z","0.4.10":"2014-05-13T16:44:29.801Z","0.4.11":"2014-05-13T20:33:04.738Z","0.4.12":"2014-05-14T06:14:22.842Z","1.0.0":"2014-05-14T23:04:37.188Z","1.0.1":"2014-06-03T00:55:54.448Z","2.0.0":"2014-06-06T04:23:46.579Z","2.0.1":"2014-06-06T06:25:14.419Z","2.0.2":"2014-06-14T00:33:10.205Z","3.0.0":"2014-07-02T00:30:29.154Z","3.0.1":"2014-07-14T23:29:05.057Z","2.0.3":"2014-07-15T00:09:36.043Z","3.0.2":"2014-07-17T06:30:02.659Z","3.0.3":"2014-07-23T21:20:42.406Z","3.0.4":"2014-07-25T00:27:26.007Z","3.0.5":"2014-07-25T00:28:48.007Z","3.0.6":"2014-07-31T21:57:49.043Z","2.0.4":"2014-07-31T21:59:52.896Z"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"repository":{"url":"git://github.com/isaacs/npm-registry-client"},"users":{"fgribreau":true,"fengmk2":true},"readmeFilename":"README.md","homepage":"https://github.com/isaacs/npm-registry-client","bugs":{"url":"https://github.com/isaacs/npm-registry-client/issues"},"license":"ISC","_attachments":{}}
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/cache.json
deleted file mode 100644 (file)
index 01da300..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.3","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"47ac53683daf832bfa952e1774417da47817ae42","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz"},"readme":"                       __                                                         \n                      /\\ \\                                                         __           \n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____  \n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\ \n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n                                                                                  \\ \\____/      \n                                                                                   \\/___/\n                                                                               \nUnderscore.js is a utility-belt library for JavaScript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz
deleted file mode 100644 (file)
index 19da9ba..0000000
Binary files a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/1.3.3/package.tgz and /dev/null differ
diff --git a/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/cache.json b/deps/npm/node_modules/npm-registry-client/test/fixtures/underscore/cache.json
deleted file mode 100644 (file)
index d899f11..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"_id":"underscore","_rev":"72-47f2986bfd8e8b55068b204588bbf484","name":"underscore","description":"JavaScript's functional programming helper library.","dist-tags":{"latest":"1.3.3","stable":"1.3.3"},"versions":{"1.0.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.3","_id":"underscore@1.0.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.3.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.0.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.0.4","_id":"underscore@1.0.4","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.0.4.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.0":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.0","_id":"underscore@1.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.0.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.1":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.1","_id":"underscore@1.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.1.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.2":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.2","_id":"underscore@1.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.2.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.3":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore","version":"1.1.3","_id":"underscore@1.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.8-1","_nodeVersion":"v0.2.5","dist":{"tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.3.tgz"},"directories":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.4":{"name":"underscore","description":"Functional programming aid for JavaScript. Works well with jQuery.","url":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"lib":".","main":"underscore.js","version":"1.1.4","_id":"underscore@1.1.4","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.9","_nodeVersion":"v0.5.0-pre","dist":{"shasum":"9e82274902865625b3a6d4c315a38ffd80047dae","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.4.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.1.5":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.5","_id":"underscore@1.1.5","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.16","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"23601d62c75619998b2f0db24938102793336a56","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.5.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.6":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.6","_id":"underscore@1.1.6","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.2","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"6868da1bdd72d75285be0b4e50f228e70d001a2c","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.6.tgz"},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}]},"1.1.7":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.1.7","devDependencies":{},"_id":"underscore@1.1.7","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"40bab84bad19d230096e8d6ef628bff055d83db0","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz"},"scripts":{},"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.0","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.0","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"b32ce32c8c118caa8031c10b54c7f65ab3b557fd","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.0.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.1","_npmJsonOpts":{"file":"/Users/jashkenas/.npm/underscore/1.2.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"underscore@1.2.1","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz"},"scripts":{},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"directories":{}},"1.2.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"74dd40e9face84e724eb2edae945b8aedc233ba3","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.2.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"dependencies":{},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"11b874da70f4683d7d48bba2b44be1e600d2f6cf","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.3.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.2.4":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.2.4","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.2.4","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"e8da6241aa06f64df2473bb2590b8c17c84c3c7e","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.0":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"contributors":[],"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.0","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.0","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"253b2d79b7bb67943ced0fc744eb18267963ede8","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.0.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.1":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.1","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.1","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"6cb8aad0e77eb5dbbfb54b22bcd8697309cf9641","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.1.tgz"},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.2":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.2","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.2","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"1b4e455089ab1d1d38ab6794ffe6cf08f764394a","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.2.tgz"},"readme":"                       __                                                         \n                      /\\ \\                                                         __           \n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____  \n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\ \n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n                                                                                  \\ \\____/      \n                                                                                   \\/___/\n                                                                               \nUnderscore.js is a utility-belt library for JavaScript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}},"1.3.3":{"name":"underscore","description":"JavaScript's functional programming helper library.","homepage":"http://documentcloud.github.com/underscore/","keywords":["util","functional","server","client","browser"],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"main":"underscore.js","version":"1.3.3","_npmUser":{"name":"jashkenas","email":"jashkenas@gmail.com"},"_id":"underscore@1.3.3","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"47ac53683daf832bfa952e1774417da47817ae42","tarball":"http://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz"},"readme":"                       __                                                         \n                      /\\ \\                                                         __           \n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____  \n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\ \n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n                                                                                  \\ \\____/      \n                                                                                   \\/___/\n                                                                               \nUnderscore.js is a utility-belt library for JavaScript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n","maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"directories":{}}},"maintainers":[{"name":"documentcloud","email":"jeremy@documentcloud.org"},{"name":"jashkenas","email":"jashkenas@gmail.com"}],"author":{"name":"Jeremy Ashkenas","email":"jeremy@documentcloud.org"},"time":{"1.0.3":"2011-12-07T15:12:18.045Z","1.0.4":"2011-12-07T15:12:18.045Z","1.1.0":"2011-12-07T15:12:18.045Z","1.1.1":"2011-12-07T15:12:18.045Z","1.1.2":"2011-12-07T15:12:18.045Z","1.1.3":"2011-12-07T15:12:18.045Z","1.1.4":"2011-12-07T15:12:18.045Z","1.1.5":"2011-12-07T15:12:18.045Z","1.1.6":"2011-12-07T15:12:18.045Z","1.1.7":"2011-12-07T15:12:18.045Z","1.2.0":"2011-12-07T15:12:18.045Z","1.2.1":"2011-12-07T15:12:18.045Z","1.2.2":"2011-11-14T20:28:47.115Z","1.2.3":"2011-12-07T15:12:18.045Z","1.2.4":"2012-01-09T17:23:14.818Z","1.3.0":"2012-01-11T16:41:38.459Z","1.3.1":"2012-01-23T22:57:36.474Z","1.3.2":"2012-04-09T18:38:14.345Z","1.3.3":"2012-04-10T14:43:48.089Z"},"repository":{"type":"git","url":"git://github.com/documentcloud/underscore.git"},"users":{"vesln":true,"mvolkmann":true,"lancehunt":true,"mikl":true,"linus":true,"vasc":true,"bat":true,"dmalam":true,"mbrevoort":true,"danielr":true,"rsimoes":true,"thlorenz":true}}
\ No newline at end of file
diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/.eslintrc b/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/.eslintrc
deleted file mode 100644 (file)
index ba33150..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "env" : {
-    "node" : true
-  },
-  "rules" : {
-    "semi": [2, "never"],
-    "strict": 0,
-    "quotes": [1, "double", "avoid-escape"],
-    "no-use-before-define": 0,
-    "curly": 0,
-    "no-underscore-dangle": 0,
-    "no-lonely-if": 1,
-    "no-unused-vars": [2, {"vars" : "all", "args" : "after-used"}],
-    "no-mixed-requires": 0,
-    "space-infix-ops": 0
-  }
-}
diff --git a/deps/npm/node_modules/request/.eslintrc b/deps/npm/node_modules/request/.eslintrc
deleted file mode 100644 (file)
index 9c3350d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "env": {
-    "node": true
-  },
-  "rules": {
-    // Disallow semi-colons, unless needed to disambiguate statement
-    "semi": [2, "never"],
-    // Require strings to use single quotes
-    "quotes": [2, "single"],
-    // Require curly braces for all control statements
-    "curly": 2,
-    // Disallow using variables and functions before they've been defined
-    "no-use-before-define": 2,
-    // Allow any case for variable naming
-    "camelcase": 0,
-    // Disallow unused variables, except as function arguments
-    "no-unused-vars": [2, {"args":"none"}],
-    // Allow leading underscores for method names
-    // REASON: we use underscores to denote private methods
-    "no-underscore-dangle": 0
-  }
-}
diff --git a/deps/npm/node_modules/request/node_modules/bl/.jshintrc b/deps/npm/node_modules/request/node_modules/bl/.jshintrc
deleted file mode 100644 (file)
index c8ef3ca..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-    "predef": [ ]
-  , "bitwise": false
-  , "camelcase": false
-  , "curly": false
-  , "eqeqeq": false
-  , "forin": false
-  , "immed": false
-  , "latedef": false
-  , "noarg": true
-  , "noempty": true
-  , "nonew": true
-  , "plusplus": false
-  , "quotmark": true
-  , "regexp": false
-  , "undef": true
-  , "unused": true
-  , "strict": false
-  , "trailing": true
-  , "maxlen": 120
-  , "asi": true
-  , "boss": true
-  , "debug": true
-  , "eqnull": true
-  , "esnext": true
-  , "evil": true
-  , "expr": true
-  , "funcscope": false
-  , "globalstrict": false
-  , "iterator": false
-  , "lastsemic": true
-  , "laxbreak": true
-  , "laxcomma": true
-  , "loopfunc": true
-  , "multistr": false
-  , "onecase": false
-  , "proto": false
-  , "regexdash": false
-  , "scripturl": true
-  , "smarttabs": false
-  , "shadow": false
-  , "sub": true
-  , "supernew": false
-  , "validthis": true
-  , "browser": true
-  , "couch": false
-  , "devel": false
-  , "dojo": false
-  , "mootools": false
-  , "node": true
-  , "nonstandard": true
-  , "prototypejs": false
-  , "rhino": false
-  , "worker": true
-  , "wsh": false
-  , "nomen": false
-  , "onevar": false
-  , "passfail": false
-}
\ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/isstream/.jshintrc b/deps/npm/node_modules/request/node_modules/isstream/.jshintrc
deleted file mode 100644 (file)
index c8ef3ca..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-    "predef": [ ]
-  , "bitwise": false
-  , "camelcase": false
-  , "curly": false
-  , "eqeqeq": false
-  , "forin": false
-  , "immed": false
-  , "latedef": false
-  , "noarg": true
-  , "noempty": true
-  , "nonew": true
-  , "plusplus": false
-  , "quotmark": true
-  , "regexp": false
-  , "undef": true
-  , "unused": true
-  , "strict": false
-  , "trailing": true
-  , "maxlen": 120
-  , "asi": true
-  , "boss": true
-  , "debug": true
-  , "eqnull": true
-  , "esnext": true
-  , "evil": true
-  , "expr": true
-  , "funcscope": false
-  , "globalstrict": false
-  , "iterator": false
-  , "lastsemic": true
-  , "laxbreak": true
-  , "laxcomma": true
-  , "loopfunc": true
-  , "multistr": false
-  , "onecase": false
-  , "proto": false
-  , "regexdash": false
-  , "scripturl": true
-  , "smarttabs": false
-  , "shadow": false
-  , "sub": true
-  , "supernew": false
-  , "validthis": true
-  , "browser": true
-  , "couch": false
-  , "devel": false
-  , "dojo": false
-  , "mootools": false
-  , "node": true
-  , "nonstandard": true
-  , "prototypejs": false
-  , "rhino": false
-  , "worker": true
-  , "wsh": false
-  , "nomen": false
-  , "onevar": false
-  , "passfail": false
-}
\ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/qs/.jshintrc b/deps/npm/node_modules/request/node_modules/qs/.jshintrc
deleted file mode 100644 (file)
index 997b3f7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "node": true,
-
-  "curly": true,
-  "latedef": true,
-  "quotmark": true,
-  "undef": true,
-  "unused": true,
-  "trailing": true
-}
diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/.jshintrc b/deps/npm/node_modules/request/node_modules/tunnel-agent/.jshintrc
deleted file mode 100644 (file)
index 4c1c8d4..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "node": true,
-  "asi": true,
-  "laxcomma": true
-}
index 466de0e..cbd761b 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "semver",
-  "version": "4.3.0",
+  "version": "4.3.1",
   "description": "The semantic version parser used by npm.",
   "main": "semver.js",
   "browser": "semver.browser.js",
   "license": "BSD",
   "repository": {
     "type": "git",
-    "url": "git://github.com/isaacs/node-semver.git"
+    "url": "git://github.com/npm/node-semver.git"
   },
   "bin": {
     "semver": "./bin/semver"
   },
-  "gitHead": "12c0304de19c3d01ae2524b70592e9c49a76ff9d",
+  "gitHead": "fa9be2b231666f7485e832f84d2fe99afc033e22",
   "bugs": {
-    "url": "https://github.com/isaacs/node-semver/issues"
+    "url": "https://github.com/npm/node-semver/issues"
   },
-  "homepage": "https://github.com/isaacs/node-semver",
-  "_id": "semver@4.3.0",
-  "_shasum": "3757ceed2b91afefe0ba2c3b6bda49c688b0257a",
-  "_from": "semver@>=4.3.0 <4.4.0",
-  "_npmVersion": "2.5.1",
+  "homepage": "https://github.com/npm/node-semver",
+  "_id": "semver@4.3.1",
+  "_shasum": "beb0129575b95f76110b29af08d370fd9eeb34bf",
+  "_from": "semver@>=4.3.1 <4.4.0",
+  "_npmVersion": "2.6.0",
   "_nodeVersion": "1.1.0",
   "_npmUser": {
     "name": "isaacs",
     }
   ],
   "dist": {
-    "shasum": "3757ceed2b91afefe0ba2c3b6bda49c688b0257a",
-    "tarball": "http://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
+    "shasum": "beb0129575b95f76110b29af08d370fd9eeb34bf",
+    "tarball": "http://registry.npmjs.org/semver/-/semver-4.3.1.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
+  "_resolved": "https://registry.npmjs.org/semver/-/semver-4.3.1.tgz",
+  "readme": "ERROR: No README data found!"
 }
index 079989a..d2b7b16 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "which",
   "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
-  "version": "1.0.8",
+  "version": "1.0.9",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/node-which.git"
     "which": "./bin/which"
   },
   "license": "ISC",
-  "gitHead": "681a9ebbc447cb428232ddf6c0983006d89e7755",
+  "gitHead": "df3d52a0ecd5f366d550e0f14d67ca4d5e621bad",
   "bugs": {
     "url": "https://github.com/isaacs/node-which/issues"
   },
   "homepage": "https://github.com/isaacs/node-which",
-  "_id": "which@1.0.8",
+  "_id": "which@1.0.9",
   "scripts": {},
-  "_shasum": "c2ff319534ac4a1fa45df2221b56c36279903ded",
-  "_from": "which@>=1.0.8 <1.1.0",
-  "_npmVersion": "2.1.11",
-  "_nodeVersion": "0.10.16",
+  "_shasum": "460c1da0f810103d0321a9b633af9e575e64486f",
+  "_from": "which@>=1.0.9 <1.1.0",
+  "_npmVersion": "2.6.0",
+  "_nodeVersion": "1.1.0",
   "_npmUser": {
     "name": "isaacs",
     "email": "i@izs.me"
     }
   ],
   "dist": {
-    "shasum": "c2ff319534ac4a1fa45df2221b56c36279903ded",
-    "tarball": "http://registry.npmjs.org/which/-/which-1.0.8.tgz"
+    "shasum": "460c1da0f810103d0321a9b633af9e575e64486f",
+    "tarball": "http://registry.npmjs.org/which/-/which-1.0.9.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/which/-/which-1.0.8.tgz"
+  "_resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+  "readme": "ERROR: No README data found!"
 }
index f19dd33..2a45417 100644 (file)
@@ -16,7 +16,9 @@ if (process.platform == "win32") {
     //console.error("isExe?", (mod & 0111).toString(8))
     var ret = (mod & 0001)
         || (mod & 0010) && process.getgid && gid === process.getgid()
+        || (mod & 0010) && process.getuid && 0   === process.getuid()
         || (mod & 0100) && process.getuid && uid === process.getuid()
+        || (mod & 0100) && process.getuid && 0   === process.getuid()
     //console.error("isExe?", ret)
     return ret
   }
index 55a4ea7..9a7a13b 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "version": "2.6.1",
+  "version": "2.7.0",
   "name": "npm",
   "description": "a package manager for JavaScript",
   "keywords": [
     "fstream-npm": "~1.0.1",
     "github-url-from-git": "~1.4.0",
     "github-url-from-username-repo": "~1.0.2",
-    "glob": "~4.4.0",
+    "glob": "~4.4.1",
     "graceful-fs": "~3.0.5",
     "inflight": "~1.0.4",
     "inherits": "~2.0.1",
     "ini": "~1.3.3",
-    "init-package-json": "~1.2.0",
+    "init-package-json": "~1.3.0",
     "lockfile": "~1.0.0",
     "lru-cache": "~2.5.0",
     "minimatch": "~2.0.1",
@@ -85,7 +85,7 @@
     "request": "~2.53.0",
     "retry": "~0.6.1",
     "rimraf": "~2.2.8",
-    "semver": "~4.3.0",
+    "semver": "~4.3.1",
     "sha": "~1.3.0",
     "slide": "~1.1.6",
     "sorted-object": "~1.0.0",
@@ -93,7 +93,7 @@
     "text-table": "~0.2.0",
     "uid-number": "0.0.6",
     "umask": "~1.1.0",
-    "which": "~1.0.8",
+    "which": "~1.0.9",
     "wrappy": "~1.0.1",
     "write-file-atomic": "~1.1.0"
   },
     "npm-registry-mock": "~1.0.0",
     "require-inject": "~1.1.0",
     "sprintf-js": "~1.0.2",
-    "tap": "~0.6.0"
+    "tap": "~0.7.1"
   },
   "scripts": {
     "test-legacy": "node ./test/run.js",
index 4036708..b33d3cb 100644 (file)
@@ -8,6 +8,7 @@ process.env.npm_config_loglevel = "error"
 var npm_config_cache = path.resolve(__dirname, "npm_cache")
 process.env.npm_config_cache = exports.npm_config_cache = npm_config_cache
 process.env.npm_config_userconfig = exports.npm_config_userconfig = path.join(__dirname, "fixtures", "config", "userconfig")
+process.env.npm_config_globalconfig = exports.npm_config_globalconfig = path.join(__dirname, "fixtures", "config", "globalconfig")
 process.env.random_env_var = "foo"
 
 var bin = exports.bin = require.resolve("../bin/npm-cli.js")
diff --git a/deps/npm/test/disabled/outdated-depth-integer/README.md b/deps/npm/test/disabled/outdated-depth-integer/README.md
deleted file mode 100644 (file)
index aca67ff..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# just a test
diff --git a/deps/npm/test/disabled/outdated-depth-integer/index.js b/deps/npm/test/disabled/outdated-depth-integer/index.js
deleted file mode 100644 (file)
index 33c1891..0000000
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = true
diff --git a/deps/npm/test/disabled/outdated-depth-integer/package.json b/deps/npm/test/disabled/outdated-depth-integer/package.json
deleted file mode 100644 (file)
index df269dc..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name": "whatever",
-  "description": "yeah idk",
-  "version": "1.2.3",
-  "main": "index.js",
-  "dependencies": {
-    "underscore": "1.3.1"
-  },
-  "repository": "git://github.com/luk-/whatever"
-}
diff --git a/deps/npm/test/tap/add-remote-git-file.js b/deps/npm/test/tap/add-remote-git-file.js
new file mode 100644 (file)
index 0000000..ca4a33c
--- /dev/null
@@ -0,0 +1,91 @@
+var fs = require('fs')
+var resolve = require('path').resolve
+var url = require('url')
+
+var chain = require('slide').chain
+var osenv = require('osenv')
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var npm = require('../../lib/npm.js')
+var common = require('../common-tap.js')
+
+var pkg = resolve(__dirname, 'add-remote-git-file')
+var repo = resolve(__dirname, 'add-remote-git-file-repo')
+
+var git
+var cloneURL = 'git+file://' + resolve(pkg, 'child.git')
+
+test('setup', function (t) {
+  bootstrap()
+  setup(function (er, r) {
+    t.ifError(er, 'git started up successfully')
+
+    t.end()
+  })
+})
+
+test('cache from repo', function (t) {
+  process.chdir(pkg)
+  var addRemoteGit = require('../../lib/cache/add-remote-git.js')
+  addRemoteGit(cloneURL, false, function (er, data) {
+    t.ifError(er, 'cached via git')
+    t.equal(
+      url.parse(data._resolved).protocol,
+      'git+file:',
+      'npm didn\'t go crazy adding git+git+git+git'
+    )
+
+    t.end()
+  })
+})
+
+test('clean', function (t) {
+  cleanup()
+  t.end()
+})
+
+var pjChild = JSON.stringify({
+  name: 'child',
+  version: '1.0.3'
+}, null, 2) + '\n'
+
+function bootstrap () {
+  cleanup()
+  mkdirp.sync(pkg)
+}
+
+function setup (cb) {
+  mkdirp.sync(repo)
+  fs.writeFileSync(resolve(repo, 'package.json'), pjChild)
+  npm.load({ registry: common.registry, loglevel: 'silent' }, function () {
+    git = require('../../lib/utils/git.js')
+
+    var opts = {
+      cwd: repo,
+      env: process.env
+    }
+
+    chain(
+      [
+        git.chainableExec(['init'], opts),
+        git.chainableExec(['config', 'user.name', 'PhantomFaker'], opts),
+        git.chainableExec(['config', 'user.email', 'nope@not.real'], opts),
+        git.chainableExec(['add', 'package.json'], opts),
+        git.chainableExec(['commit', '-m', 'stub package'], opts),
+        git.chainableExec(
+          ['clone', '--bare', repo, 'child.git'],
+          { cwd: pkg, env: process.env }
+        )
+      ],
+      cb
+    )
+  })
+}
+
+function cleanup () {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(repo)
+  rimraf.sync(pkg)
+}
index 1de5929..8e5546f 100644 (file)
@@ -10,7 +10,7 @@ var requireInject = require("require-inject")
 
 var npm = require("../../lib/npm.js")
 
-var PKG_DIR = path.resolve(__dirname, "build-alread-built")
+var PKG_DIR = path.resolve(__dirname, "build-already-built")
 var fakePkg = "foo"
 
 test("setup", function (t) {
diff --git a/deps/npm/test/tap/graceful-restart.js b/deps/npm/test/tap/graceful-restart.js
new file mode 100644 (file)
index 0000000..bd1f311
--- /dev/null
@@ -0,0 +1,118 @@
+var fs = require('fs')
+var resolve = require('path').resolve
+
+var osenv = require('osenv')
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+
+var pkg = resolve(__dirname, 'graceful-restart')
+
+test('setup', function (t) {
+  bootstrap()
+  t.end()
+})
+
+test('graceless restart', function (t) {
+  fs.writeFileSync(resolve(pkg, 'package.json'), pjGraceless)
+  createChild(['run-script', 'restart'], function (err, code, out) {
+    t.ifError(err, 'restart finished successfully')
+    t.equal(code, 0, 'npm run-script exited with code')
+    t.equal(out, outGraceless, 'expected all scripts to run')
+    t.end()
+  })
+})
+
+test('graceful restart', function (t) {
+  fs.writeFileSync(resolve(pkg, 'package.json'), pjGraceful)
+  createChild(['run-script', 'restart'], function (err, code, out) {
+    t.ifError(err, 'restart finished successfully')
+    t.equal(code, 0, 'npm run-script exited with code')
+    t.equal(out, outGraceful, 'expected only *restart scripts to run')
+    t.end()
+  })
+})
+
+test('clean', function (t) {
+  cleanup()
+  t.end()
+})
+
+var outGraceless = [
+  'prerestart',
+  'prestop',
+  'stop',
+  'poststop',
+  'prestart',
+  'start',
+  'poststart',
+  'postrestart',
+  ''
+].join('\n')
+
+var outGraceful = [
+  'prerestart',
+  'restart',
+  'postrestart',
+  ''
+].join('\n')
+
+var pjGraceless = JSON.stringify({
+  name: 'graceless',
+  version: '1.2.3',
+  scripts: {
+    'prestop': 'echo prestop',
+    'stop': 'echo stop',
+    'poststop': 'echo poststop',
+    'prerestart': 'echo prerestart',
+    'postrestart': 'echo postrestart',
+    'prestart': 'echo prestart',
+    'start': 'echo start',
+    'poststart': 'echo poststart'
+  }
+}, null, 2) + '\n'
+
+var pjGraceful = JSON.stringify({
+  name: 'graceful',
+  version: '1.2.3',
+  scripts: {
+    'prestop': 'echo prestop',
+    'stop': 'echo stop',
+    'poststop': 'echo poststop',
+    'prerestart': 'echo prerestart',
+    'restart': 'echo restart',
+    'postrestart': 'echo postrestart',
+    'prestart': 'echo prestart',
+    'start': 'echo start',
+    'poststart': 'echo poststart'
+  }
+}, null, 2) + '\n'
+
+function bootstrap () {
+  mkdirp.sync(pkg)
+}
+
+function cleanup () {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(pkg)
+}
+
+function createChild (args, cb) {
+  var env = {
+    HOME: process.env.HOME,
+    Path: process.env.PATH,
+    PATH: process.env.PATH,
+    'npm_config_loglevel': 'silent'
+  }
+
+  if (process.platform === 'win32')
+    env.npm_config_cache = '%APPDATA%\\npm-cache'
+
+  return common.npm(args, {
+    cwd: pkg,
+    stdio: ['ignore', 'pipe', 'ignore'],
+    env: env
+  }, cb)
+}
index 9d88fbd..ee56e9a 100644 (file)
@@ -13,13 +13,6 @@ test("lifecycle signal abort", function (t) {
     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/ls-env.js b/deps/npm/test/tap/ls-env.js
new file mode 100644 (file)
index 0000000..5ff0618
--- /dev/null
@@ -0,0 +1,77 @@
+var common = require('../common-tap')
+var test = require('tap').test
+var path = require('path')
+var rimraf = require('rimraf')
+var osenv = require('osenv')
+var mkdirp = require('mkdirp')
+var pkg = path.resolve(__dirname, 'ls-depth')
+var mr = require('npm-registry-mock')
+var opts = {cwd: pkg}
+
+function cleanup () {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(pkg + '/cache')
+  rimraf.sync(pkg + '/tmp')
+  rimraf.sync(pkg + '/node_modules')
+}
+
+test('setup', function (t) {
+  cleanup()
+  mkdirp.sync(pkg + '/cache')
+  mkdirp.sync(pkg + '/tmp')
+  mr({port: common.port}, function (er, s) {
+    common.npm(
+      [
+        'install',
+        '--registry', common.registry
+      ],
+      opts,
+      function (er, c) {
+        t.ifError(er, 'install ran without issue')
+        t.equal(c, 0)
+        s.close()
+        t.end()
+      }
+    )
+  })
+})
+
+test('npm ls --dev', function (t) {
+  common.npm(['ls', '--dev'], opts, function (er, code, stdout) {
+    t.ifError(er, 'ls --dev ran without issue')
+    t.equal(code, 0)
+    t.has(stdout, /(empty)/, 'output contains (empty)')
+    t.end()
+  })
+})
+
+test('npm ls --production', function (t) {
+  common.npm(['ls', '--production'], opts, function (er, code, stdout) {
+    t.ifError(er, 'ls --production ran without issue')
+    t.notOk(code, 'npm exited ok')
+    t.has(
+      stdout,
+      /test-package-with-one-dep@0\.0\.0/,
+      'output contains test-package-with-one-dep@0.0.0'
+    )
+    t.end()
+  })
+})
+
+test('npm ls --prod', function (t) {
+  common.npm(['ls', '--prod'], opts, function (er, code, stdout) {
+    t.ifError(er, 'ls --prod ran without issue')
+    t.notOk(code, 'npm exited ok')
+    t.has(
+      stdout,
+      /test-package-with-one-dep@0\.0\.0/,
+      'output contains test-package-with-one-dep@0.0.0'
+    )
+    t.end()
+  })
+})
+
+test('cleanup', function (t) {
+  cleanup()
+  t.end()
+})
@@ -3,28 +3,53 @@ var common = require('../common-tap')
   , rimraf = require('rimraf')
   , npm = require('../../')
   , mr = require('npm-registry-mock')
-  , pkg = __dirname + '/outdated-depth'
+  , pkg = __dirname + '/outdated-depth-integer'
+
+var osenv = require("osenv")
+var mkdirp = require("mkdirp")
+var fs = require("fs")
+
+var pj = JSON.stringify({
+  "name": "whatever",
+  "description": "yeah idk",
+  "version": "1.2.3",
+  "main": "index.js",
+  "dependencies": {
+    "underscore": "1.3.1"
+  },
+  "repository": "git://github.com/luk-/whatever"
+}, null, 2);
 
 function cleanup () {
-  rimraf.sync(pkg + '/node_modules')
-  rimraf.sync(pkg + '/cache')
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(pkg)
+}
+
+function setup () {
+  mkdirp.sync(pkg)
+  process.chdir(pkg)
+  fs.writeFileSync("package.json", pj)
 }
 
+test("setup", function (t) {
+  cleanup()
+  setup()
+  t.end()
+})
+
 test('outdated depth integer', function (t) {
   // todo: update with test-package-with-one-dep once the new
   // npm-registry-mock is published
-  var expected = [
+  var expected = [[
     pkg,
     'underscore',
-    '1.3.1',
-    '1.3.1',
-    '1.5.1',
+    undefined, // no version installed
+    '1.3.1',   // wanted
+    '1.5.1',   // latest
     '1.3.1'
-  ]
-
-  process.chdir(pkg)
+  ]]
 
-  mr({port : common.port}, function (s) {
+  mr({port : common.port}, function (er, s) {
     npm.load({
       cache: pkg + '/cache'
     , loglevel: 'silent'
@@ -36,7 +61,7 @@ test('outdated depth integer', function (t) {
           if (er) throw new Error(er)
           npm.outdated(function (err, d) {
             if (err) throw new Error(err)
-            t.deepEqual(d[0], expected)
+            t.deepEqual(d, expected)
             s.close()
             t.end()
           })
index 6b5ce26..3579068 100644 (file)
@@ -1,12 +1,17 @@
-var common = require("../common-tap")
-  , test = require("tap").test
-  , path = require("path")
-  , rimraf = require("rimraf")
-  , mkdirp = require("mkdirp")
-  , pkg = path.resolve(__dirname, "run-script")
-  , cache = path.resolve(pkg, "cache")
-  , tmp = path.resolve(pkg, "tmp")
-  , opts = { cwd: pkg }
+var fs = require('fs')
+var path = require('path')
+
+var mkdirp = require('mkdirp')
+var test = require('tap').test
+var rimraf = require('rimraf')
+
+var common = require('../common-tap')
+
+var pkg = path.resolve(__dirname, 'run-script')
+var cache = path.resolve(pkg, 'cache')
+var tmp = path.resolve(pkg, 'tmp')
+
+var opts = { cwd: pkg }
 
 function testOutput (t, command, er, code, stdout, stderr) {
   var lines
@@ -15,95 +20,216 @@ function testOutput (t, command, er, code, stdout, stderr) {
     throw er
 
   if (stderr)
-    throw new Error("npm " + command + " stderr: " + stderr.toString())
+    throw new Error('npm ' + command + ' stderr: ' + stderr.toString())
 
-  lines = stdout.trim().split("\n")
-  stdout = lines.filter(function(line) {
-    return line.trim() !== "" && line[0] !== ">"
-  }).join(";")
+  lines = stdout.trim().split('\n')
+  stdout = lines.filter(function (line) {
+    return line.trim() !== '' && line[0] !== '>'
+  }).join(';')
 
   t.equal(stdout, command)
   t.end()
 }
 
+function writeMetadata (object) {
+  fs.writeFileSync(
+    path.resolve(pkg, 'package.json'),
+    JSON.stringify(object, null, 2) + '\n'
+  )
+}
+
 function cleanup () {
-  rimraf.sync(cache)
-  rimraf.sync(tmp)
+  rimraf.sync(pkg)
 }
 
-test("setup", function (t) {
+test('setup', function (t) {
   cleanup()
   mkdirp.sync(cache)
   mkdirp.sync(tmp)
+  writeMetadata(fullyPopulated)
   t.end()
 })
 
-test("npm run-script", function (t) {
-  common.npm(["run-script", "start"], opts, testOutput.bind(null, t, "start"))
+var fullyPopulated = {
+  'name': 'runscript',
+  'version': '1.2.3',
+  'scripts': {
+    'start': 'node -e "console.log(process.argv[1] || \'start\')"',
+    'prewith-pre': 'node -e "console.log(process.argv[1] || \'pre\')"',
+    'with-pre': 'node -e "console.log(process.argv[1] || \'main\')"',
+    'with-post': 'node -e "console.log(process.argv[1] || \'main\')"',
+    'postwith-post': 'node -e "console.log(process.argv[1] || \'post\')"',
+    'prewith-both': 'node -e "console.log(process.argv[1] || \'pre\')"',
+    'with-both': 'node -e "console.log(process.argv[1] || \'main\')"',
+    'postwith-both': 'node -e "console.log(process.argv[1] || \'post\')"',
+    'stop': 'node -e "console.log(process.argv[1] || \'stop\')"'
+  }
+}
+
+var lifecycleOnly = {
+  name: 'scripted',
+  version: '1.2.3',
+  scripts: {
+    'prestart': 'echo prestart'
+  }
+}
+
+var directOnly = {
+  name: 'scripted',
+  version: '1.2.3',
+  scripts: {
+    'whoa': 'echo whoa'
+  }
+}
+
+var both = {
+  name: 'scripted',
+  version: '1.2.3',
+  scripts: {
+    'prestart': 'echo prestart',
+    'whoa': 'echo whoa'
+  }
+}
+
+test('npm run-script start', function (t) {
+  common.npm(['run-script', 'start'], opts, testOutput.bind(null, t, 'start'))
+})
+
+test('npm run-script with args', function (t) {
+  common.npm(['run-script', 'start', '--', 'stop'], opts, testOutput.bind(null, t, 'stop'))
 })
 
-test("npm run-script with args", function (t) {
-  common.npm(["run-script", "start", "--", "stop"], opts, testOutput.bind(null, t, "stop"))
+test('npm run-script with args that contain spaces', function (t) {
+  common.npm(['run-script', 'start', '--', 'hello world'], opts, testOutput.bind(null, t, 'hello world'))
 })
 
-test("npm run-script with args that contain spaces", function (t) {
-  common.npm(["run-script", "start", "--", "hello world"], opts, testOutput.bind(null, t, "hello world"))
+test('npm run-script with args that contain single quotes', function (t) {
+  common.npm(['run-script', 'start', '--', 'they"re awesome'], opts, testOutput.bind(null, t, 'they"re awesome'))
 })
 
-test("npm run-script with args that contain single quotes", function (t) {
-  common.npm(["run-script", "start", "--", "they're awesome"], opts, testOutput.bind(null, t, "they're awesome"))
+test('npm run-script with args that contain double quotes', function (t) {
+  common.npm(['run-script', 'start', '--', 'what"s "up"?'], opts, testOutput.bind(null, t, 'what"s "up"?'))
 })
 
-test("npm run-script with args that contain double quotes", function (t) {
-  common.npm(["run-script", "start", "--", "what's \"up\"?"], opts, testOutput.bind(null, t, "what's \"up\"?"))
+test('npm run-script with pre script', function (t) {
+  common.npm(['run-script', 'with-post'], opts, testOutput.bind(null, t, 'main;post'))
 })
 
-test("npm run-script with pre script", function (t) {
-  common.npm(["run-script", "with-post"], opts, testOutput.bind(null, t, "main;post"))
+test('npm run-script with post script', function (t) {
+  common.npm(['run-script', 'with-pre'], opts, testOutput.bind(null, t, 'pre;main'))
 })
 
-test("npm run-script with post script", function (t) {
-  common.npm(["run-script", "with-pre"], opts, testOutput.bind(null, t, "pre;main"))
+test('npm run-script with both pre and post script', function (t) {
+  common.npm(['run-script', 'with-both'], opts, testOutput.bind(null, t, 'pre;main;post'))
 })
 
-test("npm run-script with both pre and post script", function (t) {
-  common.npm(["run-script", "with-both"], opts, testOutput.bind(null, t, "pre;main;post"))
+test('npm run-script with both pre and post script and with args', function (t) {
+  common.npm(['run-script', 'with-both', '--', 'an arg'], opts, testOutput.bind(null, t, 'pre;an arg;post'))
 })
 
-test("npm run-script with both pre and post script and with args", function (t) {
-  common.npm(["run-script", "with-both", "--", "an arg"], opts, testOutput.bind(null, t, "pre;an arg;post"))
+test('npm run-script explicitly call pre script with arg', function (t) {
+  common.npm(['run-script', 'prewith-pre', '--', 'an arg'], opts, testOutput.bind(null, t, 'an arg'))
 })
 
-test("npm run-script explicitly call pre script with arg", function (t) {
-  common.npm(["run-script", "prewith-pre", "--", "an arg"], opts, testOutput.bind(null, t, "an arg"))
+test('npm run-script test', function (t) {
+  common.npm(['run-script', 'test'], opts, function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm run-script test ran without issue')
+    t.notOk(stderr, 'should not generate errors')
+    t.end()
+  })
+})
+
+test('npm run-script env', function (t) {
+  common.npm(['run-script', 'env'], opts, function (er, code, stdout, stderr) {
+    t.ifError(er, 'using default env script')
+    t.notOk(stderr, 'should not generate errors')
+    t.ok(stdout.indexOf('npm_config_init_version') > 0, 'expected values in var list')
+    t.end()
+  })
+})
+
+test('npm run-script nonexistent-script', function (t) {
+  common.npm(['run-script', 'nonexistent-script'], opts, function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm run-script nonexistent-script did not cause npm to explode')
+    t.ok(stderr, 'should generate errors')
+    t.end()
+  })
+})
+
+test('npm run-script restart when there isn\'t restart', function (t) {
+  common.npm(['run-script', 'restart'], opts, testOutput.bind(null, t, 'stop;start'))
+})
+
+test('npm run-script nonexistent-script with --if-present flag', function (t) {
+  common.npm(['run-script', '--if-present', 'nonexistent-script'], opts, function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm run-script --if-present non-existent-script ran without issue')
+    t.notOk(stderr, 'should not generate errors')
+    t.end()
+  })
 })
 
-test("npm run-script test", function (t) {
-  common.npm(["run-script", "test"], opts, function (er, code, stdout, stderr) {
-    t.ifError(er, "npm run-script test ran without issue")
-    t.notOk(stderr, "should not generate errors")
+test('npm run-script no-params (lifecycle only)', function (t) {
+  var expected = [
+    'Lifecycle scripts included in scripted:',
+    '  prestart',
+    '    echo prestart',
+    ''
+  ].join('\n')
+
+  writeMetadata(lifecycleOnly)
+
+  common.npm(['run-script'], opts, function (err, code, stdout, stderr) {
+    t.ifError(err, 'ran run-script without parameters without crashing')
+    t.notOk(code, 'npm exited without error code')
+    t.notOk(stderr, 'npm printed nothing to stderr')
+    t.equal(stdout, expected, 'got expected output')
     t.end()
   })
 })
 
-test("npm run-script env", function (t) {
-  common.npm(["run-script", "env"], opts, function (er, code, stdout, stderr) {
-    t.ifError(er, "using default env script")
-    t.notOk(stderr, "should not generate errors")
-    t.ok( stdout.indexOf("npm_config_init_version") > 0, "expected values in var list" )
+test('npm run-script no-params (direct only)', function (t) {
+  var expected = [
+    'Scripts available in scripted via `npm run-script`:',
+    '  whoa',
+    '    echo whoa',
+    ''
+  ].join('\n')
+
+  writeMetadata(directOnly)
+
+  common.npm(['run-script'], opts, function (err, code, stdout, stderr) {
+    t.ifError(err, 'ran run-script without parameters without crashing')
+    t.notOk(code, 'npm exited without error code')
+    t.notOk(stderr, 'npm printed nothing to stderr')
+    t.equal(stdout, expected, 'got expected output')
     t.end()
   })
 })
 
-test("npm run-script nonexistent-script", function (t) {
-  common.npm(["run-script", "nonexistent-script"], opts, function (er, code, stdout, stderr) {
-    t.ifError(er, "npm run-script nonexistent-script did not cause npm to explode")
-    t.ok(stderr, "should generate errors")
+test('npm run-script no-params (direct only)', function (t) {
+  var expected = [
+    'Lifecycle scripts included in scripted:',
+    '  prestart',
+    '    echo prestart',
+    '',
+    'available via `npm run-script`:',
+    '  whoa',
+    '    echo whoa',
+    ''
+  ].join('\n')
+
+  writeMetadata(both)
+
+  common.npm(['run-script'], opts, function (err, code, stdout, stderr) {
+    t.ifError(err, 'ran run-script without parameters without crashing')
+    t.notOk(code, 'npm exited without error code')
+    t.notOk(stderr, 'npm printed nothing to stderr')
+    t.equal(stdout, expected, 'got expected output')
     t.end()
   })
 })
 
-test("cleanup", function (t) {
+test('cleanup', function (t) {
   cleanup()
   t.end()
 })
diff --git a/deps/npm/test/tap/run-script/package.json b/deps/npm/test/tap/run-script/package.json
deleted file mode 100644 (file)
index ebaffef..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{"name":"runscript"
-,"version":"1.2.3"
-,"scripts":{
-  "start":"node -e \"console.log(process.argv[1] || 'start')\"",
-  "prewith-pre":"node -e \"console.log(process.argv[1] || 'pre')\"",
-  "with-pre":"node -e \"console.log(process.argv[1] || 'main')\"",
-  "with-post":"node -e \"console.log(process.argv[1] || 'main')\"",
-  "postwith-post":"node -e \"console.log(process.argv[1] || 'post')\"",
-  "prewith-both":"node -e \"console.log(process.argv[1] || 'pre')\"",
-  "with-both":"node -e \"console.log(process.argv[1] || 'main')\"",
-  "postwith-both":"node -e \"console.log(process.argv[1] || 'post')\""
-  }
-}
index 379a0d9..14eebf1 100644 (file)
@@ -14,7 +14,7 @@ test("shrinkwrap doesn't strip out the dependency", function (t) {
   t.plan(1)
 
   mr({port : common.port}, function (er, s) {
-    setup({ production: true }, function (err) {
+    setup({}, function (err) {
       if (err) return t.fail(err)
 
       npm.install(".", function (err) {
diff --git a/deps/npm/test/tap/update-examples.js b/deps/npm/test/tap/update-examples.js
new file mode 100644 (file)
index 0000000..2349e25
--- /dev/null
@@ -0,0 +1,188 @@
+var common = require('../common-tap.js')
+var test = require('tap').test
+var npm = require('../../lib/npm.js')
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+var path = require('path')
+var mr = require('npm-registry-mock')
+
+var osenv = require('osenv')
+
+var requireInject = require('require-inject')
+
+var PKG_DIR = path.resolve(__dirname, 'update-examples')
+var CACHE_DIR = path.resolve(PKG_DIR, 'cache')
+
+// ** constant templates for mocks **
+var DEFAULT_PKG = {
+  'name': 'update-examples',
+  'version': '1.2.3',
+  'dependencies': {
+    'dep1': '*'
+  }
+}
+
+var DEP_PKG = {
+  name: 'dep1',
+  version: '1.1.1',
+  _from: '^1.1.1'
+}
+
+var INSTALLED = {
+  dependencies: {
+    'dep1': '1.1.1'
+  }
+}
+
+var DEP1_REGISTRY = { name: 'dep1',
+  'dist-tags': { latest: '1.2.2' },
+  versions: {
+    '1.2.2': { version: '1.2.2' },
+    '1.2.1': { version: '1.2.1' },
+    '1.2.0': { version: '1.2.0' },
+    '1.1.2': { version: '1.1.2' },
+    '1.1.1': { version: '1.1.1' },
+    '1.0.0': { version: '1.0.0' },
+    '0.4.1': { version: '0.4.1' },
+    '0.4.0': { version: '0.4.0' },
+    '0.2.0': { version: '0.2.0' }
+  }
+}
+
+var registryMocks = {
+  'get': {
+    '/dep1': [200, DEP1_REGISTRY]
+  }
+}
+
+// ** dynamic mocks, cloned from templates and modified **
+var mockServer
+var mockDepJson = clone(DEP_PKG)
+var mockInstalled = clone(INSTALLED)
+var mockParentJson = clone(DEFAULT_PKG)
+
+// target
+var installAskedFor
+
+function clone (a) {
+  return extend({}, a)
+}
+
+function extend (a, b) {
+  for (var key in b) {
+    a[key] = b[key]
+  }
+  return a
+}
+
+function resetPackage (options) {
+  rimraf.sync(CACHE_DIR)
+  mkdirp.sync(CACHE_DIR)
+
+  installAskedFor = undefined
+
+  mockParentJson = clone(DEFAULT_PKG)
+  mockInstalled = clone(INSTALLED)
+  mockDepJson = clone(DEP_PKG)
+
+  if (options.wanted) {
+    mockParentJson.dependencies.dep1 = options.wanted
+    mockDepJson._from = options.wanted
+  }
+
+  if (options.installed) {
+    mockInstalled.dependencies.dep1 = options.installed
+    mockDepJson.version = options.installed
+  }
+}
+
+function mockReadInstalled (dir, opts, cb) {
+  cb(null, mockInstalled)
+}
+
+function mockReadJson (file, cb) {
+  cb(null, file.match(/dep1/) ? mockDepJson : mockParentJson)
+}
+
+function mockCommand (npm, name, fn) {
+  delete npm.commands[name]
+  npm.commands[name] = fn
+}
+
+test('setup', function (t) {
+  process.chdir(osenv.tmpdir())
+  mkdirp.sync(PKG_DIR)
+  process.chdir(PKG_DIR)
+
+  resetPackage({})
+
+  mr({ port: common.port, mocks: registryMocks }, function (er, server) {
+    npm.load({ cache: CACHE_DIR,
+      registry: common.registry,
+    cwd: PKG_DIR }, function (err) {
+        t.ifError(err, 'started server')
+        mockServer = server
+
+        mockCommand(npm, 'install', function mockInstall (where, what, cb) {
+          installAskedFor = what
+          cb(null)
+        })
+
+        mockCommand(npm, 'outdated', requireInject('../../lib/outdated', {
+          'read-installed': mockReadInstalled,
+          'read-package-json': mockReadJson
+        }))
+
+        t.end()
+      })
+  })
+})
+
+test('update caret dependency to latest', function (t) {
+  resetPackage({ wanted: '^1.1.1' })
+
+  npm.commands.update([], function (err) {
+    t.ifError(err)
+    t.equal('dep1@1.2.2', installAskedFor, 'should want to install dep@1.2.2')
+    t.end()
+  })
+})
+
+test('update tilde dependency to latest', function (t) {
+  resetPackage({ wanted: '~1.1.1' })
+
+  npm.commands.update([], function (err) {
+    t.ifError(err)
+    t.equal('dep1@1.1.2', installAskedFor, 'should want to install dep@1.1.2')
+    t.end()
+  })
+})
+
+test('update old caret dependency with no newer', function (t) {
+  resetPackage({ wanted: '^0.2.0', installed: '^0.2.0' })
+
+  npm.commands.update([], function (err) {
+    t.ifError(err)
+    t.equal('dep1@0.2.0', installAskedFor, 'should want to install dep@0.2.0')
+    t.end()
+  })
+})
+
+test('update old caret dependency with newer', function (t) {
+  resetPackage({ wanted: '^0.4.0', installed: '^0.4.0' })
+
+  npm.commands.update([], function (err) {
+    t.ifError(err)
+    t.equal('dep1@0.4.1', installAskedFor, 'should want to install dep@0.4.1')
+    t.end()
+  })
+})
+
+test('cleanup', function (t) {
+  mockServer.close()
+
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(PKG_DIR)
+
+  t.end()
+})