deps: upgrade npm to 2.6.0
authorForrest L Norvell <forrest@npmjs.com>
Fri, 20 Feb 2015 17:03:34 +0000 (09:03 -0800)
committerBen Noordhuis <info@bnoordhuis.nl>
Sun, 22 Feb 2015 06:42:24 +0000 (07:42 +0100)
PR-URL: https://github.com/iojs/io.js/pull/904
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
236 files changed:
deps/npm/.eslintrc
deps/npm/.travis.yml
deps/npm/CHANGELOG.md
deps/npm/README.md
deps/npm/doc/cli/npm-dist-tag.md
deps/npm/doc/cli/npm-link.md
deps/npm/doc/cli/npm-logout.md [new file with mode: 0644]
deps/npm/doc/files/package.json.md
deps/npm/doc/misc/npm-index.md
deps/npm/doc/misc/semver.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 [new file with mode: 0644]
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.html
deps/npm/html/partial/doc/cli/npm-access.html
deps/npm/html/partial/doc/cli/npm-dist-tag.html
deps/npm/html/partial/doc/cli/npm-link.html
deps/npm/html/partial/doc/cli/npm-logout.html [new file with mode: 0644]
deps/npm/html/partial/doc/cli/npm-ls.html
deps/npm/html/partial/doc/cli/npm.html
deps/npm/html/partial/doc/files/npm-json.html
deps/npm/html/partial/doc/files/package.json.html
deps/npm/html/partial/doc/index.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-index.html
deps/npm/html/partial/doc/misc/semver.html
deps/npm/lib/build.js
deps/npm/lib/cache/add-named.js
deps/npm/lib/config/clear-credentials-by-uri.js [new file with mode: 0644]
deps/npm/lib/config/core.js
deps/npm/lib/install.js
deps/npm/lib/logout.js [new file with mode: 0644]
deps/npm/lib/npm.js
deps/npm/lib/outdated.js
deps/npm/man/man1/npm-README.1
deps/npm/man/man1/npm-access.1
deps/npm/man/man1/npm-dist-tag.1
deps/npm/man/man1/npm-link.1
deps/npm/man/man1/npm-logout.1 [new file with mode: 0644]
deps/npm/man/man1/npm-ls.1
deps/npm/man/man1/npm.1
deps/npm/man/man3/npm.3
deps/npm/man/man5/npm-json.5
deps/npm/man/man5/package.json.5
deps/npm/man/man7/npm-index.7
deps/npm/man/man7/semver.7
deps/npm/node_modules/columnify/Readme.md
deps/npm/node_modules/columnify/columnify.js
deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js
deps/npm/node_modules/ini/ini.js
deps/npm/node_modules/ini/package.json
deps/npm/node_modules/ini/test/fixtures/foo.ini
deps/npm/node_modules/ini/test/foo.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/README.md
deps/npm/node_modules/minimatch/node_modules/brace-expansion/example.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/index.bak
deps/npm/node_modules/minimatch/node_modules/brace-expansion/index.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/nested.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/order.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/pad.js
deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js
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/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js
deps/npm/node_modules/node-gyp/node_modules/minimatch/test/brace-expand.js
deps/npm/node_modules/npm-registry-client/.travis.yml [new file with mode: 0644]
deps/npm/node_modules/npm-registry-client/lib/logout.js [new file with mode: 0644]
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/float.patch
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/build/build.js
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md
deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/test/string.js
deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/node_modules/hosted-git-info/README.md
deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/node_modules/hosted-git-info/test/bitbucket.js
deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/node_modules/hosted-git-info/test/gist.js
deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/node_modules/hosted-git-info/test/github.js
deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/node_modules/hosted-git-info/test/gitlab.js
deps/npm/node_modules/npm-registry-client/package.json
deps/npm/node_modules/npm-registry-client/test/logout.js [new file with mode: 0644]
deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js
deps/npm/node_modules/read-package-json/package.json
deps/npm/node_modules/read-package-json/read-json.js
deps/npm/node_modules/read-package-json/test/bin.js [new file with mode: 0644]
deps/npm/node_modules/read-package-json/test/fixtures/badbin.json [new file with mode: 0644]
deps/npm/node_modules/read-package-json/test/fixtures/bin.json [new file with mode: 0644]
deps/npm/node_modules/read-package-json/test/fixtures/bin/echo [new file with mode: 0644]
deps/npm/node_modules/read-package-json/test/fixtures/emptybin.json [new file with mode: 0644]
deps/npm/node_modules/request/lib/getProxyFromURI.js
deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile
deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js
deps/npm/node_modules/request/node_modules/hawk/.npmignore
deps/npm/node_modules/request/node_modules/hawk/.travis.yml
deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js
deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore
deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml
deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml
deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md
deps/npm/node_modules/request/node_modules/hawk/test/uri.js
deps/npm/node_modules/request/node_modules/isstream/test.js
deps/npm/node_modules/request/node_modules/node-uuid/LICENSE.md
deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md
deps/npm/node_modules/request/request.js
deps/npm/node_modules/semver/README.md
deps/npm/node_modules/semver/package.json
deps/npm/node_modules/semver/semver.browser.js
deps/npm/node_modules/semver/semver.browser.js.gz
deps/npm/node_modules/semver/semver.js
deps/npm/node_modules/semver/semver.min.js
deps/npm/node_modules/semver/semver.min.js.gz
deps/npm/node_modules/semver/test/index.js
deps/npm/node_modules/semver/test/major-minor-patch.js [new file with mode: 0644]
deps/npm/node_modules/sha/node_modules/readable-stream/float.patch
deps/npm/node_modules/umask/ChangeLog
deps/npm/node_modules/umask/LICENSE
deps/npm/node_modules/umask/index.js
deps/npm/package.json
deps/npm/test/common-tap.js
deps/npm/test/fixtures/config/userconfig-with-gc
deps/npm/test/tap/add-remote-git-fake-windows.js
deps/npm/test/tap/config-credentials.js
deps/npm/test/tap/config-edit.js [new file with mode: 0644]
deps/npm/test/tap/install-man.js [new file with mode: 0644]
deps/npm/test/tap/logout.js [new file with mode: 0644]
deps/npm/test/tap/umask-lifecycle.js
deps/npm/test/tap/version-git-not-clean.js

index b54e30f..3c262a6 100644 (file)
@@ -10,6 +10,7 @@
     "curly": 0,
     "no-underscore-dangle": 0,
     "no-lonely-if": 1,
+    "no-shadow": 0,
     "no-unused-vars": [2, {"vars" : "all", "args" : "after-used"}],
     "no-mixed-requires": 0,
     "space-infix-ops": 0,
index c540f65..3ed21bf 100644 (file)
@@ -1,11 +1,15 @@
 language: node_js
 node_js:
-  - "0.11"
+  - iojs
+  - "0.12"
   - "0.10"
+  - "0.8"
 env:
   - DEPLOY_VERSION=testing
 before_install:
   - "npm config set spin false"
-  - "npm install -g npm@^2"
+  - "npm install -g npm@~2"
   - "sudo mkdir -p /var/run/couchdb"
 script: "npm run-script test-all"
