From 63fbd10b6cdea195bfbc55221d8fe279757d56cc Mon Sep 17 00:00:00 2001 From: Forrest L Norvell Date: Fri, 27 Feb 2015 05:54:37 -0800 Subject: [PATCH] deps: upgrade npm to 2.6.1 PR: #9297 PR-URL: https://github.com/joyent/node/pull/9297 Reviewed-By: Julien Gilli Reviewed-By: Trevor Norris Reviewed-By: Colin Ihrig --- deps/npm/.eslintrc | 1 + deps/npm/.travis.yml | 8 +- deps/npm/AUTHORS | 8 ++ deps/npm/CHANGELOG.md | 67 +++++++++++++++ deps/npm/README.md | 2 +- deps/npm/doc/cli/npm-dist-tag.md | 2 +- deps/npm/doc/cli/npm-link.md | 4 +- deps/npm/doc/cli/npm-logout.md | 50 +++++++++++ deps/npm/doc/files/package.json.md | 30 +++++-- deps/npm/doc/misc/npm-config.md | 9 +- deps/npm/doc/misc/npm-index.md | 4 + deps/npm/doc/misc/semver.md | 5 +- deps/npm/html/doc/README.html | 6 +- deps/npm/html/doc/api/npm-bin.html | 2 +- deps/npm/html/doc/api/npm-bugs.html | 2 +- deps/npm/html/doc/api/npm-cache.html | 2 +- deps/npm/html/doc/api/npm-commands.html | 2 +- deps/npm/html/doc/api/npm-config.html | 2 +- deps/npm/html/doc/api/npm-deprecate.html | 2 +- deps/npm/html/doc/api/npm-docs.html | 2 +- deps/npm/html/doc/api/npm-edit.html | 2 +- deps/npm/html/doc/api/npm-explore.html | 2 +- deps/npm/html/doc/api/npm-help-search.html | 2 +- deps/npm/html/doc/api/npm-init.html | 2 +- deps/npm/html/doc/api/npm-install.html | 2 +- deps/npm/html/doc/api/npm-link.html | 2 +- deps/npm/html/doc/api/npm-load.html | 2 +- deps/npm/html/doc/api/npm-ls.html | 2 +- deps/npm/html/doc/api/npm-outdated.html | 2 +- deps/npm/html/doc/api/npm-owner.html | 2 +- deps/npm/html/doc/api/npm-pack.html | 2 +- deps/npm/html/doc/api/npm-prefix.html | 2 +- deps/npm/html/doc/api/npm-prune.html | 2 +- deps/npm/html/doc/api/npm-publish.html | 2 +- deps/npm/html/doc/api/npm-rebuild.html | 2 +- deps/npm/html/doc/api/npm-repo.html | 2 +- deps/npm/html/doc/api/npm-restart.html | 2 +- deps/npm/html/doc/api/npm-root.html | 2 +- deps/npm/html/doc/api/npm-run-script.html | 2 +- deps/npm/html/doc/api/npm-search.html | 2 +- deps/npm/html/doc/api/npm-shrinkwrap.html | 2 +- deps/npm/html/doc/api/npm-start.html | 2 +- deps/npm/html/doc/api/npm-stop.html | 2 +- deps/npm/html/doc/api/npm-tag.html | 2 +- deps/npm/html/doc/api/npm-test.html | 2 +- deps/npm/html/doc/api/npm-uninstall.html | 2 +- deps/npm/html/doc/api/npm-unpublish.html | 2 +- deps/npm/html/doc/api/npm-update.html | 2 +- deps/npm/html/doc/api/npm-version.html | 2 +- deps/npm/html/doc/api/npm-view.html | 2 +- deps/npm/html/doc/api/npm-whoami.html | 2 +- deps/npm/html/doc/api/npm.html | 4 +- deps/npm/html/doc/cli/npm-access.html | 2 +- deps/npm/html/doc/cli/npm-adduser.html | 2 +- deps/npm/html/doc/cli/npm-bin.html | 2 +- deps/npm/html/doc/cli/npm-bugs.html | 2 +- deps/npm/html/doc/cli/npm-build.html | 2 +- deps/npm/html/doc/cli/npm-bundle.html | 2 +- deps/npm/html/doc/cli/npm-cache.html | 2 +- deps/npm/html/doc/cli/npm-completion.html | 2 +- deps/npm/html/doc/cli/npm-config.html | 2 +- deps/npm/html/doc/cli/npm-dedupe.html | 2 +- deps/npm/html/doc/cli/npm-deprecate.html | 2 +- deps/npm/html/doc/cli/npm-dist-tag.html | 4 +- deps/npm/html/doc/cli/npm-docs.html | 2 +- deps/npm/html/doc/cli/npm-edit.html | 2 +- deps/npm/html/doc/cli/npm-explore.html | 2 +- deps/npm/html/doc/cli/npm-help-search.html | 2 +- deps/npm/html/doc/cli/npm-help.html | 2 +- deps/npm/html/doc/cli/npm-init.html | 2 +- deps/npm/html/doc/cli/npm-install.html | 2 +- deps/npm/html/doc/cli/npm-link.html | 6 +- deps/npm/html/doc/cli/npm-logout.html | 59 +++++++++++++ deps/npm/html/doc/cli/npm-ls.html | 4 +- deps/npm/html/doc/cli/npm-outdated.html | 2 +- deps/npm/html/doc/cli/npm-owner.html | 2 +- deps/npm/html/doc/cli/npm-pack.html | 2 +- deps/npm/html/doc/cli/npm-prefix.html | 2 +- deps/npm/html/doc/cli/npm-prune.html | 2 +- deps/npm/html/doc/cli/npm-publish.html | 2 +- deps/npm/html/doc/cli/npm-rebuild.html | 2 +- deps/npm/html/doc/cli/npm-repo.html | 2 +- deps/npm/html/doc/cli/npm-restart.html | 2 +- deps/npm/html/doc/cli/npm-rm.html | 2 +- deps/npm/html/doc/cli/npm-root.html | 2 +- deps/npm/html/doc/cli/npm-run-script.html | 2 +- deps/npm/html/doc/cli/npm-search.html | 2 +- deps/npm/html/doc/cli/npm-shrinkwrap.html | 2 +- deps/npm/html/doc/cli/npm-star.html | 2 +- deps/npm/html/doc/cli/npm-stars.html | 2 +- deps/npm/html/doc/cli/npm-start.html | 2 +- deps/npm/html/doc/cli/npm-stop.html | 2 +- deps/npm/html/doc/cli/npm-tag.html | 2 +- deps/npm/html/doc/cli/npm-test.html | 2 +- deps/npm/html/doc/cli/npm-uninstall.html | 2 +- deps/npm/html/doc/cli/npm-unpublish.html | 2 +- deps/npm/html/doc/cli/npm-update.html | 2 +- deps/npm/html/doc/cli/npm-version.html | 2 +- deps/npm/html/doc/cli/npm-view.html | 2 +- deps/npm/html/doc/cli/npm-whoami.html | 2 +- deps/npm/html/doc/cli/npm.html | 10 +-- deps/npm/html/doc/files/npm-folders.html | 2 +- deps/npm/html/doc/files/npm-global.html | 2 +- deps/npm/html/doc/files/npm-json.html | 32 ++++--- deps/npm/html/doc/files/npmrc.html | 2 +- deps/npm/html/doc/files/package.json.html | 32 ++++--- deps/npm/html/doc/index.html | 4 +- deps/npm/html/doc/misc/npm-coding-style.html | 2 +- deps/npm/html/doc/misc/npm-config.html | 10 ++- deps/npm/html/doc/misc/npm-developers.html | 2 +- deps/npm/html/doc/misc/npm-disputes.html | 8 +- deps/npm/html/doc/misc/npm-faq.html | 4 +- deps/npm/html/doc/misc/npm-index.html | 4 +- deps/npm/html/doc/misc/npm-registry.html | 2 +- deps/npm/html/doc/misc/npm-scope.html | 2 +- deps/npm/html/doc/misc/npm-scripts.html | 2 +- deps/npm/html/doc/misc/removing-npm.html | 2 +- deps/npm/html/doc/misc/semver.html | 7 +- deps/npm/html/partial/doc/README.html | 4 +- deps/npm/html/partial/doc/api/npm.html | 2 +- .../html/partial/doc/cli/npm-dist-tag.html | 2 +- deps/npm/html/partial/doc/cli/npm-link.html | 4 +- deps/npm/html/partial/doc/cli/npm-logout.html | 35 ++++++++ deps/npm/html/partial/doc/cli/npm-ls.html | 2 +- deps/npm/html/partial/doc/cli/npm.html | 8 +- deps/npm/html/partial/doc/files/npm-json.html | 30 ++++--- .../html/partial/doc/files/package.json.html | 30 ++++--- deps/npm/html/partial/doc/index.html | 2 + .../npm/html/partial/doc/misc/npm-config.html | 8 +- .../html/partial/doc/misc/npm-disputes.html | 6 +- deps/npm/html/partial/doc/misc/npm-faq.html | 2 +- deps/npm/html/partial/doc/misc/npm-index.html | 2 + deps/npm/html/partial/doc/misc/semver.html | 5 +- deps/npm/lib/build.js | 3 +- deps/npm/lib/cache/add-named.js | 7 ++ .../lib/config/clear-credentials-by-uri.js | 16 ++++ deps/npm/lib/config/core.js | 12 ++- deps/npm/lib/install.js | 13 +++ deps/npm/lib/logout.js | 40 +++++++++ deps/npm/lib/npm.js | 1 + deps/npm/lib/outdated.js | 5 ++ deps/npm/lib/utils/warn-deprecated.js | 24 ++++++ deps/npm/man/man1/npm-README.1 | 2 +- deps/npm/man/man1/npm-dist-tag.1 | 2 +- deps/npm/man/man1/npm-link.1 | 4 +- deps/npm/man/man1/npm-logout.1 | 62 ++++++++++++++ deps/npm/man/man1/npm-ls.1 | 2 +- deps/npm/man/man1/npm.1 | 2 +- deps/npm/man/man3/npm.3 | 2 +- deps/npm/man/man5/npm-json.5 | 34 ++++++-- deps/npm/man/man5/package.json.5 | 34 ++++++-- deps/npm/man/man7/npm-config.7 | 9 +- deps/npm/man/man7/npm-index.7 | 3 + deps/npm/man/man7/semver.7 | 6 ++ deps/npm/node_modules/glob/README.md | 1 + deps/npm/node_modules/glob/common.js | 55 +++++++++++- deps/npm/node_modules/glob/glob.js | 6 +- deps/npm/node_modules/glob/package.json | 21 ++--- deps/npm/node_modules/glob/sync.js | 6 ++ deps/npm/node_modules/ini/ini.js | 2 +- deps/npm/node_modules/ini/package.json | 20 ++--- .../node_modules/ini/test/fixtures/foo.ini | 2 + deps/npm/node_modules/ini/test/foo.js | 2 + .../npm-registry-client/.travis.yml | 10 +++ .../npm-registry-client/lib/logout.js | 23 ++++++ .../npm-registry-client/package.json | 10 +-- .../npm-registry-client/test/logout.js | 74 +++++++++++++++++ .../test/request-gzip-content.js | 2 +- .../read-package-json/package.json | 19 +++-- .../read-package-json/read-json.js | 33 +++++++- .../read-package-json/test/bin.js | 43 ++++++++++ .../test/fixtures/badbin.json | 11 +++ .../read-package-json/test/fixtures/bin.json | 11 +++ .../read-package-json/test/fixtures/bin/echo | 3 + .../test/fixtures/emptybin.json | 11 +++ deps/npm/node_modules/semver/README.md | 5 +- deps/npm/node_modules/semver/package.json | 21 +++-- .../npm/node_modules/semver/semver.browser.js | 15 ++++ .../node_modules/semver/semver.browser.js.gz | Bin 7739 -> 7786 bytes deps/npm/node_modules/semver/semver.js | 15 ++++ deps/npm/node_modules/semver/semver.min.js | 2 +- deps/npm/node_modules/semver/semver.min.js.gz | Bin 3564 -> 3606 bytes deps/npm/node_modules/semver/test/index.js | 4 +- .../semver/test/major-minor-patch.js | 72 ++++++++++++++++ deps/npm/package.json | 15 ++-- deps/npm/test/common-tap.js | 2 +- .../test/fixtures/config/userconfig-with-gc | 2 +- .../test/tap/add-remote-git-fake-windows.js | 6 +- deps/npm/test/tap/config-credentials.js | 55 ++++++++++++ deps/npm/test/tap/config-edit.js | 72 ++++++++++++++++ deps/npm/test/tap/install-man.js | 75 +++++++++++++++++ deps/npm/test/tap/logout.js | 67 +++++++++++++++ deps/npm/test/tap/outdated-depth-deep.js | 78 ++++++++++++++++++ deps/npm/test/tap/outdated-depth.js | 1 - deps/npm/test/tap/outdated-depth/package.json | 3 +- deps/npm/test/tap/umask-lifecycle.js | 9 +- deps/npm/test/tap/version-git-not-clean.js | 3 +- 197 files changed, 1573 insertions(+), 305 deletions(-) create mode 100644 deps/npm/doc/cli/npm-logout.md create mode 100644 deps/npm/html/doc/cli/npm-logout.html create mode 100644 deps/npm/html/partial/doc/cli/npm-logout.html create mode 100644 deps/npm/lib/config/clear-credentials-by-uri.js create mode 100644 deps/npm/lib/logout.js create mode 100644 deps/npm/lib/utils/warn-deprecated.js create mode 100644 deps/npm/man/man1/npm-logout.1 create mode 100644 deps/npm/node_modules/npm-registry-client/.travis.yml create mode 100644 deps/npm/node_modules/npm-registry-client/lib/logout.js create mode 100644 deps/npm/node_modules/npm-registry-client/test/logout.js create mode 100644 deps/npm/node_modules/read-package-json/test/bin.js create mode 100644 deps/npm/node_modules/read-package-json/test/fixtures/badbin.json create mode 100644 deps/npm/node_modules/read-package-json/test/fixtures/bin.json create mode 100644 deps/npm/node_modules/read-package-json/test/fixtures/bin/echo create mode 100644 deps/npm/node_modules/read-package-json/test/fixtures/emptybin.json create mode 100644 deps/npm/node_modules/semver/test/major-minor-patch.js create mode 100644 deps/npm/test/tap/config-edit.js create mode 100644 deps/npm/test/tap/install-man.js create mode 100644 deps/npm/test/tap/logout.js create mode 100644 deps/npm/test/tap/outdated-depth-deep.js diff --git a/deps/npm/.eslintrc b/deps/npm/.eslintrc index b54e30fd2a..3c262a61a1 100644 --- a/deps/npm/.eslintrc +++ b/deps/npm/.eslintrc @@ -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, diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml index c540f6559e..3ed21bf417 100644 --- a/deps/npm/.travis.yml +++ b/deps/npm/.travis.yml @@ -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 diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS index 7155393ab4..20ff0440fc 100644 --- a/deps/npm/AUTHORS +++ b/deps/npm/AUTHORS @@ -158,8 +158,15 @@ Aria Stewart Adam Meadows Charlie Rudolph Chulki Lee +Vladimir Rutsky 不四 +Isaac Murchie +Marcin Wosinek +David Marr +Bryan English +Anthony Zotti Thom Blake +Karl Horky Jess Martin Spain Train Alex Rodionov @@ -179,6 +186,7 @@ Jens Grunert Joost-Wim Boekesteijn Dalmais Maxence Marcus Ekwall +Jordan Harband Steve Mason Wil Moore III Sergey Belov diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index 248de8908d..aebf1444c8 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,3 +1,70 @@ +### v2.6.1 (2015-02-19): + +* [`8b98f0e`](https://github.com/npm/npm/commit/8b98f0e709d77a8616c944aebd48ab726f726f76) + [#4471](https://github.com/npm/npm/issues/4471) `npm outdated` (and only `npm + outdated`) now defaults to `--depth=0`. See the [docs for + `--depth`](https://github.com/npm/npm/blob/82f484672adb1a3caf526a8a48832789495bb43d/doc/misc/npm-config.md#depth) + for the mildly confusing details. ([@smikes](https://github.com/smikes)) +* [`aa79194`](https://github.com/npm/npm/commit/aa791942a9f3c8af6a650edec72a675deb7a7c6e) + [#6565](https://github.com/npm/npm/issues/6565) Tweak `peerDependency` + deprecation warning to include which peer dependency on which package is + going to need to change. ([@othiym23](https://github.com/othiym23)) +* [`5fa067f`](https://github.com/npm/npm/commit/5fa067fd47682ac3cdb12a2b009d8ca59b05f992) + [#7171](https://github.com/npm/npm/issues/7171) Tweak `engineStrict` + deprecation warning to include which `package.json` is using it. + ([@othiym23](https://github.com/othiym23)) +* [`0fe0caa`](https://github.com/npm/npm/commit/0fe0caa7eddb7acdacbe5ee81ceabaca27175c78) + `glob@4.4.0`: Glob patterns can now ignore matches. + ([@isaacs](https://github.com/isaacs)) + +### 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-client@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. + ([@nicks](https://github.com/nicks)) +* [`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 diff --git a/deps/npm/README.md b/deps/npm/README.md index 0a4301e3b4..9ed084297a 100644 --- a/deps/npm/README.md +++ b/deps/npm/README.md @@ -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. diff --git a/deps/npm/doc/cli/npm-dist-tag.md b/deps/npm/doc/cli/npm-dist-tag.md index b8eabe7157..f8e4566ca7 100644 --- a/deps/npm/doc/cli/npm-dist-tag.md +++ b/deps/npm/doc/cli/npm-dist-tag.md @@ -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: diff --git a/deps/npm/doc/cli/npm-link.md b/deps/npm/doc/cli/npm-link.md index 786ad815dc..a48fb97785 100644 --- a/deps/npm/doc/cli/npm-link.md +++ b/deps/npm/doc/cli/npm-link.md @@ -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 index 0000000000..867953c024 --- /dev/null +++ b/deps/npm/doc/cli/npm-logout.md @@ -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) diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md index 933c23a64a..3f29a8c35c 100644 --- a/deps/npm/doc/files/package.json.md +++ b/deps/npm/doc/files/package.json.md @@ -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 diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md index 96dda6b9f5..7e4c10af29 100644 --- a/deps/npm/doc/misc/npm-config.md +++ b/deps/npm/doc/misc/npm-config.md @@ -243,8 +243,13 @@ If true, then only prints color codes for tty file descriptors. * Default: Infinity * Type: Number -The depth to go when recursing directories for `npm ls` and -`npm cache ls`. +The depth to go when recursing directories for `npm ls`, +`npm cache ls`, and `npm outdated`. + +For `npm outdated`, a setting of `Infinity` will be treated as `0` +since that gives more useful information. To show the outdated status +of all packages and dependents, use a large integer value, +e.g., `npm outdated --depth 9999` ### description diff --git a/deps/npm/doc/misc/npm-index.md b/deps/npm/doc/misc/npm-index.md index 4cbfbdc8bc..8b9b69a48b 100644 --- a/deps/npm/doc/misc/npm-index.md +++ b/deps/npm/doc/misc/npm-index.md @@ -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 diff --git a/deps/npm/doc/misc/semver.md b/deps/npm/doc/misc/semver.md index 3f9555db14..2bd5acc29b 100644 --- a/deps/npm/doc/misc/semver.md +++ b/deps/npm/doc/misc/semver.md @@ -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 diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html index ca7b622ca2..e8e1351f5f 100644 --- a/deps/npm/html/doc/README.html +++ b/deps/npm/html/doc/README.html @@ -120,13 +120,13 @@ All rights reserved. See the included LICENSE file for more details.

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.

