deps: upgrade npm to 6.7.0

PR-URL: https://github.com/nodejs/node/pull/25804
Reviewed-By: Myles Borins <myles.borins@gmail.com>
This commit is contained in:
Kat Marchán 2019-01-29 14:43:00 -08:00 committed by Myles Borins
parent b361f9577f
commit 43dd49c978
No known key found for this signature in database
GPG Key ID: 933B01F40B5CA946
1221 changed files with 65445 additions and 23860 deletions

7
deps/npm/AUTHORS vendored
View File

@ -612,3 +612,10 @@ Joe Bottigliero <joe@bottigliero.com>
Nikolai Vavilov <vvnicholas@gmail.com>
Kelvin Jin <kelvinjin@google.com>
乱序 <midare@utakana.de>
Audrey Eschright <audrey@npmjs.com>
Xu Meng <dmabupt@gmail.com>
George <george.taveras1231@gmail.com>
Beni von Cheni <benjaminlchen@gmail.com>
Frédéric Harper <fharper@npmjs.com>
Johannes Würbach <johannes.wuerbach@googlemail.com>
ƇʘƁ̆ąƇ́ <anchnk@users.noreply.github.com>

309
deps/npm/CHANGELOG.md vendored
View File

@ -1,3 +1,308 @@
## v6.7.0 (2019-01-23):
Hey y'all! This is a quick hotfix release that includes some important fixes to
`npm@6.6.0` related to the large rewrite/refactor. We're tagging it as a feature
release because the changes involve some minor new features, and semver is
semver, but there's nothing major here.
### NEW FEATURES
* [`50463f58b`](https://github.com/npm/cli/commit/50463f58b4b70180a85d6d8c10fcf50d8970ef5e)
Improve usage errors to `npm org` commands and add optional filtering to `npm
org ls` subcommand.
([@zkat](https://github.com/zkat))
### BUGFIXES
* [`4027070b0`](https://github.com/npm/cli/commit/4027070b03be3bdae2515f2291de89b91f901df9)
Fix default usage printout for `npm org` so you actually see how it's supposed
to be used.
([@zkat](https://github.com/zkat))
* [`cfea6ea5b`](https://github.com/npm/cli/commit/cfea6ea5b67ec5e4ec57e3a9cb8c82d018cb5476)
fix default usage message for npm hook
([@zkat](https://github.com/zkat))
### DOCS
* [`e959e1421`](https://github.com/npm/cli/commit/e959e14217d751ddb295565fd75cc81de1ee0d5b)
Add manpage for `npm org` command.
([@zkat](https://github.com/zkat))
### DEPENDENCY BUMPS
* [`8543fc357`](https://github.com/npm/cli/commit/8543fc3576f64e91f7946d4c56a5ffb045b55156)
`pacote@9.4.0`: Fall back to "fullfat" packuments on ETARGET errors. This will
make it so that, when a package is published but the corgi follower hasn't
caught up, users can still install a freshly-published package.
([@zkat](https://github.com/zkat))
* [`75475043b`](https://github.com/npm/cli/commit/75475043b03a254b2e7db2c04c3f0baea31d8dc5)
[npm.community#4752](https://npm.community/t/npm-6-6-0-broke-authentication-with-npm-registry-couchapp/4752)
`libnpmpublish@1.1.1`: Fixes auth error for username/password legacy authentication.
([@sreeramjayan](https://github.com/sreeramjayan))
* [`0af8c00ac`](https://github.com/npm/cli/commit/0af8c00acb01849362ffca25b567cc62447c7175)
[npm.community#4746](https://npm.community/t/npm-6-6-0-release-breaking-docker-npm-ci-commands/4746)
`libcipm@3.0.3`: Fixes issue with "cannot run in wd" errors for run-scripts.
([@zkat](https://github.com/zkat))
* [`5a7962e46`](https://github.com/npm/cli/commit/5a7962e46f582c6bd91784b0ddc941ed45e9f802)
`write-file-atomic@2.4.2`:
Fixes issues with leaking `signal-exit` instances and file descriptors.
([@iarna](https://github.com/iarna))
## v6.6.0 (2019-01-17):
### REFACTORING OUT npm-REGISTRY-CLIENT
Today is an auspicious day! This release marks the end of a massive internal
refactor to npm that means we finally got rid of the legacy
[`npm-registry-client`](https://npm.im/npm-registry-client) in favor of the
shiny, new, `window.fetch`-like
[`npm-registry-fetch`](https://npm.im/npm-registry-fetch).
Now, the installer had already done most of this work with the release of
`npm@5`, but it turns out _every other command_ still used the legacy client.
This release updates all of those commands to use the new client, and while
we're at it, adds a few extra goodies:
* All OTP-requiring commands will now **prompt**. `--otp` is no longer required for `dist-tag`, `access`, et al.
* We're starting to integrate a new config system which will eventually get extracted into a standalone package.
* We now use [`libnpm`](https://npm.im/libnpm) for the API functionality of a lot of our commands! That means you can install a library if you want to write your own tooling around them.
* There's now an `npm org` command for managing users in your org.
* [`pacote`](https://npm.im/pacote) now consumes npm-style configurations, instead of its own naming for various config vars. This will make it easier to load npm configs using `libnpm.config` and hand them directly to `pacote`.
There's too many commits to list all of them here, so check out the PR if you're
curious about details:
* [`c5af34c05`](https://github.com/npm/cli/commit/c5af34c05fd569aecd11f18d6d0ddeac3970b253)
[npm-registry-client@REMOVED](https://www.youtube.com/watch\?v\=kPIdRJlzERo)
([@zkat](https://github.com/zkat))
* [`4cca9cb90`](https://github.com/npm/cli/commit/4cca9cb9042c0eeb743377e8f1ae1c07733df43f)
[`ad67461dc`](https://github.com/npm/cli/commit/ad67461dc3a73d5ae6569fdbee44c67e1daf86e7)
[`77625f9e2`](https://github.com/npm/cli/commit/77625f9e20d4285b7726b3bf3ebc10cb21c638f0)
[`6e922aefb`](https://github.com/npm/cli/commit/6e922aefbb4634bbd77ed3b143e0765d63afc7f9)
[`584613ea8`](https://github.com/npm/cli/commit/584613ea8ff94b927db4957e5647504b30ca2b1f)
[`64de4ebf0`](https://github.com/npm/cli/commit/64de4ebf019b217179039124c6621e74651e4d27)
[`6cd87d1a9`](https://github.com/npm/cli/commit/6cd87d1a9bb90e795f9891ea4db384435f4a8930)
[`2786834c0`](https://github.com/npm/cli/commit/2786834c0257b8bb1bbb115f1ce7060abaab2e17)
[`514558e09`](https://github.com/npm/cli/commit/514558e094460fd0284a759c13965b685133b3fe)
[`dec07ebe3`](https://github.com/npm/cli/commit/dec07ebe3312245f6421c6e523660be4973ae8c2)
[`084741913`](https://github.com/npm/cli/commit/084741913c4fdb396e589abf3440b4be3aa0b67e)
[`45aff0e02`](https://github.com/npm/cli/commit/45aff0e02251785a85e56eafacf9efaeac6f92ae)
[`846ddcc44`](https://github.com/npm/cli/commit/846ddcc44538f2d9a51ac79405010dfe97fdcdeb)
[`8971ba1b9`](https://github.com/npm/cli/commit/8971ba1b953d4f05ff5094f1822b91526282edd8)
[`99156e081`](https://github.com/npm/cli/commit/99156e081a07516d6c970685bc3d858f89dc4f9c)
[`ab2155306`](https://github.com/npm/cli/commit/ab215530674d7f6123c9572d0ad4ca9e9b5fb184)
[`b37a66542`](https://github.com/npm/cli/commit/b37a66542ca2879069b2acd338b1904de71b7f40)
[`d2af0777a`](https://github.com/npm/cli/commit/d2af0777ac179ff5009dbbf0354a4a84f151b60f)
[`e0b4c6880`](https://github.com/npm/cli/commit/e0b4c6880504fa2e8491c2fbd098efcb2e496849)
[`ff72350b4`](https://github.com/npm/cli/commit/ff72350b4c56d65e4a92671d86a33080bf3c2ea5)
[`6ed943303`](https://github.com/npm/cli/commit/6ed943303ce7a267ddb26aa25caa035f832895dd)
[`90a069e7d`](https://github.com/npm/cli/commit/90a069e7d4646682211f4cabe289c306ee1d5397)
[`b24ed5fdc`](https://github.com/npm/cli/commit/b24ed5fdc3a4395628465ae5273bad54eea274c8)
[`ec9fcc14f`](https://github.com/npm/cli/commit/ec9fcc14f4e0e2f3967e2fd6ad8b8433076393cb)
[`8a56fa39e`](https://github.com/npm/cli/commit/8a56fa39e61136da45565447fe201a57f04ad4cd)
[`41d19e18f`](https://github.com/npm/cli/commit/41d19e18f769c6f0acfdffbdb01d12bf332908ce)
[`125ff9551`](https://github.com/npm/cli/commit/125ff9551595dda9dab2edaef10f4c73ae8e1433)
[`1c3b226ff`](https://github.com/npm/cli/commit/1c3b226ff37159c426e855e83c8f6c361603901d)
[`3c0a7b06b`](https://github.com/npm/cli/commit/3c0a7b06b6473fe068fc8ae8466c07a177975b87)
[`08fcb3f0f`](https://github.com/npm/cli/commit/08fcb3f0f26e025702b35253ed70a527ab69977f)
[`c8135d97a`](https://github.com/npm/cli/commit/c8135d97a424b38363dc4530c45e4583471e9849)
[`ae936f22c`](https://github.com/npm/cli/commit/ae936f22ce80614287f2769e9aaa9a155f03cc15)
[#2](https://github.com/npm/cli/pull/2)
Move rest of commands to `npm-registry-fetch` and use [`figgy-pudding`](https://npm.im/figgy-pudding) for configs.
([@zkat](https://github.com/zkat))
### NEW FEATURES
* [`02c837e01`](https://github.com/npm/cli/commit/02c837e01a71a26f37cbd5a09be89df8a9ce01da)
[#106](https://github.com/npm/cli/pull/106)
Make `npm dist-tags` the same as `npm dist-tag ls`.
([@isaacs](https://github.com/isaacs))
* [`1065a7809`](https://github.com/npm/cli/commit/1065a7809161fd4dc23e96b642019fc842fdacf2)
[#65](https://github.com/npm/cli/pull/65)
Add support for `IBM i`.
([@dmabupt](https://github.com/dmabupt))
* [`a22e6f5fc`](https://github.com/npm/cli/commit/a22e6f5fc3e91350d3c64dcc88eabbe0efbca759)
[#131](https://github.com/npm/cli/pull/131)
Update profile to support new npm-profile API.
([@zkat](https://github.com/zkat))
### BUGFIXES
* [`890a74458`](https://github.com/npm/cli/commit/890a74458dd4a55e2d85f3eba9dbf125affa4206)
[npm.community#3278](https://npm.community/t/3278)
Fix support for passing git binary path config with `--git`.
([@larsgw](https://github.com/larsgw))
* [`90e55a143`](https://github.com/npm/cli/commit/90e55a143ed1de8678d65c17bc3c2b103a15ddac)
[npm.community#2713](https://npm.community/t/npx-envinfo-preset-jest-fails-on-windows-with-a-stack-trace/2713)
Check for `npm.config`'s existence in `error-handler.js` to prevent weird
errors when failures happen before config object is loaded.
([@BeniCheni](https://github.com/BeniCheni))
* [`134207174`](https://github.com/npm/cli/commit/134207174652e1eb6d7b0f44fd9858a0b6a0cd6c)
[npm.community#2569](https://npm.community/t/2569)
Fix checking for optional dependencies.
([@larsgw](https://github.com/larsgw))
* [`7a2f6b05d`](https://github.com/npm/cli/commit/7a2f6b05d27f3bcf47a48230db62e86afa41c9d3)
[npm.community#4172](https://npm.community/t/4172)
Remove tink experiments.
([@larsgw](https://github.com/larsgw))
* [`c5b6056b6`](https://github.com/npm/cli/commit/c5b6056b6b35eefb81ae5fb00a5c7681c5318c22)
[#123](https://github.com/npm/cli/pull/123)
Handle git branch references correctly.
([@johanneswuerbach](https://github.com/johanneswuerbach))
* [`f58b43ef2`](https://github.com/npm/cli/commit/f58b43ef2c5e3dea2094340a0cf264b2d11a5da4)
[npm.community#3983](https://npm.community/t/npm-audit-error-messaging-update-for-401s/3983)
Report any errors above 400 as potentially not supporting audit.
([@zkat](https://github.com/zkat))
* [`a5c9e6f35`](https://github.com/npm/cli/commit/a5c9e6f35a591a6e2d4b6ace5c01bc03f2b75fdc)
[#124](https://github.com/npm/cli/pull/124)
Set default homepage to an empty string.
([@anchnk](https://github.com/anchnk))
* [`5d076351d`](https://github.com/npm/cli/commit/5d076351d7ec1d3585942a9289548166a7fbbd4c)
[npm.community#4054](https://npm.community/t/4054)
Fix npm-prefix description.
([@larsgw](https://github.com/larsgw))
### DOCS
* [`31a7274b7`](https://github.com/npm/cli/commit/31a7274b70de18b24e7bee51daa22cc7cbb6141c)
[#71](https://github.com/npm/cli/pull/71)
Fix typo in npm-token documentation.
([@GeorgeTaveras1231](https://github.com/GeorgeTaveras1231))
* [`2401b7592`](https://github.com/npm/cli/commit/2401b7592c6ee114e6db7077ebf8c072b7bfe427)
Correct docs for fake-registry interface.
([@iarna](https://github.com/iarna))
### DEPENDENCIES
* [`9cefcdc1d`](https://github.com/npm/cli/commit/9cefcdc1d2289b56f9164d14d7e499e115cfeaee)
`npm-registry-fetch@3.8.0`
([@zkat](https://github.com/zkat))
* [`1c769c9b3`](https://github.com/npm/cli/commit/1c769c9b3e431d324c1a5b6dd10e1fddb5cb88c7)
`pacote@9.1.0`
([@zkat](https://github.com/zkat))
* [`f3bc5539b`](https://github.com/npm/cli/commit/f3bc5539b30446500abcc3873781b2c717f8e22c)
`figgy-pudding@3.5.1`
([@zkat](https://github.com/zkat))
* [`bf7199d3c`](https://github.com/npm/cli/commit/bf7199d3cbf50545da1ebd30d28f0a6ed5444a00)
`npm-profile@4.0.1`
([@zkat](https://github.com/zkat))
* [`118c50496`](https://github.com/npm/cli/commit/118c50496c01231cab3821ae623be6df89cb0a32)
`semver@5.5.1`
([@isaacs](https://github.com/isaacs))
* [`eab4df925`](https://github.com/npm/cli/commit/eab4df9250e9169c694b3f6c287d2932bf5e08fb)
`libcipm@3.0.2`
([@zkat](https://github.com/zkat))
* [`b86e51573`](https://github.com/npm/cli/commit/b86e515734faf433dc6c457c36c1de52795aa870)
`libnpm@1.4.0`
([@zkat](https://github.com/zkat))
* [`56fffbff2`](https://github.com/npm/cli/commit/56fffbff27fe2fae8bef27d946755789ef0d89bd)
`get-stream@4.1.0`
([@zkat](https://github.com/zkat))
* [`df972e948`](https://github.com/npm/cli/commit/df972e94868050b5aa42ac18b527fd929e1de9e4)
npm-profile@REMOVED
([@zkat](https://github.com/zkat))
* [`32c73bf0e`](https://github.com/npm/cli/commit/32c73bf0e3f0441d0c7c940292235d4b93aa87e2)
`libnpm@2.0.1`
([@zkat](https://github.com/zkat))
* [`569491b80`](https://github.com/npm/cli/commit/569491b8042f939dc13986b6adb2a0a260f95b63)
`licensee@5.0.0`
([@zkat](https://github.com/zkat))
* [`a3ba0ccf1`](https://github.com/npm/cli/commit/a3ba0ccf1fa86aec56b1ad49883abf28c1f56b3c)
move rimraf to prod deps
([@zkat](https://github.com/zkat))
* [`f63a0d6cf`](https://github.com/npm/cli/commit/f63a0d6cf0b7db3dcc80e72e1383c3df723c8119)
`spdx-license-ids@3.0.3`:
Ref: https://github.com/npm/cli/pull/121
([@zkat](https://github.com/zkat))
* [`f350e714f`](https://github.com/npm/cli/commit/f350e714f66a77f71a7ebe17daeea2ea98179a1a)
`aproba@2.0.0`
([@aeschright](https://github.com/aeschright))
* [`a67e4d8b2`](https://github.com/npm/cli/commit/a67e4d8b214e58ede037c3854961acb33fd889da)
`byte-size@5.0.1`
([@aeschright](https://github.com/aeschright))
* [`8bea4efa3`](https://github.com/npm/cli/commit/8bea4efa34857c4e547904b3630dd442def241de)
`cacache@11.3.2`
([@aeschright](https://github.com/aeschright))
* [`9d4776836`](https://github.com/npm/cli/commit/9d4776836a4eaa4b19701b4e4f00cd64578bf078)
`chownr@1.1.1`
([@aeschright](https://github.com/aeschright))
* [`70da139e9`](https://github.com/npm/cli/commit/70da139e97ed1660c216e2d9b3f9cfb986bfd4a4)
`ci-info@2.0.0`
([@aeschright](https://github.com/aeschright))
* [`bcdeddcc3`](https://github.com/npm/cli/commit/bcdeddcc3d4dc242f42404223dafe4afdc753b32)
`cli-table3@0.5.1`
([@aeschright](https://github.com/aeschright))
* [`63aab82c7`](https://github.com/npm/cli/commit/63aab82c7bfca4f16987cf4156ddebf8d150747c)
`is-cidr@3.0.0`
([@aeschright](https://github.com/aeschright))
* [`d522bd90c`](https://github.com/npm/cli/commit/d522bd90c3b0cb08518f249ae5b90bd609fff165)
`JSONStream@1.3.5`
([@aeschright](https://github.com/aeschright))
* [`2a59bfc79`](https://github.com/npm/cli/commit/2a59bfc7989bd5575d8cbba912977c6d1ba92567)
`libnpmhook@5.0.2`
([@aeschright](https://github.com/aeschright))
* [`66d60e394`](https://github.com/npm/cli/commit/66d60e394e5a96330f90e230505758f19a3643ac)
`marked@0.6.0`
([@aeschright](https://github.com/aeschright))
* [`8213def9a`](https://github.com/npm/cli/commit/8213def9aa9b6e702887e4f2ed7654943e1e4154)
`npm-packlist@1.2.0`
([@aeschright](https://github.com/aeschright))
* [`e4ffc6a2b`](https://github.com/npm/cli/commit/e4ffc6a2bfb8d0b7047cb6692030484760fc8c91)
`unique-filename@1.1.1`
([@aeschright](https://github.com/aeschright))
* [`09a5c2fab`](https://github.com/npm/cli/commit/09a5c2fabe0d1c00ec8c99f328f6d28a3495eb0b)
`semver@5.6.0`
([@aeschright](https://github.com/aeschright))
* [`740e79e17`](https://github.com/npm/cli/commit/740e79e17a78247f73349525043c9388ce94459a)
`rimraf@2.6.3`
([@aeschright](https://github.com/aeschright))
* [`455476c8d`](https://github.com/npm/cli/commit/455476c8d148ca83a4e030e96e93dcf1c7f0ff5f)
`require-inject@1.4.4`
([@aeschright](https://github.com/aeschright))
* [`3f40251c5`](https://github.com/npm/cli/commit/3f40251c5868feaacbcdbcb1360877ce76998f5e)
`npm-pick-manifest@2.2.3`
([@aeschright](https://github.com/aeschright))
* [`4ffa8a8e9`](https://github.com/npm/cli/commit/4ffa8a8e9e80e5562898dd76fe5a49f5694f38c8)
`query-string@6.2.0`
([@aeschright](https://github.com/aeschright))
* [`a0a0ca9ec`](https://github.com/npm/cli/commit/a0a0ca9ec2a962183d420fa751f4139969760f18)
`pacote@9.3.0`
([@aeschright](https://github.com/aeschright))
* [`5777ea8ad`](https://github.com/npm/cli/commit/5777ea8ad2058be3166a6dad2d31d2d393c9f778)
`readable-stream@3.1.1`
([@aeschright](https://github.com/aeschright))
* [`887e94386`](https://github.com/npm/cli/commit/887e94386f42cb59a5628e7762b3662d084b23c8)
`lru-cache@4.1.5`
([@aeschright](https://github.com/aeschright))
* [`41f15524c`](https://github.com/npm/cli/commit/41f15524c58c59d206c4b1d25ae9e0f22745213b)
Updating semver docs.
([@aeschright](https://github.com/aeschright))
* [`fb3bbb72d`](https://github.com/npm/cli/commit/fb3bbb72d448ac37a465b31233b21381917422f3)
`npm-audit-report@1.3.2`:
([@melkikh](https://github.com/melkikh))
### TESTING
* [`f1edffba9`](https://github.com/npm/cli/commit/f1edffba90ebd96cf88675d2e18ebc48954ba50e)
Modernize maketest script.
([@iarna](https://github.com/iarna))
* [`ae263473d`](https://github.com/npm/cli/commit/ae263473d92a896b482830d4019a04b5dbd1e9d7)
maketest: Use promise based example common.npm call.
([@iarna](https://github.com/iarna))
* [`d9970da5e`](https://github.com/npm/cli/commit/d9970da5ee97a354eab01cbf16f9101693a15d2d)
maketest: Use newEnv for env production.
([@iarna](https://github.com/iarna))
### MISCELLANEOUS
* [`c665f35aa`](https://github.com/npm/cli/commit/c665f35aacdb8afdbe35f3dd7ccb62f55ff6b896)
[#119](https://github.com/npm/cli/pull/119)
Replace var with const/let in lib/repo.js.
([@watilde](https://github.com/watilde))
* [`46639ba9f`](https://github.com/npm/cli/commit/46639ba9f04ea729502f1af28b02eb67fb6dcb66)
Update package-lock.json for https tarball URLs
([@aeschright](https://github.com/aeschright))
## v6.5.0 (2018-11-28):
### NEW FEATURES
@ -13,7 +318,7 @@
### BUGFIXES
* [`89652cb9b`](https://github.com/npm/cli/commit/89652cb9b810f929f5586fc90cc6794d076603fb)
[npm.community#1661](https://npm.community/t/https://npm.community/t/1661)
[npm.community#1661](https://npm.community/t/1661)
Fix sign-git-commit options. They were previously totally wrong.
([@zkat](https://github.com/zkat))
* [`414f2d1a1`](https://github.com/npm/cli/commit/414f2d1a1bdffc02ed31ebb48a43216f284c21d4)
@ -167,7 +472,7 @@
circular dependency fix, as well as adding a proper LICENSE file.
([@isaacs](https://github.com/isaacs))
* [`e8d5f4418`](https://github.com/npm/cli/commit/e8d5f441821553a31fc8cd751670663699d2c8ce)
[npm.community#632](https://npm.community/t/https://npm.community/t/using-npm-ci-does-not-run-prepare-script-for-git-modules/632)
[npm.community#632](https://npm.community/t/using-npm-ci-does-not-run-prepare-script-for-git-modules/632)
`libcipm@2.0.2`:
Fixes issue where `npm ci` wasn't running the `prepare` lifecycle script when
installing git dependencies

View File

@ -9,6 +9,9 @@ npm-access(1) -- Set access level on published packages
npm access grant <read-only|read-write> <scope:team> [<package>]
npm access revoke <scope:team> [<package>]
npm access 2fa-required [<package>]
npm access 2fa-not-required [<package>]
npm access ls-packages [<user>|<scope>|<scope:team>]
npm access ls-collaborators [<package> [<user>]]
npm access edit [<package>]
@ -28,6 +31,10 @@ subcommand.
Add or remove the ability of users and teams to have read-only or read-write
access to a package.
* 2fa-required / 2fa-not-required:
Configure whether a package requires that anyone publishing it have two-factor
authentication enabled on their account.
* ls-packages:
Show all of the packages a user or a team is able to access, along with the
access level, except for read-only public packages (it won't print the whole
@ -70,6 +77,7 @@ Management of teams and team memberships is done with the `npm team` command.
## SEE ALSO
* [`libnpmaccess`](https://npm.im/libnpmaccess)
* npm-team(1)
* npm-publish(1)
* npm-config(7)

View File

@ -26,6 +26,8 @@ Add, remove, and enumerate distribution tags on a package:
Show all of the dist-tags for a package, defaulting to the package in
the current prefix.
This is the default action if none is specified.
A tag can be used when installing packages as a reference to a version instead
of using a specific version number:

50
deps/npm/doc/cli/npm-org.md vendored Normal file
View File

@ -0,0 +1,50 @@
npm-org(1) -- Manage orgs
===================================
## SYNOPSIS
npm org set <orgname> <username> [developer | admin | owner]
npm org rm <orgname> <username>
npm org ls <orgname> [<username>]
## EXAMPLE
Add a new developer to an org:
```
$ npm org set my-org @mx-smith
```
Add a new admin to an org (or change a developer to an admin):
```
$ npm org set my-org @mx-santos admin
```
Remove a user from an org:
```
$ npm org rm my-org mx-santos
```
List all users in an org:
```
$ npm org ls my-org
```
List all users in JSON format:
```
$ npm org ls my-org --json
```
See what role a user has in an org:
```
$ npm org ls my-org @mx-santos
```
## DESCRIPTION
You can use the `npm org` commands to manage and view users of an organization.
It supports adding and removing users, changing their roles, listing them, and
finding specific ones and their roles.
## SEE ALSO
* [Documentation on npm Orgs](https://docs.npmjs.com/orgs/)

View File

@ -8,7 +8,8 @@ npm-prefix(1) -- Display prefix
## DESCRIPTION
Print the local prefix to standard out. This is the closest parent directory
to contain a package.json file unless `-g` is also specified.
to contain a `package.json` file or `node_modules` directory, unless `-g` is
also specified.
If `-g` is specified, this will be the value of the global prefix. See
`npm-config(7)` for more detail.

View File

@ -9,7 +9,7 @@ npm-token(1) -- Manage your authentication tokens
## DESCRIPTION
This list you list, create and revoke authentication tokens.
This lets you list, create and revoke authentication tokens.
* `npm token list`:
Shows a table of all active authentication tokens. You can request this as

View File

@ -125,6 +125,10 @@ Log out of the registry
List installed packages
### npm-org(1)
Manage orgs
### npm-outdated(1)
Check for outdated packages

View File

@ -29,8 +29,6 @@ As a command-line utility:
```
$ semver -h
SemVer 5.3.0
A JavaScript implementation of the http://semver.org/ specification
Copyright Isaac Z. Schlueter
@ -54,6 +52,9 @@ Options:
-l --loose
Interpret versions and ranges loosely
-p --include-prerelease
Always include prerelease versions in range matching
-c --coerce
Coerce a string into SemVer if possible
(does not imply --loose)
@ -289,9 +290,19 @@ part ::= nr | [-0-9A-Za-z]+
## Functions
All methods and classes take a final `loose` boolean argument that, if
true, will be more forgiving about not-quite-valid semver strings.
The resulting output will always be 100% strict, of course.
All methods and classes take a final `options` object argument. All
options in this object are `false` by default. The options supported
are:
- `loose` Be more forgiving about not-quite-valid semver strings.
(Any resulting output will always be 100% strict compliant, of
course.) For backwards compatibility reasons, if the `options`
argument is a boolean value instead of an object, it is interpreted
to be the `loose` param.
- `includePrerelease` Set to suppress the [default
behavior](https://github.com/npm/node-semver#prerelease-tags) of
excluding prerelease tagged versions from ranges unless they are
explicitly opted into.
Strict-mode Comparators and Ranges will be strict about the SemVer
strings that they parse.

View File

@ -34,7 +34,7 @@ registries</a>.</p>
<p>Run <code>make install</code>. npm will be installed with node.</p>
<p>If you want a more fancy pants install (a different version, customized
paths, etc.) then read on.</p>
<h2 id="fancy-install-unix-">Fancy Install (Unix)</h2>
<h2 id="fancy-install-unix">Fancy Install (Unix)</h2>
<p>There&#39;s a pretty robust install script at
<a href="https://www.npmjs.com/install.sh">https://www.npmjs.com/install.sh</a>. You can download that and run it.</p>
<p>Here&#39;s an example using curl:</p>
@ -118,5 +118,5 @@ doubt tell you to put the output in a gist or email.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@6.5.0</p>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@6.7.0</p>

View File

@ -17,6 +17,9 @@ npm access restricted [&lt;package&gt;]
npm access grant &lt;read-only|read-write&gt; &lt;scope:team&gt; [&lt;package&gt;]
npm access revoke &lt;scope:team&gt; [&lt;package&gt;]
npm access 2fa-required [&lt;package&gt;]
npm access 2fa-not-required [&lt;package&gt;]
npm access ls-packages [&lt;user&gt;|&lt;scope&gt;|&lt;scope:team&gt;]
npm access ls-collaborators [&lt;package&gt; [&lt;user&gt;]]
npm access edit [&lt;package&gt;]</code></pre><h2 id="description">DESCRIPTION</h2>
@ -32,6 +35,10 @@ Set a package to be either publicly accessible or restricted.</p>
Add or remove the ability of users and teams to have read-only or read-write
access to a package.</p>
</li>
<li><p>2fa-required / 2fa-not-required:
Configure whether a package requires that anyone publishing it have two-factor
authentication enabled on their account.</p>
</li>
<li><p>ls-packages:
Show all of the packages a user or a team is able to access, along with the
access level, except for read-only public packages (it won&#39;t print the whole
@ -68,6 +75,7 @@ with an HTTP 402 status code (logically enough), unless you use
<p>Management of teams and team memberships is done with the <code>npm team</code> command.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="https://npm.im/libnpmaccess"><code>libnpmaccess</code></a></li>
<li><a href="../cli/npm-team.html">npm-team(1)</a></li>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
@ -85,5 +93,5 @@ with an HTTP 402 status code (logically enough), unless you use
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-access &mdash; npm@6.5.0</p>
<p id="footer">npm-access &mdash; npm@6.7.0</p>

View File

@ -78,5 +78,5 @@ username/password entry in legacy npm.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-adduser &mdash; npm@6.5.0</p>
<p id="footer">npm-adduser &mdash; npm@6.7.0</p>

View File

@ -81,4 +81,4 @@ different between runs.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-audit &mdash; npm@6.5.0</p>
<p id="footer">npm-audit &mdash; npm@6.7.0</p>

View File

@ -34,5 +34,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bin &mdash; npm@6.5.0</p>
<p id="footer">npm-bin &mdash; npm@6.7.0</p>

View File

@ -54,5 +54,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bugs &mdash; npm@6.5.0</p>
<p id="footer">npm-bugs &mdash; npm@6.7.0</p>

View File

@ -38,5 +38,5 @@ directly, run:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-build &mdash; npm@6.5.0</p>
<p id="footer">npm-build &mdash; npm@6.7.0</p>

View File

@ -31,5 +31,5 @@ install packages into the local space.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bundle &mdash; npm@6.5.0</p>
<p id="footer">npm-bundle &mdash; npm@6.7.0</p>

View File

@ -52,7 +52,7 @@ the contents of this cache. In order to access it, <code>cacache</code> must be
directly.</p>
<p>npm will not remove data by itself: the cache will grow as new packages are
installed.</p>
<h2 id="a-note-about-the-cache-s-design">A NOTE ABOUT THE CACHE&#39;S DESIGN</h2>
<h2 id="a-note-about-the-caches-design">A NOTE ABOUT THE CACHE&#39;S DESIGN</h2>
<p>The npm cache is strictly a cache: it should not be relied upon as a persistent
and reliable data store for package data. npm makes no guarantee that a
previously-cached piece of data will be available later, and will automatically
@ -88,5 +88,5 @@ verify</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-cache &mdash; npm@6.5.0</p>
<p id="footer">npm-cache &mdash; npm@6.7.0</p>

View File

@ -58,4 +58,4 @@ incrementally-installed local environments of most npm users.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-ci &mdash; npm@6.5.0</p>
<p id="footer">npm-ci &mdash; npm@6.7.0</p>

View File

@ -42,5 +42,5 @@ completions based on the arguments.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-completion &mdash; npm@6.5.0</p>
<p id="footer">npm-completion &mdash; npm@6.7.0</p>

View File

@ -62,5 +62,5 @@ global config.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-config &mdash; npm@6.5.0</p>
<p id="footer">npm-config &mdash; npm@6.7.0</p>

View File

@ -58,5 +58,5 @@ result in new modules being installed.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-dedupe &mdash; npm@6.5.0</p>
<p id="footer">npm-dedupe &mdash; npm@6.7.0</p>

View File

@ -38,5 +38,5 @@ format an empty string.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-deprecate &mdash; npm@6.5.0</p>
<p id="footer">npm-deprecate &mdash; npm@6.7.0</p>

View File

@ -30,6 +30,7 @@ Clear a tag that is no longer in use from the package.</p>
<li><p>ls:
Show all of the dist-tags for a package, defaulting to the package in
the current prefix.</p>
<p>This is the default action if none is specified.</p>
</li>
</ul>
<p>A tag can be used when installing packages as a reference to a version instead
@ -85,5 +86,5 @@ begin with a number or the letter <code>v</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-dist-tag &mdash; npm@6.5.0</p>
<p id="footer">npm-dist-tag &mdash; npm@6.7.0</p>

View File

@ -55,5 +55,5 @@ the current folder and use the <code>name</code> property.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-docs &mdash; npm@6.5.0</p>
<p id="footer">npm-docs &mdash; npm@6.7.0</p>

View File

@ -41,7 +41,7 @@ HTTPS to <code>registry.npmjs.org</code>.</p>
what that is by running <code>npm config get registry</code>), and if you&#39;re using a
private registry that doesn&#39;t support the <code>/whoami</code> endpoint supported by the
primary registry, this check may fail.</p>
<h3 id="npm-v"><code>npm -v</code></h3>
<h3 id="npm--v"><code>npm -v</code></h3>
<p>While Node.js may come bundled with a particular version of npm, it&#39;s the
policy of the CLI team that we recommend all users run <code>npm@latest</code> if they
can. As the CLI is maintained by a small team of contributors, there are only
@ -49,7 +49,7 @@ resources for a single line of development, so npm&#39;s own long-term support
releases typically only receive critical security and regression fixes. The
team believes that the latest tested version of npm is almost always likely to
be the most functional and defect-free version of npm.</p>
<h3 id="node-v"><code>node -v</code></h3>
<h3 id="node--v"><code>node -v</code></h3>
<p>For most users, in most circumstances, the best version of Node will be the
latest long-term support (LTS) release. Those of you who want access to new
ECMAscript features or bleeding-edge changes to Node&#39;s standard library may be
@ -102,4 +102,4 @@ cache, you should probably run <code>npm cache clean</code> and reset the cache.
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-doctor &mdash; npm@6.5.0</p>
<p id="footer">npm-doctor &mdash; npm@6.7.0</p>

View File

@ -50,5 +50,5 @@ or <code>&quot;notepad&quot;</code> on Windows.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-edit &mdash; npm@6.5.0</p>
<p id="footer">npm-edit &mdash; npm@6.7.0</p>

View File

@ -47,5 +47,5 @@ Windows</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-explore &mdash; npm@6.5.0</p>
<p id="footer">npm-explore &mdash; npm@6.7.0</p>

View File

@ -44,5 +44,5 @@ where the terms were found in the documentation.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-help-search &mdash; npm@6.5.0</p>
<p id="footer">npm-help-search &mdash; npm@6.7.0</p>

View File

@ -49,5 +49,5 @@ matches are equivalent to specifying a topic name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-help &mdash; npm@6.5.0</p>
<p id="footer">npm-help &mdash; npm@6.7.0</p>

View File

@ -52,4 +52,4 @@ request came from your own configured hook.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-hook &mdash; npm@6.5.0</p>
<p id="footer">npm-hook &mdash; npm@6.7.0</p>

View File

@ -61,5 +61,5 @@ will create a scoped package.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-init &mdash; npm@6.5.0</p>
<p id="footer">npm-init &mdash; npm@6.7.0</p>

View File

@ -32,4 +32,4 @@ alias: npm cit</code></pre><h2 id="description">DESCRIPTION</h2>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-install-ci-test &mdash; npm@6.5.0</p>
<p id="footer">npm-install-ci-test &mdash; npm@6.7.0</p>

View File

@ -41,5 +41,5 @@ takes exactly the same arguments as <code>npm install</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-install-test &mdash; npm@6.5.0</p>
<p id="footer">npm-install-test &mdash; npm@6.7.0</p>

View File

@ -322,7 +322,7 @@ be produced if two dependencies are requested for installation in a different
order.</p>
<p>See <a href="../files/npm-folders.html">npm-folders(5)</a> for a more detailed description of the specific
folder structures that npm creates.</p>
<h3 id="limitations-of-npm-s-install-algorithm">Limitations of npm&#39;s Install Algorithm</h3>
<h3 id="limitations-of-npms-install-algorithm">Limitations of npm&#39;s Install Algorithm</h3>
<p>npm will refuse to install any package with an identical name to the
current package. This can be overridden with the <code>--force</code> flag, but in
most cases can simply be addressed by changing the local package name.</p>
@ -370,5 +370,5 @@ affects a real use-case, it will be investigated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-install &mdash; npm@6.5.0</p>
<p id="footer">npm-install &mdash; npm@6.7.0</p>

View File

@ -71,5 +71,5 @@ include that scope, e.g.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-link &mdash; npm@6.5.0</p>
<p id="footer">npm-link &mdash; npm@6.7.0</p>

View File

@ -49,5 +49,5 @@ it takes precedence.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-logout &mdash; npm@6.5.0</p>
<p id="footer">npm-logout &mdash; npm@6.7.0</p>

View File

@ -20,7 +20,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
<pre><code>npm@6.5.0 /path/to/npm
<pre><code>npm@6.7.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5</code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
<p>If a project specifies git urls for dependencies these are shown
@ -60,13 +60,13 @@ project.</p>
<li>Type: Int</li>
</ul>
<p>Max display depth of the dependency tree.</p>
<h3 id="prod-production">prod / production</h3>
<h3 id="prod--production">prod / production</h3>
<ul>
<li>Type: Boolean</li>
<li>Default: false</li>
</ul>
<p>Display only the dependency tree for packages in <code>dependencies</code>.</p>
<h3 id="dev-development">dev / development</h3>
<h3 id="dev--development">dev / development</h3>
<ul>
<li>Type: Boolean</li>
<li>Default: false</li>
@ -108,5 +108,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-ls &mdash; npm@6.5.0</p>
<p id="footer">npm-ls &mdash; npm@6.7.0</p>

43
deps/npm/html/doc/cli/npm-org.html vendored Normal file
View File

@ -0,0 +1,43 @@
<!doctype html>
<html>
<title>npm-org</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../../static/style.css">
<link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-org.html">
<script async=true src="../../static/toc.js"></script>
<body>
<div id="wrapper">
<h1><a href="../cli/npm-org.html">npm-org</a></h1> <p>Manage orgs</p>
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm org set &lt;orgname&gt; &lt;username&gt; [developer | admin | owner]
npm org rm &lt;orgname&gt; &lt;username&gt;
npm org ls &lt;orgname&gt; [&lt;username&gt;]</code></pre><h2 id="example">EXAMPLE</h2>
<p>Add a new developer to an org:</p>
<pre><code>$ npm org set my-org @mx-smith</code></pre><p>Add a new admin to an org (or change a developer to an admin):</p>
<pre><code>$ npm org set my-org @mx-santos admin</code></pre><p>Remove a user from an org:</p>
<pre><code>$ npm org rm my-org mx-santos</code></pre><p>List all users in an org:</p>
<pre><code>$ npm org ls my-org</code></pre><p>List all users in JSON format:</p>
<pre><code>$ npm org ls my-org --json</code></pre><p>See what role a user has in an org:</p>
<pre><code>$ npm org ls my-org @mx-santos</code></pre><h2 id="description">DESCRIPTION</h2>
<p>You can use the <code>npm org</code> commands to manage and view users of an organization.
It supports adding and removing users, changing their roles, listing them, and
finding specific ones and their roles.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="https://docs.npmjs.com/orgs/">Documentation on npm Orgs</a></li>
</ul>
</div>
<table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
<tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
<tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
<tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
<tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
<tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-org &mdash; npm@6.7.0</p>

View File

@ -116,5 +116,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-outdated &mdash; npm@6.5.0</p>
<p id="footer">npm-outdated &mdash; npm@6.7.0</p>

View File

@ -53,5 +53,5 @@ with <code>--otp</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-owner &mdash; npm@6.5.0</p>
<p id="footer">npm-owner &mdash; npm@6.7.0</p>

View File

@ -42,5 +42,5 @@ actually packing anything. Reports on what would have gone into the tarball.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-pack &mdash; npm@6.5.0</p>
<p id="footer">npm-pack &mdash; npm@6.7.0</p>

View File

@ -33,5 +33,5 @@ If it works it will output something like:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-ping &mdash; npm@6.5.0</p>
<p id="footer">npm-ping &mdash; npm@6.7.0</p>

View File

@ -13,7 +13,8 @@
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm prefix [-g]</code></pre><h2 id="description">DESCRIPTION</h2>
<p>Print the local prefix to standard out. This is the closest parent directory
to contain a package.json file unless <code>-g</code> is also specified.</p>
to contain a <code>package.json</code> file or <code>node_modules</code> directory, unless <code>-g</code> is
also specified.</p>
<p>If <code>-g</code> is specified, this will be the value of the global prefix. See
<code><a href="../misc/npm-config.html">npm-config(7)</a></code> for more detail.</p>
<h2 id="see-also">SEE ALSO</h2>
@ -37,5 +38,5 @@ to contain a package.json file unless <code>-g</code> is also specified.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-prefix &mdash; npm@6.5.0</p>
<p id="footer">npm-prefix &mdash; npm@6.7.0</p>

View File

@ -88,4 +88,4 @@ available on non npmjs.com registries.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-profile &mdash; npm@6.5.0</p>
<p id="footer">npm-profile &mdash; npm@6.7.0</p>

View File

@ -47,5 +47,5 @@ and it&#39;s up to you to run <code>npm prune</code> from time-to-time to remove
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-prune &mdash; npm@6.5.0</p>
<p id="footer">npm-prune &mdash; npm@6.7.0</p>

View File

@ -87,5 +87,5 @@ included and packs them into a tarball to be uploaded to the registry.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-publish &mdash; npm@6.5.0</p>
<p id="footer">npm-publish &mdash; npm@6.7.0</p>

View File

@ -34,5 +34,5 @@ the new binary.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-rebuild &mdash; npm@6.5.0</p>
<p id="footer">npm-rebuild &mdash; npm@6.7.0</p>

View File

@ -40,5 +40,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-repo &mdash; npm@6.5.0</p>
<p id="footer">npm-repo &mdash; npm@6.7.0</p>

View File

@ -52,5 +52,5 @@ behavior will be accompanied by an increase in major version number</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-restart &mdash; npm@6.5.0</p>
<p id="footer">npm-restart &mdash; npm@6.7.0</p>

View File

@ -34,5 +34,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-root &mdash; npm@6.5.0</p>
<p id="footer">npm-root &mdash; npm@6.7.0</p>

View File

@ -79,5 +79,5 @@ without breaking the execution chain.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-run-script &mdash; npm@6.5.0</p>
<p id="footer">npm-run-script &mdash; npm@6.7.0</p>

View File

@ -32,7 +32,7 @@ this case. (Note that many regular expression characters must be escaped or
quoted in most shells.)</p>
<h3 id="a-note-on-caching">A Note on caching</h3>
<h2 id="configuration">CONFIGURATION</h2>
<h3 id="description">description</h3>
<h3 id="description-1">description</h3>
<ul>
<li>Default: true</li>
<li>Type: Boolean</li>
@ -108,5 +108,5 @@ setting.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-search &mdash; npm@6.5.0</p>
<p id="footer">npm-search &mdash; npm@6.7.0</p>

View File

@ -40,5 +40,5 @@ of package locks in npm, see <a href="../files/npm-package-locks.html">npm-packa
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-shrinkwrap &mdash; npm@6.5.0</p>
<p id="footer">npm-shrinkwrap &mdash; npm@6.7.0</p>

View File

@ -35,5 +35,5 @@ a vaguely positive way to show that you care.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-star &mdash; npm@6.5.0</p>
<p id="footer">npm-star &mdash; npm@6.7.0</p>

View File

@ -35,5 +35,5 @@ you will most certainly enjoy this command.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-stars &mdash; npm@6.5.0</p>
<p id="footer">npm-stars &mdash; npm@6.7.0</p>

View File

@ -38,5 +38,5 @@ more details.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-start &mdash; npm@6.5.0</p>
<p id="footer">npm-start &mdash; npm@6.7.0</p>

View File

@ -33,5 +33,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-stop &mdash; npm@6.5.0</p>
<p id="footer">npm-stop &mdash; npm@6.7.0</p>

View File

@ -69,5 +69,5 @@ use the <code>npm access</code> command to grant or revoke the appropriate permi
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-team &mdash; npm@6.5.0</p>
<p id="footer">npm-team &mdash; npm@6.7.0</p>

View File

@ -35,5 +35,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-test &mdash; npm@6.5.0</p>
<p id="footer">npm-test &mdash; npm@6.7.0</p>

View File

@ -14,28 +14,39 @@
<pre><code>npm token list [--json|--parseable]
npm token create [--read-only] [--cidr=1.1.1.1/24,2.2.2.2/16]
npm token revoke &lt;id|token&gt;</code></pre><h2 id="description">DESCRIPTION</h2>
<p>This list you list, create and revoke authentication tokens.</p>
<p>This lets you list, create and revoke authentication tokens.</p>
<ul>
<li><p><code>npm token list</code>:
Shows a table of all active authentication tokens. You can request this as
JSON with <code>--json</code> or tab-separated values with <code>--parseable</code>.</p>
<pre><code>+--------+---------+------------+----------+----------------+
| id | token | created | read-only | CIDR whitelist |
+--------+---------+------------+----------+----------------+
| 7f3134 | 1fa9ba… | 2017-10-02 | yes | |
+--------+---------+------------+----------+----------------+
| c03241 | af7aef… | 2017-10-02 | no | 192.168.0.1/24 |
+--------+---------+------------+----------+----------------+
| e0cf92 | 3a436a… | 2017-10-02 | no | |
+--------+---------+------------+----------+----------------+
| 63eb9d | 74ef35… | 2017-09-28 | no | |
+--------+---------+------------+----------+----------------+
| 2daaa8 | cbad5f… | 2017-09-26 | no | |
+--------+---------+------------+----------+----------------+
| 68c2fe | 127e51… | 2017-09-23 | no | |
+--------+---------+------------+----------+----------------+
| 6334e1 | 1dadd1… | 2017-09-23 | no | |
+--------+---------+------------+----------+----------------+</code></pre></li>
JSON with <code>--json</code> or tab-separated values with <code>--parseable</code>.
```</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| id | token | created | read-only | CIDR whitelist |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| 7f3134 | 1fa9ba… | 2017-10-02 | yes | |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| c03241 | af7aef… | 2017-10-02 | no | 192.168.0.1/24 |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| e0cf92 | 3a436a… | 2017-10-02 | no | |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| 63eb9d | 74ef35… | 2017-09-28 | no | |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| 2daaa8 | cbad5f… | 2017-09-26 | no | |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| 68c2fe | 127e51… | 2017-09-23 | no | |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+
| 6334e1 | 1dadd1… | 2017-09-23 | no | |</p>
</li>
<li><p>--------+---------+------------+----------+----------------+</p>
<pre><code></code></pre></li>
<li><p><code>npm token create [--read-only] [--cidr=&lt;cidr-ranges&gt;]</code>:
Create a new authentication token. It can be <code>--read-only</code> or accept a list of
<a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">CIDR</a> ranges to
@ -70,4 +81,4 @@ This will NOT accept the truncated token found in <code>npm token list</code> ou
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-token &mdash; npm@6.5.0</p>
<p id="footer">npm-token &mdash; npm@6.7.0</p>

View File

@ -60,5 +60,5 @@ npm uninstall lodash --no-save</code></pre><h2 id="see-also">SEE ALSO</h2>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-uninstall &mdash; npm@6.5.0</p>
<p id="footer">npm-uninstall &mdash; npm@6.7.0</p>

View File

@ -52,5 +52,5 @@ contact <a href="mailto:support@npmjs.com">support@npmjs.com</a>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-unpublish &mdash; npm@6.5.0</p>
<p id="footer">npm-unpublish &mdash; npm@6.7.0</p>

View File

@ -62,7 +62,7 @@ on dependencies, <code>dep1</code> (<code>dep2</code>, .. etc.). The published
tag points to <code>1.2.2</code>, this version does not satisfy <code>~1.1.1</code>, which is equivalent
to <code>&gt;=1.1.1 &lt;1.2.0</code>. So the highest-sorting version that satisfies <code>~1.1.1</code> is used,
which is <code>1.1.2</code>.</p>
<h3 id="caret-dependencies-below-1-0-0">Caret Dependencies below 1.0.0</h3>
<h3 id="caret-dependencies-below-100">Caret Dependencies below 1.0.0</h3>
<p>Suppose <code>app</code> has a caret dependency on a version below <code>1.0.0</code>, for example:</p>
<pre><code>&quot;dependencies&quot;: {
&quot;dep1&quot;: &quot;^0.2.0&quot;
@ -100,5 +100,5 @@ be <em>downgraded</em>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-update &mdash; npm@6.5.0</p>
<p id="footer">npm-update &mdash; npm@6.7.0</p>

View File

@ -116,5 +116,5 @@ to the same value as the current version.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-version &mdash; npm@6.5.0</p>
<p id="footer">npm-version &mdash; npm@6.7.0</p>

View File

@ -75,5 +75,5 @@ the field name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-view &mdash; npm@6.5.0</p>
<p id="footer">npm-view &mdash; npm@6.7.0</p>

View File

@ -32,5 +32,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-whoami &mdash; npm@6.5.0</p>
<p id="footer">npm-whoami &mdash; npm@6.7.0</p>

View File

@ -12,7 +12,7 @@
<h1><a href="../cli/npm.html">npm</a></h1> <p>javascript package manager</p>
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm &lt;command&gt; [args]</code></pre><h2 id="version">VERSION</h2>
<p>6.5.0</p>
<p>6.7.0</p>
<h2 id="description">DESCRIPTION</h2>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
@ -130,7 +130,7 @@ reproduction to report.</p>
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
<a href="https://github.com/isaacs/">isaacs</a> ::
<a href="https://twitter.com/izs">@izs</a> ::
<a href="mailto:&#x69;&#x40;&#105;&#122;&#x73;&#x2e;&#x6d;&#x65;">&#x69;&#x40;&#105;&#122;&#x73;&#x2e;&#x6d;&#x65;</a></p>
<a href="mailto:&#105;&#x40;&#x69;&#122;&#x73;&#x2e;&#109;&#101;">&#105;&#x40;&#x69;&#122;&#x73;&#x2e;&#109;&#101;</a></p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-help.html">npm-help(1)</a></li>
@ -154,5 +154,5 @@ reproduction to report.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm &mdash; npm@6.5.0</p>
<p id="footer">npm &mdash; npm@6.7.0</p>

View File

@ -13,7 +13,7 @@
<h2 id="description">DESCRIPTION</h2>
<p>npm puts various things on your computer. That&#39;s its job.</p>
<p>This document will tell you what it puts where.</p>
<h3 id="tl-dr">tl;dr</h3>
<h3 id="tldr">tl;dr</h3>
<ul>
<li>Local install (default): puts stuff in <code>./node_modules</code> of the current
package root.</li>
@ -179,5 +179,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html">packa
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-folders &mdash; npm@6.5.0</p>
<p id="footer">npm-folders &mdash; npm@6.7.0</p>

View File

@ -13,7 +13,7 @@
<h2 id="description">DESCRIPTION</h2>
<p>npm puts various things on your computer. That&#39;s its job.</p>
<p>This document will tell you what it puts where.</p>
<h3 id="tl-dr">tl;dr</h3>
<h3 id="tldr">tl;dr</h3>
<ul>
<li>Local install (default): puts stuff in <code>./node_modules</code> of the current
package root.</li>
@ -179,5 +179,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html">packa
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-folders &mdash; npm@6.5.0</p>
<p id="footer">npm-folders &mdash; npm@6.7.0</p>

View File

@ -54,7 +54,7 @@ plan to publish your package, the name and version fields are optional.</p>
<a href="https://github.com/isaacs/node-semver">node-semver</a>, which is bundled
with npm as a dependency. (<code>npm install semver</code> to use it yourself.)</p>
<p>More on version numbers and ranges at <a href="../misc/semver.html">semver(7)</a>.</p>
<h2 id="description">description</h2>
<h2 id="description-1">description</h2>
<p>Put a description in it. It&#39;s a string. This helps people discover your
package, as it&#39;s listed in <code>npm search</code>.</p>
<h2 id="keywords">keywords</h2>
@ -230,25 +230,25 @@ few ways that you can indicate the structure of your package using a <code>direc
object. If you look at <a href="https://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
you&#39;ll see that it has directories for doc, lib, and man.</p>
<p>In the future, this information may be used in other creative ways.</p>
<h3 id="directories-lib">directories.lib</h3>
<h3 id="directorieslib">directories.lib</h3>
<p>Tell people where the bulk of your library is. Nothing special is done
with the lib folder in any way, but it&#39;s useful meta info.</p>
<h3 id="directories-bin">directories.bin</h3>
<h3 id="directoriesbin">directories.bin</h3>
<p>If you specify a <code>bin</code> directory in <code>directories.bin</code>, all the files in
that folder will be added.</p>
<p>Because of the way the <code>bin</code> directive works, specifying both a
<code>bin</code> path and setting <code>directories.bin</code> is an error. If you want to
specify individual files, use <code>bin</code>, and for all the files in an
existing <code>bin</code> directory, use <code>directories.bin</code>.</p>
<h3 id="directories-man">directories.man</h3>
<h3 id="directoriesman">directories.man</h3>
<p>A folder that is full of man pages. Sugar to generate a &quot;man&quot; array by
walking the folder.</p>
<h3 id="directories-doc">directories.doc</h3>
<h3 id="directoriesdoc">directories.doc</h3>
<p>Put markdown files in here. Eventually, these will be displayed nicely,
maybe, someday.</p>
<h3 id="directories-example">directories.example</h3>
<h3 id="directoriesexample">directories.example</h3>
<p>Put example scripts in here. Someday, it might be exposed in some clever way.</p>
<h3 id="directories-test">directories.test</h3>
<h3 id="directoriestest">directories.test</h3>
<p>Put your tests in here. It is currently not exposed, but it might be in the
future.</p>
<h2 id="repository">repository</h2>
@ -574,5 +574,5 @@ ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">package.json &mdash; npm@6.5.0</p>
<p id="footer">package.json &mdash; npm@6.7.0</p>

View File

@ -154,4 +154,4 @@ pre-<code>npm@5.7.0</code> versions of npm 5, albeit a bit more noisily. Note th
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-package-locks &mdash; npm@6.5.0</p>
<p id="footer">npm-package-locks &mdash; npm@6.7.0</p>

View File

@ -42,4 +42,4 @@ to the manual page for <a href="../files/package-lock.json.html">package-lock.js
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-shrinkwrap.json &mdash; npm@6.5.0</p>
<p id="footer">npm-shrinkwrap.json &mdash; npm@6.7.0</p>

View File

@ -82,5 +82,5 @@ manner.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npmrc &mdash; npm@6.5.0</p>
<p id="footer">npmrc &mdash; npm@6.7.0</p>

View File

@ -57,7 +57,7 @@ this property match that environment variable.</p>
<h3 id="dependencies">dependencies</h3>
<p>A mapping of package name to dependency object. Dependency objects have the
following properties:</p>
<h4 id="version">version</h4>
<h4 id="version-1">version</h4>
<p>This is a specifier that uniquely identifies this package and should be
usable in fetching a new copy of it.</p>
<ul>
@ -108,7 +108,7 @@ on the current platform.</p>
this module requires, regardless of where it will be installed. The version
should match via normal matching rules a dependency either in our
<code>dependencies</code> or in a level higher than us.</p>
<h4 id="dependencies">dependencies</h4>
<h4 id="dependencies-1">dependencies</h4>
<p>The dependencies of this dependency, exactly as at the top level.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
@ -130,4 +130,4 @@ should match via normal matching rules a dependency either in our
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">package-lock.json &mdash; npm@6.5.0</p>
<p id="footer">package-lock.json &mdash; npm@6.7.0</p>

View File

@ -54,7 +54,7 @@ plan to publish your package, the name and version fields are optional.</p>
<a href="https://github.com/isaacs/node-semver">node-semver</a>, which is bundled
with npm as a dependency. (<code>npm install semver</code> to use it yourself.)</p>
<p>More on version numbers and ranges at <a href="../misc/semver.html">semver(7)</a>.</p>
<h2 id="description">description</h2>
<h2 id="description-1">description</h2>
<p>Put a description in it. It&#39;s a string. This helps people discover your
package, as it&#39;s listed in <code>npm search</code>.</p>
<h2 id="keywords">keywords</h2>
@ -230,25 +230,25 @@ few ways that you can indicate the structure of your package using a <code>direc
object. If you look at <a href="https://registry.npmjs.org/npm/latest">npm&#39;s package.json</a>,
you&#39;ll see that it has directories for doc, lib, and man.</p>
<p>In the future, this information may be used in other creative ways.</p>
<h3 id="directories-lib">directories.lib</h3>
<h3 id="directorieslib">directories.lib</h3>
<p>Tell people where the bulk of your library is. Nothing special is done
with the lib folder in any way, but it&#39;s useful meta info.</p>
<h3 id="directories-bin">directories.bin</h3>
<h3 id="directoriesbin">directories.bin</h3>
<p>If you specify a <code>bin</code> directory in <code>directories.bin</code>, all the files in
that folder will be added.</p>
<p>Because of the way the <code>bin</code> directive works, specifying both a
<code>bin</code> path and setting <code>directories.bin</code> is an error. If you want to
specify individual files, use <code>bin</code>, and for all the files in an
existing <code>bin</code> directory, use <code>directories.bin</code>.</p>
<h3 id="directories-man">directories.man</h3>
<h3 id="directoriesman">directories.man</h3>
<p>A folder that is full of man pages. Sugar to generate a &quot;man&quot; array by
walking the folder.</p>
<h3 id="directories-doc">directories.doc</h3>
<h3 id="directoriesdoc">directories.doc</h3>
<p>Put markdown files in here. Eventually, these will be displayed nicely,
maybe, someday.</p>
<h3 id="directories-example">directories.example</h3>
<h3 id="directoriesexample">directories.example</h3>
<p>Put example scripts in here. Someday, it might be exposed in some clever way.</p>
<h3 id="directories-test">directories.test</h3>
<h3 id="directoriestest">directories.test</h3>
<p>Put your tests in here. It is currently not exposed, but it might be in the
future.</p>
<h2 id="repository">repository</h2>
@ -574,5 +574,5 @@ ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">package.json &mdash; npm@6.5.0</p>
<p id="footer">package.json &mdash; npm@6.7.0</p>

View File

@ -10,163 +10,165 @@
<div id="wrapper">
<h1><a href="misc/npm-index.html">npm-index</a></h1> <p>Index of all npm documentation</p>
<h3 id="readme-1-"><a href="../doc/README.html">README</a></h3>
<h3 id="readme1"><a href="../doc/README.html">README</a></h3>
<p>a JavaScript package manager</p>
<h2 id="command-line-documentation">Command Line Documentation</h2>
<p>Using npm on the command line</p>
<h3 id="npm-1-"><a href="cli/npm.html">npm(1)</a></h3>
<h3 id="npm1"><a href="cli/npm.html">npm(1)</a></h3>
<p>javascript package manager</p>
<h3 id="npm-access-1-"><a href="cli/npm-access.html">npm-access(1)</a></h3>
<h3 id="npm-access1"><a href="cli/npm-access.html">npm-access(1)</a></h3>
<p>Set access level on published packages</p>
<h3 id="npm-adduser-1-"><a href="cli/npm-adduser.html">npm-adduser(1)</a></h3>
<h3 id="npm-adduser1"><a href="cli/npm-adduser.html">npm-adduser(1)</a></h3>
<p>Add a registry user account</p>
<h3 id="npm-audit-1-"><a href="cli/npm-audit.html">npm-audit(1)</a></h3>
<h3 id="npm-audit1"><a href="cli/npm-audit.html">npm-audit(1)</a></h3>
<p>Run a security audit</p>
<h3 id="npm-bin-1-"><a href="cli/npm-bin.html">npm-bin(1)</a></h3>
<h3 id="npm-bin1"><a href="cli/npm-bin.html">npm-bin(1)</a></h3>
<p>Display npm bin folder</p>
<h3 id="npm-bugs-1-"><a href="cli/npm-bugs.html">npm-bugs(1)</a></h3>
<h3 id="npm-bugs1"><a href="cli/npm-bugs.html">npm-bugs(1)</a></h3>
<p>Bugs for a package in a web browser maybe</p>
<h3 id="npm-build-1-"><a href="cli/npm-build.html">npm-build(1)</a></h3>
<h3 id="npm-build1"><a href="cli/npm-build.html">npm-build(1)</a></h3>
<p>Build a package</p>
<h3 id="npm-bundle-1-"><a href="cli/npm-bundle.html">npm-bundle(1)</a></h3>
<h3 id="npm-bundle1"><a href="cli/npm-bundle.html">npm-bundle(1)</a></h3>
<p>REMOVED</p>
<h3 id="npm-cache-1-"><a href="cli/npm-cache.html">npm-cache(1)</a></h3>
<h3 id="npm-cache1"><a href="cli/npm-cache.html">npm-cache(1)</a></h3>
<p>Manipulates packages cache</p>
<h3 id="npm-ci-1-"><a href="cli/npm-ci.html">npm-ci(1)</a></h3>
<h3 id="npm-ci1"><a href="cli/npm-ci.html">npm-ci(1)</a></h3>
<p>Install a project with a clean slate</p>
<h3 id="npm-completion-1-"><a href="cli/npm-completion.html">npm-completion(1)</a></h3>
<h3 id="npm-completion1"><a href="cli/npm-completion.html">npm-completion(1)</a></h3>
<p>Tab Completion for npm</p>
<h3 id="npm-config-1-"><a href="cli/npm-config.html">npm-config(1)</a></h3>
<h3 id="npm-config1"><a href="cli/npm-config.html">npm-config(1)</a></h3>
<p>Manage the npm configuration files</p>
<h3 id="npm-dedupe-1-"><a href="cli/npm-dedupe.html">npm-dedupe(1)</a></h3>
<h3 id="npm-dedupe1"><a href="cli/npm-dedupe.html">npm-dedupe(1)</a></h3>
<p>Reduce duplication</p>
<h3 id="npm-deprecate-1-"><a href="cli/npm-deprecate.html">npm-deprecate(1)</a></h3>
<h3 id="npm-deprecate1"><a href="cli/npm-deprecate.html">npm-deprecate(1)</a></h3>
<p>Deprecate a version of a package</p>
<h3 id="npm-dist-tag-1-"><a href="cli/npm-dist-tag.html">npm-dist-tag(1)</a></h3>
<h3 id="npm-dist-tag1"><a href="cli/npm-dist-tag.html">npm-dist-tag(1)</a></h3>
<p>Modify package distribution tags</p>
<h3 id="npm-docs-1-"><a href="cli/npm-docs.html">npm-docs(1)</a></h3>
<h3 id="npm-docs1"><a href="cli/npm-docs.html">npm-docs(1)</a></h3>
<p>Docs for a package in a web browser maybe</p>
<h3 id="npm-doctor-1-"><a href="cli/npm-doctor.html">npm-doctor(1)</a></h3>
<h3 id="npm-doctor1"><a href="cli/npm-doctor.html">npm-doctor(1)</a></h3>
<p>Check your environments</p>
<h3 id="npm-edit-1-"><a href="cli/npm-edit.html">npm-edit(1)</a></h3>
<h3 id="npm-edit1"><a href="cli/npm-edit.html">npm-edit(1)</a></h3>
<p>Edit an installed package</p>
<h3 id="npm-explore-1-"><a href="cli/npm-explore.html">npm-explore(1)</a></h3>
<h3 id="npm-explore1"><a href="cli/npm-explore.html">npm-explore(1)</a></h3>
<p>Browse an installed package</p>
<h3 id="npm-help-search-1-"><a href="cli/npm-help-search.html">npm-help-search(1)</a></h3>
<h3 id="npm-help-search1"><a href="cli/npm-help-search.html">npm-help-search(1)</a></h3>
<p>Search npm help documentation</p>
<h3 id="npm-help-1-"><a href="cli/npm-help.html">npm-help(1)</a></h3>
<h3 id="npm-help1"><a href="cli/npm-help.html">npm-help(1)</a></h3>
<p>Get help on npm</p>
<h3 id="npm-hook-1-"><a href="cli/npm-hook.html">npm-hook(1)</a></h3>
<h3 id="npm-hook1"><a href="cli/npm-hook.html">npm-hook(1)</a></h3>
<p>Manage registry hooks</p>
<h3 id="npm-init-1-"><a href="cli/npm-init.html">npm-init(1)</a></h3>
<h3 id="npm-init1"><a href="cli/npm-init.html">npm-init(1)</a></h3>
<p>create a package.json file</p>
<h3 id="npm-install-ci-test-1-"><a href="cli/npm-install-ci-test.html">npm-install-ci-test(1)</a></h3>
<h3 id="npm-install-ci-test1"><a href="cli/npm-install-ci-test.html">npm-install-ci-test(1)</a></h3>
<p>Install a project with a clean slate and run tests</p>
<h3 id="npm-install-test-1-"><a href="cli/npm-install-test.html">npm-install-test(1)</a></h3>
<h3 id="npm-install-test1"><a href="cli/npm-install-test.html">npm-install-test(1)</a></h3>
<p>Install package(s) and run tests</p>
<h3 id="npm-install-1-"><a href="cli/npm-install.html">npm-install(1)</a></h3>
<h3 id="npm-install1"><a href="cli/npm-install.html">npm-install(1)</a></h3>
<p>Install a package</p>
<h3 id="npm-link-1-"><a href="cli/npm-link.html">npm-link(1)</a></h3>
<h3 id="npm-link1"><a href="cli/npm-link.html">npm-link(1)</a></h3>
<p>Symlink a package folder</p>
<h3 id="npm-logout-1-"><a href="cli/npm-logout.html">npm-logout(1)</a></h3>
<h3 id="npm-logout1"><a href="cli/npm-logout.html">npm-logout(1)</a></h3>
<p>Log out of the registry</p>
<h3 id="npm-ls-1-"><a href="cli/npm-ls.html">npm-ls(1)</a></h3>
<h3 id="npm-ls1"><a href="cli/npm-ls.html">npm-ls(1)</a></h3>
<p>List installed packages</p>
<h3 id="npm-outdated-1-"><a href="cli/npm-outdated.html">npm-outdated(1)</a></h3>
<h3 id="npm-org1"><a href="cli/npm-org.html">npm-org(1)</a></h3>
<p>Manage orgs</p>
<h3 id="npm-outdated1"><a href="cli/npm-outdated.html">npm-outdated(1)</a></h3>
<p>Check for outdated packages</p>
<h3 id="npm-owner-1-"><a href="cli/npm-owner.html">npm-owner(1)</a></h3>
<h3 id="npm-owner1"><a href="cli/npm-owner.html">npm-owner(1)</a></h3>
<p>Manage package owners</p>
<h3 id="npm-pack-1-"><a href="cli/npm-pack.html">npm-pack(1)</a></h3>
<h3 id="npm-pack1"><a href="cli/npm-pack.html">npm-pack(1)</a></h3>
<p>Create a tarball from a package</p>
<h3 id="npm-ping-1-"><a href="cli/npm-ping.html">npm-ping(1)</a></h3>
<h3 id="npm-ping1"><a href="cli/npm-ping.html">npm-ping(1)</a></h3>
<p>Ping npm registry</p>
<h3 id="npm-prefix-1-"><a href="cli/npm-prefix.html">npm-prefix(1)</a></h3>
<h3 id="npm-prefix1"><a href="cli/npm-prefix.html">npm-prefix(1)</a></h3>
<p>Display prefix</p>
<h3 id="npm-profile-1-"><a href="cli/npm-profile.html">npm-profile(1)</a></h3>
<h3 id="npm-profile1"><a href="cli/npm-profile.html">npm-profile(1)</a></h3>
<p>Change settings on your registry profile</p>
<h3 id="npm-prune-1-"><a href="cli/npm-prune.html">npm-prune(1)</a></h3>
<h3 id="npm-prune1"><a href="cli/npm-prune.html">npm-prune(1)</a></h3>
<p>Remove extraneous packages</p>
<h3 id="npm-publish-1-"><a href="cli/npm-publish.html">npm-publish(1)</a></h3>
<h3 id="npm-publish1"><a href="cli/npm-publish.html">npm-publish(1)</a></h3>
<p>Publish a package</p>
<h3 id="npm-rebuild-1-"><a href="cli/npm-rebuild.html">npm-rebuild(1)</a></h3>
<h3 id="npm-rebuild1"><a href="cli/npm-rebuild.html">npm-rebuild(1)</a></h3>
<p>Rebuild a package</p>
<h3 id="npm-repo-1-"><a href="cli/npm-repo.html">npm-repo(1)</a></h3>
<h3 id="npm-repo1"><a href="cli/npm-repo.html">npm-repo(1)</a></h3>
<p>Open package repository page in the browser</p>
<h3 id="npm-restart-1-"><a href="cli/npm-restart.html">npm-restart(1)</a></h3>
<h3 id="npm-restart1"><a href="cli/npm-restart.html">npm-restart(1)</a></h3>
<p>Restart a package</p>
<h3 id="npm-root-1-"><a href="cli/npm-root.html">npm-root(1)</a></h3>
<h3 id="npm-root1"><a href="cli/npm-root.html">npm-root(1)</a></h3>
<p>Display npm root</p>
<h3 id="npm-run-script-1-"><a href="cli/npm-run-script.html">npm-run-script(1)</a></h3>
<h3 id="npm-run-script1"><a href="cli/npm-run-script.html">npm-run-script(1)</a></h3>
<p>Run arbitrary package scripts</p>
<h3 id="npm-search-1-"><a href="cli/npm-search.html">npm-search(1)</a></h3>
<h3 id="npm-search1"><a href="cli/npm-search.html">npm-search(1)</a></h3>
<p>Search for packages</p>
<h3 id="npm-shrinkwrap-1-"><a href="cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></h3>
<h3 id="npm-shrinkwrap1"><a href="cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></h3>
<p>Lock down dependency versions for publication</p>
<h3 id="npm-star-1-"><a href="cli/npm-star.html">npm-star(1)</a></h3>
<h3 id="npm-star1"><a href="cli/npm-star.html">npm-star(1)</a></h3>
<p>Mark your favorite packages</p>
<h3 id="npm-stars-1-"><a href="cli/npm-stars.html">npm-stars(1)</a></h3>
<h3 id="npm-stars1"><a href="cli/npm-stars.html">npm-stars(1)</a></h3>
<p>View packages marked as favorites</p>
<h3 id="npm-start-1-"><a href="cli/npm-start.html">npm-start(1)</a></h3>
<h3 id="npm-start1"><a href="cli/npm-start.html">npm-start(1)</a></h3>
<p>Start a package</p>
<h3 id="npm-stop-1-"><a href="cli/npm-stop.html">npm-stop(1)</a></h3>
<h3 id="npm-stop1"><a href="cli/npm-stop.html">npm-stop(1)</a></h3>
<p>Stop a package</p>
<h3 id="npm-team-1-"><a href="cli/npm-team.html">npm-team(1)</a></h3>
<h3 id="npm-team1"><a href="cli/npm-team.html">npm-team(1)</a></h3>
<p>Manage organization teams and team memberships</p>
<h3 id="npm-test-1-"><a href="cli/npm-test.html">npm-test(1)</a></h3>
<h3 id="npm-test1"><a href="cli/npm-test.html">npm-test(1)</a></h3>
<p>Test a package</p>
<h3 id="npm-token-1-"><a href="cli/npm-token.html">npm-token(1)</a></h3>
<h3 id="npm-token1"><a href="cli/npm-token.html">npm-token(1)</a></h3>
<p>Manage your authentication tokens</p>
<h3 id="npm-uninstall-1-"><a href="cli/npm-uninstall.html">npm-uninstall(1)</a></h3>
<h3 id="npm-uninstall1"><a href="cli/npm-uninstall.html">npm-uninstall(1)</a></h3>
<p>Remove a package</p>
<h3 id="npm-unpublish-1-"><a href="cli/npm-unpublish.html">npm-unpublish(1)</a></h3>
<h3 id="npm-unpublish1"><a href="cli/npm-unpublish.html">npm-unpublish(1)</a></h3>
<p>Remove a package from the registry</p>
<h3 id="npm-update-1-"><a href="cli/npm-update.html">npm-update(1)</a></h3>
<h3 id="npm-update1"><a href="cli/npm-update.html">npm-update(1)</a></h3>
<p>Update a package</p>
<h3 id="npm-version-1-"><a href="cli/npm-version.html">npm-version(1)</a></h3>
<h3 id="npm-version1"><a href="cli/npm-version.html">npm-version(1)</a></h3>
<p>Bump a package version</p>
<h3 id="npm-view-1-"><a href="cli/npm-view.html">npm-view(1)</a></h3>
<h3 id="npm-view1"><a href="cli/npm-view.html">npm-view(1)</a></h3>
<p>View registry info</p>
<h3 id="npm-whoami-1-"><a href="cli/npm-whoami.html">npm-whoami(1)</a></h3>
<h3 id="npm-whoami1"><a href="cli/npm-whoami.html">npm-whoami(1)</a></h3>
<p>Display npm username</p>
<h2 id="api-documentation">API Documentation</h2>
<p>Using npm in your Node programs</p>
<h2 id="files">Files</h2>
<p>File system structures npm uses</p>
<h3 id="npm-folders-5-"><a href="files/npm-folders.html">npm-folders(5)</a></h3>
<h3 id="npm-folders5"><a href="files/npm-folders.html">npm-folders(5)</a></h3>
<p>Folder Structures Used by npm</p>
<h3 id="npm-package-locks-5-"><a href="files/npm-package-locks.html">npm-package-locks(5)</a></h3>
<h3 id="npm-package-locks5"><a href="files/npm-package-locks.html">npm-package-locks(5)</a></h3>
<p>An explanation of npm lockfiles</p>
<h3 id="npm-shrinkwrap-json-5-"><a href="files/npm-shrinkwrap.json.html">npm-shrinkwrap.json(5)</a></h3>
<h3 id="npm-shrinkwrapjson5"><a href="files/npm-shrinkwrap.json.html">npm-shrinkwrap.json(5)</a></h3>
<p>A publishable lockfile</p>
<h3 id="npmrc-5-"><a href="files/npmrc.html">npmrc(5)</a></h3>
<h3 id="npmrc5"><a href="files/npmrc.html">npmrc(5)</a></h3>
<p>The npm config files</p>
<h3 id="package-lock-json-5-"><a href="files/package-lock.json.html">package-lock.json(5)</a></h3>
<h3 id="package-lockjson5"><a href="files/package-lock.json.html">package-lock.json(5)</a></h3>
<p>A manifestation of the manifest</p>
<h3 id="package-json-5-"><a href="files/package.json.html">package.json(5)</a></h3>
<h3 id="packagejson5"><a href="files/package.json.html">package.json(5)</a></h3>
<p>Specifics of npm&#39;s package.json handling</p>
<h2 id="misc">Misc</h2>
<p>Various other bits and bobs</p>
<h3 id="npm-coding-style-7-"><a href="misc/npm-coding-style.html">npm-coding-style(7)</a></h3>
<h3 id="npm-coding-style7"><a href="misc/npm-coding-style.html">npm-coding-style(7)</a></h3>
<p>npm&#39;s &quot;funny&quot; coding style</p>
<h3 id="npm-config-7-"><a href="misc/npm-config.html">npm-config(7)</a></h3>
<h3 id="npm-config7"><a href="misc/npm-config.html">npm-config(7)</a></h3>
<p>More than you probably want to know about npm configuration</p>
<h3 id="npm-developers-7-"><a href="misc/npm-developers.html">npm-developers(7)</a></h3>
<h3 id="npm-developers7"><a href="misc/npm-developers.html">npm-developers(7)</a></h3>
<p>Developer Guide</p>
<h3 id="npm-disputes-7-"><a href="misc/npm-disputes.html">npm-disputes(7)</a></h3>
<h3 id="npm-disputes7"><a href="misc/npm-disputes.html">npm-disputes(7)</a></h3>
<p>Handling Module Name Disputes</p>
<h3 id="npm-index-7-"><a href="misc/npm-index.html">npm-index(7)</a></h3>
<h3 id="npm-index7"><a href="misc/npm-index.html">npm-index(7)</a></h3>
<p>Index of all npm documentation</p>
<h3 id="npm-orgs-7-"><a href="misc/npm-orgs.html">npm-orgs(7)</a></h3>
<h3 id="npm-orgs7"><a href="misc/npm-orgs.html">npm-orgs(7)</a></h3>
<p>Working with Teams &amp; Orgs</p>
<h3 id="npm-registry-7-"><a href="misc/npm-registry.html">npm-registry(7)</a></h3>
<h3 id="npm-registry7"><a href="misc/npm-registry.html">npm-registry(7)</a></h3>
<p>The JavaScript Package Registry</p>
<h3 id="npm-scope-7-"><a href="misc/npm-scope.html">npm-scope(7)</a></h3>
<h3 id="npm-scope7"><a href="misc/npm-scope.html">npm-scope(7)</a></h3>
<p>Scoped packages</p>
<h3 id="npm-scripts-7-"><a href="misc/npm-scripts.html">npm-scripts(7)</a></h3>
<h3 id="npm-scripts7"><a href="misc/npm-scripts.html">npm-scripts(7)</a></h3>
<p>How npm handles the &quot;scripts&quot; field</p>
<h3 id="removing-npm-7-"><a href="misc/removing-npm.html">removing-npm(7)</a></h3>
<h3 id="removing-npm7"><a href="misc/removing-npm.html">removing-npm(7)</a></h3>
<p>Cleaning the Slate</p>
<h3 id="semver-7-"><a href="misc/semver.html">semver(7)</a></h3>
<h3 id="semver7"><a href="misc/semver.html">semver(7)</a></h3>
<p>The semantic versioner for npm</p>
</div>
@ -180,5 +182,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-index &mdash; npm@6.5.0</p>
<p id="footer">npm-index &mdash; npm@6.7.0</p>

View File

@ -89,7 +89,7 @@ Also use a single space wherever it makes things more readable.</p>
lines. Don&#39;t use more spaces than are helpful.</p>
<h2 id="functions">Functions</h2>
<p>Use named functions. They make stack traces a lot easier to read.</p>
<h2 id="callbacks-sync-async-style">Callbacks, Sync/async Style</h2>
<h2 id="callbacks-syncasync-style">Callbacks, Sync/async Style</h2>
<p>Use the asynchronous/non-blocking versions of things as much as possible.
It might make more sense for npm to use the synchronous fs APIs, but this
way, the fs and http and child process stuff all uses the same callback-passing
@ -110,7 +110,7 @@ report what&#39;s happening so that it&#39;s easier to track down where a fault
occurs.</p>
<p>Use appropriate log levels. See <code><a href="../misc/npm-config.html">npm-config(7)</a></code> and search for
&quot;loglevel&quot;.</p>
<h2 id="case-naming-etc-">Case, naming, etc.</h2>
<h2 id="case-naming-etc">Case, naming, etc.</h2>
<p>Use <code>lowerCamelCase</code> for multiword identifiers when they refer to objects,
functions, methods, properties, or anything not specified in this section.</p>
<p>Use <code>UpperCamelCase</code> for class names (things that you&#39;d pass to &quot;new&quot;).</p>
@ -145,5 +145,5 @@ set to anything.&quot;</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-coding-style &mdash; npm@6.5.0</p>
<p id="footer">npm-coding-style &mdash; npm@6.7.0</p>

View File

@ -259,7 +259,7 @@ disabled when the environment variable <code>NO_COLOR</code> is set to any value
since that gives more useful information. To show the outdated status
of all packages and dependents, use a large integer value,
e.g., <code>npm outdated --depth 9999</code></p>
<h3 id="description">description</h3>
<h3 id="description-1">description</h3>
<ul>
<li>Default: true</li>
<li>Type: Boolean</li>
@ -1064,5 +1064,5 @@ exit successfully.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-config &mdash; npm@6.5.0</p>
<p id="footer">npm-config &mdash; npm@6.7.0</p>

View File

@ -41,7 +41,7 @@ git+ssh://user@hostname:project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish</code></pre><p>The <code>commit-ish</code> can be any tag, sha, or branch which can be supplied as
an argument to <code>git checkout</code>. The default is <code>master</code>.</p>
<h2 id="the-package-json-file">The package.json File</h2>
<h2 id="the-packagejson-file">The package.json File</h2>
<p>You need to have a <code>package.json</code> file in the root of your project to do
much of anything with npm. That is basically the whole interface.</p>
<p>See <code><a href="../files/package.json.html">package.json(5)</a></code> for details about what goes in that file. At the very
@ -198,5 +198,5 @@ from a fresh checkout.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-developers &mdash; npm@6.5.0</p>
<p id="footer">npm-developers &mdash; npm@6.7.0</p>

View File

@ -17,10 +17,10 @@ take about names you think infringe your trademarks.</p>
<a href="https://www.npmjs.com/policies/conduct">npm Code of Conduct</a>, and nothing in
this document should be interpreted to contradict any aspect of the npm Code of
Conduct.</p>
<h2 id="tl-dr">TL;DR</h2>
<h2 id="tldr">TL;DR</h2>
<ol>
<li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
<li>Email the author, CC <a href="mailto:&#x73;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#64;&#x6e;&#x70;&#109;&#x6a;&#115;&#46;&#99;&#111;&#x6d;">&#x73;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#64;&#x6e;&#x70;&#109;&#x6a;&#115;&#46;&#99;&#111;&#x6d;</a></li>
<li>Email the author, CC <a href="mailto:&#x73;&#117;&#x70;&#112;&#111;&#114;&#x74;&#64;&#x6e;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#x6f;&#x6d;">&#x73;&#117;&#x70;&#112;&#111;&#114;&#x74;&#64;&#x6e;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#x6f;&#x6d;</a></li>
<li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
</ol>
<p>Don&#39;t squat on package names. Publish code or move out of the way.</p>
@ -58,13 +58,13 @@ because Yusuf&#39;s <code>foo</code> is in the way.</p>
</li>
<li><p>Alice emails Yusuf, explaining the situation <strong>as respectfully as possible</strong>,
and what she would like to do with the module name. She adds the npm support
staff <a href="mailto:&#115;&#117;&#x70;&#x70;&#x6f;&#114;&#116;&#64;&#110;&#x70;&#109;&#106;&#115;&#46;&#x63;&#111;&#x6d;">&#115;&#117;&#x70;&#x70;&#x6f;&#114;&#116;&#64;&#110;&#x70;&#109;&#106;&#115;&#46;&#x63;&#111;&#x6d;</a> to the CC list of the email. Mention in the email
staff <a href="mailto:&#115;&#117;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#115;&#117;&#x70;&#x70;&#111;&#x72;&#116;&#x40;&#x6e;&#x70;&#109;&#106;&#115;&#x2e;&#x63;&#x6f;&#x6d;</a> to the CC list of the email. Mention in the email
that Yusuf can run npm owner <code>add alice foo</code> to add Alice as an owner of the
foo package.</p>
</li>
<li><p>After a reasonable amount of time, if Yusuf has not responded, or if Yusuf
and Alice can&#39;t come to any sort of resolution, email support
<a href="mailto:&#115;&#x75;&#112;&#112;&#111;&#114;&#116;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#46;&#99;&#111;&#109;">&#115;&#x75;&#112;&#112;&#111;&#114;&#116;&#64;&#x6e;&#112;&#x6d;&#106;&#115;&#46;&#99;&#111;&#109;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is usually at least
<a href="mailto:&#x73;&#x75;&#112;&#112;&#111;&#114;&#116;&#64;&#x6e;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#111;&#x6d;">&#x73;&#x75;&#112;&#112;&#111;&#114;&#116;&#64;&#x6e;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#111;&#x6d;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is usually at least
4 weeks.)</p>
</li>
</ol>
@ -101,12 +101,12 @@ application database or otherwise putting non-packagey things into it.</li>
<a href="https://www.npmjs.com/policies/conduct">Code of Conduct</a> such as hateful
language, pornographic content, or harassment.</li>
</ol>
<p>If you see bad behavior like this, please report it to <a href="mailto:&#97;&#x62;&#117;&#115;&#101;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#111;&#109;">&#97;&#x62;&#117;&#115;&#101;&#x40;&#x6e;&#x70;&#x6d;&#x6a;&#115;&#46;&#x63;&#111;&#109;</a> right
<p>If you see bad behavior like this, please report it to <a href="mailto:&#97;&#98;&#x75;&#115;&#x65;&#64;&#x6e;&#x70;&#109;&#x6a;&#x73;&#x2e;&#x63;&#x6f;&#x6d;">&#97;&#98;&#x75;&#115;&#x65;&#64;&#x6e;&#x70;&#109;&#x6a;&#x73;&#x2e;&#x63;&#x6f;&#x6d;</a> right
away. <strong>You are never expected to resolve abusive behavior on your own. We are
here to help.</strong></p>
<h2 id="trademarks">TRADEMARKS</h2>
<p>If you think another npm publisher is infringing your trademark, such as by
using a confusingly similar package name, email <a href="mailto:&#97;&#98;&#x75;&#115;&#101;&#64;&#110;&#112;&#109;&#x6a;&#x73;&#46;&#x63;&#111;&#x6d;">&#97;&#98;&#x75;&#115;&#101;&#64;&#110;&#112;&#109;&#x6a;&#x73;&#46;&#x63;&#111;&#x6d;</a> with a link to
using a confusingly similar package name, email <a href="mailto:&#x61;&#98;&#117;&#x73;&#101;&#64;&#110;&#112;&#x6d;&#x6a;&#115;&#x2e;&#99;&#111;&#109;">&#x61;&#98;&#117;&#x73;&#101;&#64;&#110;&#112;&#x6d;&#x6a;&#115;&#x2e;&#99;&#111;&#109;</a> with a link to
the package or user account on <a href="https://www.npmjs.com/">https://www.npmjs.com/</a>.
Attach a copy of your trademark registration certificate.</p>
<p>If we see that the package&#39;s publisher is intentionally misleading others by
@ -139,5 +139,5 @@ License.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-disputes &mdash; npm@6.5.0</p>
<p id="footer">npm-disputes &mdash; npm@6.7.0</p>

View File

@ -10,163 +10,165 @@
<div id="wrapper">
<h1><a href="../misc/npm-index.html">npm-index</a></h1> <p>Index of all npm documentation</p>
<h3 id="readme-1-"><a href="../../doc/README.html">README</a></h3>
<h3 id="readme1"><a href="../../doc/README.html">README</a></h3>
<p>a JavaScript package manager</p>
<h2 id="command-line-documentation">Command Line Documentation</h2>
<p>Using npm on the command line</p>
<h3 id="npm-1-"><a href="../cli/npm.html">npm(1)</a></h3>
<h3 id="npm1"><a href="../cli/npm.html">npm(1)</a></h3>
<p>javascript package manager</p>
<h3 id="npm-access-1-"><a href="../cli/npm-access.html">npm-access(1)</a></h3>
<h3 id="npm-access1"><a href="../cli/npm-access.html">npm-access(1)</a></h3>
<p>Set access level on published packages</p>
<h3 id="npm-adduser-1-"><a href="../cli/npm-adduser.html">npm-adduser(1)</a></h3>
<h3 id="npm-adduser1"><a href="../cli/npm-adduser.html">npm-adduser(1)</a></h3>
<p>Add a registry user account</p>
<h3 id="npm-audit-1-"><a href="../cli/npm-audit.html">npm-audit(1)</a></h3>
<h3 id="npm-audit1"><a href="../cli/npm-audit.html">npm-audit(1)</a></h3>
<p>Run a security audit</p>
<h3 id="npm-bin-1-"><a href="../cli/npm-bin.html">npm-bin(1)</a></h3>
<h3 id="npm-bin1"><a href="../cli/npm-bin.html">npm-bin(1)</a></h3>
<p>Display npm bin folder</p>
<h3 id="npm-bugs-1-"><a href="../cli/npm-bugs.html">npm-bugs(1)</a></h3>
<h3 id="npm-bugs1"><a href="../cli/npm-bugs.html">npm-bugs(1)</a></h3>
<p>Bugs for a package in a web browser maybe</p>
<h3 id="npm-build-1-"><a href="../cli/npm-build.html">npm-build(1)</a></h3>
<h3 id="npm-build1"><a href="../cli/npm-build.html">npm-build(1)</a></h3>
<p>Build a package</p>
<h3 id="npm-bundle-1-"><a href="../cli/npm-bundle.html">npm-bundle(1)</a></h3>
<h3 id="npm-bundle1"><a href="../cli/npm-bundle.html">npm-bundle(1)</a></h3>
<p>REMOVED</p>
<h3 id="npm-cache-1-"><a href="../cli/npm-cache.html">npm-cache(1)</a></h3>
<h3 id="npm-cache1"><a href="../cli/npm-cache.html">npm-cache(1)</a></h3>
<p>Manipulates packages cache</p>
<h3 id="npm-ci-1-"><a href="../cli/npm-ci.html">npm-ci(1)</a></h3>
<h3 id="npm-ci1"><a href="../cli/npm-ci.html">npm-ci(1)</a></h3>
<p>Install a project with a clean slate</p>
<h3 id="npm-completion-1-"><a href="../cli/npm-completion.html">npm-completion(1)</a></h3>
<h3 id="npm-completion1"><a href="../cli/npm-completion.html">npm-completion(1)</a></h3>
<p>Tab Completion for npm</p>
<h3 id="npm-config-1-"><a href="../cli/npm-config.html">npm-config(1)</a></h3>
<h3 id="npm-config1"><a href="../cli/npm-config.html">npm-config(1)</a></h3>
<p>Manage the npm configuration files</p>
<h3 id="npm-dedupe-1-"><a href="../cli/npm-dedupe.html">npm-dedupe(1)</a></h3>
<h3 id="npm-dedupe1"><a href="../cli/npm-dedupe.html">npm-dedupe(1)</a></h3>
<p>Reduce duplication</p>
<h3 id="npm-deprecate-1-"><a href="../cli/npm-deprecate.html">npm-deprecate(1)</a></h3>
<h3 id="npm-deprecate1"><a href="../cli/npm-deprecate.html">npm-deprecate(1)</a></h3>
<p>Deprecate a version of a package</p>
<h3 id="npm-dist-tag-1-"><a href="../cli/npm-dist-tag.html">npm-dist-tag(1)</a></h3>
<h3 id="npm-dist-tag1"><a href="../cli/npm-dist-tag.html">npm-dist-tag(1)</a></h3>
<p>Modify package distribution tags</p>
<h3 id="npm-docs-1-"><a href="../cli/npm-docs.html">npm-docs(1)</a></h3>
<h3 id="npm-docs1"><a href="../cli/npm-docs.html">npm-docs(1)</a></h3>
<p>Docs for a package in a web browser maybe</p>
<h3 id="npm-doctor-1-"><a href="../cli/npm-doctor.html">npm-doctor(1)</a></h3>
<h3 id="npm-doctor1"><a href="../cli/npm-doctor.html">npm-doctor(1)</a></h3>
<p>Check your environments</p>
<h3 id="npm-edit-1-"><a href="../cli/npm-edit.html">npm-edit(1)</a></h3>
<h3 id="npm-edit1"><a href="../cli/npm-edit.html">npm-edit(1)</a></h3>
<p>Edit an installed package</p>
<h3 id="npm-explore-1-"><a href="../cli/npm-explore.html">npm-explore(1)</a></h3>
<h3 id="npm-explore1"><a href="../cli/npm-explore.html">npm-explore(1)</a></h3>
<p>Browse an installed package</p>
<h3 id="npm-help-search-1-"><a href="../cli/npm-help-search.html">npm-help-search(1)</a></h3>
<h3 id="npm-help-search1"><a href="../cli/npm-help-search.html">npm-help-search(1)</a></h3>
<p>Search npm help documentation</p>
<h3 id="npm-help-1-"><a href="../cli/npm-help.html">npm-help(1)</a></h3>
<h3 id="npm-help1"><a href="../cli/npm-help.html">npm-help(1)</a></h3>
<p>Get help on npm</p>
<h3 id="npm-hook-1-"><a href="../cli/npm-hook.html">npm-hook(1)</a></h3>
<h3 id="npm-hook1"><a href="../cli/npm-hook.html">npm-hook(1)</a></h3>
<p>Manage registry hooks</p>
<h3 id="npm-init-1-"><a href="../cli/npm-init.html">npm-init(1)</a></h3>
<h3 id="npm-init1"><a href="../cli/npm-init.html">npm-init(1)</a></h3>
<p>create a package.json file</p>
<h3 id="npm-install-ci-test-1-"><a href="../cli/npm-install-ci-test.html">npm-install-ci-test(1)</a></h3>
<h3 id="npm-install-ci-test1"><a href="../cli/npm-install-ci-test.html">npm-install-ci-test(1)</a></h3>
<p>Install a project with a clean slate and run tests</p>
<h3 id="npm-install-test-1-"><a href="../cli/npm-install-test.html">npm-install-test(1)</a></h3>
<h3 id="npm-install-test1"><a href="../cli/npm-install-test.html">npm-install-test(1)</a></h3>
<p>Install package(s) and run tests</p>
<h3 id="npm-install-1-"><a href="../cli/npm-install.html">npm-install(1)</a></h3>
<h3 id="npm-install1"><a href="../cli/npm-install.html">npm-install(1)</a></h3>
<p>Install a package</p>
<h3 id="npm-link-1-"><a href="../cli/npm-link.html">npm-link(1)</a></h3>
<h3 id="npm-link1"><a href="../cli/npm-link.html">npm-link(1)</a></h3>
<p>Symlink a package folder</p>
<h3 id="npm-logout-1-"><a href="../cli/npm-logout.html">npm-logout(1)</a></h3>
<h3 id="npm-logout1"><a href="../cli/npm-logout.html">npm-logout(1)</a></h3>
<p>Log out of the registry</p>
<h3 id="npm-ls-1-"><a href="../cli/npm-ls.html">npm-ls(1)</a></h3>
<h3 id="npm-ls1"><a href="../cli/npm-ls.html">npm-ls(1)</a></h3>
<p>List installed packages</p>
<h3 id="npm-outdated-1-"><a href="../cli/npm-outdated.html">npm-outdated(1)</a></h3>
<h3 id="npm-org1"><a href="../cli/npm-org.html">npm-org(1)</a></h3>
<p>Manage orgs</p>
<h3 id="npm-outdated1"><a href="../cli/npm-outdated.html">npm-outdated(1)</a></h3>
<p>Check for outdated packages</p>
<h3 id="npm-owner-1-"><a href="../cli/npm-owner.html">npm-owner(1)</a></h3>
<h3 id="npm-owner1"><a href="../cli/npm-owner.html">npm-owner(1)</a></h3>
<p>Manage package owners</p>
<h3 id="npm-pack-1-"><a href="../cli/npm-pack.html">npm-pack(1)</a></h3>
<h3 id="npm-pack1"><a href="../cli/npm-pack.html">npm-pack(1)</a></h3>
<p>Create a tarball from a package</p>
<h3 id="npm-ping-1-"><a href="../cli/npm-ping.html">npm-ping(1)</a></h3>
<h3 id="npm-ping1"><a href="../cli/npm-ping.html">npm-ping(1)</a></h3>
<p>Ping npm registry</p>
<h3 id="npm-prefix-1-"><a href="../cli/npm-prefix.html">npm-prefix(1)</a></h3>
<h3 id="npm-prefix1"><a href="../cli/npm-prefix.html">npm-prefix(1)</a></h3>
<p>Display prefix</p>
<h3 id="npm-profile-1-"><a href="../cli/npm-profile.html">npm-profile(1)</a></h3>
<h3 id="npm-profile1"><a href="../cli/npm-profile.html">npm-profile(1)</a></h3>
<p>Change settings on your registry profile</p>
<h3 id="npm-prune-1-"><a href="../cli/npm-prune.html">npm-prune(1)</a></h3>
<h3 id="npm-prune1"><a href="../cli/npm-prune.html">npm-prune(1)</a></h3>
<p>Remove extraneous packages</p>
<h3 id="npm-publish-1-"><a href="../cli/npm-publish.html">npm-publish(1)</a></h3>
<h3 id="npm-publish1"><a href="../cli/npm-publish.html">npm-publish(1)</a></h3>
<p>Publish a package</p>
<h3 id="npm-rebuild-1-"><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></h3>
<h3 id="npm-rebuild1"><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></h3>
<p>Rebuild a package</p>
<h3 id="npm-repo-1-"><a href="../cli/npm-repo.html">npm-repo(1)</a></h3>
<h3 id="npm-repo1"><a href="../cli/npm-repo.html">npm-repo(1)</a></h3>
<p>Open package repository page in the browser</p>
<h3 id="npm-restart-1-"><a href="../cli/npm-restart.html">npm-restart(1)</a></h3>
<h3 id="npm-restart1"><a href="../cli/npm-restart.html">npm-restart(1)</a></h3>
<p>Restart a package</p>
<h3 id="npm-root-1-"><a href="../cli/npm-root.html">npm-root(1)</a></h3>
<h3 id="npm-root1"><a href="../cli/npm-root.html">npm-root(1)</a></h3>
<p>Display npm root</p>
<h3 id="npm-run-script-1-"><a href="../cli/npm-run-script.html">npm-run-script(1)</a></h3>
<h3 id="npm-run-script1"><a href="../cli/npm-run-script.html">npm-run-script(1)</a></h3>
<p>Run arbitrary package scripts</p>
<h3 id="npm-search-1-"><a href="../cli/npm-search.html">npm-search(1)</a></h3>
<h3 id="npm-search1"><a href="../cli/npm-search.html">npm-search(1)</a></h3>
<p>Search for packages</p>
<h3 id="npm-shrinkwrap-1-"><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></h3>
<h3 id="npm-shrinkwrap1"><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></h3>
<p>Lock down dependency versions for publication</p>
<h3 id="npm-star-1-"><a href="../cli/npm-star.html">npm-star(1)</a></h3>
<h3 id="npm-star1"><a href="../cli/npm-star.html">npm-star(1)</a></h3>
<p>Mark your favorite packages</p>
<h3 id="npm-stars-1-"><a href="../cli/npm-stars.html">npm-stars(1)</a></h3>
<h3 id="npm-stars1"><a href="../cli/npm-stars.html">npm-stars(1)</a></h3>
<p>View packages marked as favorites</p>
<h3 id="npm-start-1-"><a href="../cli/npm-start.html">npm-start(1)</a></h3>
<h3 id="npm-start1"><a href="../cli/npm-start.html">npm-start(1)</a></h3>
<p>Start a package</p>
<h3 id="npm-stop-1-"><a href="../cli/npm-stop.html">npm-stop(1)</a></h3>
<h3 id="npm-stop1"><a href="../cli/npm-stop.html">npm-stop(1)</a></h3>
<p>Stop a package</p>
<h3 id="npm-team-1-"><a href="../cli/npm-team.html">npm-team(1)</a></h3>
<h3 id="npm-team1"><a href="../cli/npm-team.html">npm-team(1)</a></h3>
<p>Manage organization teams and team memberships</p>
<h3 id="npm-test-1-"><a href="../cli/npm-test.html">npm-test(1)</a></h3>
<h3 id="npm-test1"><a href="../cli/npm-test.html">npm-test(1)</a></h3>
<p>Test a package</p>
<h3 id="npm-token-1-"><a href="../cli/npm-token.html">npm-token(1)</a></h3>
<h3 id="npm-token1"><a href="../cli/npm-token.html">npm-token(1)</a></h3>
<p>Manage your authentication tokens</p>
<h3 id="npm-uninstall-1-"><a href="../cli/npm-uninstall.html">npm-uninstall(1)</a></h3>
<h3 id="npm-uninstall1"><a href="../cli/npm-uninstall.html">npm-uninstall(1)</a></h3>
<p>Remove a package</p>
<h3 id="npm-unpublish-1-"><a href="../cli/npm-unpublish.html">npm-unpublish(1)</a></h3>
<h3 id="npm-unpublish1"><a href="../cli/npm-unpublish.html">npm-unpublish(1)</a></h3>
<p>Remove a package from the registry</p>
<h3 id="npm-update-1-"><a href="../cli/npm-update.html">npm-update(1)</a></h3>
<h3 id="npm-update1"><a href="../cli/npm-update.html">npm-update(1)</a></h3>
<p>Update a package</p>
<h3 id="npm-version-1-"><a href="../cli/npm-version.html">npm-version(1)</a></h3>
<h3 id="npm-version1"><a href="../cli/npm-version.html">npm-version(1)</a></h3>
<p>Bump a package version</p>
<h3 id="npm-view-1-"><a href="../cli/npm-view.html">npm-view(1)</a></h3>
<h3 id="npm-view1"><a href="../cli/npm-view.html">npm-view(1)</a></h3>
<p>View registry info</p>
<h3 id="npm-whoami-1-"><a href="../cli/npm-whoami.html">npm-whoami(1)</a></h3>
<h3 id="npm-whoami1"><a href="../cli/npm-whoami.html">npm-whoami(1)</a></h3>
<p>Display npm username</p>
<h2 id="api-documentation">API Documentation</h2>
<p>Using npm in your Node programs</p>
<h2 id="files">Files</h2>
<p>File system structures npm uses</p>
<h3 id="npm-folders-5-"><a href="../files/npm-folders.html">npm-folders(5)</a></h3>
<h3 id="npm-folders5"><a href="../files/npm-folders.html">npm-folders(5)</a></h3>
<p>Folder Structures Used by npm</p>
<h3 id="npm-package-locks-5-"><a href="../files/npm-package-locks.html">npm-package-locks(5)</a></h3>
<h3 id="npm-package-locks5"><a href="../files/npm-package-locks.html">npm-package-locks(5)</a></h3>
<p>An explanation of npm lockfiles</p>
<h3 id="npm-shrinkwrap-json-5-"><a href="../files/npm-shrinkwrap.json.html">npm-shrinkwrap.json(5)</a></h3>
<h3 id="npm-shrinkwrapjson5"><a href="../files/npm-shrinkwrap.json.html">npm-shrinkwrap.json(5)</a></h3>
<p>A publishable lockfile</p>
<h3 id="npmrc-5-"><a href="../files/npmrc.html">npmrc(5)</a></h3>
<h3 id="npmrc5"><a href="../files/npmrc.html">npmrc(5)</a></h3>
<p>The npm config files</p>
<h3 id="package-lock-json-5-"><a href="../files/package-lock.json.html">package-lock.json(5)</a></h3>
<h3 id="package-lockjson5"><a href="../files/package-lock.json.html">package-lock.json(5)</a></h3>
<p>A manifestation of the manifest</p>
<h3 id="package-json-5-"><a href="../files/package.json.html">package.json(5)</a></h3>
<h3 id="packagejson5"><a href="../files/package.json.html">package.json(5)</a></h3>
<p>Specifics of npm&#39;s package.json handling</p>
<h2 id="misc">Misc</h2>
<p>Various other bits and bobs</p>
<h3 id="npm-coding-style-7-"><a href="../misc/npm-coding-style.html">npm-coding-style(7)</a></h3>
<h3 id="npm-coding-style7"><a href="../misc/npm-coding-style.html">npm-coding-style(7)</a></h3>
<p>npm&#39;s &quot;funny&quot; coding style</p>
<h3 id="npm-config-7-"><a href="../misc/npm-config.html">npm-config(7)</a></h3>
<h3 id="npm-config7"><a href="../misc/npm-config.html">npm-config(7)</a></h3>
<p>More than you probably want to know about npm configuration</p>
<h3 id="npm-developers-7-"><a href="../misc/npm-developers.html">npm-developers(7)</a></h3>
<h3 id="npm-developers7"><a href="../misc/npm-developers.html">npm-developers(7)</a></h3>
<p>Developer Guide</p>
<h3 id="npm-disputes-7-"><a href="../misc/npm-disputes.html">npm-disputes(7)</a></h3>
<h3 id="npm-disputes7"><a href="../misc/npm-disputes.html">npm-disputes(7)</a></h3>
<p>Handling Module Name Disputes</p>
<h3 id="npm-index-7-"><a href="../misc/npm-index.html">npm-index(7)</a></h3>
<h3 id="npm-index7"><a href="../misc/npm-index.html">npm-index(7)</a></h3>
<p>Index of all npm documentation</p>
<h3 id="npm-orgs-7-"><a href="../misc/npm-orgs.html">npm-orgs(7)</a></h3>
<h3 id="npm-orgs7"><a href="../misc/npm-orgs.html">npm-orgs(7)</a></h3>
<p>Working with Teams &amp; Orgs</p>
<h3 id="npm-registry-7-"><a href="../misc/npm-registry.html">npm-registry(7)</a></h3>
<h3 id="npm-registry7"><a href="../misc/npm-registry.html">npm-registry(7)</a></h3>
<p>The JavaScript Package Registry</p>
<h3 id="npm-scope-7-"><a href="../misc/npm-scope.html">npm-scope(7)</a></h3>
<h3 id="npm-scope7"><a href="../misc/npm-scope.html">npm-scope(7)</a></h3>
<p>Scoped packages</p>
<h3 id="npm-scripts-7-"><a href="../misc/npm-scripts.html">npm-scripts(7)</a></h3>
<h3 id="npm-scripts7"><a href="../misc/npm-scripts.html">npm-scripts(7)</a></h3>
<p>How npm handles the &quot;scripts&quot; field</p>
<h3 id="removing-npm-7-"><a href="../misc/removing-npm.html">removing-npm(7)</a></h3>
<h3 id="removing-npm7"><a href="../misc/removing-npm.html">removing-npm(7)</a></h3>
<p>Cleaning the Slate</p>
<h3 id="semver-7-"><a href="../misc/semver.html">semver(7)</a></h3>
<h3 id="semver7"><a href="../misc/semver.html">semver(7)</a></h3>
<p>The semantic versioner for npm</p>
</div>
@ -180,5 +182,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-index &mdash; npm@6.5.0</p>
<p id="footer">npm-index &mdash; npm@6.7.0</p>

View File

@ -77,5 +77,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-orgs &mdash; npm@6.5.0</p>
<p id="footer">npm-orgs &mdash; npm@6.7.0</p>

View File

@ -31,7 +31,7 @@ available at <a href="https://github.com/npm/npm-registry-couchapp">https://gith
<code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>). If no scope is specified, the default registry is used, which is
supplied by the <code>registry</code> config parameter. See <code><a href="../cli/npm-config.html">npm-config(1)</a></code>,
<code><a href="../files/npmrc.html">npmrc(5)</a></code>, and <code><a href="../misc/npm-config.html">npm-config(7)</a></code> for more on managing npm&#39;s configuration.</p>
<h2 id="does-npm-send-any-information-about-me-back-to-the-registry-">Does npm send any information about me back to the registry?</h2>
<h2 id="does-npm-send-any-information-about-me-back-to-the-registry">Does npm send any information about me back to the registry?</h2>
<p>Yes.</p>
<p>When making requests of the registry npm adds two headers with information
about your environment:</p>
@ -51,7 +51,7 @@ build farms.</li>
</ul>
<p>The npm registry does not try to correlate the information in these headers
with any authenticated accounts that may be used in the same requests.</p>
<h2 id="can-i-run-my-own-private-registry-">Can I run my own private registry?</h2>
<h2 id="can-i-run-my-own-private-registry">Can I run my own private registry?</h2>
<p>Yes!</p>
<p>The easiest way is to replicate the couch database, and use the same (or
similar) design doc to implement the APIs.</p>
@ -61,20 +61,20 @@ to read any published packages, in addition to your private ones, and by
default will only publish internally. </p>
<p>If you then want to publish a package for the whole world to see, you can
simply override the <code>--registry</code> option for that <code>publish</code> command.</p>
<h2 id="i-don-t-want-my-package-published-in-the-official-registry-it-s-private-">I don&#39;t want my package published in the official registry. It&#39;s private.</h2>
<h2 id="i-dont-want-my-package-published-in-the-official-registry-its-private">I don&#39;t want my package published in the official registry. It&#39;s private.</h2>
<p>Set <code>&quot;private&quot;: true</code> in your package.json to prevent it from being
published at all, or
<code>&quot;publishConfig&quot;:{&quot;registry&quot;:&quot;http://my-internal-registry.local&quot;}</code>
to force it to be published only to your internal registry.</p>
<p>See <code><a href="../files/package.json.html">package.json(5)</a></code> for more info on what goes in the package.json file.</p>
<h2 id="will-you-replicate-from-my-registry-into-the-public-one-">Will you replicate from my registry into the public one?</h2>
<h2 id="will-you-replicate-from-my-registry-into-the-public-one">Will you replicate from my registry into the public one?</h2>
<p>No. If you want things to be public, then publish them into the public
registry using npm. What little security there is would be for nought
otherwise.</p>
<h2 id="do-i-have-to-use-couchdb-to-build-a-registry-that-npm-can-talk-to-">Do I have to use couchdb to build a registry that npm can talk to?</h2>
<h2 id="do-i-have-to-use-couchdb-to-build-a-registry-that-npm-can-talk-to">Do I have to use couchdb to build a registry that npm can talk to?</h2>
<p>No, but it&#39;s way easier. Basically, yes, you do, or you have to
effectively implement the entire CouchDB API anyway.</p>
<h2 id="is-there-a-website-or-something-to-see-package-docs-and-such-">Is there a website or something to see package docs and such?</h2>
<h2 id="is-there-a-website-or-something-to-see-package-docs-and-such">Is there a website or something to see package docs and such?</h2>
<p>Yes, head over to <a href="https://www.npmjs.com/">https://www.npmjs.com/</a></p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
@ -96,5 +96,5 @@ effectively implement the entire CouchDB API anyway.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-registry &mdash; npm@6.5.0</p>
<p id="footer">npm-registry &mdash; npm@6.7.0</p>

View File

@ -93,5 +93,5 @@ that registry instead.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-scope &mdash; npm@6.5.0</p>
<p id="footer">npm-scope &mdash; npm@6.7.0</p>

View File

@ -127,7 +127,7 @@ executing the scripts. So, if your package.json has this:</p>
, &quot;dependencies&quot; : { &quot;bar&quot; : &quot;0.1.x&quot; }
, &quot;scripts&quot;: { &quot;start&quot; : &quot;bar ./test&quot; } }</code></pre><p>then you could run <code>npm start</code> to execute the <code>bar</code> script, which is
exported into the <code>node_modules/.bin</code> directory on <code>npm install</code>.</p>
<h3 id="package-json-vars">package.json vars</h3>
<h3 id="packagejson-vars">package.json vars</h3>
<p>The package.json fields are tacked onto the <code>npm_package_</code> prefix. So,
for instance, if you had <code>{&quot;name&quot;:&quot;foo&quot;, &quot;version&quot;:&quot;1.2.5&quot;}</code> in your
package.json file, then your package scripts would have the
@ -139,7 +139,7 @@ in your code with <code>process.env.npm_package_name</code> and
<p>Configuration parameters are put in the environment with the
<code>npm_config_</code> prefix. For instance, you can view the effective <code>root</code>
config by checking the <code>npm_config_root</code> environment variable.</p>
<h3 id="special-package-json-config-object">Special: package.json &quot;config&quot; object</h3>
<h3 id="special-packagejson-config-object">Special: package.json &quot;config&quot; object</h3>
<p>The package.json &quot;config&quot; keys are overwritten in the environment if
there is a config param of <code>&lt;name&gt;[@&lt;version&gt;]:&lt;key&gt;</code>. For example,
if the package.json has this:</p>
@ -234,5 +234,5 @@ scripts is for compilation which must be done on the target architecture.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-scripts &mdash; npm@6.5.0</p>
<p id="footer">npm-scripts &mdash; npm@6.7.0</p>

View File

@ -52,5 +52,5 @@ modules. To track those down, you can do the following:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">removing-npm &mdash; npm@6.5.0</p>
<p id="footer">removing-npm &mdash; npm@6.7.0</p>

View File

@ -11,8 +11,7 @@
<h1><a href="../misc/semver.html">semver</a></h1> <p>The semantic versioner for npm</p>
<h2 id="install">Install</h2>
<pre><code class="language-bash">npm install --save semver
`</code></pre>
<pre><code class="language-bash">npm install --save semver</code></pre>
<h2 id="usage">Usage</h2>
<p>As a node module:</p>
<pre><code class="language-js">const semver = require(&#39;semver&#39;)
@ -28,8 +27,6 @@ semver.valid(semver.coerce(&#39;42.6.7.9.3-alpha&#39;)) // &#39;42.6.7&#39;</cod
<p>As a command-line utility:</p>
<pre><code>$ semver -h
SemVer 5.3.0
A JavaScript implementation of the http://semver.org/ specification
Copyright Isaac Z. Schlueter
@ -53,6 +50,9 @@ Options:
-l --loose
Interpret versions and ranges loosely
-p --include-prerelease
Always include prerelease versions in range matching
-c --coerce
Coerce a string into SemVer if possible
(does not imply --loose)
@ -133,7 +133,7 @@ will append the value of the string as a prerelease identifier:</p>
deterministic ways.</p>
<p>Advanced ranges may be combined in the same way as primitive
comparators using white space or <code>||</code>.</p>
<h4 id="hyphen-ranges-x-y-z-a-b-c">Hyphen Ranges <code>X.Y.Z - A.B.C</code></h4>
<h4 id="hyphen-ranges-xyz---abc">Hyphen Ranges <code>X.Y.Z - A.B.C</code></h4>
<p>Specifies an inclusive set.</p>
<ul>
<li><code>1.2.3 - 2.3.4</code> := <code>&gt;=1.2.3 &lt;=2.3.4</code></li>
@ -151,7 +151,7 @@ provided tuple parts.</p>
<li><code>1.2.3 - 2.3</code> := <code>&gt;=1.2.3 &lt;2.4.0</code></li>
<li><code>1.2.3 - 2</code> := <code>&gt;=1.2.3 &lt;3.0.0</code></li>
</ul>
<h4 id="x-ranges-1-2-x-1-x-1-2-">X-Ranges <code>1.2.x</code> <code>1.X</code> <code>1.2.*</code> <code>*</code></h4>
<h4 id="x-ranges-12x-1x-12-">X-Ranges <code>1.2.x</code> <code>1.X</code> <code>1.2.*</code> <code>*</code></h4>
<p>Any of <code>X</code>, <code>x</code>, or <code>*</code> may be used to &quot;stand in&quot; for one of the
numeric values in the <code>[major, minor, patch]</code> tuple.</p>
<ul>
@ -166,7 +166,7 @@ character is in fact optional.</p>
<li><code>1</code> := <code>1.x.x</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li>
<li><code>1.2</code> := <code>1.2.x</code> := <code>&gt;=1.2.0 &lt;1.3.0</code></li>
</ul>
<h4 id="tilde-ranges-1-2-3-1-2-1">Tilde Ranges <code>~1.2.3</code> <code>~1.2</code> <code>~1</code></h4>
<h4 id="tilde-ranges-123-12-1">Tilde Ranges <code>~1.2.3</code> <code>~1.2</code> <code>~1</code></h4>
<p>Allows patch-level changes if a minor version is specified on the
comparator. Allows minor-level changes if not.</p>
<ul>
@ -182,7 +182,7 @@ equal to <code>beta.2</code>. So, <code>1.2.3-beta.4</code> would be allowed, b
<code>1.2.4-beta.2</code> would not, because it is a prerelease of a
different <code>[major, minor, patch]</code> tuple.</li>
</ul>
<h4 id="caret-ranges-1-2-3-0-2-5-0-0-4">Caret Ranges <code>^1.2.3</code> <code>^0.2.5</code> <code>^0.0.4</code></h4>
<h4 id="caret-ranges-123-025-004">Caret Ranges <code>^1.2.3</code> <code>^0.2.5</code> <code>^0.0.4</code></h4>
<p>Allows changes that do not modify the left-most non-zero digit in the
<code>[major, minor, patch]</code> tuple. In other words, this allows patch and
minor updates for versions <code>1.0.0</code> and above, patch updates for
@ -242,9 +242,20 @@ build ::= parts
parts ::= part ( &#39;.&#39; part ) *
part ::= nr | [-0-9A-Za-z]+</code></pre>
<h2 id="functions">Functions</h2>
<p>All methods and classes take a final <code>loose</code> boolean argument that, if
true, will be more forgiving about not-quite-valid semver strings.
The resulting output will always be 100% strict, of course.</p>
<p>All methods and classes take a final <code>options</code> object argument. All
options in this object are <code>false</code> by default. The options supported
are:</p>
<ul>
<li><code>loose</code> Be more forgiving about not-quite-valid semver strings.
(Any resulting output will always be 100% strict compliant, of
course.) For backwards compatibility reasons, if the <code>options</code>
argument is a boolean value instead of an object, it is interpreted
to be the <code>loose</code> param.</li>
<li><code>includePrerelease</code> Set to suppress the <a href="https://github.com/npm/node-semver#prerelease-tags">default
behavior</a> of
excluding prerelease tagged versions from ranges unless they are
explicitly opted into.</li>
</ul>
<p>Strict-mode Comparators and Ranges will be strict about the SemVer
strings that they parse.</p>
<ul>
@ -295,7 +306,7 @@ or null if the versions are the same.</li>
<ul>
<li><code>intersects(comparator)</code>: Return true if the comparators intersect</li>
</ul>
<h3 id="ranges">Ranges</h3>
<h3 id="ranges-1">Ranges</h3>
<ul>
<li><code>validRange(range)</code>: Return the valid range or null if it&#39;s not valid</li>
<li><code>satisfies(version, range)</code>: Return true if the version satisfies the
@ -350,5 +361,5 @@ higher value components are invalid (<code>9999999999999999.4.7.4</code> is like
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">semver &mdash; npm@6.5.0</p>
<p id="footer">semver &mdash; npm@6.7.0</p>

226
deps/npm/lib/access.js vendored
View File

@ -1,28 +1,50 @@
'use strict'
/* eslint-disable standard/no-callback-literal */
var resolve = require('path').resolve
const BB = require('bluebird')
var readPackageJson = require('read-package-json')
var mapToRegistry = require('./utils/map-to-registry.js')
var npm = require('./npm.js')
var output = require('./utils/output.js')
var whoami = require('./whoami')
const figgyPudding = require('figgy-pudding')
const libaccess = require('libnpm/access')
const npmConfig = require('./config/figgy-config.js')
const output = require('./utils/output.js')
const otplease = require('./utils/otplease.js')
const path = require('path')
const prefix = require('./npm.js').prefix
const readPackageJson = BB.promisify(require('read-package-json'))
const usage = require('./utils/usage.js')
const whoami = require('./whoami.js')
module.exports = access
access.usage =
access.usage = usage(
'npm access',
'npm access public [<package>]\n' +
'npm access restricted [<package>]\n' +
'npm access grant <read-only|read-write> <scope:team> [<package>]\n' +
'npm access revoke <scope:team> [<package>]\n' +
'npm access 2fa-required [<package>]\n' +
'npm access 2fa-not-required [<package>]\n' +
'npm access ls-packages [<user>|<scope>|<scope:team>]\n' +
'npm access ls-collaborators [<package> [<user>]]\n' +
'npm access edit [<package>]'
)
access.subcommands = ['public', 'restricted', 'grant', 'revoke',
'ls-packages', 'ls-collaborators', 'edit']
access.subcommands = [
'public', 'restricted', 'grant', 'revoke',
'ls-packages', 'ls-collaborators', 'edit',
'2fa-required', '2fa-not-required'
]
const AccessConfig = figgyPudding({
json: {}
})
function UsageError (msg = '') {
throw Object.assign(new Error(
(msg ? `\nUsage: ${msg}\n\n` : '') +
access.usage
), {code: 'EUSAGE'})
}
access.completion = function (opts, cb) {
var argv = opts.conf.argv.remain
@ -42,6 +64,8 @@ access.completion = function (opts, cb) {
case 'ls-packages':
case 'ls-collaborators':
case 'edit':
case '2fa-required':
case '2fa-not-required':
return cb(null, [])
case 'revoke':
return cb(null, [])
@ -50,81 +74,125 @@ access.completion = function (opts, cb) {
}
}
function access (args, cb) {
var cmd = args.shift()
var params
return parseParams(cmd, args, function (err, p) {
if (err) { return cb(err) }
params = p
return mapToRegistry(params.package, npm.config, invokeCmd)
})
function access ([cmd, ...args], cb) {
return BB.try(() => {
const fn = access.subcommands.includes(cmd) && access[cmd]
if (!cmd) { UsageError('Subcommand is required.') }
if (!fn) { UsageError(`${cmd} is not a recognized subcommand.`) }
function invokeCmd (err, uri, auth, base) {
if (err) { return cb(err) }
params.auth = auth
try {
return npm.registry.access(cmd, uri, params, function (err, data) {
if (!err && data) {
output(JSON.stringify(data, undefined, 2))
}
cb(err, data)
})
} catch (e) {
cb(e.message + '\n\nUsage:\n' + access.usage)
}
}
return fn(args, AccessConfig(npmConfig()))
}).then(
x => cb(null, x),
err => err.code === 'EUSAGE' ? cb(err.message) : cb(err)
)
}
function parseParams (cmd, args, cb) {
// mapToRegistry will complain if package is undefined,
// but it's not needed for ls-packages
var params = { 'package': '' }
if (cmd === 'grant') {
params.permissions = args.shift()
}
if (['grant', 'revoke', 'ls-packages'].indexOf(cmd) !== -1) {
var entity = (args.shift() || '').split(':')
params.scope = entity[0]
params.team = entity[1]
}
access.public = ([pkg], opts) => {
return modifyPackage(pkg, opts, libaccess.public)
}
if (cmd === 'ls-packages') {
if (!params.scope) {
whoami([], true, function (err, scope) {
params.scope = scope
cb(err, params)
})
} else {
cb(null, params)
access.restricted = ([pkg], opts) => {
return modifyPackage(pkg, opts, libaccess.restricted)
}
access.grant = ([perms, scopeteam, pkg], opts) => {
return BB.try(() => {
if (!perms || (perms !== 'read-only' && perms !== 'read-write')) {
UsageError('First argument must be either `read-only` or `read-write.`')
}
} else {
getPackage(args.shift(), function (err, pkg) {
if (err) return cb(err)
params.package = pkg
if (cmd === 'ls-collaborators') params.user = args.shift()
cb(null, params)
if (!scopeteam) {
UsageError('`<scope:team>` argument is required.')
}
const [, scope, team] = scopeteam.match(/^@?([^:]+):(.*)$/) || []
if (!scope && !team) {
UsageError(
'Second argument used incorrect format.\n' +
'Example: @example:developers'
)
}
return modifyPackage(pkg, opts, (pkgName, opts) => {
return libaccess.grant(pkgName, scopeteam, perms, opts)
})
}
})
}
function getPackage (name, cb) {
if (name && name.trim()) {
cb(null, name.trim())
} else {
readPackageJson(
resolve(npm.prefix, 'package.json'),
function (err, data) {
if (err) {
if (err.code === 'ENOENT') {
cb(new Error('no package name passed to command and no package.json found'))
} else {
cb(err)
}
} else {
cb(null, data.name)
}
}
)
}
access.revoke = ([scopeteam, pkg], opts) => {
return BB.try(() => {
if (!scopeteam) {
UsageError('`<scope:team>` argument is required.')
}
const [, scope, team] = scopeteam.match(/^@?([^:]+):(.*)$/) || []
if (!scope || !team) {
UsageError(
'First argument used incorrect format.\n' +
'Example: @example:developers'
)
}
return modifyPackage(pkg, opts, (pkgName, opts) => {
return libaccess.revoke(pkgName, scopeteam, opts)
})
})
}
access['2fa-required'] = access.tfaRequired = ([pkg], opts) => {
return modifyPackage(pkg, opts, libaccess.tfaRequired, false)
}
access['2fa-not-required'] = access.tfaNotRequired = ([pkg], opts) => {
return modifyPackage(pkg, opts, libaccess.tfaNotRequired, false)
}
access['ls-packages'] = access.lsPackages = ([owner], opts) => {
return (
owner ? BB.resolve(owner) : BB.fromNode(cb => whoami([], true, cb))
).then(owner => {
return libaccess.lsPackages(owner, opts)
}).then(pkgs => {
// TODO - print these out nicely (breaking change)
output(JSON.stringify(pkgs, null, 2))
})
}
access['ls-collaborators'] = access.lsCollaborators = ([pkg, usr], opts) => {
return getPackage(pkg).then(pkgName =>
libaccess.lsCollaborators(pkgName, usr, opts)
).then(collabs => {
// TODO - print these out nicely (breaking change)
output(JSON.stringify(collabs, null, 2))
})
}
access['edit'] = () => BB.reject(new Error('edit subcommand is not implemented yet'))
function modifyPackage (pkg, opts, fn, requireScope = true) {
return getPackage(pkg, requireScope).then(pkgName =>
otplease(opts, opts => fn(pkgName, opts))
)
}
function getPackage (name, requireScope = true) {
return BB.try(() => {
if (name && name.trim()) {
return name.trim()
} else {
return readPackageJson(
path.resolve(prefix, 'package.json')
).then(
data => data.name,
err => {
if (err.code === 'ENOENT') {
throw new Error('no package name passed to command and no package.json found')
} else {
throw err
}
}
)
}
}).then(name => {
if (requireScope && !name.match(/^@[^/]+\/.*$/)) {
UsageError('This command is only available for scoped packages.')
} else {
return name
}
})
}

65
deps/npm/lib/audit.js vendored
View File

@ -3,17 +3,37 @@
const Bluebird = require('bluebird')
const audit = require('./install/audit.js')
const figgyPudding = require('figgy-pudding')
const fs = require('graceful-fs')
const Installer = require('./install.js').Installer
const lockVerify = require('lock-verify')
const log = require('npmlog')
const npa = require('npm-package-arg')
const npa = require('libnpm/parse-arg')
const npm = require('./npm.js')
const npmConfig = require('./config/figgy-config.js')
const output = require('./utils/output.js')
const parseJson = require('json-parse-better-errors')
const readFile = Bluebird.promisify(fs.readFile)
const AuditConfig = figgyPudding({
also: {},
'audit-level': {},
deepArgs: 'deep-args',
'deep-args': {},
dev: {},
force: {},
'dry-run': {},
global: {},
json: {},
only: {},
parseable: {},
prod: {},
production: {},
registry: {},
runId: {}
})
module.exports = auditCmd
const usage = require('./utils/usage')
@ -110,12 +130,12 @@ function maybeReadFile (name) {
})
}
function filterEnv (action) {
const includeDev = npm.config.get('dev') ||
(!/^prod(uction)?$/.test(npm.config.get('only')) && !npm.config.get('production')) ||
/^dev(elopment)?$/.test(npm.config.get('only')) ||
/^dev(elopment)?$/.test(npm.config.get('also'))
const includeProd = !/^dev(elopment)?$/.test(npm.config.get('only'))
function filterEnv (action, opts) {
const includeDev = opts.dev ||
(!/^prod(uction)?$/.test(opts.only) && !opts.production) ||
/^dev(elopment)?$/.test(opts.only) ||
/^dev(elopment)?$/.test(opts.also)
const includeProd = !/^dev(elopment)?$/.test(opts.only)
const resolves = action.resolves.filter(({dev}) => {
return (dev && includeDev) || (!dev && includeProd)
})
@ -125,7 +145,8 @@ function filterEnv (action) {
}
function auditCmd (args, cb) {
if (npm.config.get('global')) {
const opts = AuditConfig(npmConfig())
if (opts.global) {
const err = new Error('`npm audit` does not support testing globals')
err.code = 'EAUDITGLOBAL'
throw err
@ -168,8 +189,16 @@ function auditCmd (args, cb) {
}).then((auditReport) => {
return audit.submitForFullReport(auditReport)
}).catch((err) => {
if (err.statusCode === 404 || err.statusCode >= 500) {
const ne = new Error(`Your configured registry (${npm.config.get('registry')}) does not support audit requests.`)
if (err.statusCode >= 400) {
let msg
if (err.statusCode === 401) {
msg = `Either your login credentials are invalid or your registry (${opts.registry}) does not support audit.`
} else if (err.statusCode === 404) {
msg = `Your configured registry (${opts.registry}) does not support audit requests.`
} else {
msg = `Your configured registry (${opts.registry}) does not support audit requests, or the audit endpoint is temporarily unavailable.`
}
const ne = new Error(msg)
ne.code = 'ENOAUDIT'
ne.wrapped = err
throw ne
@ -178,7 +207,7 @@ function auditCmd (args, cb) {
}).then((auditResult) => {
if (args[0] === 'fix') {
const actions = (auditResult.actions || []).reduce((acc, action) => {
action = filterEnv(action)
action = filterEnv(action, opts)
if (!action) { return acc }
if (action.isMajor) {
acc.major.add(`${action.module}@${action.target}`)
@ -215,7 +244,7 @@ function auditCmd (args, cb) {
review: new Set()
})
return Bluebird.try(() => {
const installMajor = npm.config.get('force')
const installMajor = opts.force
const installCount = actions.install.size + (installMajor ? actions.major.size : 0) + actions.update.size
const vulnFixCount = new Set([...actions.installFixes, ...actions.updateFixes, ...(installMajor ? actions.majorFixes : [])]).size
const metavuln = auditResult.metadata.vulnerabilities
@ -230,16 +259,16 @@ function auditCmd (args, cb) {
return Bluebird.fromNode(cb => {
new Auditor(
npm.prefix,
!!npm.config.get('dry-run'),
!!opts['dry-run'],
[...actions.install, ...(installMajor ? actions.major : [])],
{
opts.concat({
runId: auditResult.runId,
deepArgs: [...actions.update].map(u => u.split('>'))
}
}).toJSON()
).run(cb)
}).then(() => {
const numScanned = auditResult.metadata.totalDependencies
if (!npm.config.get('json') && !npm.config.get('parseable')) {
if (!opts.json && !opts.parseable) {
output(`fixed ${vulnFixCount} of ${total} vulnerabilit${total === 1 ? 'y' : 'ies'} in ${numScanned} scanned package${numScanned === 1 ? '' : 's'}`)
if (actions.review.size) {
output(` ${actions.review.size} vulnerabilit${actions.review.size === 1 ? 'y' : 'ies'} required manual review and could not be updated`)
@ -258,12 +287,12 @@ function auditCmd (args, cb) {
})
} else {
const levels = ['low', 'moderate', 'high', 'critical']
const minLevel = levels.indexOf(npm.config.get('audit-level'))
const minLevel = levels.indexOf(opts['audit-level'])
const vulns = levels.reduce((count, level, i) => {
return i < minLevel ? count : count + (auditResult.metadata.vulnerabilities[level] || 0)
}, 0)
if (vulns > 0) process.exitCode = 1
if (npm.config.get('parseable')) {
if (opts.parseable) {
return audit.printParseableReport(auditResult)
} else {
return audit.printFullReport(auditResult)

View File

@ -1,11 +1,11 @@
'use strict'
const read = require('../utils/read-user-info.js')
const profile = require('npm-profile')
const profile = require('libnpm/profile')
const log = require('npmlog')
const npm = require('../npm.js')
const figgyPudding = require('figgy-pudding')
const npmConfig = require('../config/figgy-config.js')
const output = require('../utils/output.js')
const pacoteOpts = require('../config/pacote')
const fetchOpts = require('../config/fetch-opts')
const openUrl = require('../utils/open-url')
const openerPromise = (url) => new Promise((resolve, reject) => {
@ -26,54 +26,54 @@ const loginPrompter = (creds) => {
})
}
module.exports.login = (creds, registry, scope, cb) => {
const conf = {
log: log,
creds: creds,
registry: registry,
auth: {
otp: npm.config.get('otp')
},
scope: scope,
opts: fetchOpts.fromPacote(pacoteOpts())
}
login(conf).then((newCreds) => cb(null, newCreds)).catch(cb)
const LoginOpts = figgyPudding({
'always-auth': {},
creds: {},
log: {default: () => log},
registry: {},
scope: {}
})
module.exports.login = (creds = {}, registry, scope, cb) => {
const opts = LoginOpts(npmConfig()).concat({scope, registry, creds})
login(opts).then((newCreds) => cb(null, newCreds)).catch(cb)
}
function login (conf) {
return profile.login(openerPromise, loginPrompter, conf)
function login (opts) {
return profile.login(openerPromise, loginPrompter, opts)
.catch((err) => {
if (err.code === 'EOTP') throw err
const u = conf.creds.username
const p = conf.creds.password
const e = conf.creds.email
const u = opts.creds.username
const p = opts.creds.password
const e = opts.creds.email
if (!(u && p && e)) throw err
return profile.adduserCouch(u, e, p, conf)
return profile.adduserCouch(u, e, p, opts)
})
.catch((err) => {
if (err.code !== 'EOTP') throw err
return read.otp('Enter one-time password from your authenticator app: ').then((otp) => {
conf.auth.otp = otp
const u = conf.creds.username
const p = conf.creds.password
return profile.loginCouch(u, p, conf)
return read.otp(
'Enter one-time password from your authenticator app: '
).then(otp => {
const u = opts.creds.username
const p = opts.creds.password
return profile.loginCouch(u, p, opts.concat({otp}))
})
}).then((result) => {
const newCreds = {}
if (result && result.token) {
newCreds.token = result.token
} else {
newCreds.username = conf.creds.username
newCreds.password = conf.creds.password
newCreds.email = conf.creds.email
newCreds.alwaysAuth = npm.config.get('always-auth')
newCreds.username = opts.creds.username
newCreds.password = opts.creds.password
newCreds.email = opts.creds.email
newCreds.alwaysAuth = opts['always-auth']
}
const usermsg = conf.creds.username ? ' user ' + conf.creds.username : ''
conf.log.info('login', 'Authorized' + usermsg)
const scopeMessage = conf.scope ? ' to scope ' + conf.scope : ''
const userout = conf.creds.username ? ' as ' + conf.creds.username : ''
output('Logged in%s%s on %s.', userout, scopeMessage, conf.registry)
const usermsg = opts.creds.username ? ' user ' + opts.creds.username : ''
opts.log.info('login', 'Authorized' + usermsg)
const scopeMessage = opts.scope ? ' to scope ' + opts.scope : ''
const userout = opts.creds.username ? ' as ' + opts.creds.username : ''
output('Logged in%s%s on %s.', userout, scopeMessage, opts.registry)
return newCreds
})
}

View File

@ -1,56 +1,73 @@
var log = require('npmlog')
var npm = require('../npm.js')
var output = require('../utils/output')
var openUrl = require('../utils/open-url')
'use strict'
const BB = require('bluebird')
const figgyPudding = require('figgy-pudding')
const log = require('npmlog')
const npmConfig = require('../config/figgy-config.js')
const npmFetch = require('npm-registry-fetch')
const output = require('../utils/output.js')
const openUrl = BB.promisify(require('../utils/open-url.js'))
const otplease = require('../utils/otplease.js')
const profile = require('libnpm/profile')
const SsoOpts = figgyPudding({
ssoType: 'sso-type',
'sso-type': {},
ssoPollFrequency: 'sso-poll-frequency',
'sso-poll-frequency': {}
})
module.exports.login = function login (creds, registry, scope, cb) {
var ssoType = npm.config.get('sso-type')
const opts = SsoOpts(npmConfig()).concat({creds, registry, scope})
const ssoType = opts.ssoType
if (!ssoType) { return cb(new Error('Missing option: sso-type')) }
var params = {
// We're reusing the legacy login endpoint, so we need some dummy
// stuff here to pass validation. They're never used.
auth: {
username: 'npm_' + ssoType + '_auth_dummy_user',
password: 'placeholder',
email: 'support@npmjs.com',
authType: ssoType
}
// We're reusing the legacy login endpoint, so we need some dummy
// stuff here to pass validation. They're never used.
const auth = {
username: 'npm_' + ssoType + '_auth_dummy_user',
password: 'placeholder',
email: 'support@npmjs.com',
authType: ssoType
}
npm.registry.adduser(registry, params, function (er, doc) {
if (er) return cb(er)
if (!doc || !doc.token) return cb(new Error('no SSO token returned'))
if (!doc.sso) return cb(new Error('no SSO URL returned by services'))
openUrl(doc.sso, 'to complete your login please visit', function () {
pollForSession(registry, doc.token, function (err, username) {
if (err) return cb(err)
log.info('adduser', 'Authorized user %s', username)
var scopeMessage = scope ? ' to scope ' + scope : ''
output('Logged in as %s%s on %s.', username, scopeMessage, registry)
cb(null, { token: doc.token })
})
otplease(opts,
opts => profile.loginCouch(auth.username, auth.password, opts)
).then(({token, sso}) => {
if (!token) { throw new Error('no SSO token returned') }
if (!sso) { throw new Error('no SSO URL returned by services') }
return openUrl(sso, 'to complete your login please visit').then(() => {
return pollForSession(registry, token, opts)
}).then(username => {
log.info('adduser', 'Authorized user %s', username)
var scopeMessage = scope ? ' to scope ' + scope : ''
output('Logged in as %s%s on %s.', username, scopeMessage, registry)
return {token}
})
})
}).nodeify(cb)
}
function pollForSession (registry, token, cb) {
function pollForSession (registry, token, opts) {
log.info('adduser', 'Polling for validated SSO session')
npm.registry.whoami(registry, {
auth: {
token: token
}
}, function (er, username) {
if (er && er.statusCode !== 401) {
cb(er)
} else if (!username) {
setTimeout(function () {
pollForSession(registry, token, cb)
}, npm.config.get('sso-poll-frequency'))
} else {
cb(null, username)
return npmFetch.json(
'/-/whoami', opts.concat({registry, forceAuth: {token}})
).then(
({username}) => username,
err => {
if (err.code === 'E401') {
return sleep(opts['sso-poll-frequency']).then(() => {
return pollForSession(registry, token, opts)
})
} else {
throw err
}
}
)
}
function sleep (time) {
return new BB((resolve) => {
setTimeout(resolve, time)
})
}

View File

@ -9,9 +9,9 @@ const finished = BB.promisify(require('mississippi').finished)
const log = require('npmlog')
const npa = require('npm-package-arg')
const npm = require('./npm.js')
const npmConfig = require('./config/figgy-config.js')
const output = require('./utils/output.js')
const pacote = require('pacote')
const pacoteOpts = require('./config/pacote')
const path = require('path')
const rm = BB.promisify(require('./utils/gently-rm.js'))
const unbuild = BB.promisify(npm.commands.unbuild)
@ -107,7 +107,7 @@ function add (args, where) {
log.verbose('cache add', 'spec', spec)
if (!spec) return BB.reject(new Error(usage))
log.silly('cache add', 'parsed spec', spec)
return finished(pacote.tarball.stream(spec, pacoteOpts({where})).resume())
return finished(pacote.tarball.stream(spec, npmConfig({where})).resume())
}
cache.verify = verify
@ -131,7 +131,7 @@ function verify () {
cache.unpack = unpack
function unpack (pkg, ver, unpackTarget, dmode, fmode, uid, gid) {
return unbuild([unpackTarget], true).then(() => {
const opts = pacoteOpts({dmode, fmode, uid, gid, offline: true})
const opts = npmConfig({dmode, fmode, uid, gid, offline: true})
return pacote.extract(npa.resolve(pkg, ver), unpackTarget, opts)
})
}

35
deps/npm/lib/ci.js vendored
View File

@ -1,40 +1,19 @@
'use strict'
const Installer = require('libcipm')
const lifecycleOpts = require('./config/lifecycle.js')
const npm = require('./npm.js')
const npmConfig = require('./config/figgy-config.js')
const npmlog = require('npmlog')
const pacoteOpts = require('./config/pacote.js')
ci.usage = 'npm ci'
ci.completion = (cb) => cb(null, [])
Installer.CipmConfig.impl(npm.config, {
get: npm.config.get,
set: npm.config.set,
toLifecycle (moreOpts) {
return lifecycleOpts(moreOpts)
},
toPacote (moreOpts) {
return pacoteOpts(moreOpts)
}
})
module.exports = ci
function ci (args, cb) {
return new Installer({
config: npm.config,
log: npmlog
})
.run()
.then(
(details) => {
npmlog.disableProgress()
console.log(`added ${details.pkgCount} packages in ${
details.runTime / 1000
}s`)
}
)
.then(() => cb(), cb)
return new Installer(npmConfig({ log: npmlog })).run().then(details => {
npmlog.disableProgress()
console.log(`added ${details.pkgCount} packages in ${
details.runTime / 1000
}s`)
}).then(() => cb(), cb)
}

View File

@ -50,7 +50,9 @@ var affordances = {
'rm': 'uninstall',
'r': 'uninstall',
'rum': 'run-script',
'sit': 'cit'
'sit': 'cit',
'urn': 'run-script',
'ogr': 'org'
}
// these are filenames in .
@ -89,6 +91,7 @@ var cmdList = [
'token',
'profile',
'audit',
'org',
'help',
'help-search',

View File

@ -239,7 +239,7 @@ Object.defineProperty(exports, 'defaults', {get: function () {
process.getuid() !== 0,
'update-notifier': true,
usage: false,
user: process.platform === 'win32' ? 0 : 'nobody',
user: (process.platform === 'win32' || os.type() === 'OS400') ? 0 : 'nobody',
userconfig: path.resolve(home, '.npmrc'),
umask: process.umask ? process.umask() : umask.fromString('022'),
version: false,

87
deps/npm/lib/config/figgy-config.js vendored Normal file
View File

@ -0,0 +1,87 @@
'use strict'
const BB = require('bluebird')
const crypto = require('crypto')
const figgyPudding = require('figgy-pudding')
const log = require('npmlog')
const npm = require('../npm.js')
const pack = require('../pack.js')
const path = require('path')
const npmSession = crypto.randomBytes(8).toString('hex')
log.verbose('npm-session', npmSession)
const SCOPE_REGISTRY_REGEX = /@.*:registry$/gi
const NpmConfig = figgyPudding({}, {
other (key) {
return key.match(SCOPE_REGISTRY_REGEX)
}
})
let baseConfig
module.exports = mkConfig
function mkConfig (...providers) {
if (!baseConfig) {
baseConfig = NpmConfig(npm.config, {
// Add some non-npm-config opts by hand.
cache: path.join(npm.config.get('cache'), '_cacache'),
// NOTE: npm has some magic logic around color distinct from the config
// value, so we have to override it here
color: !!npm.color,
dirPacker: pack.packGitDep,
hashAlgorithm: 'sha1',
includeDeprecated: false,
log,
'npm-session': npmSession,
'project-scope': npm.projectScope,
refer: npm.referer,
dmode: npm.modes.exec,
fmode: npm.modes.file,
umask: npm.modes.umask,
npmVersion: npm.version,
tmp: npm.tmp,
Promise: BB
})
const ownerStats = calculateOwner()
if (ownerStats.uid != null || ownerStats.gid != null) {
baseConfig = baseConfig.concat(ownerStats)
}
}
let conf = baseConfig.concat(...providers)
// Adapt some other configs if missing
if (npm.config.get('prefer-online') === undefined) {
conf = conf.concat({
'prefer-online': npm.config.get('cache-max') <= 0
})
}
if (npm.config.get('prefer-online') === undefined) {
conf = conf.concat({
'prefer-online': npm.config.get('cache-min') >= 9999
})
}
return conf
}
let effectiveOwner
function calculateOwner () {
if (!effectiveOwner) {
effectiveOwner = { uid: 0, gid: 0 }
// Pretty much only on windows
if (!process.getuid) {
return effectiveOwner
}
effectiveOwner.uid = +process.getuid()
effectiveOwner.gid = +process.getgid()
if (effectiveOwner.uid === 0) {
if (process.env.SUDO_UID) effectiveOwner.uid = +process.env.SUDO_UID
if (process.env.SUDO_GID) effectiveOwner.gid = +process.env.SUDO_GID
}
}
return effectiveOwner
}

View File

@ -1,141 +0,0 @@
'use strict'
const Buffer = require('safe-buffer').Buffer
const crypto = require('crypto')
const npm = require('../npm')
const log = require('npmlog')
let pack
const path = require('path')
let effectiveOwner
const npmSession = crypto.randomBytes(8).toString('hex')
log.verbose('npm-session', npmSession)
module.exports = pacoteOpts
function pacoteOpts (moreOpts) {
if (!pack) {
pack = require('../pack.js')
}
const ownerStats = calculateOwner()
const opts = {
cache: path.join(npm.config.get('cache'), '_cacache'),
ca: npm.config.get('ca'),
cert: npm.config.get('cert'),
defaultTag: npm.config.get('tag'),
dirPacker: pack.packGitDep,
hashAlgorithm: 'sha1',
includeDeprecated: false,
key: npm.config.get('key'),
localAddress: npm.config.get('local-address'),
log: log,
maxAge: npm.config.get('cache-min'),
maxSockets: npm.config.get('maxsockets'),
npmSession: npmSession,
offline: npm.config.get('offline'),
preferOffline: npm.config.get('prefer-offline') || npm.config.get('cache-min') > 9999,
preferOnline: npm.config.get('prefer-online') || npm.config.get('cache-max') <= 0,
projectScope: npm.projectScope,
proxy: npm.config.get('https-proxy') || npm.config.get('proxy'),
noProxy: npm.config.get('noproxy'),
refer: npm.registry.refer,
registry: npm.config.get('registry'),
retry: {
retries: npm.config.get('fetch-retries'),
factor: npm.config.get('fetch-retry-factor'),
minTimeout: npm.config.get('fetch-retry-mintimeout'),
maxTimeout: npm.config.get('fetch-retry-maxtimeout')
},
scope: npm.config.get('scope'),
strictSSL: npm.config.get('strict-ssl'),
userAgent: npm.config.get('user-agent'),
dmode: npm.modes.exec,
fmode: npm.modes.file,
umask: npm.modes.umask
}
if (ownerStats.uid != null || ownerStats.gid != null) {
Object.assign(opts, ownerStats)
}
npm.config.keys.forEach(function (k) {
const authMatchGlobal = k.match(
/^(_authToken|username|_password|password|email|always-auth|_auth)$/
)
const authMatchScoped = k[0] === '/' && k.match(
/(.*):(_authToken|username|_password|password|email|always-auth|_auth)$/
)
// if it matches scoped it will also match global
if (authMatchGlobal || authMatchScoped) {
let nerfDart = null
let key = null
let val = null
if (!opts.auth) { opts.auth = {} }
if (authMatchScoped) {
nerfDart = authMatchScoped[1]
key = authMatchScoped[2]
val = npm.config.get(k)
if (!opts.auth[nerfDart]) {
opts.auth[nerfDart] = {
alwaysAuth: !!npm.config.get('always-auth')
}
}
} else {
key = authMatchGlobal[1]
val = npm.config.get(k)
opts.auth.alwaysAuth = !!npm.config.get('always-auth')
}
const auth = authMatchScoped ? opts.auth[nerfDart] : opts.auth
if (key === '_authToken') {
auth.token = val
} else if (key.match(/password$/i)) {
auth.password =
// the config file stores password auth already-encoded. pacote expects
// the actual username/password pair.
Buffer.from(val, 'base64').toString('utf8')
} else if (key === 'always-auth') {
auth.alwaysAuth = val === 'false' ? false : !!val
} else {
auth[key] = val
}
}
if (k[0] === '@') {
if (!opts.scopeTargets) { opts.scopeTargets = {} }
opts.scopeTargets[k.replace(/:registry$/, '')] = npm.config.get(k)
}
})
Object.keys(moreOpts || {}).forEach((k) => {
opts[k] = moreOpts[k]
})
return opts
}
function calculateOwner () {
if (!effectiveOwner) {
effectiveOwner = { uid: 0, gid: 0 }
// Pretty much only on windows
if (!process.getuid) {
return effectiveOwner
}
effectiveOwner.uid = +process.getuid()
effectiveOwner.gid = +process.getgid()
if (effectiveOwner.uid === 0) {
if (process.env.SUDO_UID) effectiveOwner.uid = +process.env.SUDO_UID
if (process.env.SUDO_GID) effectiveOwner.gid = +process.env.SUDO_GID
}
}
return effectiveOwner
}

View File

@ -1,29 +0,0 @@
'use strict'
module.exports = regClientConfig
function regClientConfig (npm, log, config) {
return {
proxy: {
http: config.get('proxy'),
https: config.get('https-proxy'),
localAddress: config.get('local-address')
},
ssl: {
certificate: config.get('cert'),
key: config.get('key'),
ca: config.get('ca'),
strict: config.get('strict-ssl')
},
retry: {
retries: config.get('fetch-retries'),
factor: config.get('fetch-retry-factor'),
minTimeout: config.get('fetch-retry-mintimeout'),
maxTimeout: config.get('fetch-retry-maxtimeout')
},
userAgent: config.get('user-agent'),
log: log,
defaultTag: config.get('tag'),
maxSockets: config.get('maxsockets'),
scope: npm.projectScope
}
}

View File

@ -1,55 +1,72 @@
/* eslint-disable standard/no-callback-literal */
var npm = require('./npm.js')
var mapToRegistry = require('./utils/map-to-registry.js')
var npa = require('npm-package-arg')
'use strict'
const BB = require('bluebird')
const npmConfig = require('./config/figgy-config.js')
const fetch = require('libnpm/fetch')
const figgyPudding = require('figgy-pudding')
const otplease = require('./utils/otplease.js')
const npa = require('libnpm/parse-arg')
const semver = require('semver')
const whoami = require('./whoami.js')
const DeprecateConfig = figgyPudding({})
module.exports = deprecate
deprecate.usage = 'npm deprecate <pkg>[@<version>] <message>'
deprecate.completion = function (opts, cb) {
// first, get a list of remote packages this user owns.
// once we have a user account, then don't complete anything.
if (opts.conf.argv.remain.length > 2) return cb()
// get the list of packages by user
var path = '/-/by-user/'
mapToRegistry(path, npm.config, function (er, uri, c) {
if (er) return cb(er)
if (!(c && c.username)) return cb()
var params = {
timeout: 60000,
auth: c
}
npm.registry.get(uri + c.username, params, function (er, list) {
if (er) return cb()
console.error(list)
return cb(null, list[c.username])
return BB.try(() => {
if (opts.conf.argv.remain.length > 2) { return }
return whoami([], true, () => {}).then(username => {
if (username) {
// first, get a list of remote packages this user owns.
// once we have a user account, then don't complete anything.
// get the list of packages by user
return fetch(
`/-/by-user/${encodeURIComponent(username)}`,
DeprecateConfig()
).then(list => list[username])
}
})
})
}).nodeify(cb)
}
function deprecate (args, cb) {
var pkg = args[0]
var msg = args[1]
if (msg === undefined) return cb('Usage: ' + deprecate.usage)
function deprecate ([pkg, msg], opts, cb) {
if (typeof cb !== 'function') {
cb = opts
opts = null
}
opts = DeprecateConfig(opts || npmConfig())
return BB.try(() => {
if (msg == null) throw new Error(`Usage: ${deprecate.usage}`)
// fetch the data and make sure it exists.
const p = npa(pkg)
// fetch the data and make sure it exists.
var p = npa(pkg)
// npa makes the default spec "latest", but for deprecation
// "*" is the appropriate default.
const spec = p.rawSpec === '' ? '*' : p.fetchSpec
// npa makes the default spec "latest", but for deprecation
// "*" is the appropriate default.
var spec = p.rawSpec === '' ? '*' : p.fetchSpec
mapToRegistry(p.name, npm.config, function (er, uri, auth) {
if (er) return cb(er)
var params = {
version: spec,
message: msg,
auth: auth
if (semver.validRange(spec, true) === null) {
throw new Error('invalid version range: ' + spec)
}
npm.registry.deprecate(uri, params, cb)
})
const uri = '/' + p.escapedName
return fetch.json(uri, opts.concat({
spec: p,
query: {write: true}
})).then(packument => {
// filter all the versions that match
Object.keys(packument.versions)
.filter(v => semver.satisfies(v, spec))
.forEach(v => { packument.versions[v].deprecated = msg })
return otplease(opts, opts => fetch(uri, opts.concat({
spec: p,
method: 'PUT',
body: packument,
ignoreBody: true
})))
})
}).nodeify(cb)
}

Some files were not shown because too many files have changed in this diff Show More