+notifications:
+    slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8
index 248de89..e041290 100644 (file)
@@ -1,3 +1,50 @@
+### v2.6.0 (2015-02-12):
+
+#### A LONG-AWAITED GUEST
+
+* [`38c4825`](https://github.com/npm/npm/commit/38c48254d3d217b4babf5027cb39492be4052fc2)
+  [#5068](https://github.com/npm/npm/issues/5068) Add new logout command, and
+  make it do something useful on both bearer-based and basic-based authed
+  clients. ([@othiym23](https://github.com/othiym23))
+* [`4bf0f5d`](https://github.com/npm/npm/commit/4bf0f5d56c33649124b486e016ba4a620c105c1c)
+  `npm-registry-clieng@6.1.1`: Support new `logout` endpoint to invalidate
+  token for sessions. ([@othiym23](https://github.com/othiym23))
+
+#### DEPRECATIONS
+
+* [`c8e08e6`](https://github.com/npm/npm/commit/c8e08e6d91f4016c80f572aac5a2080df0f78098)
+  [#6565](https://github.com/npm/npm/issues/6565) Warn that `peerDependency`
+  behavior is changing and add a note to the docs.
+  ([@othiym23](https://github.com/othiym23))
+* [`7c81a5f`](https://github.com/npm/npm/commit/7c81a5f5f058941f635a92f22641ea68e79b60db)
+  [#7171](https://github.com/npm/npm/issues/7171) Warn that `engineStrict` in
+  `package.json` will be going away in the next major version of npm (coming
+  soon!) ([@othiym23](https://github.com/othiym23))
+
+#### BUG FIXES & TWEAKS
+
+* [`add5890`](https://github.com/npm/npm/commit/add5890ce447dabf120b907a85f715df1e065f44)
+  [#4668](https://github.com/npm/npm/issues/4668) `read-package-json@1.3.1`:
+  Warn when a `bin` symbolic link is a dangling reference.
+* [`4b42071`](https://github.com/npm/npm/commit/4b420714dfb84338d85def78c30bd665e32d72c1)
+  `semver@4.3.0`: Add functions to extract parts of the version triple, fix a
+  typo. ([@isaacs](https://github.com/isaacs))
+* [`a9aff38`](https://github.com/npm/npm/commit/a9aff38719918486fc381d67ad3371c475632ff7)
+  Use full path for man pages as the symbolic link source, instead of just the
+  file name. ([@bengl](https://github.com/bengl))
+* [`6fd0fbd`](https://github.com/npm/npm/commit/6fd0fbd8a0347fd47cb7ee0064e0902a2f8a087c)
+  [#7233](https://github.com/npm/npm/issues/7233) Ensure `globalconfig` path
+  exists before trying to edit it. ([@ljharb](https://github.com/ljharb))
+* [`a0a2620`](https://github.com/npm/npm/commit/a0a262047647d9e2690cebe5a89e6a0dd33202bb)
+  `ini@1.3.3`: Allow embedded, quoted equals signs in ini field names.
+  ([@isaacs](https://github.com/isaacs))
+
+Also typos and other documentation issues were addressed by
+[@rutsky](https://github.com/rutsky), [@imurchie](https://github.com/imurchie),
+[@marcin-wosinek](https://github.com/marcin-wosinek),
+[@marr](https://github.com/marr), [@amZotti](https://github.com/amZotti), and
+[@karlhorky](https://github.com/karlhorky). Thank you, everyone!
+
 ### v2.5.1 (2015-02-06):
 
 This release doesn't look like much, but considerable effort went into ensuring
index 0a4301e..9ed0842 100644 (file)
@@ -173,7 +173,7 @@ npm, Inc. or the Node.js project.
 
 Data published to the npm registry is not part of npm itself, and is
 the sole property of the publisher.  While every effort is made to
-ensure accountability, there is absolutely no guarantee, warrantee, or
+ensure accountability, there is absolutely no guarantee, warranty, or
 assertion expressed or implied as to the quality, fitness for a
 specific purpose, or lack of malice in any given npm package.
 
index b8eabe7..f8e4566 100644 (file)
@@ -20,7 +20,7 @@ Add, remove, and enumerate distribution tags on a package:
 
 * ls:
   Show all of the dist-tags for a package, defaulting to the package in
-  the curren prefix.
+  the current prefix.
 
 A tag can be used when installing packages as a reference to a version instead
 of using a specific version number:
index 786ad81..a48fb97 100644 (file)
@@ -38,7 +38,7 @@ For example:
     npm link redis              # link-install the package
 
 Now, any changes to ~/projects/node-redis will be reflected in
-~/projects/node-bloggy/node_modules/redis/
+~/projects/node-bloggy/node_modules/node-redis/
 
 You may also shortcut the two steps in one.  For example, to do the
 above use-case in a shorter way:
@@ -49,7 +49,7 @@ above use-case in a shorter way:
 The second line is the equivalent of doing:
 
     (cd ../node-redis; npm link)
-    npm link redis
+    npm link node-redis
 
 That is, it first creates a global link, and then links the global
 installation target into your project's `node_modules` folder.
diff --git a/deps/npm/doc/cli/npm-logout.md b/deps/npm/doc/cli/npm-logout.md
new file mode 100644 (file)
index 0000000..867953c
--- /dev/null
@@ -0,0 +1,50 @@
+npm-logout(1) -- Log out of the registry
+========================================
+
+## SYNOPSIS
+
+    npm logout [--registry=url] [--scope=@orgname]
+
+## DESCRIPTION
+
+When logged into a registry that supports token-based authentication, tell the
+server to end this token's session. This will invalidate the token everywhere
+you're using it, not just for the current environment.
+
+When logged into a legacy registry that uses username and password authentication, this will
+clear the credentials in your user configuration. In this case, it will _only_ affect
+the current environment.
+
+If `--scope` is provided, this will find the credentials for the registry
+connected to that scope, if set.
+
+## CONFIGURATION
+
+### registry
+
+Default: http://registry.npmjs.org/
+
+The base URL of the npm package registry. If `scope` is also specified,
+it takes precedence.
+
+### scope
+
+Default: none
+
+If specified, the user and login credentials given will be associated
+with the specified scope. See `npm-scope(7)`. You can use both at the same time,
+e.g.
+
+    npm adduser --registry=http://myregistry.example.com --scope=@myco
+
+This will set a registry for the given scope and login or create a user for
+that registry at the same time.
+
+## SEE ALSO
+
+* npm-adduser(1)
+* npm-registry(7)
+* npm-config(1)
+* npm-config(7)
+* npmrc(5)
+* npm-whoami(1)
index 933c23a..3f29a8c 100644 (file)
@@ -75,7 +75,7 @@ with your package.
 
 It should look like this:
 
-    { "url" : "http://github.com/owner/project/issues"
+    { "url" : "https://github.com/owner/project/issues"
     , "email" : "project@hostname.com"
     }
 
@@ -219,7 +219,7 @@ will create entries for `man foo` and `man 2 foo`
 
 The CommonJS [Packages](http://wiki.commonjs.org/wiki/Packages/1.0) spec details a
 few ways that you can indicate the structure of your package using a `directories`
-object. If you look at [npm's package.json](http://registry.npmjs.org/npm/latest),
+object. If you look at [npm's package.json](https://registry.npmjs.org/npm/latest),
 you'll see that it has directories for doc, lib, and man.
 
 In the future, this information may be used in other creative ways.
@@ -260,18 +260,23 @@ Do it like this:
 
     "repository" :
       { "type" : "git"
-      , "url" : "http://github.com/npm/npm.git"
+      , "url" : "https://github.com/npm/npm.git"
       }
 
     "repository" :
       { "type" : "svn"
-      , "url" : "http://v8.googlecode.com/svn/trunk/"
+      , "url" : "https://v8.googlecode.com/svn/trunk/"
       }
 
 The URL should be a publicly available (perhaps read-only) url that can be handed
 directly to a VCS program without any modification.  It should not be a url to an
 html project page that you put in your browser.  It's for computers.
 
+For GitHub repositories you can use the same shortcut syntax you use for `npm
+install`:
+
+    "repository": "npm/npm"
+
 ## scripts
 
 The "scripts" property is a dictionary containing script commands that are run
@@ -459,13 +464,19 @@ For example:
     }
 
 This ensures your package `tea-latte` can be installed *along* with the second
-major version of the host package `tea` only. The host package is automatically
-installed if needed. `npm install tea-latte` could possibly yield the following
-dependency graph:
+major version of the host package `tea` only. `npm install tea-latte` could
+possibly yield the following dependency graph:
 
     â”œâ”€â”€ tea-latte@1.3.5
     â””── tea@2.2.0
 
+**NOTE: npm versions 1 and 2 will automatically install `peerDependencies` if
+they are not explicitly depended upon higher in the dependency tree. In the
+next major version of npm (npm@3), this will no longer be the case. You will
+receive a warning that the peerDependency is not installed instead.** The
+behavior in npms 1 & 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible.
+
 Trying to install another plugin with a conflicting requirement will cause an
 error. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions.
@@ -534,6 +545,8 @@ field is advisory only.
 
 ## engineStrict
 
+**NOTE: This feature is deprecated and will be removed in npm 3.0.0.**
+
 If you are sure that your module will *definitely not* run properly on
 versions of Node/npm other than those specified in the `engines` object,
 then you can set `"engineStrict": true` in your package.json file.
@@ -542,8 +555,7 @@ This will override the user's `engine-strict` config setting.
 Please do not do this unless you are really very very sure.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node.  Consider this choice carefully.  If
-people abuse it, it will be removed in a future version of npm.
+updating to new versions of Node.  Consider this choice carefully.
 
 ## os
 
index 4cbfbdc..8b9b69a 100644 (file)
@@ -93,6 +93,10 @@ Install a package
 
 Symlink a package folder
 
+### npm-logout(1)
+
+Log out of the registry
+
 ### npm-ls(1)
 
 List installed packages
index 3f9555d..2bd5acc 100644 (file)
@@ -106,7 +106,7 @@ similar risk on the *next* set of prerelease versions.
 The method `.inc` takes an additional `identifier` string argument that
 will append the value of the string as a prerelease identifier:
 
-````javascript
+```javascript
 > semver.inc('1.2.3', 'pre', 'beta')
 '1.2.4-beta.0'
 ```
@@ -248,6 +248,9 @@ strings that they parse.
     same as `prepatch`. It increments the patch version, then makes a
     prerelease. If the input version is already a prerelease it simply
     increments it.
+* `major(v)`: Return the major version number.
+* `minor(v)`: Return the minor version number.
+* `patch(v)`: Return the patch version number.
 
 ### Comparison
 
index ca7b622..01390c2 100644 (file)
@@ -120,13 +120,13 @@ All rights reserved.  See the included LICENSE file for more details.</p>
 npm, Inc. or the Node.js project.</p>
 <p>Data published to the npm registry is not part of npm itself, and is
 the sole property of the publisher.  While every effort is made to
-ensure accountability, there is absolutely no guarantee, warrantee, or
+ensure accountability, there is absolutely no guarantee, warranty, or
 assertion expressed or implied as to the quality, fitness for a
 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;&#x69;&#108;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#x73;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;</a> and explain the situation.</p>
+<a href="&#109;&#97;&#x69;&#x6c;&#x74;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#109;">&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#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.5.1</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.6.0</p>
 
index b103373..fed3e99 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.5.1</p>
+<p id="footer">npm-bin &mdash; npm@2.6.0</p>
 
index 47b11ef..99e384c 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.5.1</p>
+<p id="footer">npm-bugs &mdash; npm@2.6.0</p>
 
index aa7c2ee..1e29bfc 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.5.1</p>
+<p id="footer">npm-cache &mdash; npm@2.6.0</p>
 
index 45af01d..7e5baa9 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.5.1</p>
+<p id="footer">npm-commands &mdash; npm@2.6.0</p>
 
index bea7242..ae0e596 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.5.1</p>
+<p id="footer">npm-config &mdash; npm@2.6.0</p>
 
index b00c11c..ae6e36e 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.5.1</p>
+<p id="footer">npm-deprecate &mdash; npm@2.6.0</p>
 
index c478fbb..73c914b 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.5.1</p>
+<p id="footer">npm-docs &mdash; npm@2.6.0</p>
 
index 1f74d8f..a5097cd 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.5.1</p>
+<p id="footer">npm-edit &mdash; npm@2.6.0</p>
 
index 4e87035..676748d 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.5.1</p>
+<p id="footer">npm-explore &mdash; npm@2.6.0</p>
 
index bb188c1..0ee8558 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.5.1</p>
+<p id="footer">npm-help-search &mdash; npm@2.6.0</p>
 
index 6dcc3e2..f1635df 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.5.1</p>
+<p id="footer">npm-init &mdash; npm@2.6.0</p>
 
index f2f89c9..f19a814 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.5.1</p>
+<p id="footer">npm-install &mdash; npm@2.6.0</p>
 
index 195701e..b999fc7 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.5.1</p>
+<p id="footer">npm-link &mdash; npm@2.6.0</p>
 
index 67c5216..296877a 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.5.1</p>
+<p id="footer">npm-load &mdash; npm@2.6.0</p>
 
index 3d80294..b4502ba 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.5.1</p>
+<p id="footer">npm-ls &mdash; npm@2.6.0</p>
 
index a2c442d..d044f7e 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.5.1</p>
+<p id="footer">npm-outdated &mdash; npm@2.6.0</p>
 
index 97e3671..b35bda4 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.5.1</p>
+<p id="footer">npm-owner &mdash; npm@2.6.0</p>
 
index 763199e..bba90d2 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.5.1</p>
+<p id="footer">npm-pack &mdash; npm@2.6.0</p>
 
index f4e6a70..e5ae3f6 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.5.1</p>
+<p id="footer">npm-prefix &mdash; npm@2.6.0</p>
 
index 6fb8718..632a528 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.5.1</p>
+<p id="footer">npm-prune &mdash; npm@2.6.0</p>
 
index bbbe2a1..8499b85 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.5.1</p>
+<p id="footer">npm-publish &mdash; npm@2.6.0</p>
 
index 7edc466..65c9b69 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.5.1</p>
+<p id="footer">npm-rebuild &mdash; npm@2.6.0</p>
 
index b5a41a0..daab60e 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.5.1</p>
+<p id="footer">npm-repo &mdash; npm@2.6.0</p>
 
index 5be2e68..4055cca 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.5.1</p>
+<p id="footer">npm-restart &mdash; npm@2.6.0</p>
 
index 744df59..dabbd8c 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.5.1</p>
+<p id="footer">npm-root &mdash; npm@2.6.0</p>
 
index 639a71f..b8f04ce 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.5.1</p>
+<p id="footer">npm-run-script &mdash; npm@2.6.0</p>
 
index 63121ff..28421a7 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.5.1</p>
+<p id="footer">npm-search &mdash; npm@2.6.0</p>
 
index de43ebc..9ec4a69 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.5.1</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@2.6.0</p>
 
index b10a6c4..532947a 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.5.1</p>
+<p id="footer">npm-start &mdash; npm@2.6.0</p>
 
index 83e258b..c74e95c 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.5.1</p>
+<p id="footer">npm-stop &mdash; npm@2.6.0</p>
 
index 104f5b7..0f2d744 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.5.1</p>
+<p id="footer">npm-tag &mdash; npm@2.6.0</p>
 
index dd9677e..1dbc141 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.5.1</p>
+<p id="footer">npm-test &mdash; npm@2.6.0</p>
 
index f1fa1c3..5f4b7f4 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.5.1</p>
+<p id="footer">npm-uninstall &mdash; npm@2.6.0</p>
 
index 3e0c4ab..309be6e 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.5.1</p>
+<p id="footer">npm-unpublish &mdash; npm@2.6.0</p>
 
index 577101a..998de70 100644 (file)
@@ -27,5 +27,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.5.1</p>
+<p id="footer">npm-update &mdash; npm@2.6.0</p>
 
index 115f4f9..a4f401d 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.5.1</p>
+<p id="footer">npm-version &mdash; npm@2.6.0</p>
 
index 73286ec..bdfd814 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.5.1</p>
+<p id="footer">npm-view &mdash; npm@2.6.0</p>
 
index 5d1324d..0146806 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.5.1</p>
+<p id="footer">npm-whoami &mdash; npm@2.6.0</p>
 
index 4f41ebe..07ff60e 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.5.1</p>
+<p>2.6.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.5.1</p>
+<p id="footer">npm &mdash; npm@2.6.0</p>
 
index f2d5b4c..70953a3 100644 (file)
@@ -75,4 +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.5.1</p>
+<p id="footer">npm-access &mdash; npm@2.6.0</p>
+
index 01d6b22..0be5024 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.5.1</p>
+<p id="footer">npm-adduser &mdash; npm@2.6.0</p>
 
index d896b96..1049120 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.5.1</p>
+<p id="footer">npm-bin &mdash; npm@2.6.0</p>
 
index ed55e03..87f33d0 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.5.1</p>
+<p id="footer">npm-bugs &mdash; npm@2.6.0</p>
 
index 52efad1..6b5228e 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.5.1</p>
+<p id="footer">npm-build &mdash; npm@2.6.0</p>
 
index 9db76b5..4b4d32d 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.5.1</p>
+<p id="footer">npm-bundle &mdash; npm@2.6.0</p>
 
index 4b3fa05..89acf44 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.5.1</p>
+<p id="footer">npm-cache &mdash; npm@2.6.0</p>
 
index 1d6870b..0c2a39f 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.5.1</p>
+<p id="footer">npm-completion &mdash; npm@2.6.0</p>
 
index 822f570..07e0348 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.5.1</p>
+<p id="footer">npm-config &mdash; npm@2.6.0</p>
 
index 1cc3f74..9365858 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.5.1</p>
+<p id="footer">npm-dedupe &mdash; npm@2.6.0</p>
 
index 574babd..098202b 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.5.1</p>
+<p id="footer">npm-deprecate &mdash; npm@2.6.0</p>
 
index 30ea03d..6a97223 100644 (file)
@@ -26,7 +26,7 @@ Clear a tag that is no longer in use from the package.</p>
 </li>
 <li><p>ls:
 Show all of the dist-tags for a package, defaulting to the package in
-the curren prefix.</p>
+the current prefix.</p>
 </li>
 </ul>
 <p>A tag can be used when installing packages as a reference to a version instead
@@ -76,4 +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.5.1</p>
+<p id="footer">npm-dist-tag &mdash; npm@2.6.0</p>
+
index e08070a..97ee03a 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.5.1</p>
+<p id="footer">npm-docs &mdash; npm@2.6.0</p>
 
index abf6fea..3933e44 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.5.1</p>
+<p id="footer">npm-edit &mdash; npm@2.6.0</p>
 
index 3bd89c9..c419ceb 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.5.1</p>
+<p id="footer">npm-explore &mdash; npm@2.6.0</p>
 
index dbc1b6d..17d184d 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.5.1</p>
+<p id="footer">npm-help-search &mdash; npm@2.6.0</p>
 
index 9983581..76ad59e 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.5.1</p>
+<p id="footer">npm-help &mdash; npm@2.6.0</p>
 
index 09404ec..20920f2 100644 (file)
@@ -40,5 +40,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.5.1</p>
+<p id="footer">npm-init &mdash; npm@2.6.0</p>
 
index f3fb078..3ce34d4 100644 (file)
@@ -239,5 +239,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.5.1</p>
+<p id="footer">npm-install &mdash; npm@2.6.0</p>
 
index c52434c..829cfbc 100644 (file)
@@ -35,14 +35,14 @@ npm link                    # creates global link
 cd ~/projects/node-bloggy   # go into some other package directory.
 npm link redis              # link-install the package
 </code></pre><p>Now, any changes to ~/projects/node-redis will be reflected in
-~/projects/node-bloggy/node_modules/redis/</p>
+~/projects/node-bloggy/node_modules/node-redis/</p>
 <p>You may also shortcut the two steps in one.  For example, to do the
 above use-case in a shorter way:</p>
 <pre><code>cd ~/projects/node-bloggy  # go into the dir of your main project
 npm link ../node-redis     # link the dir of your dependency
 </code></pre><p>The second line is the equivalent of doing:</p>
 <pre><code>(cd ../node-redis; npm link)
-npm link redis
+npm link node-redis
 </code></pre><p>That is, it first creates a global link, and then links the global
 installation target into your project&#39;s <code>node_modules</code> folder.</p>
 <p>If your linked package is scoped (see <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>) your link command must
@@ -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.5.1</p>
+<p id="footer">npm-link &mdash; npm@2.6.0</p>
 
diff --git a/deps/npm/html/doc/cli/npm-logout.html b/deps/npm/html/doc/cli/npm-logout.html
new file mode 100644 (file)
index 0000000..ae3e380
--- /dev/null
@@ -0,0 +1,59 @@
+<!doctype html>
+<html>
+  <title>npm-logout</title>
+  <meta http-equiv="content-type" value="text/html;utf-8">
+  <link rel="stylesheet" type="text/css" href="../../static/style.css">
+  <link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-logout.html">
+  <script async=true src="../../static/toc.js"></script>
+
+  <body>
+    <div id="wrapper">
+
+<h1><a href="../cli/npm-logout.html">npm-logout</a></h1> <p>Log out of the registry</p>
+<h2 id="synopsis">SYNOPSIS</h2>
+<pre><code>npm logout [--registry=url] [--scope=@orgname]
+</code></pre><h2 id="description">DESCRIPTION</h2>
+<p>When logged into a registry that supports token-based authentication, tell the
+server to end this token&#39;s session. This will invalidate the token everywhere
+you&#39;re using it, not just for the current environment.</p>
+<p>When logged into a legacy registry that uses username and password authentication, this will
+clear the credentials in your user configuration. In this case, it will <em>only</em> affect
+the current environment.</p>
+<p>If <code>--scope</code> is provided, this will find the credentials for the registry
+connected to that scope, if set.</p>
+<h2 id="configuration">CONFIGURATION</h2>
+<h3 id="registry">registry</h3>
+<p>Default: <a href="http://registry.npmjs.org/">http://registry.npmjs.org/</a></p>
+<p>The base URL of the npm package registry. If <code>scope</code> is also specified,
+it takes precedence.</p>
+<h3 id="scope">scope</h3>
+<p>Default: none</p>
+<p>If specified, the user and login credentials given will be associated
+with the specified scope. See <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>. You can use both at the same time,
+e.g.</p>
+<pre><code>npm adduser --registry=http://myregistry.example.com --scope=@myco
+</code></pre><p>This will set a registry for the given scope and login or create a user for
+that registry at the same time.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-adduser.html"><a href="../cli/npm-adduser.html">npm-adduser(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="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
+<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
+<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
+<li><a href="../cli/npm-whoami.html"><a href="../cli/npm-whoami.html">npm-whoami(1)</a></a></li>
+</ul>
+
+</div>
+
+<table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
+<tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
+<tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
+<tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
+<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.0</p>
+
index cdbd56b..abfb846 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.5.1 /path/to/npm
+<pre><code>npm@2.6.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>
@@ -85,5 +85,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.5.1</p>
+<p id="footer">npm-ls &mdash; npm@2.6.0</p>
 
index 1b1414d..70fcc83 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.5.1</p>
+<p id="footer">npm-outdated &mdash; npm@2.6.0</p>
 
index 9d6e454..2617a8d 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.5.1</p>
+<p id="footer">npm-owner &mdash; npm@2.6.0</p>
 
index cf7fcae..47817ba 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.5.1</p>
+<p id="footer">npm-pack &mdash; npm@2.6.0</p>
 
index 98f44e1..dcb47ec 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.5.1</p>
+<p id="footer">npm-prefix &mdash; npm@2.6.0</p>
 
index 247a291..7d00e2a 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.5.1</p>
+<p id="footer">npm-prune &mdash; npm@2.6.0</p>
 
index 23559ca..59f901e 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.5.1</p>
+<p id="footer">npm-publish &mdash; npm@2.6.0</p>
 
index bcf73ec..51c457e 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.5.1</p>
+<p id="footer">npm-rebuild &mdash; npm@2.6.0</p>
 
index 5eb88ea..a5e17bf 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.5.1</p>
+<p id="footer">npm-repo &mdash; npm@2.6.0</p>
 
index 67b3975..843b60d 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.5.1</p>
+<p id="footer">npm-restart &mdash; npm@2.6.0</p>
 
index c832eee..8f5cfb6 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.5.1</p>
+<p id="footer">npm-rm &mdash; npm@2.6.0</p>
 
index c9df7b9..3c5c547 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.5.1</p>
+<p id="footer">npm-root &mdash; npm@2.6.0</p>
 
index 716ad48..3afb91e 100644 (file)
@@ -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.5.1</p>
+<p id="footer">npm-run-script &mdash; npm@2.6.0</p>
 
index 88ad801..18b3c9c 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.5.1</p>
+<p id="footer">npm-search &mdash; npm@2.6.0</p>
 
index 21c104f..318d2ff 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.5.1</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@2.6.0</p>
 
index 58c2c24..1da8eb9 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.5.1</p>
+<p id="footer">npm-star &mdash; npm@2.6.0</p>
 
index 0ffb3f4..40eb2cd 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.5.1</p>
+<p id="footer">npm-stars &mdash; npm@2.6.0</p>
 
index 330378c..9f9a42e 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.5.1</p>
+<p id="footer">npm-start &mdash; npm@2.6.0</p>
 
index ee69ec0..ace8e69 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.5.1</p>
+<p id="footer">npm-stop &mdash; npm@2.6.0</p>
 
index d66caee..9b8da58 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.5.1</p>
+<p id="footer">npm-tag &mdash; npm@2.6.0</p>
 
index 401a513..223f191 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.5.1</p>
+<p id="footer">npm-test &mdash; npm@2.6.0</p>
 
index ef33583..d554949 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.5.1</p>
+<p id="footer">npm-uninstall &mdash; npm@2.6.0</p>
 
index f31a4f0..5c95313 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.5.1</p>
+<p id="footer">npm-unpublish &mdash; npm@2.6.0</p>
 
index 441c0b1..3a695cb 100644 (file)
@@ -42,5 +42,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.5.1</p>
+<p id="footer">npm-update &mdash; npm@2.6.0</p>
 
index bb0fe41..779e090 100644 (file)
@@ -55,5 +55,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.5.1</p>
+<p id="footer">npm-version &mdash; npm@2.6.0</p>
 
index 3fa8beb..3fff860 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.5.1</p>
+<p id="footer">npm-view &mdash; npm@2.6.0</p>
 
index eb8274f..39a5644 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.5.1</p>
+<p id="footer">npm-whoami &mdash; npm@2.6.0</p>
 
index 8651e98..a34115c 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.5.1</p>
+<p>2.6.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;&#x61;&#105;&#x6c;&#x74;&#111;&#x3a;&#x6e;&#x70;&#109;&#x2d;&#64;&#103;&#111;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#46;&#99;&#111;&#x6d;">&#x6e;&#x70;&#109;&#x2d;&#64;&#103;&#111;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#46;&#99;&#111;&#x6d;</a></li>
+<li><a href="&#x6d;&#x61;&#105;&#108;&#x74;&#x6f;&#x3a;&#x6e;&#112;&#109;&#45;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#114;&#111;&#117;&#x70;&#x73;&#46;&#99;&#x6f;&#x6d;">&#x6e;&#112;&#109;&#45;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#114;&#111;&#117;&#x70;&#x73;&#46;&#99;&#x6f;&#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;&#x61;&#x69;&#108;&#116;&#111;&#58;&#x6e;&#112;&#109;&#x2d;&#x40;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#x73;&#x2e;&#x63;&#111;&#x6d;">&#x6e;&#112;&#109;&#x2d;&#x40;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#x73;&#x2e;&#x63;&#111;&#x6d;</a></li>
+<a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#x3a;&#x6e;&#x70;&#109;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#x6c;&#101;&#103;&#114;&#111;&#117;&#112;&#x73;&#46;&#x63;&#x6f;&#109;">&#x6e;&#x70;&#109;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#x6c;&#101;&#103;&#114;&#111;&#117;&#112;&#x73;&#46;&#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="&#109;&#x61;&#x69;&#108;&#116;&#111;&#58;&#105;&#64;&#105;&#122;&#x73;&#x2e;&#x6d;&#x65;">&#105;&#64;&#105;&#122;&#x73;&#x2e;&#x6d;&#x65;</a></p>
+<a href="&#109;&#x61;&#x69;&#108;&#x74;&#111;&#x3a;&#x69;&#x40;&#105;&#122;&#115;&#46;&#x6d;&#101;">&#x69;&#x40;&#105;&#122;&#115;&#46;&#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.5.1</p>
+<p id="footer">npm &mdash; npm@2.6.0</p>
 
index a8e58e4..ce70aec 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.5.1</p>
+<p id="footer">npm-folders &mdash; npm@2.6.0</p>
 
index 202d7f4..d4e9d92 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.5.1</p>
+<p id="footer">npm-global &mdash; npm@2.6.0</p>
 
index b915f84..bbfa31d 100644 (file)
@@ -63,7 +63,7 @@ been published somewhere else, and spit at you.</p>
 issues should be reported. These are helpful for people who encounter issues
 with your package.</p>
 <p>It should look like this:</p>
-<pre><code>{ &quot;url&quot; : &quot;http://github.com/owner/project/issues&quot;
+<pre><code>{ &quot;url&quot; : &quot;https://github.com/owner/project/issues&quot;
 , &quot;email&quot; : &quot;project@hostname.com&quot;
 }
 </code></pre><p>You can specify either one or both values. If you want to provide only a url,
@@ -161,7 +161,7 @@ compressed.  The number dictates which man section the file is installed into.</
 <h2 id="directories">directories</h2>
 <p>The CommonJS <a href="http://wiki.commonjs.org/wiki/Packages/1.0">Packages</a> spec details a
 few ways that you can indicate the structure of your package using a <code>directories</code>
-object. If you look at <a href="http://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
+object. If you look at <a href="https://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
 you&#39;ll see that it has directories for doc, lib, and man.</p>
 <p>In the future, this information may be used in other creative ways.</p>
 <h3 id="directories-lib">directories.lib</h3>
@@ -186,17 +186,20 @@ command will be able to find you.</p>
 <p>Do it like this:</p>
 <pre><code>&quot;repository&quot; :
   { &quot;type&quot; : &quot;git&quot;
-  , &quot;url&quot; : &quot;http://github.com/npm/npm.git&quot;
+  , &quot;url&quot; : &quot;https://github.com/npm/npm.git&quot;
   }
 
 &quot;repository&quot; :
   { &quot;type&quot; : &quot;svn&quot;
-  , &quot;url&quot; : &quot;http://v8.googlecode.com/svn/trunk/&quot;
+  , &quot;url&quot; : &quot;https://v8.googlecode.com/svn/trunk/&quot;
   }
 </code></pre><p>The URL should be a publicly available (perhaps read-only) url that can be handed
 directly to a VCS program without any modification.  It should not be a url to an
 html project page that you put in your browser.  It&#39;s for computers.</p>
-<h2 id="scripts">scripts</h2>
+<p>For GitHub repositories you can use the same shortcut syntax you use for <code>npm
+install</code>:</p>
+<pre><code>&quot;repository&quot;: &quot;npm/npm&quot;
+</code></pre><h2 id="scripts">scripts</h2>
 <p>The &quot;scripts&quot; property is a dictionary containing script commands that are run
 at various times in the lifecycle of your package.  The key is the lifecycle
 event, and the value is the command to run at that point.</p>
@@ -342,12 +345,17 @@ a specific interface, expected and specified by the host documentation.</p>
   }
 }
 </code></pre><p>This ensures your package <code>tea-latte</code> can be installed <em>along</em> with the second
-major version of the host package <code>tea</code> only. The host package is automatically
-installed if needed. <code>npm install tea-latte</code> could possibly yield the following
-dependency graph:</p>
+major version of the host package <code>tea</code> only. <code>npm install tea-latte</code> could
+possibly yield the following dependency graph:</p>
 <pre><code>├── tea-latte@1.3.5
 â””── tea@2.2.0
-</code></pre><p>Trying to install another plugin with a conflicting requirement will cause an
+</code></pre><p><strong>NOTE: npm versions 1 and 2 will automatically install <code>peerDependencies</code> if
+they are not explicitly depended upon higher in the dependency tree. In the
+next major version of npm (npm@3), this will no longer be the case. You will
+receive a warning that the peerDependency is not installed instead.</strong> The
+behavior in npms 1 &amp; 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible.</p>
+<p>Trying to install another plugin with a conflicting requirement will cause an
 error. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions.</p>
 <p>Assuming the host complies with <a href="http://semver.org/">semver</a>, only changes in
@@ -396,6 +404,7 @@ are capable of properly installing your program.  For example:</p>
 </code></pre><p>Note that, unless the user has set the <code>engine-strict</code> config flag, this
 field is advisory only.</p>
 <h2 id="enginestrict">engineStrict</h2>
+<p><strong>NOTE: This feature is deprecated and will be removed in npm 3.0.0.</strong></p>
 <p>If you are sure that your module will <em>definitely not</em> run properly on
 versions of Node/npm other than those specified in the <code>engines</code> object,
 then you can set <code>&quot;engineStrict&quot;: true</code> in your package.json file.
@@ -403,8 +412,7 @@ This will override the user&#39;s <code>engine-strict</code> config setting.</p>
 <p>Please do not do this unless you are really very very sure.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node.  Consider this choice carefully.  If
-people abuse it, it will be removed in a future version of npm.</p>
+updating to new versions of Node.  Consider this choice carefully.</p>
 <h2 id="os">os</h2>
 <p>You can specify which operating systems your
 module will run on:</p>
@@ -488,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.5.1</p>
+<p id="footer">npm-json &mdash; npm@2.6.0</p>
 
index 92dfa7f..2cf515f 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.5.1</p>
+<p id="footer">npmrc &mdash; npm@2.6.0</p>
 
index e3213a3..d47bfdc 100644 (file)
@@ -63,7 +63,7 @@ been published somewhere else, and spit at you.</p>
 issues should be reported. These are helpful for people who encounter issues
 with your package.</p>
 <p>It should look like this:</p>
-<pre><code>{ &quot;url&quot; : &quot;http://github.com/owner/project/issues&quot;
+<pre><code>{ &quot;url&quot; : &quot;https://github.com/owner/project/issues&quot;
 , &quot;email&quot; : &quot;project@hostname.com&quot;
 }
 </code></pre><p>You can specify either one or both values. If you want to provide only a url,
@@ -161,7 +161,7 @@ compressed.  The number dictates which man section the file is installed into.</
 <h2 id="directories">directories</h2>
 <p>The CommonJS <a href="http://wiki.commonjs.org/wiki/Packages/1.0">Packages</a> spec details a
 few ways that you can indicate the structure of your package using a <code>directories</code>
-object. If you look at <a href="http://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
+object. If you look at <a href="https://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
 you&#39;ll see that it has directories for doc, lib, and man.</p>
 <p>In the future, this information may be used in other creative ways.</p>
 <h3 id="directories-lib">directories.lib</h3>
@@ -186,17 +186,20 @@ command will be able to find you.</p>
 <p>Do it like this:</p>
 <pre><code>&quot;repository&quot; :
   { &quot;type&quot; : &quot;git&quot;
-  , &quot;url&quot; : &quot;http://github.com/npm/npm.git&quot;
+  , &quot;url&quot; : &quot;https://github.com/npm/npm.git&quot;
   }
 
 &quot;repository&quot; :
   { &quot;type&quot; : &quot;svn&quot;
-  , &quot;url&quot; : &quot;http://v8.googlecode.com/svn/trunk/&quot;
+  , &quot;url&quot; : &quot;https://v8.googlecode.com/svn/trunk/&quot;
   }
 </code></pre><p>The URL should be a publicly available (perhaps read-only) url that can be handed
 directly to a VCS program without any modification.  It should not be a url to an
 html project page that you put in your browser.  It&#39;s for computers.</p>
-<h2 id="scripts">scripts</h2>
+<p>For GitHub repositories you can use the same shortcut syntax you use for <code>npm
+install</code>:</p>
+<pre><code>&quot;repository&quot;: &quot;npm/npm&quot;
+</code></pre><h2 id="scripts">scripts</h2>
 <p>The &quot;scripts&quot; property is a dictionary containing script commands that are run
 at various times in the lifecycle of your package.  The key is the lifecycle
 event, and the value is the command to run at that point.</p>
@@ -342,12 +345,17 @@ a specific interface, expected and specified by the host documentation.</p>
   }
 }
 </code></pre><p>This ensures your package <code>tea-latte</code> can be installed <em>along</em> with the second
-major version of the host package <code>tea</code> only. The host package is automatically
-installed if needed. <code>npm install tea-latte</code> could possibly yield the following
-dependency graph:</p>
+major version of the host package <code>tea</code> only. <code>npm install tea-latte</code> could
+possibly yield the following dependency graph:</p>
 <pre><code>├── tea-latte@1.3.5
 â””── tea@2.2.0
-</code></pre><p>Trying to install another plugin with a conflicting requirement will cause an
+</code></pre><p><strong>NOTE: npm versions 1 and 2 will automatically install <code>peerDependencies</code> if
+they are not explicitly depended upon higher in the dependency tree. In the
+next major version of npm (npm@3), this will no longer be the case. You will
+receive a warning that the peerDependency is not installed instead.</strong> The
+behavior in npms 1 &amp; 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible.</p>
+<p>Trying to install another plugin with a conflicting requirement will cause an
 error. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions.</p>
 <p>Assuming the host complies with <a href="http://semver.org/">semver</a>, only changes in
@@ -396,6 +404,7 @@ are capable of properly installing your program.  For example:</p>
 </code></pre><p>Note that, unless the user has set the <code>engine-strict</code> config flag, this
 field is advisory only.</p>
 <h2 id="enginestrict">engineStrict</h2>
+<p><strong>NOTE: This feature is deprecated and will be removed in npm 3.0.0.</strong></p>
 <p>If you are sure that your module will <em>definitely not</em> run properly on
 versions of Node/npm other than those specified in the <code>engines</code> object,
 then you can set <code>&quot;engineStrict&quot;: true</code> in your package.json file.
@@ -403,8 +412,7 @@ This will override the user&#39;s <code>engine-strict</code> config setting.</p>
 <p>Please do not do this unless you are really very very sure.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node.  Consider this choice carefully.  If
-people abuse it, it will be removed in a future version of npm.</p>
+updating to new versions of Node.  Consider this choice carefully.</p>
 <h2 id="os">os</h2>
 <p>You can specify which operating systems your
 module will run on:</p>
@@ -488,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.5.1</p>
+<p id="footer">package.json &mdash; npm@2.6.0</p>
 
index f3d1298..f9c78da 100644 (file)
@@ -56,6 +56,8 @@
 <p>Install a package</p>
 <h3 id="npm-link-1-"><a href="cli/npm-link.html"><a href="cli/npm-link.html">npm-link(1)</a></a></h3>
 <p>Symlink a package folder</p>
+<h3 id="npm-logout-1-"><a href="cli/npm-logout.html"><a href="cli/npm-logout.html">npm-logout(1)</a></a></h3>
+<p>Log out of the registry</p>
 <h3 id="npm-ls-1-"><a href="cli/npm-ls.html"><a href="cli/npm-ls.html">npm-ls(1)</a></a></h3>
 <p>List installed packages</p>
 <h3 id="npm-outdated-1-"><a href="cli/npm-outdated.html"><a href="cli/npm-outdated.html">npm-outdated(1)</a></a></h3>
 <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.5.1</p>
+<p id="footer">index &mdash; npm@2.6.0</p>
 
index 1c6d6a4..4c52b79 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.5.1</p>
+<p id="footer">npm-coding-style &mdash; npm@2.6.0</p>
 
index 702fef0..5df3c2a 100644 (file)
@@ -774,5 +774,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.5.1</p>
+<p id="footer">npm-config &mdash; npm@2.6.0</p>
 
index 64539b1..78eef48 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.5.1</p>
+<p id="footer">npm-developers &mdash; npm@2.6.0</p>
 
index d60c083..beced56 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="&#109;&#x61;&#105;&#x6c;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;">&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;</a></li>
+<li>Email the author, CC <a href="&#109;&#97;&#105;&#x6c;&#116;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#x63;&#111;&#x6d;">&#115;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#x63;&#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;&#x61;&#105;&#108;&#x74;&#111;&#x3a;&#115;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;">&#115;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;</a> to the CC list of
+adds the npm support staff <a href="&#x6d;&#97;&#x69;&#x6c;&#116;&#x6f;&#58;&#115;&#117;&#x70;&#112;&#111;&#x72;&#116;&#64;&#x6e;&#112;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#109;">&#115;&#117;&#x70;&#112;&#111;&#x72;&#116;&#64;&#x6e;&#112;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#109;</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="&#109;&#x61;&#105;&#x6c;&#116;&#x6f;&#x3a;&#x73;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#111;&#109;">&#x73;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#111;&#109;</a> and we&#39;ll sort it out.  (&quot;Reasonable&quot; is
+<a href="&#x6d;&#97;&#105;&#108;&#x74;&#111;&#58;&#x73;&#117;&#x70;&#x70;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#x73;&#117;&#x70;&#x70;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#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.5.1</p>
+<p id="footer">npm-disputes &mdash; npm@2.6.0</p>
 
index 165b625..0ae58ba 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="&#x6d;&#x61;&#105;&#x6c;&#x74;&#x6f;&#x3a;&#115;&#x75;&#112;&#x70;&#111;&#114;&#x74;&#64;&#x6e;&#x70;&#x6d;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;">&#115;&#x75;&#112;&#x70;&#111;&#114;&#x74;&#64;&#x6e;&#x70;&#x6d;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;</a>
+<p>If the registry IS down, let us know by emailing <a href="&#x6d;&#x61;&#x69;&#x6c;&#116;&#111;&#58;&#x73;&#x75;&#112;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#x6a;&#115;&#46;&#x63;&#x6f;&#109;">&#x73;&#x75;&#112;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#x6a;&#115;&#46;&#x63;&#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.5.1</p>
+<p id="footer">npm-faq &mdash; npm@2.6.0</p>
 
index 9ad872c..0e6043b 100644 (file)
@@ -56,6 +56,8 @@
 <p>Install a package</p>
 <h3 id="npm-link-1-"><a href="../cli/npm-link.html"><a href="../cli/npm-link.html">npm-link(1)</a></a></h3>
 <p>Symlink a package folder</p>
+<h3 id="npm-logout-1-"><a href="../cli/npm-logout.html"><a href="../cli/npm-logout.html">npm-logout(1)</a></a></h3>
+<p>Log out of the registry</p>
 <h3 id="npm-ls-1-"><a href="../cli/npm-ls.html"><a href="../cli/npm-ls.html">npm-ls(1)</a></a></h3>
 <p>List installed packages</p>
 <h3 id="npm-outdated-1-"><a href="../cli/npm-outdated.html"><a href="../cli/npm-outdated.html">npm-outdated(1)</a></a></h3>
 <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.5.1</p>
+<p id="footer">npm-index &mdash; npm@2.6.0</p>
 
index 72e3a1b..964b01a 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.5.1</p>
+<p id="footer">npm-registry &mdash; npm@2.6.0</p>
 
index 8e25e12..e149fea 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.5.1</p>
+<p id="footer">npm-scope &mdash; npm@2.6.0</p>
 
index 4dcac17..03cbdad 100644 (file)
@@ -216,5 +216,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.5.1</p>
+<p id="footer">npm-scripts &mdash; npm@2.6.0</p>
 
index 2e497cd..ee04ba8 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.5.1</p>
+<p id="footer">removing-npm &mdash; npm@2.6.0</p>
 
index c8baab6..6c2af78 100644 (file)
@@ -94,7 +94,7 @@ similar risk on the <em>next</em> set of prerelease versions.</p>
 <h4 id="prerelease-identifiers">Prerelease Identifiers</h4>
 <p>The method <code>.inc</code> takes an additional <code>identifier</code> string argument that
 will append the value of the string as a prerelease identifier:</p>
-<pre><code class="lang-`javascript">&gt; semver.inc(&#39;1.2.3&#39;, &#39;pre&#39;, &#39;beta&#39;)
+<pre><code class="lang-javascript">&gt; semver.inc(&#39;1.2.3&#39;, &#39;pre&#39;, &#39;beta&#39;)
 &#39;1.2.4-beta.0&#39;
 </code></pre>
 <p>command-line example:</p>
@@ -219,6 +219,9 @@ prerelease. If the input version is already a prerelease it simply
 increments it.</li>
 </ul>
 </li>
+<li><code>major(v)</code>: Return the major version number.</li>
+<li><code>minor(v)</code>: Return the minor version number.</li>
+<li><code>patch(v)</code>: Return the patch version number.</li>
 </ul>
 <h3 id="comparison">Comparison</h3>
 <ul>
@@ -279,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.5.1</p>
+<p id="footer">semver &mdash; npm@2.6.0</p>
 
index 9dedc3b..5e1fcaa 100644 (file)
@@ -109,13 +109,13 @@ All rights reserved.  See the included LICENSE file for more details.</p>
 npm, Inc. or the Node.js project.</p>
 <p>Data published to the npm registry is not part of npm itself, and is
 the sole property of the publisher.  While every effort is made to
-ensure accountability, there is absolutely no guarantee, warrantee, or
+ensure accountability, there is absolutely no guarantee, warranty, or
 assertion expressed or implied as to the quality, fitness for a
 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;&#x69;&#108;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#x73;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;</a> and explain the situation.</p>
+<a href="&#109;&#97;&#x69;&#x6c;&#x74;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#109;">&#115;&#x75;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#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 207f251..91a8ab8 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.5.1</p>
+<p>2.6.0</p>
 <h2 id="description">DESCRIPTION</h2>
 <p>This is the API documentation for npm.
 To find documentation of the command line
index d31d470..9d84e6d 100644 (file)
@@ -52,3 +52,4 @@ with an HTTP 402 status code (logically enough), unless you use
 <li><a href="../misc/npm-config.html">npm-config(7)</a></li>
 <li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
 </ul>
+
index c4da315..8abcf22 100644 (file)
@@ -15,7 +15,7 @@ Clear a tag that is no longer in use from the package.</p>
 </li>
 <li><p>ls:
 Show all of the dist-tags for a package, defaulting to the package in
-the curren prefix.</p>
+the current prefix.</p>
 </li>
 </ul>
 <p>A tag can be used when installing packages as a reference to a version instead
@@ -53,3 +53,4 @@ begin with a number or the letter <code>v</code>.</p>
 <li><a href="../api/npm-tag.html">npm-tag(3)</a></li>
 <li><a href="../files/npmrc.html">npmrc(5)</a></li>
 </ul>
+
index c4b01c2..1a33cf2 100644 (file)
@@ -24,14 +24,14 @@ npm link                    # creates global link
 cd ~/projects/node-bloggy   # go into some other package directory.
 npm link redis              # link-install the package
 </code></pre><p>Now, any changes to ~/projects/node-redis will be reflected in
-~/projects/node-bloggy/node_modules/redis/</p>
+~/projects/node-bloggy/node_modules/node-redis/</p>
 <p>You may also shortcut the two steps in one.  For example, to do the
 above use-case in a shorter way:</p>
 <pre><code>cd ~/projects/node-bloggy  # go into the dir of your main project
 npm link ../node-redis     # link the dir of your dependency
 </code></pre><p>The second line is the equivalent of doing:</p>
 <pre><code>(cd ../node-redis; npm link)
-npm link redis
+npm link node-redis
 </code></pre><p>That is, it first creates a global link, and then links the global
 installation target into your project&#39;s <code>node_modules</code> folder.</p>
 <p>If your linked package is scoped (see <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>) your link command must
diff --git a/deps/npm/html/partial/doc/cli/npm-logout.html b/deps/npm/html/partial/doc/cli/npm-logout.html
new file mode 100644 (file)
index 0000000..63c28a3
--- /dev/null
@@ -0,0 +1,35 @@
+<h1><a href="../cli/npm-logout.html">npm-logout</a></h1> <p>Log out of the registry</p>
+<h2 id="synopsis">SYNOPSIS</h2>
+<pre><code>npm logout [--registry=url] [--scope=@orgname]
+</code></pre><h2 id="description">DESCRIPTION</h2>
+<p>When logged into a registry that supports token-based authentication, tell the
+server to end this token&#39;s session. This will invalidate the token everywhere
+you&#39;re using it, not just for the current environment.</p>
+<p>When logged into a legacy registry that uses username and password authentication, this will
+clear the credentials in your user configuration. In this case, it will <em>only</em> affect
+the current environment.</p>
+<p>If <code>--scope</code> is provided, this will find the credentials for the registry
+connected to that scope, if set.</p>
+<h2 id="configuration">CONFIGURATION</h2>
+<h3 id="registry">registry</h3>
+<p>Default: <a href="http://registry.npmjs.org/">http://registry.npmjs.org/</a></p>
+<p>The base URL of the npm package registry. If <code>scope</code> is also specified,
+it takes precedence.</p>
+<h3 id="scope">scope</h3>
+<p>Default: none</p>
+<p>If specified, the user and login credentials given will be associated
+with the specified scope. See <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>. You can use both at the same time,
+e.g.</p>
+<pre><code>npm adduser --registry=http://myregistry.example.com --scope=@myco
+</code></pre><p>This will set a registry for the given scope and login or create a user for
+that registry at the same time.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-adduser.html">npm-adduser(1)</a></li>
+<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
+<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
+<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
+<li><a href="../files/npmrc.html">npmrc(5)</a></li>
+<li><a href="../cli/npm-whoami.html">npm-whoami(1)</a></li>
+</ul>
+
index 4ede498..c514b96 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.5.1 /path/to/npm
+<pre><code>npm@2.6.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>
index e8178c2..17aa091 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.5.1</p>
+<p>2.6.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;&#x61;&#105;&#x6c;&#x74;&#111;&#x3a;&#x6e;&#x70;&#109;&#x2d;&#64;&#103;&#111;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#46;&#99;&#111;&#x6d;">&#x6e;&#x70;&#109;&#x2d;&#64;&#103;&#111;&#x6f;&#x67;&#108;&#101;&#x67;&#x72;&#111;&#x75;&#x70;&#x73;&#46;&#99;&#111;&#x6d;</a></li>
+<li><a href="&#x6d;&#x61;&#105;&#108;&#x74;&#x6f;&#x3a;&#x6e;&#112;&#109;&#45;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#114;&#111;&#117;&#x70;&#x73;&#46;&#99;&#x6f;&#x6d;">&#x6e;&#112;&#109;&#45;&#64;&#103;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#114;&#111;&#117;&#x70;&#x73;&#46;&#99;&#x6f;&#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;&#x61;&#x69;&#108;&#116;&#111;&#58;&#x6e;&#112;&#109;&#x2d;&#x40;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#x73;&#x2e;&#x63;&#111;&#x6d;">&#x6e;&#112;&#109;&#x2d;&#x40;&#x67;&#111;&#x6f;&#103;&#x6c;&#x65;&#103;&#x72;&#111;&#x75;&#112;&#x73;&#x2e;&#x63;&#111;&#x6d;</a></li>
+<a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#x3a;&#x6e;&#x70;&#109;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#x6c;&#101;&#103;&#114;&#111;&#117;&#112;&#x73;&#46;&#x63;&#x6f;&#109;">&#x6e;&#x70;&#109;&#x2d;&#x40;&#103;&#x6f;&#111;&#103;&#x6c;&#101;&#103;&#114;&#111;&#117;&#112;&#x73;&#46;&#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="&#109;&#x61;&#x69;&#108;&#116;&#111;&#58;&#105;&#64;&#105;&#122;&#x73;&#x2e;&#x6d;&#x65;">&#105;&#64;&#105;&#122;&#x73;&#x2e;&#x6d;&#x65;</a></p>
+<a href="&#109;&#x61;&#x69;&#108;&#x74;&#111;&#x3a;&#x69;&#x40;&#105;&#122;&#115;&#46;&#x6d;&#101;">&#x69;&#x40;&#105;&#122;&#115;&#46;&#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 cc2b12a..401d27a 100644 (file)
@@ -52,7 +52,7 @@ been published somewhere else, and spit at you.</p>
 issues should be reported. These are helpful for people who encounter issues
 with your package.</p>
 <p>It should look like this:</p>
-<pre><code>{ &quot;url&quot; : &quot;http://github.com/owner/project/issues&quot;
+<pre><code>{ &quot;url&quot; : &quot;https://github.com/owner/project/issues&quot;
 , &quot;email&quot; : &quot;project@hostname.com&quot;
 }
 </code></pre><p>You can specify either one or both values. If you want to provide only a url,
@@ -150,7 +150,7 @@ compressed.  The number dictates which man section the file is installed into.</
 <h2 id="directories">directories</h2>
 <p>The CommonJS <a href="http://wiki.commonjs.org/wiki/Packages/1.0">Packages</a> spec details a
 few ways that you can indicate the structure of your package using a <code>directories</code>
-object. If you look at <a href="http://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
+object. If you look at <a href="https://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
 you&#39;ll see that it has directories for doc, lib, and man.</p>
 <p>In the future, this information may be used in other creative ways.</p>
 <h3 id="directories-lib">directories.lib</h3>
@@ -175,17 +175,20 @@ command will be able to find you.</p>
 <p>Do it like this:</p>
 <pre><code>&quot;repository&quot; :
   { &quot;type&quot; : &quot;git&quot;
-  , &quot;url&quot; : &quot;http://github.com/npm/npm.git&quot;
+  , &quot;url&quot; : &quot;https://github.com/npm/npm.git&quot;
   }
 
 &quot;repository&quot; :
   { &quot;type&quot; : &quot;svn&quot;
-  , &quot;url&quot; : &quot;http://v8.googlecode.com/svn/trunk/&quot;
+  , &quot;url&quot; : &quot;https://v8.googlecode.com/svn/trunk/&quot;
   }
 </code></pre><p>The URL should be a publicly available (perhaps read-only) url that can be handed
 directly to a VCS program without any modification.  It should not be a url to an
 html project page that you put in your browser.  It&#39;s for computers.</p>
-<h2 id="scripts">scripts</h2>
+<p>For GitHub repositories you can use the same shortcut syntax you use for <code>npm
+install</code>:</p>
+<pre><code>&quot;repository&quot;: &quot;npm/npm&quot;
+</code></pre><h2 id="scripts">scripts</h2>
 <p>The &quot;scripts&quot; property is a dictionary containing script commands that are run
 at various times in the lifecycle of your package.  The key is the lifecycle
 event, and the value is the command to run at that point.</p>
@@ -331,12 +334,17 @@ a specific interface, expected and specified by the host documentation.</p>
   }
 }
 </code></pre><p>This ensures your package <code>tea-latte</code> can be installed <em>along</em> with the second
-major version of the host package <code>tea</code> only. The host package is automatically
-installed if needed. <code>npm install tea-latte</code> could possibly yield the following
-dependency graph:</p>
+major version of the host package <code>tea</code> only. <code>npm install tea-latte</code> could
+possibly yield the following dependency graph:</p>
 <pre><code>├── tea-latte@1.3.5
 â””── tea@2.2.0
-</code></pre><p>Trying to install another plugin with a conflicting requirement will cause an
+</code></pre><p><strong>NOTE: npm versions 1 and 2 will automatically install <code>peerDependencies</code> if
+they are not explicitly depended upon higher in the dependency tree. In the
+next major version of npm (npm@3), this will no longer be the case. You will
+receive a warning that the peerDependency is not installed instead.</strong> The
+behavior in npms 1 &amp; 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible.</p>
+<p>Trying to install another plugin with a conflicting requirement will cause an
 error. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions.</p>
 <p>Assuming the host complies with <a href="http://semver.org/">semver</a>, only changes in
@@ -385,6 +393,7 @@ are capable of properly installing your program.  For example:</p>
 </code></pre><p>Note that, unless the user has set the <code>engine-strict</code> config flag, this
 field is advisory only.</p>
 <h2 id="enginestrict">engineStrict</h2>
+<p><strong>NOTE: This feature is deprecated and will be removed in npm 3.0.0.</strong></p>
 <p>If you are sure that your module will <em>definitely not</em> run properly on
 versions of Node/npm other than those specified in the <code>engines</code> object,
 then you can set <code>&quot;engineStrict&quot;: true</code> in your package.json file.
@@ -392,8 +401,7 @@ This will override the user&#39;s <code>engine-strict</code> config setting.</p>
 <p>Please do not do this unless you are really very very sure.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node.  Consider this choice carefully.  If
-people abuse it, it will be removed in a future version of npm.</p>
+updating to new versions of Node.  Consider this choice carefully.</p>
 <h2 id="os">os</h2>
 <p>You can specify which operating systems your
 module will run on:</p>
index cc2b12a..401d27a 100644 (file)
@@ -52,7 +52,7 @@ been published somewhere else, and spit at you.</p>
 issues should be reported. These are helpful for people who encounter issues
 with your package.</p>
 <p>It should look like this:</p>
-<pre><code>{ &quot;url&quot; : &quot;http://github.com/owner/project/issues&quot;
+<pre><code>{ &quot;url&quot; : &quot;https://github.com/owner/project/issues&quot;
 , &quot;email&quot; : &quot;project@hostname.com&quot;
 }
 </code></pre><p>You can specify either one or both values. If you want to provide only a url,
@@ -150,7 +150,7 @@ compressed.  The number dictates which man section the file is installed into.</
 <h2 id="directories">directories</h2>
 <p>The CommonJS <a href="http://wiki.commonjs.org/wiki/Packages/1.0">Packages</a> spec details a
 few ways that you can indicate the structure of your package using a <code>directories</code>
-object. If you look at <a href="http://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
+object. If you look at <a href="https://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
 you&#39;ll see that it has directories for doc, lib, and man.</p>
 <p>In the future, this information may be used in other creative ways.</p>
 <h3 id="directories-lib">directories.lib</h3>
@@ -175,17 +175,20 @@ command will be able to find you.</p>
 <p>Do it like this:</p>
 <pre><code>&quot;repository&quot; :
   { &quot;type&quot; : &quot;git&quot;
-  , &quot;url&quot; : &quot;http://github.com/npm/npm.git&quot;
+  , &quot;url&quot; : &quot;https://github.com/npm/npm.git&quot;
   }
 
 &quot;repository&quot; :
   { &quot;type&quot; : &quot;svn&quot;
-  , &quot;url&quot; : &quot;http://v8.googlecode.com/svn/trunk/&quot;
+  , &quot;url&quot; : &quot;https://v8.googlecode.com/svn/trunk/&quot;
   }
 </code></pre><p>The URL should be a publicly available (perhaps read-only) url that can be handed
 directly to a VCS program without any modification.  It should not be a url to an
 html project page that you put in your browser.  It&#39;s for computers.</p>
-<h2 id="scripts">scripts</h2>
+<p>For GitHub repositories you can use the same shortcut syntax you use for <code>npm
+install</code>:</p>
+<pre><code>&quot;repository&quot;: &quot;npm/npm&quot;
+</code></pre><h2 id="scripts">scripts</h2>
 <p>The &quot;scripts&quot; property is a dictionary containing script commands that are run
 at various times in the lifecycle of your package.  The key is the lifecycle
 event, and the value is the command to run at that point.</p>
@@ -331,12 +334,17 @@ a specific interface, expected and specified by the host documentation.</p>
   }
 }
 </code></pre><p>This ensures your package <code>tea-latte</code> can be installed <em>along</em> with the second
-major version of the host package <code>tea</code> only. The host package is automatically
-installed if needed. <code>npm install tea-latte</code> could possibly yield the following
-dependency graph:</p>
+major version of the host package <code>tea</code> only. <code>npm install tea-latte</code> could
+possibly yield the following dependency graph:</p>
 <pre><code>├── tea-latte@1.3.5
 â””── tea@2.2.0
-</code></pre><p>Trying to install another plugin with a conflicting requirement will cause an
+</code></pre><p><strong>NOTE: npm versions 1 and 2 will automatically install <code>peerDependencies</code> if
+they are not explicitly depended upon higher in the dependency tree. In the
+next major version of npm (npm@3), this will no longer be the case. You will
+receive a warning that the peerDependency is not installed instead.</strong> The
+behavior in npms 1 &amp; 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible.</p>
+<p>Trying to install another plugin with a conflicting requirement will cause an
 error. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions.</p>
 <p>Assuming the host complies with <a href="http://semver.org/">semver</a>, only changes in
@@ -385,6 +393,7 @@ are capable of properly installing your program.  For example:</p>
 </code></pre><p>Note that, unless the user has set the <code>engine-strict</code> config flag, this
 field is advisory only.</p>
 <h2 id="enginestrict">engineStrict</h2>
+<p><strong>NOTE: This feature is deprecated and will be removed in npm 3.0.0.</strong></p>
 <p>If you are sure that your module will <em>definitely not</em> run properly on
 versions of Node/npm other than those specified in the <code>engines</code> object,
 then you can set <code>&quot;engineStrict&quot;: true</code> in your package.json file.
@@ -392,8 +401,7 @@ This will override the user&#39;s <code>engine-strict</code> config setting.</p>
 <p>Please do not do this unless you are really very very sure.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node.  Consider this choice carefully.  If
-people abuse it, it will be removed in a future version of npm.</p>
+updating to new versions of Node.  Consider this choice carefully.</p>
 <h2 id="os">os</h2>
 <p>You can specify which operating systems your
 module will run on:</p>
index 2d23cb5..2048487 100644 (file)
@@ -45,6 +45,8 @@
 <p>Install a package</p>
 <h3 id="npm-link-1-"><a href="cli/npm-link.html">npm-link(1)</a></h3>
 <p>Symlink a package folder</p>
+<h3 id="npm-logout-1-"><a href="cli/npm-logout.html">npm-logout(1)</a></h3>
+<p>Log out of the registry</p>
 <h3 id="npm-ls-1-"><a href="cli/npm-ls.html">npm-ls(1)</a></h3>
 <p>List installed packages</p>
 <h3 id="npm-outdated-1-"><a href="cli/npm-outdated.html">npm-outdated(1)</a></h3>
index 4d64370..1668710 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="&#109;&#x61;&#105;&#x6c;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;">&#x73;&#117;&#112;&#112;&#111;&#114;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;</a></li>
+<li>Email the author, CC <a href="&#109;&#97;&#105;&#x6c;&#116;&#x6f;&#58;&#115;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#x63;&#111;&#x6d;">&#115;&#x75;&#x70;&#x70;&#x6f;&#x72;&#x74;&#64;&#110;&#x70;&#x6d;&#106;&#x73;&#46;&#x63;&#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;&#x61;&#105;&#108;&#x74;&#111;&#x3a;&#115;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;">&#115;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#x6a;&#115;&#46;&#99;&#x6f;&#x6d;</a> to the CC list of
+adds the npm support staff <a href="&#x6d;&#97;&#x69;&#x6c;&#116;&#x6f;&#58;&#115;&#117;&#x70;&#112;&#111;&#x72;&#116;&#64;&#x6e;&#112;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#109;">&#115;&#117;&#x70;&#112;&#111;&#x72;&#116;&#64;&#x6e;&#112;&#109;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#109;</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="&#109;&#x61;&#105;&#x6c;&#116;&#x6f;&#x3a;&#x73;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#111;&#109;">&#x73;&#117;&#x70;&#112;&#x6f;&#114;&#x74;&#64;&#x6e;&#x70;&#109;&#106;&#x73;&#x2e;&#99;&#111;&#109;</a> and we&#39;ll sort it out.  (&quot;Reasonable&quot; is
+<a href="&#x6d;&#97;&#105;&#108;&#x74;&#111;&#58;&#x73;&#117;&#x70;&#x70;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#x73;&#117;&#x70;&#x70;&#111;&#114;&#x74;&#x40;&#x6e;&#112;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#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 a81ae02..a3402e6 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="&#x6d;&#x61;&#105;&#x6c;&#x74;&#x6f;&#x3a;&#115;&#x75;&#112;&#x70;&#111;&#114;&#x74;&#64;&#x6e;&#x70;&#x6d;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;">&#115;&#x75;&#112;&#x70;&#111;&#114;&#x74;&#64;&#x6e;&#x70;&#x6d;&#106;&#115;&#x2e;&#99;&#x6f;&#x6d;</a>
+<p>If the registry IS down, let us know by emailing <a href="&#x6d;&#x61;&#x69;&#x6c;&#116;&#111;&#58;&#x73;&#x75;&#112;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#x6a;&#115;&#46;&#x63;&#x6f;&#109;">&#x73;&#x75;&#112;&#112;&#x6f;&#114;&#116;&#x40;&#110;&#x70;&#109;&#x6a;&#115;&#46;&#x63;&#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 c42ca68..feeb579 100644 (file)
@@ -45,6 +45,8 @@
 <p>Install a package</p>
 <h3 id="npm-link-1-"><a href="../cli/npm-link.html">npm-link(1)</a></h3>
 <p>Symlink a package folder</p>
+<h3 id="npm-logout-1-"><a href="../cli/npm-logout.html">npm-logout(1)</a></h3>
+<p>Log out of the registry</p>
 <h3 id="npm-ls-1-"><a href="../cli/npm-ls.html">npm-ls(1)</a></h3>
 <p>List installed packages</p>
 <h3 id="npm-outdated-1-"><a href="../cli/npm-outdated.html">npm-outdated(1)</a></h3>
index b078197..9b763ed 100644 (file)
@@ -83,7 +83,7 @@ similar risk on the <em>next</em> set of prerelease versions.</p>
 <h4 id="prerelease-identifiers">Prerelease Identifiers</h4>
 <p>The method <code>.inc</code> takes an additional <code>identifier</code> string argument that
 will append the value of the string as a prerelease identifier:</p>
-<pre><code class="lang-`javascript">&gt; semver.inc(&#39;1.2.3&#39;, &#39;pre&#39;, &#39;beta&#39;)
+<pre><code class="lang-javascript">&gt; semver.inc(&#39;1.2.3&#39;, &#39;pre&#39;, &#39;beta&#39;)
 &#39;1.2.4-beta.0&#39;
 </code></pre>
 <p>command-line example:</p>
@@ -208,6 +208,9 @@ prerelease. If the input version is already a prerelease it simply
 increments it.</li>
 </ul>
 </li>
+<li><code>major(v)</code>: Return the major version number.</li>
+<li><code>minor(v)</code>: Return the minor version number.</li>
+<li><code>patch(v)</code>: Return the patch version number.</li>
 </ul>
 <h3 id="comparison">Comparison</h3>
 <ul>
index 7477ba4..47f1055 100644 (file)
@@ -239,8 +239,9 @@ function linkMans (pkg, folder, parent, gtop, cb) {
     var stem = parseMan[1]
     var sxn = parseMan[2]
     var bn = path.basename(stem)
+    var manSrc = path.resolve(folder, man)
     var manDest = path.join(manRoot, "man" + sxn, bn)
 
-    linkIfExists(man, manDest, gtop && folder, cb)
+    linkIfExists(manSrc, manDest, gtop && folder, cb)
   }, cb)
 }
index cb5a3fa..08354dc 100644 (file)
@@ -91,6 +91,11 @@ function engineFilter (data) {
   Object.keys(data.versions || {}).forEach(function (v) {
     var eng = data.versions[v].engines
     if (!eng) return
+    if (data.versions[v].engineStrict) {
+      log.warn("deprecation", "Per-package engineStrict will no longer be used")
+      log.warn("deprecation", "in upcoming versions of npm. Use the config")
+      log.warn("deprecation", "setting `engine-strict` instead.")
+    }
     if (!strict && !data.versions[v].engineStrict) return
     if (eng.node && !semver.satisfies(nodev, eng.node, true)
         || eng.npm && !semver.satisfies(npmv, eng.npm, true)) {
diff --git a/deps/npm/lib/config/clear-credentials-by-uri.js b/deps/npm/lib/config/clear-credentials-by-uri.js
new file mode 100644 (file)
index 0000000..88131f7
--- /dev/null
@@ -0,0 +1,16 @@
+var assert = require("assert")
+
+var toNerfDart = require("./nerf-dart.js")
+
+module.exports = clearCredentialsByURI
+
+function clearCredentialsByURI (uri) {
+  assert(uri && typeof uri === "string", "registry URL is required")
+
+  var nerfed = toNerfDart(uri)
+
+  this.del(nerfed + ":_authToken", "user")
+  this.del(nerfed + ":_password",  "user")
+  this.del(nerfed + ":username",   "user")
+  this.del(nerfed + ":email",      "user")
+}
index 59f7cf5..97c1791 100644 (file)
@@ -152,10 +152,17 @@ function load_(builtin, rc, cli, cb) {
     // annoying humans and their expectations!
     if (conf.get("prefix")) {
       var etc = path.resolve(conf.get("prefix"), "etc")
-      defaults.globalconfig = path.resolve(etc, "npmrc")
-      defaults.globalignorefile = path.resolve(etc, "npmignore")
+      mkdirp(etc, function (err) {
+        defaults.globalconfig = path.resolve(etc, "npmrc")
+        defaults.globalignorefile = path.resolve(etc, "npmignore")
+        afterUserContinuation()
+      })
+    } else {
+      afterUserContinuation()
     }
+  }
 
+  function afterUserContinuation() {
     conf.addFile(conf.get("globalconfig"), "global")
 
     // move the builtin into the conf stack now.
@@ -220,6 +227,7 @@ Conf.prototype.setUser = require("./set-user.js")
 Conf.prototype.findPrefix = require("./find-prefix.js")
 Conf.prototype.getCredentialsByURI = require("./get-credentials-by-uri.js")
 Conf.prototype.setCredentialsByURI = require("./set-credentials-by-uri.js")
+Conf.prototype.clearCredentialsByURI = require("./clear-credentials-by-uri.js")
 
 Conf.prototype.loadExtras = function(cb) {
   this.setUser(function(er) {
index 756d12e..87a5b0b 100644 (file)
@@ -162,6 +162,12 @@ function install (args, cb_) {
             peers.push(dep)
           }
         })
+        if (peers.length) {
+          log.warn("deprecation", "peerDependencies will no longer be")
+          log.warn("deprecation", "installed implicitly in the next major")
+          log.warn("deprecation", "version of npm (npm@3). You will need to")
+          log.warn("deprecation", "switch to depending on them explicitly.")
+        }
         log.verbose("install", "where, peers", [where, peers])
 
         var context = { family: {}
diff --git a/deps/npm/lib/logout.js b/deps/npm/lib/logout.js
new file mode 100644 (file)
index 0000000..64635be
--- /dev/null
@@ -0,0 +1,40 @@
+module.exports = logout
+
+var dezalgo = require("dezalgo")
+var log = require("npmlog")
+
+var npm = require("./npm.js")
+var mapToRegistry = require("./utils/map-to-registry.js")
+
+logout.usage = "npm logout [--registry] [--scope]"
+
+function logout (args, cb) {
+  npm.spinner.start()
+  cb = dezalgo(cb)
+
+  mapToRegistry("/", npm.config, function (err, uri, auth, normalized) {
+    if (err) return cb(err)
+
+    if (auth.token) {
+      log.verbose("logout", "clearing session token for", normalized)
+      npm.registry.logout(normalized, { auth: auth }, function (err) {
+        if (err) return cb(err)
+
+        npm.config.clearCredentialsByURI(normalized)
+        npm.spinner.stop()
+        npm.config.save("user", cb)
+      })
+    }
+    else if (auth.username || auth.password) {
+      log.verbose("logout", "clearing user credentials for", normalized)
+      npm.config.clearCredentialsByURI(normalized)
+      npm.spinner.stop()
+      npm.config.save("user", cb)
+    }
+    else {
+      cb(new Error(
+        "Not logged in to", normalized + ",", "so can't log out."
+      ))
+    }
+  })
+}
index 8077e8a..25b7fea 100644 (file)
@@ -110,6 +110,7 @@ var commandCache = {}
               , "stars"
               , "tag"
               , "adduser"
+              , "logout"
               , "unpublish"
               , "owner"
               , "access"
index f69d815..9c0623e 100644 (file)
@@ -41,6 +41,7 @@ function outdated (args, silent, cb) {
   if (typeof cb !== "function") cb = silent, silent = false
   var dir = path.resolve(npm.dir, "..")
   outdated_(args, dir, {}, 0, function (er, list) {
+    if (!list) list = []
     if (er || silent || list.length === 0) return cb(er, list)
     if (npm.config.get("json")) {
       console.log(makeJSON(list))
index 2d82982..aa6c297 100644 (file)
@@ -192,7 +192,7 @@ npm, Inc\. or the Node\.js project\.
 .P
 Data published to the npm registry is not part of npm itself, and is
 the sole property of the publisher\.  While every effort is made to
-ensure accountability, there is absolutely no guarantee, warrantee, or
+ensure accountability, there is absolutely no guarantee, warranty, or
 assertion expressed or implied as to the quality, fitness for a
 specific purpose, or lack of malice in any given npm package\.
 .P
index 307a337..2ea011b 100644 (file)
@@ -75,3 +75,4 @@ npm help 7 config
 npm help 7 registry
 
 .RE
+
index c1a5183..28c3c3d 100644 (file)
@@ -24,7 +24,7 @@ Clear a tag that is no longer in use from the package\.
 .IP \(bu 2
 ls:
 Show all of the dist\-tags for a package, defaulting to the package in
-the curren prefix\.
+the current prefix\.
 
 .RE
 .P
@@ -92,3 +92,4 @@ npm apihelp tag
 npm help 5 npmrc
 
 .RE
+
index 9151b68..6c4f04f 100644 (file)
@@ -45,7 +45,7 @@ npm link redis              # link\-install the package
 .RE
 .P
 Now, any changes to ~/projects/node\-redis will be reflected in
-~/projects/node\-bloggy/node_modules/redis/
+~/projects/node\-bloggy/node_modules/node\-redis/
 .P
 You may also shortcut the two steps in one\.  For example, to do the
 above use\-case in a shorter way:
@@ -62,7 +62,7 @@ The second line is the equivalent of doing:
 .RS 2
 .nf
 (cd \.\./node\-redis; npm link)
-npm link redis
+npm link node\-redis
 .fi
 .RE
 .P
diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1
new file mode 100644 (file)
index 0000000..9d56285
--- /dev/null
@@ -0,0 +1,62 @@
+.TH "NPM\-LOGOUT" "1" "February 2015" "" ""
+.SH "NAME"
+\fBnpm-logout\fR \- Log out of the registry
+.SH SYNOPSIS
+.P
+.RS 2
+.nf
+npm logout [\-\-registry=url] [\-\-scope=@orgname]
+.fi
+.RE
+.SH DESCRIPTION
+.P
+When logged into a registry that supports token\-based authentication, tell the
+server to end this token's session\. This will invalidate the token everywhere
+you're using it, not just for the current environment\.
+.P
+When logged into a legacy registry that uses username and password authentication, this will
+clear the credentials in your user configuration\. In this case, it will \fIonly\fR affect
+the current environment\.
+.P
+If \fB\-\-scope\fR is provided, this will find the credentials for the registry
+connected to that scope, if set\.
+.SH CONFIGURATION
+.SS registry
+.P
+Default: http://registry\.npmjs\.org/
+.P
+The base URL of the npm package registry\. If \fBscope\fR is also specified,
+it takes precedence\.
+.SS scope
+.P
+Default: none
+.P
+If specified, the user and login credentials given will be associated
+with the specified scope\. See npm help 7 \fBnpm\-scope\fR\|\. You can use both at the same time,
+e\.g\.
+.P
+.RS 2
+.nf
+npm adduser \-\-registry=http://myregistry\.example\.com \-\-scope=@myco
+.fi
+.RE
+.P
+This will set a registry for the given scope and login or create a user for
+that registry at the same time\.
+.SH SEE ALSO
+.RS 0
+.IP \(bu 2
+npm help adduser
+.IP \(bu 2
+npm help 7 registry
+.IP \(bu 2
+npm help config
+.IP \(bu 2
+npm help 7 config
+.IP \(bu 2
+npm help 5 npmrc
+.IP \(bu 2
+npm help whoami
+
+.RE
+
index 4f2d713..1c11de9 100644 (file)
@@ -23,7 +23,7 @@ For example, running \fBnpm ls promzard\fR in npm's source tree will show:
 .P
 .RS 2
 .nf
-npm@2.5.1 /path/to/npm
+npm@2.6.0 /path/to/npm
 â””─┬ init\-package\-json@0\.0\.4
   â””── promzard@0\.1\.5
 .fi
index 6794269..c51359e 100644 (file)
@@ -10,7 +10,7 @@ npm <command> [args]
 .RE
 .SH VERSION
 .P
-2.5.1
+2.6.0
 .SH DESCRIPTION
 .P
 npm is the package manager for the Node JavaScript platform\.  It puts
index 8fcfc1e..7e86e41 100644 (file)
@@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) {
 .RE
 .SH VERSION
 .P
-2.5.1
+2.6.0
 .SH DESCRIPTION
 .P
 This is the API documentation for npm\.
index e4a9285..fcdfa16 100644 (file)
@@ -77,7 +77,7 @@ It should look like this:
 .P
 .RS 2
 .nf
-{ "url" : "http://github\.com/owner/project/issues"
+{ "url" : "https://github\.com/owner/project/issues"
 , "email" : "project@hostname\.com"
 }
 .fi
@@ -251,7 +251,7 @@ will create entries for \fBman foo\fR and \fBman 2 foo\fR
 .P
 The CommonJS Packages \fIhttp://wiki\.commonjs\.org/wiki/Packages/1\.0\fR spec details a
 few ways that you can indicate the structure of your package using a \fBdirectories\fR
-object\. If you look at npm's package\.json \fIhttp://registry\.npmjs\.org/npm/latest\fR,
+object\. If you look at npm's package\.json \fIhttps://registry\.npmjs\.org/npm/latest\fR,
 you'll see that it has directories for doc, lib, and man\.
 .P
 In the future, this information may be used in other creative ways\.
@@ -288,12 +288,12 @@ Do it like this:
 .nf
 "repository" :
   { "type" : "git"
-  , "url" : "http://github\.com/npm/npm\.git"
+  , "url" : "https://github\.com/npm/npm\.git"
   }
 
 "repository" :
   { "type" : "svn"
-  , "url" : "http://v8\.googlecode\.com/svn/trunk/"
+  , "url" : "https://v8\.googlecode\.com/svn/trunk/"
   }
 .fi
 .RE
@@ -301,6 +301,15 @@ Do it like this:
 The URL should be a publicly available (perhaps read\-only) url that can be handed
 directly to a VCS program without any modification\.  It should not be a url to an
 html project page that you put in your browser\.  It's for computers\.
+.P
+For GitHub repositories you can use the same shortcut syntax you use for \fBnpm
+install\fR:
+.P
+.RS 2
+.nf
+"repository": "npm/npm"
+.fi
+.RE
 .SH scripts
 .P
 The "scripts" property is a dictionary containing script commands that are run
@@ -531,9 +540,8 @@ For example:
 .RE
 .P
 This ensures your package \fBtea\-latte\fR can be installed \fIalong\fR with the second
-major version of the host package \fBtea\fR only\. The host package is automatically
-installed if needed\. \fBnpm install tea\-latte\fR could possibly yield the following
-dependency graph:
+major version of the host package \fBtea\fR only\. \fBnpm install tea\-latte\fR could
+possibly yield the following dependency graph:
 .P
 .RS 2
 .nf
@@ -542,6 +550,13 @@ dependency graph:
 .fi
 .RE
 .P
+\fBNOTE: npm versions 1 and 2 will automatically install \fBpeerDependencies\fR if
+they are not explicitly depended upon higher in the dependency tree\. In the
+next major version of npm (npm@3), this will no longer be the case\. You will
+receive a warning that the peerDependency is not installed instead\.\fR The
+behavior in npms 1 & 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible\.
+.P
 Trying to install another plugin with a conflicting requirement will cause an
 error\. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions\.
@@ -618,6 +633,8 @@ Note that, unless the user has set the \fBengine\-strict\fR config flag, this
 field is advisory only\.
 .SH engineStrict
 .P
+\fBNOTE: This feature is deprecated and will be removed in npm 3\.0\.0\.\fR
+.P
 If you are sure that your module will \fIdefinitely not\fR run properly on
 versions of Node/npm other than those specified in the \fBengines\fR object,
 then you can set \fB"engineStrict": true\fR in your package\.json file\.
@@ -626,8 +643,7 @@ This will override the user's \fBengine\-strict\fR config setting\.
 Please do not do this unless you are really very very sure\.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node\.  Consider this choice carefully\.  If
-people abuse it, it will be removed in a future version of npm\.
+updating to new versions of Node\.  Consider this choice carefully\.
 .SH os
 .P
 You can specify which operating systems your
index e4a9285..fcdfa16 100644 (file)
@@ -77,7 +77,7 @@ It should look like this:
 .P
 .RS 2
 .nf
-{ "url" : "http://github\.com/owner/project/issues"
+{ "url" : "https://github\.com/owner/project/issues"
 , "email" : "project@hostname\.com"
 }
 .fi
@@ -251,7 +251,7 @@ will create entries for \fBman foo\fR and \fBman 2 foo\fR
 .P
 The CommonJS Packages \fIhttp://wiki\.commonjs\.org/wiki/Packages/1\.0\fR spec details a
 few ways that you can indicate the structure of your package using a \fBdirectories\fR
-object\. If you look at npm's package\.json \fIhttp://registry\.npmjs\.org/npm/latest\fR,
+object\. If you look at npm's package\.json \fIhttps://registry\.npmjs\.org/npm/latest\fR,
 you'll see that it has directories for doc, lib, and man\.
 .P
 In the future, this information may be used in other creative ways\.
@@ -288,12 +288,12 @@ Do it like this:
 .nf
 "repository" :
   { "type" : "git"
-  , "url" : "http://github\.com/npm/npm\.git"
+  , "url" : "https://github\.com/npm/npm\.git"
   }
 
 "repository" :
   { "type" : "svn"
-  , "url" : "http://v8\.googlecode\.com/svn/trunk/"
+  , "url" : "https://v8\.googlecode\.com/svn/trunk/"
   }
 .fi
 .RE
@@ -301,6 +301,15 @@ Do it like this:
 The URL should be a publicly available (perhaps read\-only) url that can be handed
 directly to a VCS program without any modification\.  It should not be a url to an
 html project page that you put in your browser\.  It's for computers\.
+.P
+For GitHub repositories you can use the same shortcut syntax you use for \fBnpm
+install\fR:
+.P
+.RS 2
+.nf
+"repository": "npm/npm"
+.fi
+.RE
 .SH scripts
 .P
 The "scripts" property is a dictionary containing script commands that are run
@@ -531,9 +540,8 @@ For example:
 .RE
 .P
 This ensures your package \fBtea\-latte\fR can be installed \fIalong\fR with the second
-major version of the host package \fBtea\fR only\. The host package is automatically
-installed if needed\. \fBnpm install tea\-latte\fR could possibly yield the following
-dependency graph:
+major version of the host package \fBtea\fR only\. \fBnpm install tea\-latte\fR could
+possibly yield the following dependency graph:
 .P
 .RS 2
 .nf
@@ -542,6 +550,13 @@ dependency graph:
 .fi
 .RE
 .P
+\fBNOTE: npm versions 1 and 2 will automatically install \fBpeerDependencies\fR if
+they are not explicitly depended upon higher in the dependency tree\. In the
+next major version of npm (npm@3), this will no longer be the case\. You will
+receive a warning that the peerDependency is not installed instead\.\fR The
+behavior in npms 1 & 2 was frequently confusing and could easily put you into
+dependency hell, a situation that npm is designed to avoid as much as possible\.
+.P
 Trying to install another plugin with a conflicting requirement will cause an
 error\. For this reason, make sure your plugin requirement is as broad as
 possible, and not to lock it down to specific patch versions\.
@@ -618,6 +633,8 @@ Note that, unless the user has set the \fBengine\-strict\fR config flag, this
 field is advisory only\.
 .SH engineStrict
 .P
+\fBNOTE: This feature is deprecated and will be removed in npm 3\.0\.0\.\fR
+.P
 If you are sure that your module will \fIdefinitely not\fR run properly on
 versions of Node/npm other than those specified in the \fBengines\fR object,
 then you can set \fB"engineStrict": true\fR in your package\.json file\.
@@ -626,8 +643,7 @@ This will override the user's \fBengine\-strict\fR config setting\.
 Please do not do this unless you are really very very sure\.  If your
 engines object is something overly restrictive, you can quite easily and
 inadvertently lock yourself into obscurity and prevent your users from
-updating to new versions of Node\.  Consider this choice carefully\.  If
-people abuse it, it will be removed in a future version of npm\.
+updating to new versions of Node\.  Consider this choice carefully\.
 .SH os
 .P
 You can specify which operating systems your
index f9c996f..c1491c9 100644 (file)
@@ -70,6 +70,9 @@ Install a package
 .SS npm help link
 .P
 Symlink a package folder
+.SS npm help logout
+.P
+Log out of the registry
 .SS npm help ls
 .P
 List installed packages
index de6a889..d15e0de 100644 (file)
@@ -311,6 +311,12 @@ prerelease\. If the input version is already a prerelease it simply
 increments it\.
 
 .RE
+.IP \(bu 2
+\fBmajor(v)\fR: Return the major version number\.
+.IP \(bu 2
+\fBminor(v)\fR: Return the minor version number\.
+.IP \(bu 2
+\fBpatch(v)\fR: Return the patch version number\.
 
 .RE
 .SS Comparison
index d0deee1..b2b846f 100644 (file)
@@ -175,11 +175,11 @@ console.log(columns)
 
 #### Output:
 ```
-NAME                 DESCRIPTION                    VERSION
-mod1                 some description which happens 0.0.1
-                     to be far larger than the max
-module-two           another description larger     0.2.0
-                     than the max
+NAME                 DESCRIPTION                    VERSION             
+mod1                 some description which happens 0.0.1               
+                     to be far larger than the max                      
+module-two           another description larger     0.2.0               
+                     than the max                         
 ```
 
 #### Maximum Line Width
@@ -392,8 +392,8 @@ var columns = columnify([{
 ```
 #### Output:
 ```
-*MODULE NAME* DESCRIPTION
-mod1          some description text.
+*MODULE NAME* DESCRIPTION                           
+mod1          some description text.                
 module-two    some slightly longer description text.
 ```
 
index 321ffa3..f8fa315 100644 (file)
@@ -114,7 +114,7 @@ function clone(parent, circular, depth, prototype) {
       if (proto) {
         attrs = Object.getOwnPropertyDescriptor(proto, i);
       }
-
+      
       if (attrs && attrs.set == null) {
         continue;
       }
index 1e232e7..ddf5bd9 100644 (file)
@@ -145,7 +145,7 @@ function isQuoted (val) {
 
 function safe (val) {
   return ( typeof val !== "string"
-         || val.match(/[\r\n]/)
+         || val.match(/[=\r\n]/)
          || val.match(/^\[/)
          || (val.length > 1
              && isQuoted(val))
index a910b78..5a1e10b 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "ini",
   "description": "An ini encoder/decoder for node",
-  "version": "1.3.2",
+  "version": "1.3.3",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/ini.git"
     "tap": "~0.4.0"
   },
   "license": "ISC",
-  "gitHead": "bbe4a8bb09afa58f724c04ce43a49037cabeadfb",
+  "gitHead": "566268f1fb8dd3c0f7d968091de7b7fb2b97b483",
   "bugs": {
     "url": "https://github.com/isaacs/ini/issues"
   },
   "homepage": "https://github.com/isaacs/ini",
-  "_id": "ini@1.3.2",
-  "_shasum": "9ebf4a44daf9d89acd07aab9f89a083d887f6dec",
-  "_from": "ini@>=1.3.2 <1.4.0",
-  "_npmVersion": "2.1.9",
-  "_nodeVersion": "0.10.16",
+  "_id": "ini@1.3.3",
+  "_shasum": "c07e34aef1de06aff21d413b458e52b21533a11e",
+  "_from": "ini@>=1.3.1 <1.4.0",
+  "_npmVersion": "2.5.1",
+  "_nodeVersion": "1.1.0",
   "_npmUser": {
     "name": "isaacs",
     "email": "i@izs.me"
@@ -44,9 +44,9 @@
     }
   ],
   "dist": {
-    "shasum": "9ebf4a44daf9d89acd07aab9f89a083d887f6dec",
-    "tarball": "http://registry.npmjs.org/ini/-/ini-1.3.2.tgz"
+    "shasum": "c07e34aef1de06aff21d413b458e52b21533a11e",
+    "tarball": "http://registry.npmjs.org/ini/-/ini-1.3.3.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.2.tgz"
+  "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.3.tgz"
 }
index 27555e9..fc2080f 100644 (file)
@@ -29,6 +29,8 @@ ar   = this is included
 br = cold
 br = warm
 
+eq = "eq=eq"
+
 ; a section
 [a]
 av = a val
index 9d34aa6..58102d1 100644 (file)
@@ -18,6 +18,7 @@ var i = require("../")
             + 'ar[]=three\n'
             + 'ar[]=this is included\n'
             + 'br=warm\n'
+            + 'eq=\"eq=eq\"\n'
             + '\n'
             + '[a]\n'
             + 'av=a val\n'
@@ -43,6 +44,7 @@ var i = require("../")
       'zr': ['deedee'],
       'ar': ['one', 'three', 'this is included'],
       'br': 'warm',
+      'eq': 'eq=eq',
       a:
        { av: 'a val',
          e: '{ o: p, a: { av: a val, b: { c: { e: "this [value]" } } } }',
index fd4e03a..f23049d 100644 (file)
@@ -1,6 +1,6 @@
 # brace-expansion
 
-[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
+[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), 
 as known from sh/bash, in JavaScript.
 
 [![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.png)](http://travis-ci.org/juliangruber/brace-expansion)
index 36cde4d..60ecfc7 100644 (file)
@@ -5,3 +5,4 @@ console.log(expand('http://www.numericals.com/file{1..100..10}.txt'));
 console.log(expand('http://www.letters.com/file{a..z..2}.txt'));
 console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}'));
 console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}'));
+
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 378fbfa..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)
         }
@@ -295,8 +295,7 @@ function install (gyp, argv, callback) {
             // check content shasums
             for (var k in contentShasums) {
               log.verbose('validating download checksum for ' + k, '(%s == %s)', contentShasums[k], expectShasums[k])
-              // TODO(piscisaureus) re-enable checksum verification when the correct files are in place.
-              if (false || contentShasums[k] !== expectShasums[k]) {
+              if (contentShasums[k] !== expectShasums[k]) {
                 cb(new Error(k + ' local checksum ' + contentShasums[k] + ' not match remote ' + expectShasums[k]))
                 return
               }
@@ -344,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)
@@ -386,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/npm-registry-client/.travis.yml b/deps/npm/node_modules/npm-registry-client/.travis.yml
new file mode 100644 (file)
index 0000000..686d9ae
--- /dev/null
@@ -0,0 +1,10 @@
+language: node_js
+node_js:
+  - "0.12"
+  - "0.10"
+  - iojs
+before_install:
+  - "npm install -g npm@^2"
+script: "npm test"
+notifications:
+    slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8
diff --git a/deps/npm/node_modules/npm-registry-client/lib/logout.js b/deps/npm/node_modules/npm-registry-client/lib/logout.js
new file mode 100644 (file)
index 0000000..00964a4
--- /dev/null
@@ -0,0 +1,23 @@
+module.exports = logout
+
+var assert = require("assert")
+var url = require("url")
+
+function logout (uri, params, cb) {
+  assert(typeof uri === "string", "must pass registry URI to logout")
+  assert(params && typeof params === "object", "must pass params to logout")
+  assert(typeof cb === "function", "must pass callback to star")
+
+  var auth = params.auth
+  assert(auth && typeof auth === "object", "must pass auth to logout")
+  assert(typeof auth.token === "string", "can only log out for token auth")
+
+  uri = url.resolve(uri, "-/user/token/" + auth.token)
+  var options = {
+    method: "DELETE",
+    auth: auth
+  }
+
+  this.log.verbose("logout", "invalidating session token for user")
+  this.request(uri, options, cb)
+}
index 1e836b4..99c130e 100644 (file)
@@ -2,23 +2,23 @@ The MIT License
 
 Copyright (c) 2013 Max Ogden
 
-Permission is hereby granted, free of charge,
-to any person obtaining a copy of this software and
-associated documentation files (the "Software"), to
-deal in the Software without restriction, including
-without limitation the rights to use, copy, modify,
-merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom
-the Software is furnished to do so,
+Permission is hereby granted, free of charge, 
+to any person obtaining a copy of this software and 
+associated documentation files (the "Software"), to 
+deal in the Software without restriction, including 
+without limitation the rights to use, copy, modify, 
+merge, publish, distribute, sublicense, and/or sell 
+copies of the Software, and to permit persons to whom 
+the Software is furnished to do so, 
 subject to the following conditions:
 
-The above copyright notice and this permission notice
+The above copyright notice and this permission notice 
 shall be included in all copies or substantial portions of the Software.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR 
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 
 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
index 9e9b6ee..e46b823 100644 (file)
@@ -12,3 +12,4 @@ If you want to guarantee a stable streams base, regardless of what version of No
 **readable-stream** comes in two major versions, v1.0.x and v1.1.x. The former tracks the Streams2 implementation in Node 0.10, including bug-fixes and minor improvements as they are added. The latter tracks Streams3 as it develops in Node 0.11; we will likely see a v1.2.x branch for Node 0.12.
 
 **readable-stream** uses proper patch-level versioning so if you pin to `"~1.0.0"` you’ll get the latest Node 0.10 Streams2 implementation, including any fixes and minor non-breaking improvements. The patch-level versions of 1.0.x and 1.1.x should mirror the patch-level versions of Node-core releases. You should prefer the **1.0.x** releases for now and when you’re ready to start using Streams3, pin to `"~1.1.0"`
+
index 7abb6dc..b984607 100644 (file)
@@ -3,36 +3,36 @@ index c5a741c..a2e0d8e 100644
 --- a/lib/_stream_duplex.js
 +++ b/lib/_stream_duplex.js
 @@ -26,8 +26,8 @@
-
  module.exports = Duplex;
  var util = require('util');
 -var Readable = require('_stream_readable');
 -var Writable = require('_stream_writable');
 +var Readable = require('./_stream_readable');
 +var Writable = require('./_stream_writable');
-
  util.inherits(Duplex, Readable);
-
 diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js
 index a5e9864..330c247 100644
 --- a/lib/_stream_passthrough.js
 +++ b/lib/_stream_passthrough.js
 @@ -25,7 +25,7 @@
-
  module.exports = PassThrough;
-
 -var Transform = require('_stream_transform');
 +var Transform = require('./_stream_transform');
  var util = require('util');
  util.inherits(PassThrough, Transform);
-
 diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
 index 0c3fe3e..90a8298 100644
 --- a/lib/_stream_readable.js
 +++ b/lib/_stream_readable.js
 @@ -23,10 +23,34 @@ module.exports = Readable;
  Readable.ReadableState = ReadableState;
-
  var EE = require('events').EventEmitter;
 +if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
 +  return emitter.listeners(type).length;
@@ -63,12 +63,12 @@ index 0c3fe3e..90a8298 100644
 +} catch (er) {
 +  debug = function() {};
 +}
-
  util.inherits(Readable, Stream);
-
 @@ -380,7 +404,7 @@ function chunkInvalid(state, chunk) {
-
-
  function onEofChunk(stream, state) {
 -  if (state.decoder && !state.ended) {
 +  if (state.decoder && !state.ended && state.decoder.end) {
@@ -80,9 +80,9 @@ index b1f9fcc..b0caf57 100644
 --- a/lib/_stream_transform.js
 +++ b/lib/_stream_transform.js
 @@ -64,8 +64,14 @@
-
  module.exports = Transform;
-
 -var Duplex = require('_stream_duplex');
 +var Duplex = require('./_stream_duplex');
  var util = require('util');
@@ -93,15 +93,15 @@ index b1f9fcc..b0caf57 100644
 +  }
 +}
  util.inherits(Transform, Duplex);
-
-
 diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js
 index ba2e920..f49288b 100644
 --- a/lib/_stream_writable.js
 +++ b/lib/_stream_writable.js
 @@ -27,6 +27,12 @@ module.exports = Writable;
  Writable.WritableState = WritableState;
-
  var util = require('util');
 +if (!util.isUndefined) {
 +  var utilIs = require('core-util-is');
@@ -110,7 +110,7 @@ index ba2e920..f49288b 100644
 +  }
 +}
  var Stream = require('stream');
-
  util.inherits(Writable, Stream);
 @@ -119,7 +125,7 @@ function WritableState(options, stream) {
  function Writable(options) {
@@ -119,29 +119,29 @@ index ba2e920..f49288b 100644
 -  if (!(this instanceof Writable) && !(this instanceof Stream.Duplex))
 +  if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex')))
      return new Writable(options);
-
    this._writableState = new WritableState(options, this);
 diff --git a/test/simple/test-stream-big-push.js b/test/simple/test-stream-big-push.js
 index e3787e4..8cd2127 100644
 --- a/test/simple/test-stream-big-push.js
 +++ b/test/simple/test-stream-big-push.js
 @@ -21,7 +21,7 @@
-
  var common = require('../common');
  var assert = require('assert');
 -var stream = require('stream');
 +var stream = require('../../');
  var str = 'asdfasdfasdfasdfasdf';
-
  var r = new stream.Readable({
 diff --git a/test/simple/test-stream-end-paused.js b/test/simple/test-stream-end-paused.js
 index bb73777..d40efc7 100644
 --- a/test/simple/test-stream-end-paused.js
 +++ b/test/simple/test-stream-end-paused.js
 @@ -25,7 +25,7 @@ var gotEnd = false;
-
  // Make sure we don't miss the end event for paused 0-length streams
-
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
  var stream = new Readable();
@@ -154,13 +154,13 @@ index b46ee90..0be8366 100644
 @@ -22,8 +22,8 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Readable = require('_stream_readable');
 -var Writable = require('_stream_writable');
 +var Readable = require('../../lib/_stream_readable');
 +var Writable = require('../../lib/_stream_writable');
  var util = require('util');
-
  util.inherits(TestReadable, Readable);
 diff --git a/test/simple/test-stream-pipe-cleanup.js b/test/simple/test-stream-pipe-cleanup.js
 deleted file mode 100644
@@ -295,12 +295,12 @@ index c5d724b..c7d6b7d 100644
 --- a/test/simple/test-stream-pipe-error-handling.js
 +++ b/test/simple/test-stream-pipe-error-handling.js
 @@ -21,7 +21,7 @@
-
  var common = require('../common');
  var assert = require('assert');
 -var Stream = require('stream').Stream;
 +var Stream = require('../../').Stream;
-
  (function testErrorListenerCatches() {
    var source = new Stream();
 diff --git a/test/simple/test-stream-pipe-event.js b/test/simple/test-stream-pipe-event.js
@@ -309,25 +309,25 @@ index cb9d5fe..56f8d61 100644
 +++ b/test/simple/test-stream-pipe-event.js
 @@ -20,7 +20,7 @@
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
  var common = require('../common');
 -var stream = require('stream');
 +var stream = require('../../');
  var assert = require('assert');
  var util = require('util');
-
 diff --git a/test/simple/test-stream-push-order.js b/test/simple/test-stream-push-order.js
 index f2e6ec2..a5c9bf9 100644
 --- a/test/simple/test-stream-push-order.js
 +++ b/test/simple/test-stream-push-order.js
 @@ -20,7 +20,7 @@
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
  var common = require('../common.js');
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
  var assert = require('assert');
-
  var s = new Readable({
 diff --git a/test/simple/test-stream-push-strings.js b/test/simple/test-stream-push-strings.js
 index 06f43dc..1701a9a 100644
@@ -336,11 +336,11 @@ index 06f43dc..1701a9a 100644
 @@ -22,7 +22,7 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
  var util = require('util');
-
  util.inherits(MyStream, Readable);
 diff --git a/test/simple/test-stream-readable-event.js b/test/simple/test-stream-readable-event.js
 index ba6a577..a8e6f7b 100644
@@ -349,10 +349,10 @@ index ba6a577..a8e6f7b 100644
 @@ -22,7 +22,7 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
-
  (function first() {
    // First test, not reading when the readable is added.
 diff --git a/test/simple/test-stream-readable-flow-recursion.js b/test/simple/test-stream-readable-flow-recursion.js
@@ -362,10 +362,10 @@ index 2891ad6..11689ba 100644
 @@ -27,7 +27,7 @@ var assert = require('assert');
  // more data continuously, but without triggering a nextTick
  // warning or RangeError.
-
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
-
  // throw an error if we trigger a nextTick warning.
  process.throwDeprecation = true;
 diff --git a/test/simple/test-stream-unshift-empty-chunk.js b/test/simple/test-stream-unshift-empty-chunk.js
@@ -373,12 +373,12 @@ index 0c96476..7827538 100644
 --- a/test/simple/test-stream-unshift-empty-chunk.js
 +++ b/test/simple/test-stream-unshift-empty-chunk.js
 @@ -24,7 +24,7 @@ var assert = require('assert');
-
- // This test verifies that stream.unshift(Buffer(0)) or
+ // This test verifies that stream.unshift(Buffer(0)) or 
  // stream.unshift('') does not set state.reading=false.
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
-
  var r = new Readable();
  var nChunks = 10;
 diff --git a/test/simple/test-stream-unshift-read-race.js b/test/simple/test-stream-unshift-read-race.js
@@ -388,14 +388,14 @@ index 83fd9fa..17c18aa 100644
 @@ -29,7 +29,7 @@ var assert = require('assert');
  // 3. push() after the EOF signaling null is an error.
  // 4. _read() is not called after pushing the EOF null chunk.
-
 -var stream = require('stream');
 +var stream = require('../../');
  var hwm = 10;
  var r = stream.Readable({ highWaterMark: hwm });
  var chunks = 10;
 @@ -51,7 +51,14 @@ r._read = function(n) {
-
    function push(fast) {
      assert(!pushedNull, 'push() after null push');
 -    var c = pos >= data.length ? null : data.slice(pos, pos + n);
@@ -417,10 +417,10 @@ index 5b49e6e..b5321f3 100644
 @@ -22,7 +22,7 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var stream = require('stream');
 +var stream = require('../../');
-
  var queue = [];
  for (var decode = 0; decode < 2; decode++) {
 diff --git a/test/simple/test-stream2-basic.js b/test/simple/test-stream2-basic.js
@@ -428,26 +428,26 @@ index 3814bf0..248c1be 100644
 --- a/test/simple/test-stream2-basic.js
 +++ b/test/simple/test-stream2-basic.js
 @@ -21,7 +21,7 @@
-
-
  var common = require('../common.js');
 -var R = require('_stream_readable');
 +var R = require('../../lib/_stream_readable');
  var assert = require('assert');
-
  var util = require('util');
 diff --git a/test/simple/test-stream2-compatibility.js b/test/simple/test-stream2-compatibility.js
 index 6cdd4e9..f0fa84b 100644
 --- a/test/simple/test-stream2-compatibility.js
 +++ b/test/simple/test-stream2-compatibility.js
 @@ -21,7 +21,7 @@
-
-
  var common = require('../common.js');
 -var R = require('_stream_readable');
 +var R = require('../../lib/_stream_readable');
  var assert = require('assert');
-
  var util = require('util');
 diff --git a/test/simple/test-stream2-finish-pipe.js b/test/simple/test-stream2-finish-pipe.js
 index 39b274f..006a19b 100644
@@ -455,12 +455,12 @@ index 39b274f..006a19b 100644
 +++ b/test/simple/test-stream2-finish-pipe.js
 @@ -20,7 +20,7 @@
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
  var common = require('../common.js');
 -var stream = require('stream');
 +var stream = require('../../');
  var Buffer = require('buffer').Buffer;
-
  var r = new stream.Readable();
 diff --git a/test/simple/test-stream2-fs.js b/test/simple/test-stream2-fs.js
 deleted file mode 100644
@@ -605,7 +605,7 @@ index 2fbfbca..667985b 100644
 @@ -30,7 +30,7 @@ var PUSHSIZE = 20;
  var PUSHCOUNT = 1000;
  var HWM = 50;
-
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
  var r = new Readable({
@@ -613,7 +613,7 @@ index 2fbfbca..667985b 100644
  });
 @@ -39,23 +39,23 @@ var rs = r._readableState;
  r._read = push;
-
  r.on('readable', function() {
 -  console.error('>> readable');
 +  //console.error('>> readable');
@@ -624,7 +624,7 @@ index 2fbfbca..667985b 100644
 -    console.error('  < %j (%d remain)', ret && ret.length, rs.length);
 +    //console.error('  < %j (%d remain)', ret && ret.length, rs.length);
    } while (ret && ret.length === READSIZE);
-
 -  console.error('<< after read()',
 -                ret && ret.length,
 -                rs.needReadable,
@@ -634,24 +634,24 @@ index 2fbfbca..667985b 100644
 +  //              rs.needReadable,
 +  //              rs.length);
  });
-
  var endEmitted = false;
  r.on('end', function() {
    endEmitted = true;
 -  console.error('end');
 +  //console.error('end');
  });
-
  var pushes = 0;
 @@ -64,11 +64,11 @@ function push() {
      return;
-
    if (pushes++ === PUSHCOUNT) {
 -    console.error('   push(EOF)');
 +    //console.error('   push(EOF)');
      return r.push(null);
    }
-
 -  console.error('   push #%d', pushes);
 +  //console.error('   push #%d', pushes);
    if (r.push(new Buffer(PUSHSIZE)))
@@ -662,27 +662,27 @@ index 3e6931d..ff47d89 100644
 --- a/test/simple/test-stream2-objects.js
 +++ b/test/simple/test-stream2-objects.js
 @@ -21,8 +21,8 @@
-
-
  var common = require('../common.js');
 -var Readable = require('_stream_readable');
 -var Writable = require('_stream_writable');
 +var Readable = require('../../lib/_stream_readable');
 +var Writable = require('../../lib/_stream_writable');
  var assert = require('assert');
-
  // tiny node-tap lookalike.
 diff --git a/test/simple/test-stream2-pipe-error-handling.js b/test/simple/test-stream2-pipe-error-handling.js
 index cf7531c..e3f3e4e 100644
 --- a/test/simple/test-stream2-pipe-error-handling.js
 +++ b/test/simple/test-stream2-pipe-error-handling.js
 @@ -21,7 +21,7 @@
-
  var common = require('../common');
  var assert = require('assert');
 -var stream = require('stream');
 +var stream = require('../../');
-
  (function testErrorListenerCatches() {
    var count = 1000;
 diff --git a/test/simple/test-stream2-pipe-error-once-listener.js b/test/simple/test-stream2-pipe-error-once-listener.js
@@ -691,12 +691,12 @@ index 5e8e3cb..53b2616 100755
 +++ b/test/simple/test-stream2-pipe-error-once-listener.js
 @@ -24,7 +24,7 @@ var common = require('../common.js');
  var assert = require('assert');
-
  var util = require('util');
 -var stream = require('stream');
 +var stream = require('../../');
-
-
  var Read = function() {
 diff --git a/test/simple/test-stream2-push.js b/test/simple/test-stream2-push.js
 index b63edc3..eb2b0e9 100644
@@ -704,7 +704,7 @@ index b63edc3..eb2b0e9 100644
 +++ b/test/simple/test-stream2-push.js
 @@ -20,7 +20,7 @@
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
  var common = require('../common.js');
 -var stream = require('stream');
 +var stream = require('../../');
@@ -716,14 +716,14 @@ index e8a7305..9740a47 100644
 --- a/test/simple/test-stream2-read-sync-stack.js
 +++ b/test/simple/test-stream2-read-sync-stack.js
 @@ -21,7 +21,7 @@
-
  var common = require('../common');
  var assert = require('assert');
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
  var r = new Readable();
  var N = 256 * 1024;
-
 diff --git a/test/simple/test-stream2-readable-empty-buffer-no-eof.js b/test/simple/test-stream2-readable-empty-buffer-no-eof.js
 index cd30178..4b1659d 100644
 --- a/test/simple/test-stream2-readable-empty-buffer-no-eof.js
@@ -731,13 +731,13 @@ index cd30178..4b1659d 100644
 @@ -22,10 +22,9 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Readable = require('stream').Readable;
 +var Readable = require('../../').Readable;
-
  test1();
 -test2();
-
  function test1() {
    var r = new Readable();
 @@ -88,31 +87,3 @@ function test1() {
@@ -777,12 +777,12 @@ index 7c96ffe..04a96f5 100644
 --- a/test/simple/test-stream2-readable-from-list.js
 +++ b/test/simple/test-stream2-readable-from-list.js
 @@ -21,7 +21,7 @@
-
  var assert = require('assert');
  var common = require('../common.js');
 -var fromList = require('_stream_readable')._fromList;
 +var fromList = require('../../lib/_stream_readable')._fromList;
-
  // tiny node-tap lookalike.
  var tests = [];
 diff --git a/test/simple/test-stream2-readable-legacy-drain.js b/test/simple/test-stream2-readable-legacy-drain.js
@@ -792,23 +792,23 @@ index 675da8e..51fd3d5 100644
 @@ -22,7 +22,7 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Stream = require('stream');
 +var Stream = require('../../');
  var Readable = Stream.Readable;
-
  var r = new Readable();
 diff --git a/test/simple/test-stream2-readable-non-empty-end.js b/test/simple/test-stream2-readable-non-empty-end.js
 index 7314ae7..c971898 100644
 --- a/test/simple/test-stream2-readable-non-empty-end.js
 +++ b/test/simple/test-stream2-readable-non-empty-end.js
 @@ -21,7 +21,7 @@
-
  var assert = require('assert');
  var common = require('../common.js');
 -var Readable = require('_stream_readable');
 +var Readable = require('../../lib/_stream_readable');
-
  var len = 0;
  var chunks = new Array(10);
 diff --git a/test/simple/test-stream2-readable-wrap-empty.js b/test/simple/test-stream2-readable-wrap-empty.js
@@ -818,11 +818,11 @@ index 2e5cf25..fd8a3dc 100644
 @@ -22,7 +22,7 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Readable = require('_stream_readable');
 +var Readable = require('../../lib/_stream_readable');
  var EE = require('events').EventEmitter;
-
  var oldStream = new EE();
 diff --git a/test/simple/test-stream2-readable-wrap.js b/test/simple/test-stream2-readable-wrap.js
 index 90eea01..6b177f7 100644
@@ -831,40 +831,40 @@ index 90eea01..6b177f7 100644
 @@ -22,8 +22,8 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var Readable = require('_stream_readable');
 -var Writable = require('_stream_writable');
 +var Readable = require('../../lib/_stream_readable');
 +var Writable = require('../../lib/_stream_writable');
  var EE = require('events').EventEmitter;
-
  var testRuns = 0, completedRuns = 0;
 diff --git a/test/simple/test-stream2-set-encoding.js b/test/simple/test-stream2-set-encoding.js
 index 5d2c32a..685531b 100644
 --- a/test/simple/test-stream2-set-encoding.js
 +++ b/test/simple/test-stream2-set-encoding.js
 @@ -22,7 +22,7 @@
-
  var common = require('../common.js');
  var assert = require('assert');
 -var R = require('_stream_readable');
 +var R = require('../../lib/_stream_readable');
  var util = require('util');
-
  // tiny node-tap lookalike.
 diff --git a/test/simple/test-stream2-transform.js b/test/simple/test-stream2-transform.js
 index 9c9ddd8..a0cacc6 100644
 --- a/test/simple/test-stream2-transform.js
 +++ b/test/simple/test-stream2-transform.js
 @@ -21,8 +21,8 @@
-
  var assert = require('assert');
  var common = require('../common.js');
 -var PassThrough = require('_stream_passthrough');
 -var Transform = require('_stream_transform');
 +var PassThrough = require('../../').PassThrough;
 +var Transform = require('../../').Transform;
-
  // tiny node-tap lookalike.
  var tests = [];
 diff --git a/test/simple/test-stream2-unpipe-drain.js b/test/simple/test-stream2-unpipe-drain.js
@@ -872,41 +872,41 @@ index d66dc3c..365b327 100644
 --- a/test/simple/test-stream2-unpipe-drain.js
 +++ b/test/simple/test-stream2-unpipe-drain.js
 @@ -22,7 +22,7 @@
-
  var common = require('../common.js');
  var assert = require('assert');
 -var stream = require('stream');
 +var stream = require('../../');
  var crypto = require('crypto');
-
  var util = require('util');
 diff --git a/test/simple/test-stream2-unpipe-leak.js b/test/simple/test-stream2-unpipe-leak.js
 index 99f8746..17c92ae 100644
 --- a/test/simple/test-stream2-unpipe-leak.js
 +++ b/test/simple/test-stream2-unpipe-leak.js
 @@ -22,7 +22,7 @@
-
  var common = require('../common.js');
  var assert = require('assert');
 -var stream = require('stream');
 +var stream = require('../../');
-
  var chunk = new Buffer('hallo');
-
 diff --git a/test/simple/test-stream2-writable.js b/test/simple/test-stream2-writable.js
 index 704100c..209c3a6 100644
 --- a/test/simple/test-stream2-writable.js
 +++ b/test/simple/test-stream2-writable.js
 @@ -20,8 +20,8 @@
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
  var common = require('../common.js');
 -var W = require('_stream_writable');
 -var D = require('_stream_duplex');
 +var W = require('../../').Writable;
 +var D = require('../../').Duplex;
  var assert = require('assert');
-
  var util = require('util');
 diff --git a/test/simple/test-stream3-pause-then-read.js b/test/simple/test-stream3-pause-then-read.js
 index b91bde3..2f72c15 100644
@@ -915,8 +915,9 @@ index b91bde3..2f72c15 100644
 @@ -22,7 +22,7 @@
  var common = require('../common');
  var assert = require('assert');
-
 -var stream = require('stream');
 +var stream = require('../../');
  var Readable = stream.Readable;
  var Writable = stream.Writable;
index 487b500..e6dda4e 100644 (file)
@@ -63,7 +63,7 @@ var concat = require('concat-stream')
 
 Return a `writable` stream that will fire `cb(data)` with all of the data that
 was written to the stream. Data can be written to `writable` as strings,
-Buffers, arrays of byte integers, and Uint8Arrays.
+Buffers, arrays of byte integers, and Uint8Arrays. 
 
 By default `concat-stream` will give you back the same data type as the type of the first buffer written to the stream. Use `opts.encoding` to set what format `data` should be returned as, e.g. if you if you don't want to rely on the built-in type checking or for some other reason.
 
index b20d4dd..218c522 100644 (file)
@@ -58,7 +58,7 @@ test('string from buffers with multibyte characters', function (t) {
   var snowman = new Buffer('☃')
   for (var i = 0; i < 8; i++) {
     strings.write(snowman.slice(0, 1))
-    strings.write(snowman.slice(1))
+    strings.write(snowman.slice(1))    
   }
   strings.end()
 })
index 0cd832a..35b1ea4 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "npm-registry-client",
   "description": "Client for the npm registry",
-  "version": "6.0.7",
+  "version": "6.1.1",
   "repository": {
     "url": "git://github.com/isaacs/npm-registry-client"
   },
   "license": "ISC",
   "readme": "# npm-registry-client\n\nThe code that npm uses to talk to the registry.\n\nIt handles all the caching and HTTP calls.\n\n## Usage\n\n```javascript\nvar RegClient = require('npm-registry-client')\nvar client = new RegClient(config)\nvar uri = \"npm://registry.npmjs.org/npm\"\nvar params = {timeout: 1000}\n\nclient.get(uri, params, function (error, data, raw, res) {\n  // error is an error if there was a problem.\n  // data is the parsed data object\n  // raw is the json string\n  // res is the response from couch\n})\n```\n\n# Registry URLs\n\nThe registry calls take either a full URL pointing to a resource in the\nregistry, or a base URL for the registry as a whole (including the registry\npath â€“ but be sure to terminate the path with `/`). `http` and `https` URLs are\nthe only ones supported.\n\n## Using the client\n\nEvery call to the client follows the same pattern:\n\n* `uri` {String} The *fully-qualified* URI of the registry API method being\n  invoked.\n* `params` {Object} Per-request parameters.\n* `callback` {Function} Callback to be invoked when the call is complete.\n\n### Credentials\n\nMany requests to the registry can by authenticated, and require credentials\nfor authorization. These credentials always look the same:\n\n* `username` {String}\n* `password` {String}\n* `email` {String}\n* `alwaysAuth` {Boolean} Whether calls to the target registry are always\n  authed.\n\n**or**\n\n* `token` {String}\n* `alwaysAuth` {Boolean} Whether calls to the target registry are always\n  authed.\n\n## API\n\n### client.access(uri, params, cb)\n\n* `uri` {String} Registry URL for the package's access API endpoint.\n  Looks like `/-/package/<package name>/access`.\n* `params` {Object} Object containing per-request properties.\n  * `access` {String} New access level for the package. Can be either\n    `public` or `restricted`. Registry will raise an error if trying\n    to change the access level of an unscoped package.\n  * `auth` {Credentials}\n\nSet the access level for scoped packages. For now, there are only two\naccess levels: \"public\" and \"restricted\".\n\n### client.adduser(uri, params, cb)\n\n* `uri` {String} Base registry URL.\n* `params` {Object} Object containing per-request properties.\n  * `auth` {Credentials}\n* `cb` {Function}\n  * `error` {Error | null}\n  * `data` {Object} the parsed data object\n  * `raw` {String} the json\n  * `res` {Response Object} response from couch\n\nAdd a user account to the registry, or verify the credentials.\n\n### client.deprecate(uri, params, cb)\n\n* `uri` {String} Full registry URI for the deprecated package.\n* `params` {Object} Object containing per-request properties.\n  * `version` {String} Semver version range.\n  * `message` {String} The message to use as a deprecation warning.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nDeprecate a version of a package in the registry.\n\n### client.distTags.fetch(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n  * `package` {String} Name of the package.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nFetch all of the `dist-tags` for the named package.\n\n### client.distTags.add(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n  * `package` {String} Name of the package.\n  * `distTag` {String} Name of the new `dist-tag`.\n  * `version` {String} Exact version to be mapped to the `dist-tag`.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nAdd (or replace) a single dist-tag onto the named package.\n\n### client.distTags.set(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n  * `package` {String} Name of the package.\n  * `distTags` {Object} Object containing a map from tag names to package\n     versions.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nSet all of the `dist-tags` for the named package at once, creating any\n`dist-tags` that do not already exit. Any `dist-tags` not included in the\n`distTags` map will be removed.\n\n### client.distTags.update(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n  * `package` {String} Name of the package.\n  * `distTags` {Object} Object containing a map from tag names to package\n     versions.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nUpdate the values of multiple `dist-tags`, creating any `dist-tags` that do\nnot already exist. Any pre-existing `dist-tags` not included in the `distTags`\nmap will be left alone.\n\n### client.distTags.rm(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n  * `package` {String} Name of the package.\n  * `distTag` {String} Name of the new `dist-tag`.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nRemove a single `dist-tag` from the named package.\n\n### client.get(uri, params, cb)\n\n* `uri` {String} The complete registry URI to fetch\n* `params` {Object} Object containing per-request properties.\n  * `timeout` {Number} Duration before the request times out. Optional\n    (default: never).\n  * `follow` {Boolean} Follow 302/301 responses. Optional (default: true).\n  * `staleOk` {Boolean} If there's cached data available, then return that to\n    the callback quickly, and update the cache the background. Optional\n    (default: false).\n  * `auth` {Credentials} Optional.\n* `cb` {Function}\n\nFetches data from the registry via a GET request, saving it in the cache folder\nwith the ETag or the \"Last Modified\" timestamp.\n\n### client.publish(uri, params, cb)\n\n* `uri` {String} The registry URI for the package to publish.\n* `params` {Object} Object containing per-request properties.\n  * `metadata` {Object} Package metadata.\n  * `access` {String} Access for the package. Can be `public` or `restricted` (no default).\n  * `body` {Stream} Stream of the package body / tarball.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nPublish a package to the registry.\n\nNote that this does not create the tarball from a folder.\n\n### client.star(uri, params, cb)\n\n* `uri` {String} The complete registry URI for the package to star.\n* `params` {Object} Object containing per-request properties.\n  * `starred` {Boolean} True to star the package, false to unstar it. Optional\n    (default: false).\n  * `auth` {Credentials}\n* `cb` {Function}\n\nStar or unstar a package.\n\nNote that the user does not have to be the package owner to star or unstar a\npackage, though other writes do require that the user be the package owner.\n\n### client.stars(uri, params, cb)\n\n* `uri` {String} The base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n  * `username` {String} Name of user to fetch starred packages for. Optional\n    (default: user in `auth`).\n  * `auth` {Credentials} Optional (required if `username` is omitted).\n* `cb` {Function}\n\nView your own or another user's starred packages.\n\n### client.tag(uri, params, cb)\n\n* `uri` {String} The complete registry URI to tag\n* `params` {Object} Object containing per-request properties.\n  * `version` {String} Version to tag.\n  * `tag` {String} Tag name to apply.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nMark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the\nspecified version.\n\n### client.unpublish(uri, params, cb)\n\n* `uri` {String} The complete registry URI of the package to unpublish.\n* `params` {Object} Object containing per-request properties.\n  * `version` {String} version to unpublish. Optional â€“ omit to unpublish all\n    versions.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nRemove a version of a package (or all versions) from the registry.  When the\nlast version us unpublished, the entire document is removed from the database.\n\n### client.whoami(uri, params, cb)\n\n* `uri` {String} The base registry for the URI.\n* `params` {Object} Object containing per-request properties.\n  * `auth` {Credentials}\n* `cb` {Function}\n\nSimple call to see who the registry thinks you are. Especially useful with\ntoken-based auth.\n\n\n## PLUMBING\n\nThe below are primarily intended for use by the rest of the API, or by the npm\ncaching logic directly.\n\n### client.request(uri, params, cb)\n\n* `uri` {String} URI pointing to the resource to request.\n* `params` {Object} Object containing per-request properties.\n  * `method` {String} HTTP method. Optional (default: \"GET\").\n  * `body` {Stream | Buffer | String | Object} The request body.  Objects\n    that are not Buffers or Streams are encoded as JSON. Optional â€“ body\n    only used for write operations.\n  * `etag` {String} The cached ETag. Optional.\n  * `lastModified` {String} The cached Last-Modified timestamp. Optional.\n  * `follow` {Boolean} Follow 302/301 responses. Optional (default: true).\n  * `auth` {Credentials} Optional.\n* `cb` {Function}\n  * `error` {Error | null}\n  * `data` {Object} the parsed data object\n  * `raw` {String} the json\n  * `res` {Response Object} response from couch\n\nMake a generic request to the registry. All the other methods are wrappers\naround `client.request`.\n\n### client.fetch(uri, params, cb)\n\n* `uri` {String} The complete registry URI to upload to\n* `params` {Object} Object containing per-request properties.\n  * `headers` {Stream} HTTP headers to be included with the request. Optional.\n  * `auth` {Credentials} Optional.\n* `cb` {Function}\n\nFetch a package from a URL, with auth set appropriately if included. Used to\ncache remote tarballs as well as request package tarballs from the registry.\n\n# Configuration\n\nThe client uses its own configuration, which is just passed in as a simple\nnested object. The following are the supported values (with their defaults, if\nany):\n\n* `proxy.http` {URL} The URL to proxy HTTP requests through.\n* `proxy.https` {URL} The URL to proxy HTTPS requests through. Defaults to be\n  the same as `proxy.http` if unset.\n* `proxy.localAddress` {IP} The local address to use on multi-homed systems.\n* `ssl.ca` {String} Certificate signing authority certificates to trust.\n* `ssl.certificate` {String} Client certificate (PEM encoded). Enable access\n  to servers that require client certificates.\n* `ssl.key` {String} Private key (PEM encoded) for client certificate.\n* `ssl.strict` {Boolean} Whether or not to be strict with SSL certificates.\n  Default = `true`\n* `retry.count` {Number} Number of times to retry on GET failures. Default = 2.\n* `retry.factor` {Number} `factor` setting for `node-retry`. Default = 10.\n* `retry.minTimeout` {Number} `minTimeout` setting for `node-retry`.\n  Default = 10000 (10 seconds)\n* `retry.maxTimeout` {Number} `maxTimeout` setting for `node-retry`.\n  Default = 60000 (60 seconds)\n* `userAgent` {String} User agent header to send. Default =\n  `\"node/{process.version}\"`\n* `log` {Object} The logger to use.  Defaults to `require(\"npmlog\")` if\n  that works, otherwise logs are disabled.\n* `defaultTag` {String} The default tag to use when publishing new packages.\n  Default = `\"latest\"`\n* `couchToken` {Object} A token for use with\n  [couch-login](https://npmjs.org/package/couch-login).\n* `sessionToken` {string} A random identifier for this set of client requests.\n  Default = 8 random hexadecimal bytes.\n",
   "readmeFilename": "README.md",
-  "gitHead": "8691eaf8ca1f4c8a4d16389da6e8f6d0a0042ed9",
+  "gitHead": "88399fa1ebc5473125466ffa940c5b7df9e693bc",
   "bugs": {
     "url": "https://github.com/isaacs/npm-registry-client/issues"
   },
   "homepage": "https://github.com/isaacs/npm-registry-client",
-  "_id": "npm-registry-client@6.0.7",
-  "_shasum": "c9f36f727f0b72f47a9ed11a539829770565e0fb",
-  "_from": "npm-registry-client@>=6.0.7 <6.1.0"
+  "_id": "npm-registry-client@6.1.1",
+  "_shasum": "ffc74d9d85f3228fcd21a7eaad8a8ed134a5dddb",
+  "_from": "npm-registry-client@>=6.1.1 <6.2.0"
 }
diff --git a/deps/npm/node_modules/npm-registry-client/test/logout.js b/deps/npm/node_modules/npm-registry-client/test/logout.js
new file mode 100644 (file)
index 0000000..bbf1b8c
--- /dev/null
@@ -0,0 +1,74 @@
+var test = require("tap").test
+
+var server = require("./lib/server.js")
+var common = require("./lib/common.js")
+var client = common.freshClient()
+
+function nop () {}
+
+var URI = "http://localhost:1337/rewrite"
+var TOKEN = "b00b00feed"
+var PARAMS = {
+  auth: {
+    token: TOKEN
+  }
+}
+
+test("logout call contract", function (t) {
+  t.throws(function () {
+    client.logout(undefined, PARAMS, nop)
+  }, "requires a URI")
+
+  t.throws(function () {
+    client.logout([], PARAMS, nop)
+  }, "requires URI to be a string")
+
+  t.throws(function () {
+    client.logout(URI, undefined, nop)
+  }, "requires params object")
+
+  t.throws(function () {
+    client.logout(URI, "", nop)
+  }, "params must be object")
+
+  t.throws(function () {
+    client.logout(URI, PARAMS, undefined)
+  }, "requires callback")
+
+  t.throws(function () {
+    client.logout(URI, PARAMS, "callback")
+  }, "callback must be function")
+
+  t.throws(
+    function () {
+      var params = {
+        auth: {}
+      }
+      client.logout(URI, params, nop)
+    },
+    { name: "AssertionError", message: "can only log out for token auth" },
+    "auth must include token"
+  )
+
+  t.end()
+})
+
+test("log out from a token-based registry", function (t) {
+  server.expect("DELETE", "/-/user/token/" + TOKEN, function (req, res) {
+    t.equal(req.method, "DELETE")
+    t.equal(req.headers.authorization, "Bearer " + TOKEN, "request is authed")
+
+    res.json({message: "ok"})
+  })
+
+  client.logout(URI, PARAMS, function (er) {
+    t.ifError(er, "no errors")
+
+    t.end()
+  })
+})
+
+test("cleanup", function (t) {
+  server.close()
+  t.end()
+})
index 497a6b8..5f6a33d 100644 (file)
@@ -40,7 +40,7 @@ zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) {
   tap.test("request wrong gzip package content", function (t) {
     // will retry 3 times
     for (var i = 0; i < 3; i++) {
-      server.expect("GET", "/some-package-gzip-error/1.2.3", function (req, res) {
+      server.expect("GET", "/some-package-gzip/1.2.3", function (req, res) {
         res.statusCode = 200
         res.setHeader("Content-Encoding", "gzip")
         res.setHeader("Content-Type", "application/json")
index 1fd2f67..3c2ff0f 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "read-package-json",
-  "version": "1.2.7",
+  "version": "1.3.1",
   "author": {
     "name": "Isaac Z. Schlueter",
     "email": "i@izs.me",
     "graceful-fs": "2 || 3"
   },
   "license": "ISC",
-  "gitHead": "41d6696c527e32a1cb38ebf0b6fc91b489b0499c",
+  "gitHead": "59011e6b660cf0cc916646a08955c12a8f990174",
   "bugs": {
     "url": "https://github.com/isaacs/read-package-json/issues"
   },
   "homepage": "https://github.com/isaacs/read-package-json",
-  "_id": "read-package-json@1.2.7",
-  "_shasum": "f0b440c461a218f4dbf48b094e80fc65c5248502",
-  "_from": "read-package-json@>=1.2.7-0 <1.3.0-0",
-  "_npmVersion": "2.0.0-beta.0",
+  "_id": "read-package-json@1.3.1",
+  "_shasum": "5a965f9fc34b25ffa5e0d93b1d0fc063af6d10b0",
+  "_from": "read-package-json@1.3.1",
+  "_npmVersion": "2.5.1",
+  "_nodeVersion": "0.12.0",
   "_npmUser": {
     "name": "othiym23",
     "email": "ogd@aoaioxxysz.net"
@@ -54,9 +55,9 @@
     }
   ],
   "dist": {
-    "shasum": "f0b440c461a218f4dbf48b094e80fc65c5248502",
-    "tarball": "http://registry.npmjs.org/read-package-json/-/read-package-json-1.2.7.tgz"
+    "shasum": "5a965f9fc34b25ffa5e0d93b1d0fc063af6d10b0",
+    "tarball": "http://registry.npmjs.org/read-package-json/-/read-package-json-1.3.1.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.2.7.tgz"
+  "_resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.3.1.tgz"
 }
index acb7d62..863f8e8 100644 (file)
@@ -332,6 +332,31 @@ function githead_ (file, data, dir, head, cb) {
                 })
 }
 
+/**
+ * Warn if the bin references don't point to anything.  This might be better in
+ * normalize-package-data if it had access to the file path.
+ */
+function checkBinReferences_ (file, data, warn, cb) {
+                if (!(data.bin instanceof Object)) return cb()
+
+                var keys = Object.keys(data.bin)
+                var keysLeft = keys.length
+                if (!keysLeft) return cb()
+
+                function handleExists(relName, result) {
+                                keysLeft--
+                                if (!result) warn("No bin file found at " + relName)
+                                if (!keysLeft) cb()
+                }
+
+                keys.forEach(function (key) {
+                                var dirName = path.dirname(file)
+                                var relName = data.bin[key]
+                                var binPath = path.resolve(dirName, relName)
+                                fs.exists(binPath, handleExists.bind(null, relName))
+                })
+}
+
 function final (file, data, log, strict, cb) {
                 var pId = makePackageId(data)
                 function warn(msg) {
@@ -344,9 +369,11 @@ function final (file, data, log, strict, cb) {
                 catch (error) {
                                 return cb(error)
                 }
-                typoWarned[pId] = true
-                readJson.cache.set(file, data)
-                cb(null, data)
+                checkBinReferences_(file, data, warn, function () {
+                                typoWarned[pId] = true
+                                readJson.cache.set(file, data)
+                                cb(null, data)
+                })
 }
 
 function makePackageId (data) {
diff --git a/deps/npm/node_modules/read-package-json/test/bin.js b/deps/npm/node_modules/read-package-json/test/bin.js
new file mode 100644 (file)
index 0000000..2ed4ec5
--- /dev/null
@@ -0,0 +1,43 @@
+// vim: set softtabstop=16 shiftwidth=16:
+var tap = require("tap")
+var readJson = require("../")
+var path = require("path")
+var fs = require("fs")
+
+var createWarningCollector = function () {
+        var warn = function (msg) {
+          warn.warnings.push(arguments)
+        }
+        warn.warnings = []
+        return warn
+}
+
+tap.test("Bin test", function (t) {
+                var p = path.resolve(__dirname, "fixtures/bin.json")
+                var warn = createWarningCollector()
+                readJson(p, warn, function (er, data) {
+                                t.equals(warn.warnings.length, 0)
+                                t.deepEqual(data.bin, {"bin-test": "./bin/echo"})
+                                t.end()
+                })
+})
+
+tap.test("Bad bin test", function (t) {
+                var p = path.resolve(__dirname, "fixtures/badbin.json")
+                var warn = createWarningCollector()
+                readJson(p, warn, function (er, data) {
+                                t.equals(warn.warnings.length, 1)
+                                t.equals(warn.warnings[0][2], "No bin file found at ./bin/typo")
+                                t.end()
+                })
+})
+
+tap.test("Empty bin test", function (t) {
+                var p = path.resolve(__dirname, "fixtures/emptybin.json")
+                var warn = createWarningCollector()
+                readJson(p, warn, function (er, data) {
+                                t.equals(warn.warnings.length, 0)
+                                t.same(data.bin, {}, "no mapping to bin because object was empty")
+                                t.end()
+                })
+})
diff --git a/deps/npm/node_modules/read-package-json/test/fixtures/badbin.json b/deps/npm/node_modules/read-package-json/test/fixtures/badbin.json
new file mode 100644 (file)
index 0000000..06c57f4
--- /dev/null
@@ -0,0 +1,11 @@
+{
+  "name": "badbin-test",
+  "description": "my desc",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/npm/read-package-json.git"
+  },
+  "version": "0.0.1",
+  "readme": "hello world",
+  "bin": "./bin/typo"
+}
diff --git a/deps/npm/node_modules/read-package-json/test/fixtures/bin.json b/deps/npm/node_modules/read-package-json/test/fixtures/bin.json
new file mode 100644 (file)
index 0000000..d47a527
--- /dev/null
@@ -0,0 +1,11 @@
+{
+  "name": "bin-test",
+  "description": "my desc",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/npm/read-package-json.git"
+  },
+  "version": "0.0.1",
+  "readme": "hello world",
+  "bin": "./bin/echo"
+}
diff --git a/deps/npm/node_modules/read-package-json/test/fixtures/bin/echo b/deps/npm/node_modules/read-package-json/test/fixtures/bin/echo
new file mode 100644 (file)
index 0000000..aaed878
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo "Hello world"
\ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/test/fixtures/emptybin.json b/deps/npm/node_modules/read-package-json/test/fixtures/emptybin.json
new file mode 100644 (file)
index 0000000..ef926f0
--- /dev/null
@@ -0,0 +1,11 @@
+{
+  "name": "badbin-test",
+  "description": "my desc",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/npm/read-package-json.git"
+  },
+  "version": "0.0.1",
+  "readme": "hello world",
+  "bin": {}
+}
index c2013a6..0e54767 100644 (file)
@@ -49,7 +49,7 @@ function getProxyFromURI(uri) {
   if (noProxy === '*') {
     return null
   }
-
+  
   // if the noProxy is not empty and the uri is found return null
 
   if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {
@@ -62,7 +62,7 @@ function getProxyFromURI(uri) {
     return process.env.HTTP_PROXY ||
            process.env.http_proxy || null
   }
-
+  
   if (uri.protocol === 'https:') {
     return process.env.HTTPS_PROXY ||
            process.env.https_proxy ||
index b2173f5..e64b009 100755 (executable)
@@ -314,7 +314,7 @@ describe('Hawk', function () {
                 done();
             });
         });
-
+        
         it('should fail on expired access', function (done) {
 
             var req = {
index a43093b..652609b 100644 (file)
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c)  2010-2012 Robert Kieffer
+Copyright (c)  2010-2012 Robert Kieffer 
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
index c6214d5..f5ee8b4 100644 (file)
@@ -65,3 +65,4 @@
 
 ## [**1.0.2**](https://github.com/hapijs/qs/issues?milestone=2&state=closed)
 - [**#5**](https://github.com/hapijs/qs/issues/5) array holes incorrectly copied into object on large index
+
index 00665b9..f43c8c6 100644 (file)
@@ -280,7 +280,7 @@ Request.prototype.setupTunnel = function () {
   if (typeof self.proxy === 'string') {
     self.proxy = url.parse(self.proxy)
   }
-
+  
   if (!self.proxy || !self.tunnel) {
     return false
   }
@@ -296,7 +296,7 @@ Request.prototype.setupTunnel = function () {
   self.proxyHeaders = constructProxyHeaderWhiteList(self.headers, proxyHeaderWhiteList)
   self.proxyHeaders.host = constructProxyHost(self.uri)
   proxyHeaderExclusiveList.forEach(self.removeHeader, self)
-
   // Set Agent from Tunnel Data
   var tunnelFn = getTunnelFn(self)
   var tunnelOptions = constructTunnelOptions(self)
index 1ec8089..b5e35ff 100644 (file)
@@ -106,7 +106,7 @@ similar risk on the *next* set of prerelease versions.
 The method `.inc` takes an additional `identifier` string argument that
 will append the value of the string as a prerelease identifier:
 
-````javascript
+```javascript
 > semver.inc('1.2.3', 'pre', 'beta')
 '1.2.4-beta.0'
 ```
@@ -248,6 +248,9 @@ strings that they parse.
     same as `prepatch`. It increments the patch version, then makes a
     prerelease. If the input version is already a prerelease it simply
     increments it.
+* `major(v)`: Return the major version number.
+* `minor(v)`: Return the minor version number.
+* `patch(v)`: Return the patch version number.
 
 ### Comparison
 
index 51326d7..466de0e 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "semver",
-  "version": "4.2.0",
+  "version": "4.3.0",
   "description": "The semantic version parser used by npm.",
   "main": "semver.js",
   "browser": "semver.browser.js",
   "bin": {
     "semver": "./bin/semver"
   },
-  "gitHead": "f353d3337dd9bef990b6873e281342260b4e63ae",
+  "gitHead": "12c0304de19c3d01ae2524b70592e9c49a76ff9d",
   "bugs": {
     "url": "https://github.com/isaacs/node-semver/issues"
   },
   "homepage": "https://github.com/isaacs/node-semver",
-  "_id": "semver@4.2.0",
-  "_shasum": "a571fd4adbe974fe32bd9cb4c5e249606f498423",
-  "_from": "semver@>=4.2.0 <4.3.0",
-  "_npmVersion": "2.1.14",
-  "_nodeVersion": "0.10.33",
+  "_id": "semver@4.3.0",
+  "_shasum": "3757ceed2b91afefe0ba2c3b6bda49c688b0257a",
+  "_from": "semver@>=4.3.0 <4.4.0",
+  "_npmVersion": "2.5.1",
+  "_nodeVersion": "1.1.0",
   "_npmUser": {
     "name": "isaacs",
     "email": "i@izs.me"
     }
   ],
   "dist": {
-    "shasum": "a571fd4adbe974fe32bd9cb4c5e249606f498423",
-    "tarball": "http://registry.npmjs.org/semver/-/semver-4.2.0.tgz"
+    "shasum": "3757ceed2b91afefe0ba2c3b6bda49c688b0257a",
+    "tarball": "http://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/semver/-/semver-4.2.0.tgz",
-  "readme": "ERROR: No README data found!"
+  "_resolved": "https://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
 }
index 49d7856..1ee7204 100644 (file)
@@ -505,6 +505,21 @@ function rcompareIdentifiers(a, b) {
   return compareIdentifiers(b, a);
 }
 
+exports.major = major;
+function major(a, loose) {
+  return new SemVer(a, loose).major;
+}
+
+exports.minor = minor;
+function minor(a, loose) {
+  return new SemVer(a, loose).minor;
+}
+
+exports.patch = patch;
+function patch(a, loose) {
+  return new SemVer(a, loose).patch;
+}
+
 exports.compare = compare;
 function compare(a, b, loose) {
   return new SemVer(a, loose).compare(b);
index c6b27c9..4bd16d6 100644 (file)
Binary files a/deps/npm/node_modules/semver/semver.browser.js.gz and b/deps/npm/node_modules/semver/semver.browser.js.gz differ
index 026173e..544bc83 100644 (file)
@@ -515,6 +515,21 @@ function rcompareIdentifiers(a, b) {
   return compareIdentifiers(b, a);
 }
 
+exports.major = major;
+function major(a, loose) {
+  return new SemVer(a, loose).major;
+}
+
+exports.minor = minor;
+function minor(a, loose) {
+  return new SemVer(a, loose).minor;
+}
+
+exports.patch = patch;
+function patch(a, loose) {
+  return new SemVer(a, loose).patch;
+}
+
 exports.compare = compare;
 function compare(a, b, loose) {
   return new SemVer(a, loose).compare(b);
index 2f07e16..6de8c73 100644 (file)
@@ -1 +1 @@
-(function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var a=n++;t[a]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var o=n++;t[o]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[a]+")";var l=n++;t[l]="(?:"+t[s]+"|"+t[a]+")";var p=n++;t[p]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var c=n++;t[c]="(?:-?("+t[l]+"(?:\\."+t[l]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[o]+t[p]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[c]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var j=n++;t[j]=t[s]+"|x|X|\\*";var b=n++;t[b]=t[i]+"|x|X|\\*";var $=n++;t[$]="[v=\\s]*("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:"+t[p]+")?"+t[v]+"?"+")?)?";var k=n++;t[k]="[v=\\s]*("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:"+t[c]+")?"+t[v]+"?"+")?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[$]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[k]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[$]+"$";var T=n++;t[T]="^"+t[R]+t[k]+"$";var A=n++;t[A]="(?:\\^)";var C=n++;t[C]="(\\s*)"+t[A]+"\\s+";r[C]=new RegExp(t[C],"g");var M="$1^";var z=n++;t[z]="^"+t[A]+t[$]+"$";var N=n++;t[N]="^"+t[A]+t[k]+"$";var P=n++;t[P]="^"+t[y]+"\\s*("+w+")$|^$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+g+")$|^$";var q=n++;t[q]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[$]+")";r[q]=new RegExp(t[q],"g");var L="$1$2$3";var X=n++;t[X]="^\\s*("+t[$]+")"+"\\s+-\\s+"+"("+t[$]+")"+"\\s*$";var _=n++;t[_]="^\\s*("+t[k]+")"+"\\s+-\\s+"+"("+t[k]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B<n;B++){if(!r[B])r[B]=new RegExp(t[B])}e.parse=D;function D(e,t){var n=t?r[d]:r[m];return n.test(e)?new H(e,t):null}e.valid=F;function F(e,r){var t=D(e,r);return t?t.version:null}e.clean=G;function G(e,r){var t=D(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}e.SemVer=H;function H(e,t){if(e instanceof H){if(e.loose===t)return e;else e=e.version}else if(typeof e!=="string"){throw new TypeError("Invalid Version: "+e)}if(!(this instanceof H))return new H(e,t);this.loose=t;var n=e.trim().match(t?r[d]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}H.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};H.prototype.inspect=function(){return'<SemVer "'+this+'">'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return U(this.major,e.major)||U(this.minor,e.minor)||U(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return U(t,n)}while(++r)};H.prototype.inc=function(e,r){switch(e){case"premajor":this.prerelease.length=0;this.patch=0;this.minor=0;this.major++;this.inc("pre",r);break;case"preminor":this.prerelease.length=0;this.patch=0;this.minor++;this.inc("pre",r);break;case"prepatch":this.prerelease.length=0;this.inc("patch",r);this.inc("pre",r);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",r);this.inc("pre",r);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0;this.patch=0;this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var t=this.prerelease.length;while(--t>=0){if(typeof this.prerelease[t]==="number"){this.prerelease[t]++;t=-2}}if(t===-1)this.prerelease.push(0)}if(r){if(this.prerelease[0]===r){if(isNaN(this.prerelease[1]))this.prerelease=[r,0]}else this.prerelease=[r,0]}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t,n){if(typeof t==="string"){n=t;t=undefined}try{return new H(e,t).inc(r,n).version}catch(i){return null}}e.diff=K;function K(e,r){if(ar(e,r)){return null}else{var t=D(e);var n=D(r);if(t.prerelease.length||n.prerelease.length){for(var i in t){if(i==="major"||i==="minor"||i==="patch"){if(t[i]!==n[i]){return"pre"+i}}}return"prerelease"}for(var i in t){if(i==="major"||i==="minor"||i==="patch"){if(t[i]!==n[i]){return i}}}}}e.compareIdentifiers=U;var Q=/^[0-9]+$/;function U(e,r){var t=Q.test(e);var n=Q.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=W;function W(e,r){return U(r,e)}e.compare=Y;function Y(e,r,t){return new H(e,t).compare(r)}e.compareLoose=er;function er(e,r){return Y(e,r,true)}e.rcompare=rr;function rr(e,r,t){return Y(r,e,t)}e.sort=tr;function tr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=nr;function nr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=ir;function ir(e,r,t){return Y(e,r,t)>0}e.lt=sr;function sr(e,r,t){return Y(e,r,t)<0}e.eq=ar;function ar(e,r,t){return Y(e,r,t)===0}e.neq=or;function or(e,r,t){return Y(e,r,t)!==0}e.gte=fr;function fr(e,r,t){return Y(e,r,t)>=0}e.lte=ur;function ur(e,r,t){return Y(e,r,t)<=0}e.cmp=lr;function lr(e,r,t,n){var i;switch(r){case"===":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e===t;break;case"!==":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e!==t;break;case"":case"=":case"==":i=ar(e,t,n);break;case"!=":i=or(e,t,n);break;case">":i=ir(e,t,n);break;case">=":i=fr(e,t,n);break;case"<":i=sr(e,t,n);break;case"<=":i=ur(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=pr;function pr(e,r){if(e instanceof pr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof pr))return new pr(e,r);this.loose=r;this.parse(e);if(this.semver===cr)this.value="";else this.value=this.operator+this.semver.version}var cr={};pr.prototype.parse=function(e){var t=this.loose?r[P]:r[Z];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(this.operator==="=")this.operator="";if(!n[2])this.semver=cr;else this.semver=new H(n[2],this.loose)};pr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};pr.prototype.toString=function(){return this.value};pr.prototype.test=function(e){if(this.semver===cr)return true;if(typeof e==="string")e=new H(e,this.loose);return lr(e,this.operator,this.semver,this.loose)};e.Range=hr;function hr(e,r){if(e instanceof hr&&e.loose===r)return e;if(!(this instanceof hr))return new hr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}hr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};hr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};hr.prototype.toString=function(){return this.range};hr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[_]:r[X];e=e.replace(n,Er);e=e.replace(r[q],L);e=e.replace(r[S],V);e=e.replace(r[C],M);e=e.split(/\s+/).join(" ");var i=t?r[P]:r[Z];var s=e.split(" ").map(function(e){return mr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new pr(e,t)});return s};e.toComparators=vr;function vr(e,r){return new hr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function mr(e,r){e=yr(e,r);e=wr(e,r);e=br(e,r);e=kr(e,r);return e}function gr(e){return!e||e.toLowerCase()==="x"||e==="*"}function wr(e,r){return e.trim().split(/\s+/).map(function(e){return dr(e,r)}).join(" ")}function dr(e,t){var n=t?r[T]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(gr(r))s="";else if(gr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(gr(n))s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0";return s})}function yr(e,r){return e.trim().split(/\s+/).map(function(e){return jr(e,r)}).join(" ")}function jr(e,t){var n=t?r[N]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(gr(r))s="";else if(gr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(gr(n)){if(r==="0")s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else s=">="+r+"."+t+".0 <"+(+r+1)+".0.0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+i+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0"}else{if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+(+r+1)+".0.0"}return s})}function br(e,r){return e.split(/\s+/).map(function(e){return $r(e,r)}).join(" ")}function $r(e,t){e=e.trim();var n=t?r[x]:r[E];return e.replace(n,function(e,r,t,n,i,s){var a=gr(t);var o=a||gr(n);var f=o||gr(i);var u=f;if(r==="="&&u)r="";if(a){if(r===">"||r==="<"){e="<0.0.0"}else{e="*"}}else if(r&&u){if(o)n=0;if(f)i=0;if(r===">"){r=">=";if(o){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}else if(r==="<="){r="<";if(o)t=+t+1;else n=+n+1}e=r+t+"."+n+"."+i}else if(o){e=">="+t+".0.0 <"+(+t+1)+".0.0"}else if(f){e=">="+t+"."+n+".0 <"+t+"."+(+n+1)+".0"}return e})}function kr(e,t){return e.trim().replace(r[O],"")}function Er(e,r,t,n,i,s,a,o,f,u,l,p,c){if(gr(t))r="";else if(gr(n))r=">="+t+".0.0";else if(gr(i))r=">="+t+"."+n+".0";else r=">="+r;if(gr(f))o="";else if(gr(u))o="<"+(+f+1)+".0.0";else if(gr(l))o="<"+f+"."+(+u+1)+".0";else if(p)o="<="+f+"."+u+"."+l+"-"+p;else o="<="+o;return(r+" "+o).trim()}hr.prototype.test=function(e){if(!e)return false;if(typeof e==="string")e=new H(e,this.loose);for(var r=0;r<this.set.length;r++){if(xr(this.set[r],e))return true}return false};function xr(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}if(r.prerelease.length){for(var t=0;t<e.length;t++){if(e[t].semver===cr)return true;if(e[t].semver.prerelease.length>0){var n=e[t].semver;if(n.major===r.major&&n.minor===r.minor&&n.patch===r.patch)return true}}return false}return true}e.satisfies=Rr;function Rr(e,r,t){try{r=new hr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Sr;function Sr(e,r,t){return e.filter(function(e){return Rr(e,r,t)}).sort(function(e,r){return rr(e,r,t)})[0]||null}e.validRange=Vr;function Vr(e,r){try{return new hr(e,r).range||"*"}catch(t){return null}}e.ltr=Ir;function Ir(e,r,t){return Ar(e,r,"<",t)}e.gtr=Tr;function Tr(e,r,t){return Ar(e,r,">",t)}e.outside=Ar;function Ar(e,r,t,n){e=new H(e,n);r=new hr(r,n);var i,s,a,o,f;switch(t){case">":i=ir;s=ur;a=sr;o=">";f=">=";break;case"<":i=sr;s=fr;a=ir;o="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Rr(e,r,n)){return false}for(var u=0;u<r.set.length;++u){var l=r.set[u];var p=null;var c=null;l.forEach(function(e){p=p||e;c=c||e;if(i(e.semver,p.semver,n)){p=e}else if(a(e.semver,c.semver,n)){c=e}});if(p.operator===o||p.operator===f){return false}if((!c.operator||c.operator===o)&&s(e,c.semver)){return false}else if(c.operator===f&&a(e,c.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
\ No newline at end of file
+(function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var a=n++;t[a]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var o=n++;t[o]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[a]+")";var l=n++;t[l]="(?:"+t[s]+"|"+t[a]+")";var p=n++;t[p]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var c=n++;t[c]="(?:-?("+t[l]+"(?:\\."+t[l]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[o]+t[p]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[c]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var j=n++;t[j]=t[s]+"|x|X|\\*";var b=n++;t[b]=t[i]+"|x|X|\\*";var $=n++;t[$]="[v=\\s]*("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:"+t[p]+")?"+t[v]+"?"+")?)?";var k=n++;t[k]="[v=\\s]*("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:"+t[c]+")?"+t[v]+"?"+")?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[$]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[k]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[$]+"$";var T=n++;t[T]="^"+t[R]+t[k]+"$";var A=n++;t[A]="(?:\\^)";var C=n++;t[C]="(\\s*)"+t[A]+"\\s+";r[C]=new RegExp(t[C],"g");var M="$1^";var z=n++;t[z]="^"+t[A]+t[$]+"$";var N=n++;t[N]="^"+t[A]+t[k]+"$";var P=n++;t[P]="^"+t[y]+"\\s*("+w+")$|^$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+g+")$|^$";var q=n++;t[q]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[$]+")";r[q]=new RegExp(t[q],"g");var L="$1$2$3";var X=n++;t[X]="^\\s*("+t[$]+")"+"\\s+-\\s+"+"("+t[$]+")"+"\\s*$";var _=n++;t[_]="^\\s*("+t[k]+")"+"\\s+-\\s+"+"("+t[k]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B<n;B++){if(!r[B])r[B]=new RegExp(t[B])}e.parse=D;function D(e,t){var n=t?r[d]:r[m];return n.test(e)?new H(e,t):null}e.valid=F;function F(e,r){var t=D(e,r);return t?t.version:null}e.clean=G;function G(e,r){var t=D(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}e.SemVer=H;function H(e,t){if(e instanceof H){if(e.loose===t)return e;else e=e.version}else if(typeof e!=="string"){throw new TypeError("Invalid Version: "+e)}if(!(this instanceof H))return new H(e,t);this.loose=t;var n=e.trim().match(t?r[d]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}H.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};H.prototype.inspect=function(){return'<SemVer "'+this+'">'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return U(this.major,e.major)||U(this.minor,e.minor)||U(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return U(t,n)}while(++r)};H.prototype.inc=function(e,r){switch(e){case"premajor":this.prerelease.length=0;this.patch=0;this.minor=0;this.major++;this.inc("pre",r);break;case"preminor":this.prerelease.length=0;this.patch=0;this.minor++;this.inc("pre",r);break;case"prepatch":this.prerelease.length=0;this.inc("patch",r);this.inc("pre",r);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",r);this.inc("pre",r);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0;this.patch=0;this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var t=this.prerelease.length;while(--t>=0){if(typeof this.prerelease[t]==="number"){this.prerelease[t]++;t=-2}}if(t===-1)this.prerelease.push(0)}if(r){if(this.prerelease[0]===r){if(isNaN(this.prerelease[1]))this.prerelease=[r,0]}else this.prerelease=[r,0]}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t,n){if(typeof t==="string"){n=t;t=undefined}try{return new H(e,t).inc(r,n).version}catch(i){return null}}e.diff=K;function K(e,r){if(ur(e,r)){return null}else{var t=D(e);var n=D(r);if(t.prerelease.length||n.prerelease.length){for(var i in t){if(i==="major"||i==="minor"||i==="patch"){if(t[i]!==n[i]){return"pre"+i}}}return"prerelease"}for(var i in t){if(i==="major"||i==="minor"||i==="patch"){if(t[i]!==n[i]){return i}}}}}e.compareIdentifiers=U;var Q=/^[0-9]+$/;function U(e,r){var t=Q.test(e);var n=Q.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=W;function W(e,r){return U(r,e)}e.major=Y;function Y(e,r){return new H(e,r).major}e.minor=er;function er(e,r){return new H(e,r).minor}e.patch=rr;function rr(e,r){return new H(e,r).patch}e.compare=tr;function tr(e,r,t){return new H(e,t).compare(r)}e.compareLoose=nr;function nr(e,r){return tr(e,r,true)}e.rcompare=ir;function ir(e,r,t){return tr(r,e,t)}e.sort=sr;function sr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=ar;function ar(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=or;function or(e,r,t){return tr(e,r,t)>0}e.lt=fr;function fr(e,r,t){return tr(e,r,t)<0}e.eq=ur;function ur(e,r,t){return tr(e,r,t)===0}e.neq=lr;function lr(e,r,t){return tr(e,r,t)!==0}e.gte=pr;function pr(e,r,t){return tr(e,r,t)>=0}e.lte=cr;function cr(e,r,t){return tr(e,r,t)<=0}e.cmp=hr;function hr(e,r,t,n){var i;switch(r){case"===":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e===t;break;case"!==":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e!==t;break;case"":case"=":case"==":i=ur(e,t,n);break;case"!=":i=lr(e,t,n);break;case">":i=or(e,t,n);break;case">=":i=pr(e,t,n);break;case"<":i=fr(e,t,n);break;case"<=":i=cr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=vr;function vr(e,r){if(e instanceof vr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof vr))return new vr(e,r);this.loose=r;this.parse(e);if(this.semver===mr)this.value="";else this.value=this.operator+this.semver.version}var mr={};vr.prototype.parse=function(e){var t=this.loose?r[P]:r[Z];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(this.operator==="=")this.operator="";if(!n[2])this.semver=mr;else this.semver=new H(n[2],this.loose)};vr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};vr.prototype.toString=function(){return this.value};vr.prototype.test=function(e){if(this.semver===mr)return true;if(typeof e==="string")e=new H(e,this.loose);return hr(e,this.operator,this.semver,this.loose)};e.Range=gr;function gr(e,r){if(e instanceof gr&&e.loose===r)return e;if(!(this instanceof gr))return new gr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}gr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};gr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};gr.prototype.toString=function(){return this.range};gr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[_]:r[X];e=e.replace(n,Sr);e=e.replace(r[q],L);e=e.replace(r[S],V);e=e.replace(r[C],M);e=e.split(/\s+/).join(" ");var i=t?r[P]:r[Z];var s=e.split(" ").map(function(e){return dr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new vr(e,t)});return s};e.toComparators=wr;function wr(e,r){return new gr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function dr(e,r){e=$r(e,r);e=jr(e,r);e=Er(e,r);e=Rr(e,r);return e}function yr(e){return!e||e.toLowerCase()==="x"||e==="*"}function jr(e,r){return e.trim().split(/\s+/).map(function(e){return br(e,r)}).join(" ")}function br(e,t){var n=t?r[T]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(yr(r))s="";else if(yr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(yr(n))s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0";return s})}function $r(e,r){return e.trim().split(/\s+/).map(function(e){return kr(e,r)}).join(" ")}function kr(e,t){var n=t?r[N]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(yr(r))s="";else if(yr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(yr(n)){if(r==="0")s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else s=">="+r+"."+t+".0 <"+(+r+1)+".0.0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+i+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0"}else{if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+(+r+1)+".0.0"}return s})}function Er(e,r){return e.split(/\s+/).map(function(e){return xr(e,r)}).join(" ")}function xr(e,t){e=e.trim();var n=t?r[x]:r[E];return e.replace(n,function(e,r,t,n,i,s){var a=yr(t);var o=a||yr(n);var f=o||yr(i);var u=f;if(r==="="&&u)r="";if(a){if(r===">"||r==="<"){e="<0.0.0"}else{e="*"}}else if(r&&u){if(o)n=0;if(f)i=0;if(r===">"){r=">=";if(o){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}else if(r==="<="){r="<";if(o)t=+t+1;else n=+n+1}e=r+t+"."+n+"."+i}else if(o){e=">="+t+".0.0 <"+(+t+1)+".0.0"}else if(f){e=">="+t+"."+n+".0 <"+t+"."+(+n+1)+".0"}return e})}function Rr(e,t){return e.trim().replace(r[O],"")}function Sr(e,r,t,n,i,s,a,o,f,u,l,p,c){if(yr(t))r="";else if(yr(n))r=">="+t+".0.0";else if(yr(i))r=">="+t+"."+n+".0";else r=">="+r;if(yr(f))o="";else if(yr(u))o="<"+(+f+1)+".0.0";else if(yr(l))o="<"+f+"."+(+u+1)+".0";else if(p)o="<="+f+"."+u+"."+l+"-"+p;else o="<="+o;return(r+" "+o).trim()}gr.prototype.test=function(e){if(!e)return false;if(typeof e==="string")e=new H(e,this.loose);for(var r=0;r<this.set.length;r++){if(Vr(this.set[r],e))return true}return false};function Vr(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}if(r.prerelease.length){for(var t=0;t<e.length;t++){if(e[t].semver===mr)return true;if(e[t].semver.prerelease.length>0){var n=e[t].semver;if(n.major===r.major&&n.minor===r.minor&&n.patch===r.patch)return true}}return false}return true}e.satisfies=Ir;function Ir(e,r,t){try{r=new gr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Tr;function Tr(e,r,t){return e.filter(function(e){return Ir(e,r,t)}).sort(function(e,r){return ir(e,r,t)})[0]||null}e.validRange=Ar;function Ar(e,r){try{return new gr(e,r).range||"*"}catch(t){return null}}e.ltr=Cr;function Cr(e,r,t){return zr(e,r,"<",t)}e.gtr=Mr;function Mr(e,r,t){return zr(e,r,">",t)}e.outside=zr;function zr(e,r,t,n){e=new H(e,n);r=new gr(r,n);var i,s,a,o,f;switch(t){case">":i=or;s=cr;a=fr;o=">";f=">=";break;case"<":i=fr;s=pr;a=or;o="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ir(e,r,n)){return false}for(var u=0;u<r.set.length;++u){var l=r.set[u];var p=null;var c=null;l.forEach(function(e){p=p||e;c=c||e;if(i(e.semver,p.semver,n)){p=e}else if(a(e.semver,c.semver,n)){c=e}});if(p.operator===o||p.operator===f){return false}if((!c.operator||c.operator===o)&&s(e,c.semver)){return false}else if(c.operator===f&&a(e,c.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
\ No newline at end of file
index 4a48bed..966dc94 100644 (file)
Binary files a/deps/npm/node_modules/semver/semver.min.js.gz and b/deps/npm/node_modules/semver/semver.min.js.gz differ
index 1528bb7..926d560 100644 (file)
@@ -50,7 +50,9 @@ test('\ncomparison tests', function(t) {
     ['1.2.3-a.10', '1.2.3-a.5'],
     ['1.2.3-a.b', '1.2.3-a.5'],
     ['1.2.3-a.b', '1.2.3-a'],
-    ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100']
+    ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100'],
+    ['1.2.3-r2', '1.2.3-r100'],
+    ['1.2.3-r100', '1.2.3-R2']
   ].forEach(function(v) {
     var v0 = v[0];
     var v1 = v[1];
diff --git a/deps/npm/node_modules/semver/test/major-minor-patch.js b/deps/npm/node_modules/semver/test/major-minor-patch.js
new file mode 100644 (file)
index 0000000..e9d4039
--- /dev/null
@@ -0,0 +1,72 @@
+var tap = require('tap');
+var test = tap.test;
+var semver = require('../semver.js');
+
+test('\nmajor tests', function(t) {
+  // [range, version]
+  // Version should be detectable despite extra characters
+  [
+    ['1.2.3', 1],
+    [' 1.2.3 ', 1],
+    [' 2.2.3-4 ', 2],
+    [' 3.2.3-pre ', 3],
+    ['v5.2.3', 5],
+    [' v8.2.3 ', 8],
+    ['\t13.2.3', 13],
+    ['=21.2.3', 21, true],
+    ['v=34.2.3', 34, true]
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'major(' + range + ') = ' + version;
+    t.equal(semver.major(range, loose), version, msg);
+  });
+  t.end();
+});
+
+test('\nminor tests', function(t) {
+  // [range, version]
+  // Version should be detectable despite extra characters
+  [
+    ['1.1.3', 1],
+    [' 1.1.3 ', 1],
+    [' 1.2.3-4 ', 2],
+    [' 1.3.3-pre ', 3],
+    ['v1.5.3', 5],
+    [' v1.8.3 ', 8],
+    ['\t1.13.3', 13],
+    ['=1.21.3', 21, true],
+    ['v=1.34.3', 34, true]
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'minor(' + range + ') = ' + version;
+    t.equal(semver.minor(range, loose), version, msg);
+  });
+  t.end();
+});
+
+test('\npatch tests', function(t) {
+  // [range, version]
+  // Version should be detectable despite extra characters
+  [
+    ['1.2.1', 1],
+    [' 1.2.1 ', 1],
+    [' 1.2.2-4 ', 2],
+    [' 1.2.3-pre ', 3],
+    ['v1.2.5', 5],
+    [' v1.2.8 ', 8],
+    ['\t1.2.13', 13],
+    ['=1.2.21', 21, true],
+    ['v=1.2.34', 34, true]
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'patch(' + range + ') = ' + version;
+    t.equal(semver.patch(range, loose), version, msg);
+  });
+  t.end();
+});
index c5d8242..b984607 100644 (file)
@@ -3,16 +3,16 @@ index c5a741c..a2e0d8e 100644
 --- a/lib/_stream_duplex.js
 +++ b/lib/_stream_duplex.js
 @@ -26,8 +26,8 @@
-
  module.exports = Duplex;
  var util = require('util');
 -var Readable = require('_stream_readable');
 -var Writable = require('_stream_writable');
 +var Readable = require('./_stream_readable');
 +var Writable = require('./_stream_writable');
-
  util.inherits(Duplex, Readable);
-
 diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js
 index a5e9864..330c247 100644
 --- a/lib/_stream_passthrough.js
index 59ea54d..1254674 100644 (file)
@@ -6,3 +6,4 @@
 2015-01-14  Sam Mikes  <smikes@cubane.com>
 
        * index.js: initial rev
+
index c3d2eb3..e637724 100644 (file)
@@ -19,3 +19,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
+
index 724544c..501c0e0 100644 (file)
@@ -74,3 +74,4 @@ function fromString(val, cb) {
 exports.toString = toString;
 exports.fromString = fromString;
 exports.validate = validate;
+
index 07b74e0..f6ed8a7 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "version": "2.5.1",
+  "version": "2.6.0",
   "name": "npm",
   "description": "a package manager for JavaScript",
   "keywords": [
@@ -57,7 +57,7 @@
     "graceful-fs": "~3.0.5",
     "inflight": "~1.0.4",
     "inherits": "~2.0.1",
-    "ini": "~1.3.2",
+    "ini": "~1.3.3",
     "init-package-json": "~1.2.0",
     "lockfile": "~1.0.0",
     "lru-cache": "~2.5.0",
@@ -70,7 +70,7 @@
     "npm-cache-filename": "~1.0.1",
     "npm-install-checks": "~1.0.5",
     "npm-package-arg": "~2.1.3",
-    "npm-registry-client": "~6.0.7",
+    "npm-registry-client": "~6.1.1",
     "npm-user-validate": "~0.1.1",
     "npmlog": "~0.1.1",
     "once": "~1.3.1",
     "path-is-inside": "~1.0.0",
     "read": "~1.0.4",
     "read-installed": "~3.1.5",
-    "read-package-json": "~1.2.7",
+    "read-package-json": "~1.3.1",
     "readable-stream": "~1.0.33",
     "realize-package-specifier": "~1.3.0",
     "request": "~2.53.0",
     "retry": "~0.6.1",
     "rimraf": "~2.2.8",
-    "semver": "~4.2.0",
+    "semver": "~4.3.0",
     "sha": "~1.3.0",
     "slide": "~1.1.6",
     "sorted-object": "~1.0.0",
     "npm-registry-couchapp": "~2.6.2",
     "npm-registry-mock": "~1.0.0",
     "require-inject": "~1.1.0",
-    "tap": "~0.5.0"
+    "sprintf-js": "~1.0.2",
+    "tap": "~0.6.0"
   },
   "scripts": {
     "test-legacy": "node ./test/run.js",
index 7dcfc35..4036708 100644 (file)
@@ -18,7 +18,7 @@ exports.npm = function (cmd, opts, cb) {
   cmd = [bin].concat(cmd)
   opts = opts || {}
 
-  opts.env = opts.env ? opts.env : process.env
+  opts.env = opts.env || process.env
   if (!opts.env.npm_config_cache) {
     opts.env.npm_config_cache = npm_config_cache
   }
index 3e5d605..7268fcb 100644 (file)
@@ -12,7 +12,7 @@ npm-www:nocache=1
 sign-git-tag=false
 message=v%s
 strict-ssl=false
-_auth=dXNlcm5hbWU6cGFzc3dvcmQ=
+_auth="dXNlcm5hbWU6cGFzc3dvcmQ="
 
 [_token]
 AuthSession=yabba-dabba-doodle
index 5de7cff..3052477 100644 (file)
@@ -20,7 +20,9 @@ var git
 test("setup", function (t) {
   bootstrap()
   setup(function (er, r) {
-    t.ifError(er, "git started up successfully")
+    if (er) {
+      throw er
+    }
 
     if (!er) {
       daemon = r[r.length - 2]
@@ -66,11 +68,13 @@ var pjChild = JSON.stringify({
 }, null, 2) + "\n"
 
 function bootstrap () {
+  rimraf.sync(pkg)
   mkdirp.sync(pkg)
   fs.writeFileSync(resolve(pkg, "package.json"), pjParent)
 }
 
 function setup (cb) {
+  rimraf.sync(repo)
   mkdirp.sync(repo)
   fs.writeFileSync(resolve(repo, "package.json"), pjChild)
   npm.load({ registry : common.registry, loglevel : "silent" }, function () {
index c24bb7e..1cb2a7e 100644 (file)
@@ -28,6 +28,18 @@ test("trying to set credentials with no URI", function (t) {
   })
 })
 
+test("trying to clear credentials with no URI", function (t) {
+  npmconf.load(common.builtin, function (er, conf) {
+    t.ifError(er, "configuration loaded")
+
+    t.throws(function () {
+      conf.clearCredentialsByURI()
+    }, "enforced missing URI")
+
+    t.end()
+  })
+})
+
 test("set with missing credentials object", function (t) {
   npmconf.load(common.builtin, function (er, conf) {
     t.ifError(er, "configuration loaded")
@@ -76,6 +88,24 @@ test("set with token", function (t) {
   })
 })
 
+test("clear with token", function (t) {
+  npmconf.load(common.builtin, function (er, conf) {
+    t.ifError(er, "configuration loaded")
+
+    t.doesNotThrow(function () {
+      conf.setCredentialsByURI(URI, {token : "simple-token"})
+    }, "needs only token")
+
+    t.doesNotThrow(function () {
+      conf.clearCredentialsByURI(URI)
+    }, "needs only URI")
+
+    t.notOk(conf.getCredentialsByURI(URI).token, "token all gone")
+
+    t.end()
+  })
+})
+
 test("set with missing username", function (t) {
   npmconf.load(common.builtin, function (er, conf) {
     t.ifError(er, "configuration loaded")
@@ -157,6 +187,31 @@ test("set with old-style credentials", function (t) {
   })
 })
 
+test("clear with old-style credentials", function (t) {
+  npmconf.load(common.builtin, function (er, conf) {
+    t.ifError(er, "configuration loaded")
+
+    var credentials = {
+      username : "username",
+      password : "password",
+      email    : "ogd@aoaioxxysz.net"
+    }
+
+    t.doesNotThrow(function () {
+      conf.setCredentialsByURI(URI, credentials)
+    }, "requires all of username, password, and email")
+
+    t.doesNotThrow(function () {
+      conf.clearCredentialsByURI(URI)
+    }, "clearing only required URI")
+
+    t.notOk(conf.getCredentialsByURI(URI).username, "username cleared")
+    t.notOk(conf.getCredentialsByURI(URI).password, "password cleared")
+
+    t.end()
+  })
+})
+
 test("get old-style credentials for default registry", function (t) {
   npmconf.load(common.builtin, function (er, conf) {
     var actual = conf.getCredentialsByURI(conf.get("registry"))
diff --git a/deps/npm/test/tap/config-edit.js b/deps/npm/test/tap/config-edit.js
new file mode 100644 (file)
index 0000000..97a54d2
--- /dev/null
@@ -0,0 +1,72 @@
+var fs = require("fs")
+var path = require("path")
+
+var mkdirp = require("mkdirp")
+var rimraf = require("rimraf")
+var test = require("tap").test
+var common = require("../common-tap.js")
+
+var pkg = path.resolve(__dirname, "npm-global-edit")
+
+var editorSrc = function () {/*
+#!/usr/bin/env node
+var fs = require("fs")
+if (fs.existsSync(process.argv[2])) {
+  console.log("success")
+} else {
+  console.log("error")
+  process.exit(1)
+}
+*/}.toString().split("\n").slice(1, -1).join("\n")
+var editorPath = path.join(pkg, "editor")
+
+test("setup", function (t) {
+  cleanup(function (er) {
+    t.ifError(er, "old directory removed")
+
+    mkdirp(pkg, "0777", function (er) {
+      fs.writeFileSync(editorPath, editorSrc)
+      fs.chmodSync(editorPath, "0777")
+      t.ifError(er, "created package directory correctly")
+      t.end()
+    })
+  })
+})
+
+test("saving configs", function (t) {
+  var opts = {
+    cwd: pkg,
+    env: {
+      PATH: process.env.PATH,
+      EDITOR: editorPath
+    }
+  }
+  common.npm(
+    [
+      "config",
+      "--prefix", pkg,
+      "--global",
+      "edit"
+    ],
+    opts,
+    function (err, code, stdout, stderr) {
+      t.ifError(err, "command ran without issue")
+
+      t.equal(stderr, "", "got nothing on stderr")
+      t.equal(code, 0, "exit ok")
+      t.equal(stdout, "success\n", "got success message")
+      t.end()
+    }
+  )
+})
+
+test("cleanup", function (t) {
+  cleanup(function (er) {
+    t.ifError(er, "test directory removed OK")
+    t.end()
+  })
+})
+
+function cleanup (cb) {
+  rimraf(pkg, cb)
+}
diff --git a/deps/npm/test/tap/install-man.js b/deps/npm/test/tap/install-man.js
new file mode 100644 (file)
index 0000000..70879d8
--- /dev/null
@@ -0,0 +1,75 @@
+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, "install-man")
+var target = resolve(__dirname, "install-man-target")
+
+var EXEC_OPTS = {
+  cwd: target
+}
+
+test("setup", function (t) {
+  setup()
+  t.pass("setup ran")
+  t.end()
+})
+
+test("install man page", function (t) {
+  common.npm(
+    [
+      "install",
+      "--prefix", target,
+      "--global",
+      pkg
+    ],
+    EXEC_OPTS,
+    function (err, code, stdout, stderr) {
+      t.ifError(err, "npm command ran from test")
+      t.equals(code, 0, "install exited with success (0)")
+      t.ok(stdout, "output indicating success")
+      t.ok(
+        fs.existsSync(resolve(target, "share", "man", "man1", "install-man.1")),
+        "man page link was created"
+      )
+
+      t.end()
+    }
+  )
+})
+
+test("clean", function (t) {
+  cleanup()
+  t.pass("cleaned up")
+  t.end()
+})
+
+var json = {
+  name    : "install-man",
+  version : "1.2.3",
+  man     : [ "./install-man.1" ]
+}
+
+function setup () {
+  cleanup()
+  mkdirp.sync(pkg)
+  // make sure it installs locally
+  mkdirp.sync(resolve(target, "node_modules"))
+  fs.writeFileSync(
+    resolve(pkg, "package.json"),
+    JSON.stringify(json, null, 2)+"\n"
+  )
+  fs.writeFileSync(resolve(pkg, "install-man.1"), "THIS IS A MANPAGE\n")
+}
+
+function cleanup () {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(pkg)
+  rimraf.sync(target)
+}
diff --git a/deps/npm/test/tap/logout.js b/deps/npm/test/tap/logout.js
new file mode 100644 (file)
index 0000000..1d9392a
--- /dev/null
@@ -0,0 +1,67 @@
+var fs = require("fs")
+var path = require("path")
+
+var mkdirp = require("mkdirp")
+var mr = require("npm-registry-mock")
+var rimraf = require("rimraf")
+var test = require("tap").test
+
+var common = require("../common-tap.js")
+
+var pkg = path.resolve(__dirname, "logout")
+var outfile = path.join(pkg, "_npmrc")
+var opts = { cwd: pkg }
+
+var contents = function () {/*
+foo=boo
+//localhost:1337/:_authToken=glarb
+*/}.toString().split("\n").slice(1, -1).join("\n")
+
+function mocks (server) {
+  server.delete("/-/user/token/glarb")
+    .reply(200, {})
+}
+
+test("setup", function (t) {
+  cleanup()
+  setup()
+  t.end()
+})
+
+test("npm logout", function (t) {
+  mr({ port: common.port, plugin: mocks }, function (err, s) {
+    if (err) throw err
+
+    common.npm(
+    [
+      "logout",
+      "--registry", common.registry,
+      "--loglevel", "silent",
+      "--userconfig", outfile
+    ],
+    opts,
+    function (err, code) {
+      t.ifError(err, "no error output")
+      t.notOk(code, "exited OK")
+
+      var config = fs.readFileSync(outfile, "utf8")
+      t.equal(config, "foo=boo\n", "creds gone")
+      s.close()
+      t.end()
+    })
+  })
+})
+
+test("cleanup", function (t) {
+  cleanup()
+  t.end()
+})
+
+function setup () {
+  mkdirp.sync(pkg)
+  fs.writeFileSync(outfile, contents)
+}
+
+function cleanup () {
+  rimraf.sync(pkg)
+}
index a40eae4..e4f91a2 100644 (file)
@@ -3,6 +3,7 @@ var test = require("tap").test
 var fs = require("fs")
 var rimraf = require("rimraf")
 var mkdirp = require("mkdirp")
+var sprintf = require("sprintf-js").sprintf
 var common = require("../common-tap.js")
 
 var pkg = path.resolve(__dirname, "umask-lifecycle")
@@ -12,14 +13,15 @@ var pj = JSON.stringify({
   scripts: { umask: "$npm_execpath config get umask && echo \"$npm_config_umask\" && node -p 'process.umask()'" }
 }, null, 2) + "\n"
 
+var umask = process.umask()
 var expected = [
   "",
   "> x@1.2.3 umask "+path.join(__dirname, "umask-lifecycle"),
   "> $npm_execpath config get umask && echo \"$npm_config_umask\" && node -p 'process.umask()'",
   "",
-  "0022",
-  "0022",
-  "18",
+  sprintf("%04o", umask),
+  sprintf("%04o", umask),
+  sprintf("%d", umask),
   ""
 ].join("\n")
 
@@ -32,7 +34,6 @@ test("setup", function (t) {
 
 test("umask script", function (t) {
   common.npm(["run", "umask"], {
-    umask: 0022,
     cwd: pkg,
     env: {
       PATH: process.env.PATH,
index efca362..1deae49 100644 (file)
@@ -55,7 +55,8 @@ test("npm version <semver> with working directory not clean", function (t) {
                 t.fail("should fail on non-clean working directory")
               }
               else {
-                t.equal(err.message, "Git working directory not clean.\nM package.json")
+                t.ok(err.message.match(/Git working directory not clean./))
+                t.ok(err.message.match(/M package.json/))
               }
               t.end()
             })