If you have a complaint about a package in the public npm registry, and cannot resolve it with the package owner, please email -support@npmjs.com and explain the situation.

+support@npmjs.com and explain the situation.

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.

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

       - + diff --git a/deps/npm/html/doc/api/npm-bin.html b/deps/npm/html/doc/api/npm-bin.html index b1033738ad..7fc52f8ecc 100644 --- a/deps/npm/html/doc/api/npm-bin.html +++ b/deps/npm/html/doc/api/npm-bin.html @@ -28,5 +28,5 @@ to the npm.bin property.

       - + diff --git a/deps/npm/html/doc/api/npm-bugs.html b/deps/npm/html/doc/api/npm-bugs.html index 47b11ef141..6f4ca0926f 100644 --- a/deps/npm/html/doc/api/npm-bugs.html +++ b/deps/npm/html/doc/api/npm-bugs.html @@ -33,5 +33,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-cache.html b/deps/npm/html/doc/api/npm-cache.html index aa7c2eea3f..f3a0feb91d 100644 --- a/deps/npm/html/doc/api/npm-cache.html +++ b/deps/npm/html/doc/api/npm-cache.html @@ -42,5 +42,5 @@ incrementation.

       - + diff --git a/deps/npm/html/doc/api/npm-commands.html b/deps/npm/html/doc/api/npm-commands.html index 45af01d283..dbf22817bb 100644 --- a/deps/npm/html/doc/api/npm-commands.html +++ b/deps/npm/html/doc/api/npm-commands.html @@ -36,5 +36,5 @@ usage, or man 3 npm-<command> for programmatic usage.

       - + diff --git a/deps/npm/html/doc/api/npm-config.html b/deps/npm/html/doc/api/npm-config.html index bea72420ca..8aa8c84007 100644 --- a/deps/npm/html/doc/api/npm-config.html +++ b/deps/npm/html/doc/api/npm-config.html @@ -57,5 +57,5 @@ functions instead.

       - + diff --git a/deps/npm/html/doc/api/npm-deprecate.html b/deps/npm/html/doc/api/npm-deprecate.html index b00c11cf0c..4d61806e94 100644 --- a/deps/npm/html/doc/api/npm-deprecate.html +++ b/deps/npm/html/doc/api/npm-deprecate.html @@ -47,5 +47,5 @@ a deprecation warning to all who attempt to install it.

       - + diff --git a/deps/npm/html/doc/api/npm-docs.html b/deps/npm/html/doc/api/npm-docs.html index c478fbbcf5..ccfe64eb44 100644 --- a/deps/npm/html/doc/api/npm-docs.html +++ b/deps/npm/html/doc/api/npm-docs.html @@ -33,5 +33,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-edit.html b/deps/npm/html/doc/api/npm-edit.html index 1f74d8f3dc..a03d00bc9d 100644 --- a/deps/npm/html/doc/api/npm-edit.html +++ b/deps/npm/html/doc/api/npm-edit.html @@ -36,5 +36,5 @@ and how this is used.

       - + diff --git a/deps/npm/html/doc/api/npm-explore.html b/deps/npm/html/doc/api/npm-explore.html index 4e8703563f..e35e36ff7c 100644 --- a/deps/npm/html/doc/api/npm-explore.html +++ b/deps/npm/html/doc/api/npm-explore.html @@ -31,5 +31,5 @@ sure to use npm rebuild <pkg> if you make any changes.

       - + diff --git a/deps/npm/html/doc/api/npm-help-search.html b/deps/npm/html/doc/api/npm-help-search.html index bb188c1ec2..305cf6f306 100644 --- a/deps/npm/html/doc/api/npm-help-search.html +++ b/deps/npm/html/doc/api/npm-help-search.html @@ -44,5 +44,5 @@ Name of the file that matched        - + diff --git a/deps/npm/html/doc/api/npm-init.html b/deps/npm/html/doc/api/npm-init.html index 6dcc3e2dea..170501131b 100644 --- a/deps/npm/html/doc/api/npm-init.html +++ b/deps/npm/html/doc/api/npm-init.html @@ -39,5 +39,5 @@ then go ahead and use this programmatically.

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

       - + diff --git a/deps/npm/html/doc/api/npm-link.html b/deps/npm/html/doc/api/npm-link.html index 195701e899..b985388d58 100644 --- a/deps/npm/html/doc/api/npm-link.html +++ b/deps/npm/html/doc/api/npm-link.html @@ -42,5 +42,5 @@ the package in the current working directory

       - + diff --git a/deps/npm/html/doc/api/npm-load.html b/deps/npm/html/doc/api/npm-load.html index 67c5216dcb..a5eebc6c67 100644 --- a/deps/npm/html/doc/api/npm-load.html +++ b/deps/npm/html/doc/api/npm-load.html @@ -37,5 +37,5 @@ config object.

       - + diff --git a/deps/npm/html/doc/api/npm-ls.html b/deps/npm/html/doc/api/npm-ls.html index 3d80294fe0..7998d6cbdd 100644 --- a/deps/npm/html/doc/api/npm-ls.html +++ b/deps/npm/html/doc/api/npm-ls.html @@ -63,5 +63,5 @@ dependency will only be output once.

       - + diff --git a/deps/npm/html/doc/api/npm-outdated.html b/deps/npm/html/doc/api/npm-outdated.html index a2c442d0c5..4911ba2fe8 100644 --- a/deps/npm/html/doc/api/npm-outdated.html +++ b/deps/npm/html/doc/api/npm-outdated.html @@ -28,5 +28,5 @@ currently outdated.

       - + diff --git a/deps/npm/html/doc/api/npm-owner.html b/deps/npm/html/doc/api/npm-owner.html index 97e3671e35..0ba5749000 100644 --- a/deps/npm/html/doc/api/npm-owner.html +++ b/deps/npm/html/doc/api/npm-owner.html @@ -47,5 +47,5 @@ that is not implemented at this time.

       - + diff --git a/deps/npm/html/doc/api/npm-pack.html b/deps/npm/html/doc/api/npm-pack.html index 763199e991..c5e0ffe56c 100644 --- a/deps/npm/html/doc/api/npm-pack.html +++ b/deps/npm/html/doc/api/npm-pack.html @@ -33,5 +33,5 @@ overwritten the second time.

       - + diff --git a/deps/npm/html/doc/api/npm-prefix.html b/deps/npm/html/doc/api/npm-prefix.html index f4e6a703d6..e87d602128 100644 --- a/deps/npm/html/doc/api/npm-prefix.html +++ b/deps/npm/html/doc/api/npm-prefix.html @@ -29,5 +29,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-prune.html b/deps/npm/html/doc/api/npm-prune.html index 6fb8718ca8..1202feab94 100644 --- a/deps/npm/html/doc/api/npm-prune.html +++ b/deps/npm/html/doc/api/npm-prune.html @@ -30,5 +30,5 @@ package's dependencies list.

       - + diff --git a/deps/npm/html/doc/api/npm-publish.html b/deps/npm/html/doc/api/npm-publish.html index bbbe2a1021..8a46be54bf 100644 --- a/deps/npm/html/doc/api/npm-publish.html +++ b/deps/npm/html/doc/api/npm-publish.html @@ -46,5 +46,5 @@ the registry. Overwrites when the "force" environment variable is set        - + diff --git a/deps/npm/html/doc/api/npm-rebuild.html b/deps/npm/html/doc/api/npm-rebuild.html index 7edc466ea3..515d55b67b 100644 --- a/deps/npm/html/doc/api/npm-rebuild.html +++ b/deps/npm/html/doc/api/npm-rebuild.html @@ -30,5 +30,5 @@ the new binary. If no 'packages' parameter is specify, every package wil        - + diff --git a/deps/npm/html/doc/api/npm-repo.html b/deps/npm/html/doc/api/npm-repo.html index b5a41a08db..65b6641351 100644 --- a/deps/npm/html/doc/api/npm-repo.html +++ b/deps/npm/html/doc/api/npm-repo.html @@ -33,5 +33,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-restart.html b/deps/npm/html/doc/api/npm-restart.html index 5be2e68cf8..75804ea5c2 100644 --- a/deps/npm/html/doc/api/npm-restart.html +++ b/deps/npm/html/doc/api/npm-restart.html @@ -52,5 +52,5 @@ behavior will be accompanied by an increase in major version number

       - + diff --git a/deps/npm/html/doc/api/npm-root.html b/deps/npm/html/doc/api/npm-root.html index 744df599fc..1854926bff 100644 --- a/deps/npm/html/doc/api/npm-root.html +++ b/deps/npm/html/doc/api/npm-root.html @@ -29,5 +29,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-run-script.html b/deps/npm/html/doc/api/npm-run-script.html index 639a71fcac..e4b8168a5b 100644 --- a/deps/npm/html/doc/api/npm-run-script.html +++ b/deps/npm/html/doc/api/npm-run-script.html @@ -41,5 +41,5 @@ assumed to be the command to run. All other elements are ignored.

       - + diff --git a/deps/npm/html/doc/api/npm-search.html b/deps/npm/html/doc/api/npm-search.html index 63121ffe26..2c16352653 100644 --- a/deps/npm/html/doc/api/npm-search.html +++ b/deps/npm/html/doc/api/npm-search.html @@ -53,5 +53,5 @@ like).

       - + diff --git a/deps/npm/html/doc/api/npm-shrinkwrap.html b/deps/npm/html/doc/api/npm-shrinkwrap.html index de43ebc0a3..af8a1f74c3 100644 --- a/deps/npm/html/doc/api/npm-shrinkwrap.html +++ b/deps/npm/html/doc/api/npm-shrinkwrap.html @@ -33,5 +33,5 @@ been saved.

       - + diff --git a/deps/npm/html/doc/api/npm-start.html b/deps/npm/html/doc/api/npm-start.html index b10a6c499f..b0521e1e5d 100644 --- a/deps/npm/html/doc/api/npm-start.html +++ b/deps/npm/html/doc/api/npm-start.html @@ -28,5 +28,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-stop.html b/deps/npm/html/doc/api/npm-stop.html index 83e258bdd8..bf8cb600d5 100644 --- a/deps/npm/html/doc/api/npm-stop.html +++ b/deps/npm/html/doc/api/npm-stop.html @@ -28,5 +28,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-tag.html b/deps/npm/html/doc/api/npm-tag.html index 104f5b733c..70da695078 100644 --- a/deps/npm/html/doc/api/npm-tag.html +++ b/deps/npm/html/doc/api/npm-tag.html @@ -36,5 +36,5 @@ used. For more information about how to set this config, check        - + diff --git a/deps/npm/html/doc/api/npm-test.html b/deps/npm/html/doc/api/npm-test.html index dd9677e76e..78e2b83c95 100644 --- a/deps/npm/html/doc/api/npm-test.html +++ b/deps/npm/html/doc/api/npm-test.html @@ -30,5 +30,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-uninstall.html b/deps/npm/html/doc/api/npm-uninstall.html index f1fa1c3bcc..3c0de6d7f4 100644 --- a/deps/npm/html/doc/api/npm-uninstall.html +++ b/deps/npm/html/doc/api/npm-uninstall.html @@ -30,5 +30,5 @@ uninstalled or when an error has been encountered.

       - + diff --git a/deps/npm/html/doc/api/npm-unpublish.html b/deps/npm/html/doc/api/npm-unpublish.html index 3e0c4ab2ef..4ba1a5275d 100644 --- a/deps/npm/html/doc/api/npm-unpublish.html +++ b/deps/npm/html/doc/api/npm-unpublish.html @@ -33,5 +33,5 @@ the root package entry is removed from the registry entirely.

       - + diff --git a/deps/npm/html/doc/api/npm-update.html b/deps/npm/html/doc/api/npm-update.html index 577101a21b..4faf76f40e 100644 --- a/deps/npm/html/doc/api/npm-update.html +++ b/deps/npm/html/doc/api/npm-update.html @@ -27,5 +27,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-version.html b/deps/npm/html/doc/api/npm-version.html index 115f4f90cd..30025b8f9e 100644 --- a/deps/npm/html/doc/api/npm-version.html +++ b/deps/npm/html/doc/api/npm-version.html @@ -32,5 +32,5 @@ not have exactly one element. The only element should be a version number.

       - + diff --git a/deps/npm/html/doc/api/npm-view.html b/deps/npm/html/doc/api/npm-view.html index 73286ece8b..48a9d4b4e9 100644 --- a/deps/npm/html/doc/api/npm-view.html +++ b/deps/npm/html/doc/api/npm-view.html @@ -81,5 +81,5 @@ the field name.

       - + diff --git a/deps/npm/html/doc/api/npm-whoami.html b/deps/npm/html/doc/api/npm-whoami.html index 5d1324d1c1..95389135bb 100644 --- a/deps/npm/html/doc/api/npm-whoami.html +++ b/deps/npm/html/doc/api/npm-whoami.html @@ -29,5 +29,5 @@        - + diff --git a/deps/npm/html/doc/api/npm.html b/deps/npm/html/doc/api/npm.html index 4f41ebe49d..5a0afacf20 100644 --- a/deps/npm/html/doc/api/npm.html +++ b/deps/npm/html/doc/api/npm.html @@ -23,7 +23,7 @@ npm.load([configObject, ]function (er, npm) { npm.commands.install(["package"], cb) })

VERSION

-

2.5.1

+

2.6.1

DESCRIPTION

This is the API documentation for npm. To find documentation of the command line @@ -109,5 +109,5 @@ method names. Use the npm.deref method to find the real name.

       - + diff --git a/deps/npm/html/doc/cli/npm-access.html b/deps/npm/html/doc/cli/npm-access.html index f5ac65b05a..683fdd267f 100644 --- a/deps/npm/html/doc/cli/npm-access.html +++ b/deps/npm/html/doc/cli/npm-access.html @@ -75,5 +75,5 @@ with an HTTP 402 status code (logically enough), unless you use        - + diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html index 01d6b22aac..75e6d90c22 100644 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ b/deps/npm/html/doc/cli/npm-adduser.html @@ -68,5 +68,5 @@ precedence over any global configuration.

       - + diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html index d896b96a1d..8c5b9e53af 100644 --- a/deps/npm/html/doc/cli/npm-bin.html +++ b/deps/npm/html/doc/cli/npm-bin.html @@ -35,5 +35,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html index ed55e03a71..c108f74a1c 100644 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ b/deps/npm/html/doc/cli/npm-bugs.html @@ -54,5 +54,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html index 52efad1940..e973ef516c 100644 --- a/deps/npm/html/doc/cli/npm-build.html +++ b/deps/npm/html/doc/cli/npm-build.html @@ -38,5 +38,5 @@ A folder containing a package.json file in its root.        - + diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html index 9db76b5b12..f36b495d38 100644 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ b/deps/npm/html/doc/cli/npm-bundle.html @@ -31,5 +31,5 @@ install packages into the local space.

       - + diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html index 4b3fa05f07..e9e2e9ee4a 100644 --- a/deps/npm/html/doc/cli/npm-cache.html +++ b/deps/npm/html/doc/cli/npm-cache.html @@ -81,5 +81,5 @@ they do not make an HTTP request to the registry.

       - + diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html index 1d6870b04f..73b5ac9b47 100644 --- a/deps/npm/html/doc/cli/npm-completion.html +++ b/deps/npm/html/doc/cli/npm-completion.html @@ -42,5 +42,5 @@ completions based on the arguments.

       - + diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html index 822f570acf..370e5eab8e 100644 --- a/deps/npm/html/doc/cli/npm-config.html +++ b/deps/npm/html/doc/cli/npm-config.html @@ -66,5 +66,5 @@ global config.

       - + diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html index 1cc3f7431d..5ef2995e58 100644 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ b/deps/npm/html/doc/cli/npm-dedupe.html @@ -63,5 +63,5 @@ versions.

       - + diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html index 574babd59b..aee4d4b2ea 100644 --- a/deps/npm/html/doc/cli/npm-deprecate.html +++ b/deps/npm/html/doc/cli/npm-deprecate.html @@ -38,5 +38,5 @@ something like this:

       - + diff --git a/deps/npm/html/doc/cli/npm-dist-tag.html b/deps/npm/html/doc/cli/npm-dist-tag.html index d41abe0602..adb4a0b3fa 100644 --- a/deps/npm/html/doc/cli/npm-dist-tag.html +++ b/deps/npm/html/doc/cli/npm-dist-tag.html @@ -26,7 +26,7 @@ Clear a tag that is no longer in use from the 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 @@ -76,5 +76,5 @@ begin with a number or the letter v.

           - + diff --git a/deps/npm/html/doc/cli/npm-docs.html b/deps/npm/html/doc/cli/npm-docs.html index e08070ac58..c697e3b323 100644 --- a/deps/npm/html/doc/cli/npm-docs.html +++ b/deps/npm/html/doc/cli/npm-docs.html @@ -56,5 +56,5 @@ the current folder and use the name property.

           - + diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html index abf6feae5a..ddd3b1b7b3 100644 --- a/deps/npm/html/doc/cli/npm-edit.html +++ b/deps/npm/html/doc/cli/npm-edit.html @@ -49,5 +49,5 @@ or "notepad" on Windows.        - + diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html index 3bd89c91ed..ce4b159463 100644 --- a/deps/npm/html/doc/cli/npm-explore.html +++ b/deps/npm/html/doc/cli/npm-explore.html @@ -49,5 +49,5 @@ Windows        - + diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html index dbc1b6db57..ee61caea18 100644 --- a/deps/npm/html/doc/cli/npm-help-search.html +++ b/deps/npm/html/doc/cli/npm-help-search.html @@ -46,5 +46,5 @@ where the terms were found in the documentation.

           - + diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html index 9983581828..686ab9280e 100644 --- a/deps/npm/html/doc/cli/npm-help.html +++ b/deps/npm/html/doc/cli/npm-help.html @@ -52,5 +52,5 @@ matches are equivalent to specifying a topic name.

           - + diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html index 09404ec01c..5b04770203 100644 --- a/deps/npm/html/doc/cli/npm-init.html +++ b/deps/npm/html/doc/cli/npm-init.html @@ -40,5 +40,5 @@ defaults and not prompt you for any options.

           - + diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html index f3fb078ea9..4c4d3e1843 100644 --- a/deps/npm/html/doc/cli/npm-install.html +++ b/deps/npm/html/doc/cli/npm-install.html @@ -239,5 +239,5 @@ affects a real use-case, it will be investigated.

           - + diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html index c52434c591..0c54bdfe11 100644 --- a/deps/npm/html/doc/cli/npm-link.html +++ b/deps/npm/html/doc/cli/npm-link.html @@ -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

    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:

    cd ~/projects/node-bloggy  # go into the dir of your main project
     npm link ../node-redis     # link the dir of your dependency
     

    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.

    If your linked package is scoped (see npm-scope(7)) your link command must @@ -71,5 +71,5 @@ include that scope, e.g.

           - + diff --git a/deps/npm/html/doc/cli/npm-logout.html b/deps/npm/html/doc/cli/npm-logout.html new file mode 100644 index 0000000000..581809fb88 --- /dev/null +++ b/deps/npm/html/doc/cli/npm-logout.html @@ -0,0 +1,59 @@ + + + npm-logout + + + + + + +
    + +

    npm-logout

    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

    + + +
    + + + + + + + + + + + + diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html index cdbd56bfd9..e68131fb99 100644 --- a/deps/npm/html/doc/cli/npm-ls.html +++ b/deps/npm/html/doc/cli/npm-ls.html @@ -22,7 +22,7 @@ installed, as well as their dependencies, in a tree-structure.

    limit the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

    -
    npm@2.5.1 /path/to/npm
    +
    npm@2.6.1 /path/to/npm
     └─┬ init-package-json@0.0.4
       └── promzard@0.1.5
     

    It will print out extraneous, missing, and invalid packages.

    @@ -85,5 +85,5 @@ project.

           - + diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html index 1b1414d710..d8418a45d5 100644 --- a/deps/npm/html/doc/cli/npm-outdated.html +++ b/deps/npm/html/doc/cli/npm-outdated.html @@ -67,5 +67,5 @@ project.

           - + diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html index 9d6e4541cc..58cc89584d 100644 --- a/deps/npm/html/doc/cli/npm-owner.html +++ b/deps/npm/html/doc/cli/npm-owner.html @@ -49,5 +49,5 @@ that is not implemented at this time.

           - + diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html index cf7fcaed9f..e61d433081 100644 --- a/deps/npm/html/doc/cli/npm-pack.html +++ b/deps/npm/html/doc/cli/npm-pack.html @@ -41,5 +41,5 @@ overwritten the second time.

           - + diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html index 98f44e133d..23f77c039c 100644 --- a/deps/npm/html/doc/cli/npm-prefix.html +++ b/deps/npm/html/doc/cli/npm-prefix.html @@ -38,5 +38,5 @@ to contain a package.json file unless -g is also specified.

           - + diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html index 247a291d78..579f0b3149 100644 --- a/deps/npm/html/doc/cli/npm-prune.html +++ b/deps/npm/html/doc/cli/npm-prune.html @@ -39,5 +39,5 @@ packages specified in your devDependencies.

           - + diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html index 23559cacd6..6e48c16093 100644 --- a/deps/npm/html/doc/cli/npm-publish.html +++ b/deps/npm/html/doc/cli/npm-publish.html @@ -66,5 +66,5 @@ it is removed with        - + diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html index bcf73eca7e..5d303f40f5 100644 --- a/deps/npm/html/doc/cli/npm-rebuild.html +++ b/deps/npm/html/doc/cli/npm-rebuild.html @@ -38,5 +38,5 @@ the new binary.

           - + diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html index 5eb88eae94..14affbe4d6 100644 --- a/deps/npm/html/doc/cli/npm-repo.html +++ b/deps/npm/html/doc/cli/npm-repo.html @@ -42,5 +42,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html index 67b397552b..f94762e8d2 100644 --- a/deps/npm/html/doc/cli/npm-restart.html +++ b/deps/npm/html/doc/cli/npm-restart.html @@ -53,5 +53,5 @@ behavior will be accompanied by an increase in major version number

           - + diff --git a/deps/npm/html/doc/cli/npm-rm.html b/deps/npm/html/doc/cli/npm-rm.html index c832eee203..ed20e046d4 100644 --- a/deps/npm/html/doc/cli/npm-rm.html +++ b/deps/npm/html/doc/cli/npm-rm.html @@ -39,5 +39,5 @@ on its behalf.

           - + diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html index c9df7b98fd..327bc76d13 100644 --- a/deps/npm/html/doc/cli/npm-root.html +++ b/deps/npm/html/doc/cli/npm-root.html @@ -35,5 +35,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html index 716ad484a4..ae7cced851 100644 --- a/deps/npm/html/doc/cli/npm-run-script.html +++ b/deps/npm/html/doc/cli/npm-run-script.html @@ -50,5 +50,5 @@ and not to any pre or post script.

           - + diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html index 88ad801bc6..d158f06b23 100644 --- a/deps/npm/html/doc/cli/npm-search.html +++ b/deps/npm/html/doc/cli/npm-search.html @@ -49,5 +49,5 @@ fall on multiple lines.

           - + diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html index 21c104f59b..6930d098ca 100644 --- a/deps/npm/html/doc/cli/npm-shrinkwrap.html +++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html @@ -164,5 +164,5 @@ contents rather than versions.

           - + diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html index 58c2c240c1..d56f711f1d 100644 --- a/deps/npm/html/doc/cli/npm-star.html +++ b/deps/npm/html/doc/cli/npm-star.html @@ -36,5 +36,5 @@ a vaguely positive way to show that you care.

           - + diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html index 0ffb3f4d5e..ce95dac976 100644 --- a/deps/npm/html/doc/cli/npm-stars.html +++ b/deps/npm/html/doc/cli/npm-stars.html @@ -37,5 +37,5 @@ you will most certainly enjoy this command.

           - + diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html index 330378cd81..f4b720077d 100644 --- a/deps/npm/html/doc/cli/npm-start.html +++ b/deps/npm/html/doc/cli/npm-start.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html index ee69ec0304..8c41f7c18a 100644 --- a/deps/npm/html/doc/cli/npm-stop.html +++ b/deps/npm/html/doc/cli/npm-stop.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-tag.html b/deps/npm/html/doc/cli/npm-tag.html index d66caeebd3..c26dacd418 100644 --- a/deps/npm/html/doc/cli/npm-tag.html +++ b/deps/npm/html/doc/cli/npm-tag.html @@ -62,5 +62,5 @@ that do not begin with a number or the letter v.

           - + diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html index 401a51304e..3e8f43ffce 100644 --- a/deps/npm/html/doc/cli/npm-test.html +++ b/deps/npm/html/doc/cli/npm-test.html @@ -37,5 +37,5 @@ true.

           - + diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html index ef33583b31..29ba5fecc4 100644 --- a/deps/npm/html/doc/cli/npm-uninstall.html +++ b/deps/npm/html/doc/cli/npm-uninstall.html @@ -57,5 +57,5 @@ npm uninstall dtrace-provider --save-optional        - + diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html index f31a4f03b8..baf7c0562e 100644 --- a/deps/npm/html/doc/cli/npm-unpublish.html +++ b/deps/npm/html/doc/cli/npm-unpublish.html @@ -47,5 +47,5 @@ package again, a new version number must be used.

           - + diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html index 441c0b1a89..9912bcacc6 100644 --- a/deps/npm/html/doc/cli/npm-update.html +++ b/deps/npm/html/doc/cli/npm-update.html @@ -42,5 +42,5 @@ or local) will be updated.

           - + diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html index bb0fe413ad..9a512cab18 100644 --- a/deps/npm/html/doc/cli/npm-version.html +++ b/deps/npm/html/doc/cli/npm-version.html @@ -55,5 +55,5 @@ Enter passphrase:        - + diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html index 3fa8beb789..e7c5d8bf1c 100644 --- a/deps/npm/html/doc/cli/npm-view.html +++ b/deps/npm/html/doc/cli/npm-view.html @@ -82,5 +82,5 @@ the field name.

           - + diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html index eb8274f960..fd484f142f 100644 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ b/deps/npm/html/doc/cli/npm-whoami.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html index 8651e98937..c3408419b2 100644 --- a/deps/npm/html/doc/cli/npm.html +++ b/deps/npm/html/doc/cli/npm.html @@ -13,7 +13,7 @@

    SYNOPSIS

    npm <command> [args]
     

    VERSION

    -

    2.5.1

    +

    2.6.1

    DESCRIPTION

    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 npm view npm contributors.

    the issues list or ask on the mailing list.

    BUGS

    When you find issues, please report them:

    @@ -118,7 +118,7 @@ the issues list or ask on the mailing list.

  • web: http://github.com/npm/npm/issues
  • email: -npm-@googlegroups.com
  • +npm-@googlegroups.com

    Be sure to include all of the output from the npm command that didn't work as expected. The npm-debug.log file is also helpful to provide.

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

    Isaac Z. Schlueter :: isaacs :: @izs :: -i@izs.me

    +i@izs.me

    SEE ALSO

    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.

    Assuming the host complies with semver, only changes in @@ -396,6 +404,7 @@ are capable of properly installing your program. For example:

    Note that, unless the user has set the engine-strict config flag, this 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. @@ -403,8 +412,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

    You can specify which operating systems your module will run on:

    @@ -488,5 +496,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html index 92dfa7f019..805393dacb 100644 --- a/deps/npm/html/doc/files/npmrc.html +++ b/deps/npm/html/doc/files/npmrc.html @@ -77,5 +77,5 @@ manner.

           - + diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html index e3213a34ad..dafec95da1 100644 --- a/deps/npm/html/doc/files/package.json.html +++ b/deps/npm/html/doc/files/package.json.html @@ -63,7 +63,7 @@ been published somewhere else, and spit at you.

    issues should be reported. These are helpful for people who encounter issues 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"
     }
     

    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.directories

    The CommonJS Packages 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, +object. If you look at npm's package.json, you'll see that it has directories for doc, lib, and man.

    In the future, this information may be used in other creative ways.

    directories.lib

    @@ -186,17 +186,20 @@ command will be able to find you.

    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.

    -

    scripts

    +

    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 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.

    @@ -342,12 +345,17 @@ a specific interface, expected and specified by the host documentation.

    } }

    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
    -

    Trying to install another plugin with a conflicting requirement will cause an +

    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.

    Assuming the host complies with semver, only changes in @@ -396,6 +404,7 @@ are capable of properly installing your program. For example:

    Note that, unless the user has set the engine-strict config flag, this 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. @@ -403,8 +412,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

    You can specify which operating systems your module will run on:

    @@ -488,5 +496,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html index f3d1298781..8de0b1bf83 100644 --- a/deps/npm/html/doc/index.html +++ b/deps/npm/html/doc/index.html @@ -56,6 +56,8 @@

    Install a package

    Symlink a package folder

    +

    npm-logout(1)

    +

    Log out of the registry

    npm-ls(1)

    List installed packages

    npm-outdated(1)

    @@ -234,5 +236,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html index 1c6d6a41f0..7212d3ebed 100644 --- a/deps/npm/html/doc/misc/npm-coding-style.html +++ b/deps/npm/html/doc/misc/npm-coding-style.html @@ -147,5 +147,5 @@ set to anything."

           - + diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html index 702fef09d9..21af45f6ba 100644 --- a/deps/npm/html/doc/misc/npm-config.html +++ b/deps/npm/html/doc/misc/npm-config.html @@ -206,8 +206,12 @@ If true, then only prints color codes for tty file descriptors.

  • Default: Infinity
  • Type: Number
  • -

    The depth to go when recursing directories for npm ls and -npm cache ls.

    +

    The depth to go when recursing directories for npm ls, +npm cache ls, and npm outdated.

    +

    For npm outdated, a setting of Infinity will be treated as 0 +since that gives more useful information. To show the outdated status +of all packages and dependents, use a large integer value, +e.g., npm outdated --depth 9999

    description

    • Default: true
    • @@ -774,5 +778,5 @@ exit successfully.

             - + diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html index 64539b142d..33810525f2 100644 --- a/deps/npm/html/doc/misc/npm-developers.html +++ b/deps/npm/html/doc/misc/npm-developers.html @@ -189,5 +189,5 @@ from a fresh checkout.

             - + diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html index d60c083797..c707bbc075 100644 --- a/deps/npm/html/doc/misc/npm-disputes.html +++ b/deps/npm/html/doc/misc/npm-disputes.html @@ -13,7 +13,7 @@

      SYNOPSIS

      1. Get the author email with npm owner ls <pkgname>
      2. -
      3. Email the author, CC support@npmjs.com
      4. +
      5. Email the author, CC support@npmjs.com
      6. After a few weeks, if there's no resolution, we'll sort it out.

      Don't squat on package names. Publish code or move out of the way.

      @@ -51,12 +51,12 @@ Joe's appropriate course of action in each case is the same.

      owner (Bob).
    • Joe emails Bob, explaining the situation as respectfully as possible, and what he would like to do with the module name. He -adds the npm support staff support@npmjs.com to the CC list of +adds the npm support staff support@npmjs.com to the CC list of the email. Mention in the email that Bob can run npm owner add joe foo to add Joe as an owner of the foo package.
    • After a reasonable amount of time, if Bob has not responded, or if Bob and Joe can't come to any sort of resolution, email support -support@npmjs.com and we'll sort it out. ("Reasonable" is +support@npmjs.com and we'll sort it out. ("Reasonable" is usually at least 4 weeks, but extra time is allowed around common holidays.)
    • @@ -112,5 +112,5 @@ things into it.        - + diff --git a/deps/npm/html/doc/misc/npm-faq.html b/deps/npm/html/doc/misc/npm-faq.html index 165b6258a1..bc6af67045 100644 --- a/deps/npm/html/doc/misc/npm-faq.html +++ b/deps/npm/html/doc/misc/npm-faq.html @@ -236,7 +236,7 @@ that has a package.json in its root, or a git url.

      To check if the registry is down, open up https://registry.npmjs.org/ in a web browser. This will also tell you if you are just unable to access the internet for some reason.

      -

      If the registry IS down, let us know by emailing support@npmjs.com +

      If the registry IS down, let us know by emailing support@npmjs.com or posting an issue at https://github.com/npm/npm/issues. If it's down for the world (and not just on your local network) then we're probably already being pinged about it.

      @@ -307,5 +307,5 @@ good folks at npm, Inc.

             - + diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html index 9ad872c5bf..bfda7debb0 100644 --- a/deps/npm/html/doc/misc/npm-index.html +++ b/deps/npm/html/doc/misc/npm-index.html @@ -56,6 +56,8 @@

      Install a package

      Symlink a package folder

      +

      npm-logout(1)

      +

      Log out of the registry

      npm-ls(1)

      List installed packages

      npm-outdated(1)

      @@ -234,5 +236,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html index 72e3a1b552..52a2d9e9c0 100644 --- a/deps/npm/html/doc/misc/npm-registry.html +++ b/deps/npm/html/doc/misc/npm-registry.html @@ -70,5 +70,5 @@ effectively implement the entire CouchDB API anyway.

             - + diff --git a/deps/npm/html/doc/misc/npm-scope.html b/deps/npm/html/doc/misc/npm-scope.html index 8e25e12c44..21a2ea6c3b 100644 --- a/deps/npm/html/doc/misc/npm-scope.html +++ b/deps/npm/html/doc/misc/npm-scope.html @@ -78,5 +78,5 @@ that registry instead.

             - + diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html index 4dcac1793e..12ed3f2b49 100644 --- a/deps/npm/html/doc/misc/npm-scripts.html +++ b/deps/npm/html/doc/misc/npm-scripts.html @@ -216,5 +216,5 @@ the user will sudo the npm command in question.        - + diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html index 2e497cdda8..9572761243 100644 --- a/deps/npm/html/doc/misc/removing-npm.html +++ b/deps/npm/html/doc/misc/removing-npm.html @@ -57,5 +57,5 @@ modules. To track those down, you can do the following:

             - + diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html index c8baab6d13..659a505c84 100644 --- a/deps/npm/html/doc/misc/semver.html +++ b/deps/npm/html/doc/misc/semver.html @@ -94,7 +94,7 @@ similar risk on the next set of prerelease versions.

      Prerelease Identifiers

      The method .inc takes an additional identifier string argument that will append the value of the string as a prerelease identifier:

      -
      > semver.inc('1.2.3', 'pre', 'beta')
      +
      > semver.inc('1.2.3', 'pre', 'beta')
       '1.2.4-beta.0'
       

      command-line example:

      @@ -219,6 +219,9 @@ 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

      @@ -279,5 +282,5 @@ range, use the satisfies(version, range) function.

             - + diff --git a/deps/npm/html/partial/doc/README.html b/deps/npm/html/partial/doc/README.html index 9dedc3b11b..a356aaf7ee 100644 --- a/deps/npm/html/partial/doc/README.html +++ b/deps/npm/html/partial/doc/README.html @@ -109,13 +109,13 @@ All rights reserved. See the included LICENSE file for more details.

      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.

      If you have a complaint about a package in the public npm registry, and cannot resolve it with the package owner, please email -support@npmjs.com and explain the situation.

      +support@npmjs.com and explain the situation.

      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.

      diff --git a/deps/npm/html/partial/doc/api/npm.html b/deps/npm/html/partial/doc/api/npm.html index 207f251030..44c3340c68 100644 --- a/deps/npm/html/partial/doc/api/npm.html +++ b/deps/npm/html/partial/doc/api/npm.html @@ -12,7 +12,7 @@ npm.load([configObject, ]function (er, npm) { npm.commands.install(["package"], cb) })

      VERSION

      -

      2.5.1

      +

      2.6.1

      DESCRIPTION

      This is the API documentation for npm. To find documentation of the command line diff --git a/deps/npm/html/partial/doc/cli/npm-dist-tag.html b/deps/npm/html/partial/doc/cli/npm-dist-tag.html index 86a3d21a29..8abcf222ab 100644 --- a/deps/npm/html/partial/doc/cli/npm-dist-tag.html +++ b/deps/npm/html/partial/doc/cli/npm-dist-tag.html @@ -15,7 +15,7 @@ Clear a tag that is no longer in use from the 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 diff --git a/deps/npm/html/partial/doc/cli/npm-link.html b/deps/npm/html/partial/doc/cli/npm-link.html index c4b01c2a65..1a33cf2c3e 100644 --- a/deps/npm/html/partial/doc/cli/npm-link.html +++ b/deps/npm/html/partial/doc/cli/npm-link.html @@ -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

    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:

    cd ~/projects/node-bloggy  # go into the dir of your main project
     npm link ../node-redis     # link the dir of your dependency
     

    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.

    If your linked package is scoped (see npm-scope(7)) 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 index 0000000000..63c28a3d7c --- /dev/null +++ b/deps/npm/html/partial/doc/cli/npm-logout.html @@ -0,0 +1,35 @@ +

    npm-logout

    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

    + + diff --git a/deps/npm/html/partial/doc/cli/npm-ls.html b/deps/npm/html/partial/doc/cli/npm-ls.html index 4ede498f3a..e7e2748ccb 100644 --- a/deps/npm/html/partial/doc/cli/npm-ls.html +++ b/deps/npm/html/partial/doc/cli/npm-ls.html @@ -11,7 +11,7 @@ installed, as well as their dependencies, in a tree-structure.

    limit the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

    -
    npm@2.5.1 /path/to/npm
    +
    npm@2.6.1 /path/to/npm
     └─┬ init-package-json@0.0.4
       └── promzard@0.1.5
     

    It will print out extraneous, missing, and invalid packages.

    diff --git a/deps/npm/html/partial/doc/cli/npm.html b/deps/npm/html/partial/doc/cli/npm.html index e8178c2462..224c7e0ab5 100644 --- a/deps/npm/html/partial/doc/cli/npm.html +++ b/deps/npm/html/partial/doc/cli/npm.html @@ -2,7 +2,7 @@

    SYNOPSIS

    npm <command> [args]
     

    VERSION

    -

    2.5.1

    +

    2.6.1

    DESCRIPTION

    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 npm view npm contributors.

    the issues list or ask on the mailing list.

    BUGS

    When you find issues, please report them:

    @@ -107,7 +107,7 @@ the issues list or ask on the mailing list.

  • web: http://github.com/npm/npm/issues
  • email: -npm-@googlegroups.com
  • +npm-@googlegroups.com

    Be sure to include all of the output from the npm command that didn't work as expected. The npm-debug.log file is also helpful to provide.

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

    Isaac Z. Schlueter :: isaacs :: @izs :: -i@izs.me

    +i@izs.me

    SEE ALSO

    • npm-help(1)
    • diff --git a/deps/npm/html/partial/doc/files/npm-json.html b/deps/npm/html/partial/doc/files/npm-json.html index cc2b12a5ea..401d27aec8 100644 --- a/deps/npm/html/partial/doc/files/npm-json.html +++ b/deps/npm/html/partial/doc/files/npm-json.html @@ -52,7 +52,7 @@ been published somewhere else, and spit at you.

      issues should be reported. These are helpful for people who encounter issues 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"
       }
       

      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.directories

      The CommonJS Packages 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, +object. If you look at npm's package.json, you'll see that it has directories for doc, lib, and man.

      In the future, this information may be used in other creative ways.

      directories.lib

      @@ -175,17 +175,20 @@ command will be able to find you.

      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.

      -

      scripts

      +

      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 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.

      @@ -331,12 +334,17 @@ a specific interface, expected and specified by the host documentation.

      } }

      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
      -

      Trying to install another plugin with a conflicting requirement will cause an +

    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.

    Assuming the host complies with semver, only changes in @@ -385,6 +393,7 @@ are capable of properly installing your program. For example:

    Note that, unless the user has set the engine-strict config flag, this 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. @@ -392,8 +401,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

    You can specify which operating systems your module will run on:

    diff --git a/deps/npm/html/partial/doc/files/package.json.html b/deps/npm/html/partial/doc/files/package.json.html index cc2b12a5ea..401d27aec8 100644 --- a/deps/npm/html/partial/doc/files/package.json.html +++ b/deps/npm/html/partial/doc/files/package.json.html @@ -52,7 +52,7 @@ been published somewhere else, and spit at you.

    issues should be reported. These are helpful for people who encounter issues 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"
     }
     

    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.directories

    The CommonJS Packages 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, +object. If you look at npm's package.json, you'll see that it has directories for doc, lib, and man.

    In the future, this information may be used in other creative ways.

    directories.lib

    @@ -175,17 +175,20 @@ command will be able to find you.

    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.

    -

    scripts

    +

    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 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.

    @@ -331,12 +334,17 @@ a specific interface, expected and specified by the host documentation.

    } }

    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
    -

    Trying to install another plugin with a conflicting requirement will cause an +

    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.

    Assuming the host complies with semver, only changes in @@ -385,6 +393,7 @@ are capable of properly installing your program. For example:

    Note that, unless the user has set the engine-strict config flag, this 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. @@ -392,8 +401,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

    You can specify which operating systems your module will run on:

    diff --git a/deps/npm/html/partial/doc/index.html b/deps/npm/html/partial/doc/index.html index 2d23cb50cc..2048487ee2 100644 --- a/deps/npm/html/partial/doc/index.html +++ b/deps/npm/html/partial/doc/index.html @@ -45,6 +45,8 @@

    Install a package

    Symlink a package folder

    +

    npm-logout(1)

    +

    Log out of the registry

    npm-ls(1)

    List installed packages

    npm-outdated(1)

    diff --git a/deps/npm/html/partial/doc/misc/npm-config.html b/deps/npm/html/partial/doc/misc/npm-config.html index 48f179b435..bd2299cf57 100644 --- a/deps/npm/html/partial/doc/misc/npm-config.html +++ b/deps/npm/html/partial/doc/misc/npm-config.html @@ -195,8 +195,12 @@ If true, then only prints color codes for tty file descriptors.

  • Default: Infinity
  • Type: Number
  • -

    The depth to go when recursing directories for npm ls and -npm cache ls.

    +

    The depth to go when recursing directories for npm ls, +npm cache ls, and npm outdated.

    +

    For npm outdated, a setting of Infinity will be treated as 0 +since that gives more useful information. To show the outdated status +of all packages and dependents, use a large integer value, +e.g., npm outdated --depth 9999

    description

    • Default: true
    • diff --git a/deps/npm/html/partial/doc/misc/npm-disputes.html b/deps/npm/html/partial/doc/misc/npm-disputes.html index 4d64370a00..5cd1848d30 100644 --- a/deps/npm/html/partial/doc/misc/npm-disputes.html +++ b/deps/npm/html/partial/doc/misc/npm-disputes.html @@ -2,7 +2,7 @@

      SYNOPSIS

      1. Get the author email with npm owner ls <pkgname>
      2. -
      3. Email the author, CC support@npmjs.com
      4. +
      5. Email the author, CC support@npmjs.com
      6. After a few weeks, if there's no resolution, we'll sort it out.

      Don't squat on package names. Publish code or move out of the way.

      @@ -40,12 +40,12 @@ Joe's appropriate course of action in each case is the same.

      owner (Bob).
    • Joe emails Bob, explaining the situation as respectfully as possible, and what he would like to do with the module name. He -adds the npm support staff support@npmjs.com to the CC list of +adds the npm support staff support@npmjs.com to the CC list of the email. Mention in the email that Bob can run npm owner add joe foo to add Joe as an owner of the foo package.
    • After a reasonable amount of time, if Bob has not responded, or if Bob and Joe can't come to any sort of resolution, email support -support@npmjs.com and we'll sort it out. ("Reasonable" is +support@npmjs.com and we'll sort it out. ("Reasonable" is usually at least 4 weeks, but extra time is allowed around common holidays.)
    • diff --git a/deps/npm/html/partial/doc/misc/npm-faq.html b/deps/npm/html/partial/doc/misc/npm-faq.html index a81ae02bd2..e4976465c4 100644 --- a/deps/npm/html/partial/doc/misc/npm-faq.html +++ b/deps/npm/html/partial/doc/misc/npm-faq.html @@ -225,7 +225,7 @@ that has a package.json in its root, or a git url.

      To check if the registry is down, open up https://registry.npmjs.org/ in a web browser. This will also tell you if you are just unable to access the internet for some reason.

      -

      If the registry IS down, let us know by emailing support@npmjs.com +

      If the registry IS down, let us know by emailing support@npmjs.com or posting an issue at https://github.com/npm/npm/issues. If it's down for the world (and not just on your local network) then we're probably already being pinged about it.

      diff --git a/deps/npm/html/partial/doc/misc/npm-index.html b/deps/npm/html/partial/doc/misc/npm-index.html index c42ca682cc..feeb5792cd 100644 --- a/deps/npm/html/partial/doc/misc/npm-index.html +++ b/deps/npm/html/partial/doc/misc/npm-index.html @@ -45,6 +45,8 @@

      Install a package

      Symlink a package folder

      +

      npm-logout(1)

      +

      Log out of the registry

      npm-ls(1)

      List installed packages

      npm-outdated(1)

      diff --git a/deps/npm/html/partial/doc/misc/semver.html b/deps/npm/html/partial/doc/misc/semver.html index b078197e80..9b763ed18c 100644 --- a/deps/npm/html/partial/doc/misc/semver.html +++ b/deps/npm/html/partial/doc/misc/semver.html @@ -83,7 +83,7 @@ similar risk on the next set of prerelease versions.

      Prerelease Identifiers

      The method .inc takes an additional identifier string argument that will append the value of the string as a prerelease identifier:

      -
      > semver.inc('1.2.3', 'pre', 'beta')
      +
      > semver.inc('1.2.3', 'pre', 'beta')
       '1.2.4-beta.0'
       

      command-line example:

      @@ -208,6 +208,9 @@ 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

      diff --git a/deps/npm/lib/build.js b/deps/npm/lib/build.js index 7477ba4579..47f1055967 100644 --- a/deps/npm/lib/build.js +++ b/deps/npm/lib/build.js @@ -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) } diff --git a/deps/npm/lib/cache/add-named.js b/deps/npm/lib/cache/add-named.js index cb5a3fa8a6..d81b7b0da6 100644 --- a/deps/npm/lib/cache/add-named.js +++ b/deps/npm/lib/cache/add-named.js @@ -12,6 +12,7 @@ var path = require("path") , addRemoteTarball = require("./add-remote-tarball.js") , cachedPackageRoot = require("./cached-package-root.js") , mapToRegistry = require("../utils/map-to-registry.js") + , warnStrict = require("../utils/warn-deprecated.js")("engineStrict") module.exports = addNamed @@ -91,6 +92,12 @@ function engineFilter (data) { Object.keys(data.versions || {}).forEach(function (v) { var eng = data.versions[v].engines if (!eng) return + if (data.versions[v].engineStrict) { + warnStrict([ + "Per-package engineStrict (found in package.json for "+data.name+")", + "won't be used in npm 3+. Use the config setting `engine-strict` instead." + ], data.name) + } 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 index 0000000000..88131f7adb --- /dev/null +++ b/deps/npm/lib/config/clear-credentials-by-uri.js @@ -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") +} diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js index 59f7cf5568..97c17919d2 100644 --- a/deps/npm/lib/config/core.js +++ b/deps/npm/lib/config/core.js @@ -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) { diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js index 756d12ee36..7fa9058f3e 100644 --- a/deps/npm/lib/install.js +++ b/deps/npm/lib/install.js @@ -89,6 +89,7 @@ var npm = require("./npm.js") , locker = require("./utils/locker.js") , lock = locker.lock , unlock = locker.unlock + , warnPeers = require("./utils/warn-deprecated.js")("peerDependencies") function install (args, cb_) { var hasArguments = !!args.length @@ -159,6 +160,11 @@ function install (args, cb_) { "install", "peerDependency", dep, "wasn't going to be installed; adding" ) + warnPeers([ + "The peer dependency "+dep+" included from "+data.name+" will no", + "longer be automatically installed to fulfill the peerDependency ", + "in npm 3+. Your application will need to depend on it explicitly." + ], dep+","+data.name) peers.push(dep) } }) @@ -1036,6 +1042,13 @@ function write (target, targetFolder, context, cb_) { // favor of killing implicit peerDependency installs with fire. var peerDeps = prepareForInstallMany(data, "peerDependencies", bundled, wrap, family) + peerDeps.forEach(function (pd) { + warnPeers([ + "The peer dependency "+pd+" included from "+data.name+" will no", + "longer be automatically installed to fulfill the peerDependency ", + "in npm 3+. Your application will need to depend on it explicitly." + ], pd+","+data.name) + }) var pdTargetFolder = path.resolve(targetFolder, "..", "..") var pdContext = context if (peerDeps.length > 0) { diff --git a/deps/npm/lib/logout.js b/deps/npm/lib/logout.js new file mode 100644 index 0000000000..64635be4de --- /dev/null +++ b/deps/npm/lib/logout.js @@ -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." + )) + } + }) +} diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js index 8077e8ac99..25b7feab6a 100644 --- a/deps/npm/lib/npm.js +++ b/deps/npm/lib/npm.js @@ -110,6 +110,7 @@ var commandCache = {} , "stars" , "tag" , "adduser" + , "logout" , "unpublish" , "owner" , "access" diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js index f69d81550a..4963b096ef 100644 --- a/deps/npm/lib/outdated.js +++ b/deps/npm/lib/outdated.js @@ -40,7 +40,12 @@ var path = require("path") function outdated (args, silent, cb) { if (typeof cb !== "function") cb = silent, silent = false var dir = path.resolve(npm.dir, "..") + + // default depth for `outdated` is 0 (cf. `ls`) + if (npm.config.get("depth") === Infinity) npm.config.set("depth", 0) + 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)) diff --git a/deps/npm/lib/utils/warn-deprecated.js b/deps/npm/lib/utils/warn-deprecated.js new file mode 100644 index 0000000000..ec821b9bd4 --- /dev/null +++ b/deps/npm/lib/utils/warn-deprecated.js @@ -0,0 +1,24 @@ +module.exports = warnDeprecated + +var log = require("npmlog") + +var deprecations = {} + +function warnDeprecated (type) { + return function warn (messages, instance) { + if (!instance) { + if (!deprecations[type]) { + deprecations[type] = {} + messages.forEach(function (m) { log.warn(type, m) }) + } + } + else { + if (!deprecations[type]) deprecations[type] = {} + + if (!deprecations[type][instance]) { + deprecations[type][instance] = true + messages.forEach(function (m) { log.warn(type, m) }) + } + } + } +} diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 index 2d82982aef..aa6c29787a 100644 --- a/deps/npm/man/man1/npm-README.1 +++ b/deps/npm/man/man1/npm-README.1 @@ -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 diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 index 9707d31b26..28c3c3da4b 100644 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ b/deps/npm/man/man1/npm-dist-tag.1 @@ -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 diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index 9151b68c0e..6c4f04fb87 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -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 index 0000000000..9d56285ad3 --- /dev/null +++ b/deps/npm/man/man1/npm-logout.1 @@ -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 + diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index 4f2d713e2e..553afb68fe 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -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.1 /path/to/npm └─┬ init\-package\-json@0\.0\.4 └── promzard@0\.1\.5 .fi diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index 6794269320..bf47dee787 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -10,7 +10,7 @@ npm [args] .RE .SH VERSION .P -2.5.1 +2.6.1 .SH DESCRIPTION .P npm is the package manager for the Node JavaScript platform\. It puts diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3 index 8fcfc1ebdc..dbb61b04a2 100644 --- a/deps/npm/man/man3/npm.3 +++ b/deps/npm/man/man3/npm.3 @@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) { .RE .SH VERSION .P -2.5.1 +2.6.1 .SH DESCRIPTION .P This is the API documentation for npm\. diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 index e4a928569e..fcdfa167d5 100644 --- a/deps/npm/man/man5/npm-json.5 +++ b/deps/npm/man/man5/npm-json.5 @@ -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 diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5 index e4a928569e..fcdfa167d5 100644 --- a/deps/npm/man/man5/package.json.5 +++ b/deps/npm/man/man5/package.json.5 @@ -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 diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7 index a712dce1da..77e554f3eb 100644 --- a/deps/npm/man/man7/npm-config.7 +++ b/deps/npm/man/man7/npm-config.7 @@ -340,8 +340,13 @@ Type: Number .RE .P -The depth to go when recursing directories for \fBnpm ls\fR and -\fBnpm cache ls\fR\|\. +The depth to go when recursing directories for \fBnpm ls\fR, +\fBnpm cache ls\fR, and \fBnpm outdated\fR\|\. +.P +For \fBnpm outdated\fR, a setting of \fBInfinity\fR will be treated as \fB0\fR +since that gives more useful information\. To show the outdated status +of all packages and dependents, use a large integer value, +e\.g\., \fBnpm outdated \-\-depth 9999\fR .SS description .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7 index f9c996fb78..c1491c918b 100644 --- a/deps/npm/man/man7/npm-index.7 +++ b/deps/npm/man/man7/npm-index.7 @@ -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 diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7 index de6a889185..d15e0de43e 100644 --- a/deps/npm/man/man7/semver.7 +++ b/deps/npm/man/man7/semver.7 @@ -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 diff --git a/deps/npm/node_modules/glob/README.md b/deps/npm/node_modules/glob/README.md index e479ae29e3..ba95474c28 100644 --- a/deps/npm/node_modules/glob/README.md +++ b/deps/npm/node_modules/glob/README.md @@ -264,6 +264,7 @@ filesystem. * `nocomment` Suppress `comment` behavior. (See below.) * `nonull` Return the pattern when no matches are found. * `nodir` Do not match directories, only files. +* `ignore` Add a pattern or an array of patterns to exclude matches. ## Comparisons to other fnmatch/glob implementations diff --git a/deps/npm/node_modules/glob/common.js b/deps/npm/node_modules/glob/common.js index 610d1245b4..491b9730bd 100644 --- a/deps/npm/node_modules/glob/common.js +++ b/deps/npm/node_modules/glob/common.js @@ -6,6 +6,8 @@ exports.ownProp = ownProp exports.makeAbs = makeAbs exports.finish = finish exports.mark = mark +exports.isIgnored = isIgnored +exports.childrenIgnored = childrenIgnored function ownProp (obj, field) { return Object.prototype.hasOwnProperty.call(obj, field) @@ -41,6 +43,29 @@ function alphasort (a, b) { return a.localeCompare(b) } +function setupIgnores (self, options) { + self.ignore = options.ignore || [] + + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore] + + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap) + } +} + +function ignoreMap (pattern) { + var gmatcher = null + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, '') + gmatcher = new Minimatch(gpattern, { nonegate: true }) + } + + return { + matcher: new Minimatch(pattern, { nonegate: true }), + gmatcher: gmatcher + } +} function setopts (self, pattern, options) { if (!options) @@ -74,6 +99,8 @@ function setopts (self, pattern, options) { self.statCache = options.statCache || Object.create(null) self.symlinks = options.symlinks || Object.create(null) + setupIgnores(self, options) + self.changedCwd = false var cwd = process.cwd() if (!ownProp(options, "cwd")) @@ -139,6 +166,11 @@ function finish (self) { } } + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored(self, m) + }) + self.found = all } @@ -166,7 +198,7 @@ function mark (self, p) { // lotta situps... function makeAbs (self, f) { var abs = f - if (f.charAt(0) === "/") { + if (f.charAt(0) === '/') { abs = path.join(self.root, f) } else if (exports.isAbsolute(f)) { abs = f @@ -175,3 +207,24 @@ function makeAbs (self, f) { } return abs } + + +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} + +function childrenIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) +} diff --git a/deps/npm/node_modules/glob/glob.js b/deps/npm/node_modules/glob/glob.js index 7401e0b7e9..0075c1fb86 100644 --- a/deps/npm/node_modules/glob/glob.js +++ b/deps/npm/node_modules/glob/glob.js @@ -56,6 +56,7 @@ var setopts = common.setopts var ownProp = common.ownProp var inflight = require('inflight') var util = require('util') +var childrenIgnored = common.childrenIgnored var once = require('once') @@ -270,6 +271,10 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) { var abs = this._makeAbs(read) + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() + var isGlobStar = remain[0] === minimatch.GLOBSTAR if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) @@ -277,7 +282,6 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) { this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) } - Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { var self = this this._readdir(abs, inGlobStar, function (er, entries) { diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json index 5b782d625e..c5032684b2 100644 --- a/deps/npm/node_modules/glob/package.json +++ b/deps/npm/node_modules/glob/package.json @@ -6,7 +6,7 @@ }, "name": "glob", "description": "a little globber", - "version": "4.3.5", + "version": "4.4.0", "repository": { "type": "git", "url": "git://github.com/isaacs/node-glob.git" @@ -42,16 +42,16 @@ "benchclean": "bash benchclean.sh" }, "license": "ISC", - "gitHead": "9de4cb6bfeb9c8458cf188fe91447b99bf8f3cfd", + "gitHead": "57e6b293108b48d9771a05e2b9a6a1b12cb81c12", "bugs": { "url": "https://github.com/isaacs/node-glob/issues" }, "homepage": "https://github.com/isaacs/node-glob", - "_id": "glob@4.3.5", - "_shasum": "80fbb08ca540f238acce5d11d1e9bc41e75173d3", - "_from": "glob@>=4.3.5 <4.4.0", - "_npmVersion": "2.2.0", - "_nodeVersion": "0.10.35", + "_id": "glob@4.4.0", + "_shasum": "91d63dc1ed1d82b52ba2cb76044852ccafc2130f", + "_from": "glob@>=4.4.0 <4.5.0", + "_npmVersion": "2.6.0", + "_nodeVersion": "1.1.0", "_npmUser": { "name": "isaacs", "email": "i@izs.me" @@ -63,9 +63,10 @@ } ], "dist": { - "shasum": "80fbb08ca540f238acce5d11d1e9bc41e75173d3", - "tarball": "http://registry.npmjs.org/glob/-/glob-4.3.5.tgz" + "shasum": "91d63dc1ed1d82b52ba2cb76044852ccafc2130f", + "tarball": "http://registry.npmjs.org/glob/-/glob-4.4.0.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz" + "_resolved": "https://registry.npmjs.org/glob/-/glob-4.4.0.tgz", + "readme": "ERROR: No README data found!" } diff --git a/deps/npm/node_modules/glob/sync.js b/deps/npm/node_modules/glob/sync.js index f981055af9..686f2c3694 100644 --- a/deps/npm/node_modules/glob/sync.js +++ b/deps/npm/node_modules/glob/sync.js @@ -14,6 +14,7 @@ var alphasorti = common.alphasorti var isAbsolute = common.isAbsolute var setopts = common.setopts var ownProp = common.ownProp +var childrenIgnored = common.childrenIgnored function globSync (pattern, options) { if (typeof options === 'function' || arguments.length === 3) @@ -98,6 +99,10 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { var abs = this._makeAbs(read) + //if ignored, skip processing + if (childrenIgnored(this, read)) + return + var isGlobStar = remain[0] === minimatch.GLOBSTAR if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) @@ -105,6 +110,7 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { this._processReaddir(prefix, read, abs, remain, index, inGlobStar) } + GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { var entries = this._readdir(abs, inGlobStar) diff --git a/deps/npm/node_modules/ini/ini.js b/deps/npm/node_modules/ini/ini.js index 1e232e7438..ddf5bd9cc6 100644 --- a/deps/npm/node_modules/ini/ini.js +++ b/deps/npm/node_modules/ini/ini.js @@ -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)) diff --git a/deps/npm/node_modules/ini/package.json b/deps/npm/node_modules/ini/package.json index a910b78861..5a1e10b81c 100644 --- a/deps/npm/node_modules/ini/package.json +++ b/deps/npm/node_modules/ini/package.json @@ -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" @@ -23,16 +23,16 @@ "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" } diff --git a/deps/npm/node_modules/ini/test/fixtures/foo.ini b/deps/npm/node_modules/ini/test/fixtures/foo.ini index 27555e9d82..fc2080f161 100644 --- a/deps/npm/node_modules/ini/test/fixtures/foo.ini +++ b/deps/npm/node_modules/ini/test/fixtures/foo.ini @@ -29,6 +29,8 @@ ar = this is included br = cold br = warm +eq = "eq=eq" + ; a section [a] av = a val diff --git a/deps/npm/node_modules/ini/test/foo.js b/deps/npm/node_modules/ini/test/foo.js index 9d34aa6fda..58102d1e72 100644 --- a/deps/npm/node_modules/ini/test/foo.js +++ b/deps/npm/node_modules/ini/test/foo.js @@ -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]" } } } }', 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 index 0000000000..686d9aecaf --- /dev/null +++ b/deps/npm/node_modules/npm-registry-client/.travis.yml @@ -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 index 0000000000..00964a4be7 --- /dev/null +++ b/deps/npm/node_modules/npm-registry-client/lib/logout.js @@ -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) +} diff --git a/deps/npm/node_modules/npm-registry-client/package.json b/deps/npm/node_modules/npm-registry-client/package.json index 0cd832ad7d..35b1ea4608 100644 --- a/deps/npm/node_modules/npm-registry-client/package.json +++ b/deps/npm/node_modules/npm-registry-client/package.json @@ -6,7 +6,7 @@ }, "name": "npm-registry-client", "description": "Client for the npm registry", - "version": "6.0.7", + "version": "6.1.1", "repository": { "url": "git://github.com/isaacs/npm-registry-client" }, @@ -40,12 +40,12 @@ "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//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 index 0000000000..bbf1b8c095 --- /dev/null +++ b/deps/npm/node_modules/npm-registry-client/test/logout.js @@ -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() +}) diff --git a/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js b/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js index 497a6b8c0d..5f6a33daa3 100644 --- a/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js +++ b/deps/npm/node_modules/npm-registry-client/test/request-gzip-content.js @@ -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") diff --git a/deps/npm/node_modules/read-package-json/package.json b/deps/npm/node_modules/read-package-json/package.json index 1fd2f674f7..3c2ff0ff80 100644 --- a/deps/npm/node_modules/read-package-json/package.json +++ b/deps/npm/node_modules/read-package-json/package.json @@ -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", @@ -30,15 +30,16 @@ "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" } diff --git a/deps/npm/node_modules/read-package-json/read-json.js b/deps/npm/node_modules/read-package-json/read-json.js index acb7d62d81..863f8e8e32 100644 --- a/deps/npm/node_modules/read-package-json/read-json.js +++ b/deps/npm/node_modules/read-package-json/read-json.js @@ -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 index 0000000000..2ed4ec5ca5 --- /dev/null +++ b/deps/npm/node_modules/read-package-json/test/bin.js @@ -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 index 0000000000..06c57f43bc --- /dev/null +++ b/deps/npm/node_modules/read-package-json/test/fixtures/badbin.json @@ -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 index 0000000000..d47a5270c6 --- /dev/null +++ b/deps/npm/node_modules/read-package-json/test/fixtures/bin.json @@ -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 index 0000000000..aaed878509 --- /dev/null +++ b/deps/npm/node_modules/read-package-json/test/fixtures/bin/echo @@ -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 index 0000000000..ef926f04d3 --- /dev/null +++ b/deps/npm/node_modules/read-package-json/test/fixtures/emptybin.json @@ -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": {} +} diff --git a/deps/npm/node_modules/semver/README.md b/deps/npm/node_modules/semver/README.md index 1ec8089546..b5e35ff0b5 100644 --- a/deps/npm/node_modules/semver/README.md +++ b/deps/npm/node_modules/semver/README.md @@ -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 diff --git a/deps/npm/node_modules/semver/package.json b/deps/npm/node_modules/semver/package.json index 51326d7a30..466de0e19a 100644 --- a/deps/npm/node_modules/semver/package.json +++ b/deps/npm/node_modules/semver/package.json @@ -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", @@ -21,16 +21,16 @@ "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" @@ -46,10 +46,9 @@ } ], "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" } diff --git a/deps/npm/node_modules/semver/semver.browser.js b/deps/npm/node_modules/semver/semver.browser.js index 49d785650e..1ee7204222 100644 --- a/deps/npm/node_modules/semver/semver.browser.js +++ b/deps/npm/node_modules/semver/semver.browser.js @@ -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); diff --git a/deps/npm/node_modules/semver/semver.browser.js.gz b/deps/npm/node_modules/semver/semver.browser.js.gz index c6b27c9ad311eba6e0be891e8c4decf10a8f4fb7..4bd16d689ccfb4706c0aed722ee0b8c03c683ce7 100644 GIT binary patch literal 7786 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 B_{jhO diff --git a/deps/npm/node_modules/semver/semver.js b/deps/npm/node_modules/semver/semver.js index 026173eabc..544bc83123 100644 --- a/deps/npm/node_modules/semver/semver.js +++ b/deps/npm/node_modules/semver/semver.js @@ -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); diff --git a/deps/npm/node_modules/semver/semver.min.js b/deps/npm/node_modules/semver/semver.min.js index 2f07e16ed3..6de8c73459 100644 --- a/deps/npm/node_modules/semver/semver.min.js +++ b/deps/npm/node_modules/semver/semver.min.js @@ -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'};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:er?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''};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''};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;r0){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)?=?)";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'};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:er?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''};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''};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;r0){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;ua 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 cd_~FtaU_pWurPys}ZaiZVz`l2}SS;C^rr{*4 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 diff --git a/deps/npm/node_modules/semver/test/index.js b/deps/npm/node_modules/semver/test/index.js index 1528bb7788..926d560fe0 100644 --- a/deps/npm/node_modules/semver/test/index.js +++ b/deps/npm/node_modules/semver/test/index.js @@ -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 index 0000000000..e9d4039c8b --- /dev/null +++ b/deps/npm/node_modules/semver/test/major-minor-patch.js @@ -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(); +}); diff --git a/deps/npm/package.json b/deps/npm/package.json index 07b74e0960..55a4ea72e3 100644 --- a/deps/npm/package.json +++ b/deps/npm/package.json @@ -1,5 +1,5 @@ { - "version": "2.5.1", + "version": "2.6.1", "name": "npm", "description": "a package manager for JavaScript", "keywords": [ @@ -53,11 +53,11 @@ "fstream-npm": "~1.0.1", "github-url-from-git": "~1.4.0", "github-url-from-username-repo": "~1.0.2", - "glob": "~4.3.5", + "glob": "~4.4.0", "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", @@ -79,13 +79,13 @@ "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", @@ -171,7 +171,8 @@ "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", diff --git a/deps/npm/test/common-tap.js b/deps/npm/test/common-tap.js index 7dcfc35cc8..4036708286 100644 --- a/deps/npm/test/common-tap.js +++ b/deps/npm/test/common-tap.js @@ -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 } diff --git a/deps/npm/test/fixtures/config/userconfig-with-gc b/deps/npm/test/fixtures/config/userconfig-with-gc index 3e5d605f4e..7268fcb3c6 100644 --- a/deps/npm/test/fixtures/config/userconfig-with-gc +++ b/deps/npm/test/fixtures/config/userconfig-with-gc @@ -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 diff --git a/deps/npm/test/tap/add-remote-git-fake-windows.js b/deps/npm/test/tap/add-remote-git-fake-windows.js index 5de7cff7d0..3052477927 100644 --- a/deps/npm/test/tap/add-remote-git-fake-windows.js +++ b/deps/npm/test/tap/add-remote-git-fake-windows.js @@ -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 () { diff --git a/deps/npm/test/tap/config-credentials.js b/deps/npm/test/tap/config-credentials.js index c24bb7e1b2..1cb2a7eb41 100644 --- a/deps/npm/test/tap/config-credentials.js +++ b/deps/npm/test/tap/config-credentials.js @@ -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 index 0000000000..97a54d2ece --- /dev/null +++ b/deps/npm/test/tap/config-edit.js @@ -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 index 0000000000..70879d81f1 --- /dev/null +++ b/deps/npm/test/tap/install-man.js @@ -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 index 0000000000..1d9392ad16 --- /dev/null +++ b/deps/npm/test/tap/logout.js @@ -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) +} diff --git a/deps/npm/test/tap/outdated-depth-deep.js b/deps/npm/test/tap/outdated-depth-deep.js new file mode 100644 index 0000000000..c208669b37 --- /dev/null +++ b/deps/npm/test/tap/outdated-depth-deep.js @@ -0,0 +1,78 @@ +var common = require("../common-tap") + , path = require("path") + , test = require("tap").test + , rimraf = require("rimraf") + , npm = require("../../") + , mr = require("npm-registry-mock") + , pkg = path.resolve(__dirname, "outdated-depth-deep") + , cache = path.resolve(pkg, "cache") + +var osenv = require("osenv") +var mkdirp = require("mkdirp") +var fs = require("fs") + +var pj = JSON.stringify({ + "name": "whatever", + "description": "yeah idk", + "version": "1.2.3", + "main": "index.js", + "dependencies": { + "underscore": "1.3.1", + "npm-test-peer-deps": "0.0.0" + }, + "repository": "git://github.com/luk-/whatever" +}, null, 2) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) +} + +function setup () { + mkdirp.sync(pkg) + process.chdir(pkg) + fs.writeFileSync(path.resolve(pkg, "package.json"), pj) +} + +test("setup", function (t) { + cleanup() + setup() + t.end() +}) + +test("outdated depth deep (9999)", function (t) { + var underscoreOutdated = ["underscore", "1.3.1", "1.3.1", "1.5.1", "1.3.1"] + var childPkg = path.resolve(pkg, "node_modules", "npm-test-peer-deps") + + var expected = [ [pkg].concat(underscoreOutdated), + [childPkg].concat(underscoreOutdated) ] + + process.chdir(pkg) + + mr({port : common.port}, function (er, s) { + npm.load({ + cache: cache + , loglevel: "silent" + , registry: common.registry + , depth: 9999 + } + , function () { + npm.install(".", function (er) { + if (er) throw new Error(er) + npm.outdated(function (err, d) { + if (err) throw new Error(err) + t.deepEqual(d, expected) + s.close() + t.end() + }) + }) + } + ) + }) +}) + + +test("cleanup", function (t) { + cleanup() + t.end() +}) diff --git a/deps/npm/test/tap/outdated-depth.js b/deps/npm/test/tap/outdated-depth.js index 213c4d60f4..4e1aca0e7d 100644 --- a/deps/npm/test/tap/outdated-depth.js +++ b/deps/npm/test/tap/outdated-depth.js @@ -30,7 +30,6 @@ test("outdated depth zero", function (t) { cache: cache , loglevel: "silent" , registry: common.registry - , depth: 0 } , function () { npm.install(".", function (er) { diff --git a/deps/npm/test/tap/outdated-depth/package.json b/deps/npm/test/tap/outdated-depth/package.json index df269dc725..aed35fe031 100644 --- a/deps/npm/test/tap/outdated-depth/package.json +++ b/deps/npm/test/tap/outdated-depth/package.json @@ -4,7 +4,8 @@ "version": "1.2.3", "main": "index.js", "dependencies": { - "underscore": "1.3.1" + "underscore": "1.3.1", + "npm-test-peer-deps": "0.0.0" }, "repository": "git://github.com/luk-/whatever" } diff --git a/deps/npm/test/tap/umask-lifecycle.js b/deps/npm/test/tap/umask-lifecycle.js index a40eae44be..e4f91a2df6 100644 --- a/deps/npm/test/tap/umask-lifecycle.js +++ b/deps/npm/test/tap/umask-lifecycle.js @@ -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, diff --git a/deps/npm/test/tap/version-git-not-clean.js b/deps/npm/test/tap/version-git-not-clean.js index efca362407..1deae49f92 100644 --- a/deps/npm/test/tap/version-git-not-clean.js +++ b/deps/npm/test/tap/version-git-not-clean.js @@ -55,7 +55,8 @@ test("npm version 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() })