diff --git a/.eslintignore b/.eslintignore index a681716c667576..011ec9636212fc 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,10 +1,9 @@ lib/internal/v8_prof_polyfill.js lib/punycode.js -test/addons/??_*/ +test/addons/??_* test/fixtures -test/tmp*/ tools/eslint tools/icu node_modules -benchmark/tmp/ +benchmark/tmp doc/**/*.js diff --git a/.gitignore b/.gitignore index 72ccaddaceb4f5..922ef6733e6816 100644 --- a/.gitignore +++ b/.gitignore @@ -104,6 +104,8 @@ deps/npm/node_modules/.bin/ # test artifacts tools/faketime +tools/remark-cli +tools/remark-preset-lint-node icu_config.gypi *.tap diff --git a/.remarkrc b/.remarkrc index b8cee4c2bb8651..34400ece0dc648 100644 --- a/.remarkrc +++ b/.remarkrc @@ -1,63 +1,5 @@ { - "plugins": { - "remark-lint/": { - "blockquote-indentation": 2, - "checkbox-character-style": { "checked": "x", "unchecked": " " }, - "checkbox-content-indent": true, - "code-block-style": "fenced", - "definition-case": false, - "definition-spacing": true, - "emphasis-marker": false, - "fenced-code-flag": true, - "fenced-code-marker": "`", - "file-extension": "md", - "final-definition": true, - "final-newline": true, - "first-heading-level": 1, - "hard-break-spaces": true, - "heading-increment": false, - "heading-style": "atx", - "link-title-style": false, - "list-item-bullet-indent": false, - "list-item-content-indent": false, - "list-item-indent": false, - "list-item-spacing": false, - "maximum-heading-length": false, - "maximum-line-length": false, - "no-auto-link-without-protocol": true, - "no-blockquote-without-caret": true, - "no-consecutive-blank-lines": false, - "no-duplicate-definitions": true, - "no-duplicate-headings": false, - "no-emphasis-as-heading": false, - "no-file-name-articles": true, - "no-file-name-consecutive-dashes": true, - "no-file-name-irregular-characters": false, - "no-file-name-mixed-case": false, - "no-file-name-outer-dashes": true, - "no-heading-content-indent": true, - "no-heading-indent": true, - "no-heading-punctuation": false, - "no-html": false, - "no-inline-padding": true, - "no-literal-urls": false, - "no-missing-blank-lines": false, - "no-multiple-toplevel-headings": true, - "no-shell-dollars": true, - "no-shortcut-reference-image": true, - "no-shortcut-reference-link": false, - "no-table-indentation": true, - "no-tabs": true, - "no-undefined-references": false, - "no-unused-definitions": true, - "ordered-list-marker-style": false, - "ordered-list-marker-value": false, - "rule-style": true, - "strong-marker": "*", - "table-cell-padding": "padded", - "table-pipe-alignment": false, - "table-pipes": true, - "unordered-list-marker-style": false - } - } + "plugins": [ + "./tools/remark-preset-lint-node/" + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 88fcfff7452bcd..dd2c683da7c422 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,14 +20,15 @@ release. - +
8Current8LTS 7- 6LTS 4LTS
-8.8.1
+8.9.0
+8.8.1
8.8.0
8.7.0
8.6.0
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c6de8d25498fe..99278a843af683 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -309,8 +309,8 @@ notes about [commit squashing](#commit-squashing)). A good commit message should describe what changed and why. 1. The first line should: - - contain a short description of the change - - be 50 characters or less + - contain a short description of the change (preferably 50 characters or less, + and no more than 72 characters) - be entirely in lowercase with the exception of proper nouns, acronyms, and the words that refer to code, like function/variable names - be prefixed with the name of the changed subsystem and start with an diff --git a/LICENSE b/LICENSE index 159d96ba569eb5..c75bf1669883ba 100644 --- a/LICENSE +++ b/LICENSE @@ -1120,3 +1120,29 @@ The externally maintained libraries used by Node.js are: OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + +- remark-cli, located at tools/remark-cli, is licensed as follows: + """ + (The MIT License) + + Copyright (c) 2014-2016 Titus Wormer + Copyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + """ diff --git a/Makefile b/Makefile index 1017452f0879e7..c2f872daed698c 100644 --- a/Makefile +++ b/Makefile @@ -102,11 +102,15 @@ uninstall: clean: $(RM) -r out/Makefile $(NODE_EXE) $(NODE_G_EXE) out/$(BUILDTYPE)/$(NODE_EXE) \ - out/$(BUILDTYPE)/node.exp + out/$(BUILDTYPE)/node.exp @if [ -d out ]; then find out/ -name '*.o' -o -name '*.a' -o -name '*.d' | xargs $(RM) -r; fi $(RM) -r node_modules @if [ -d deps/icu ]; then echo deleting deps/icu; $(RM) -r deps/icu; fi $(RM) test.tap + # Next one is legacy remove this at some point + $(RM) -r test/tmp* + $(RM) -r test/.tmp* + $(MAKE) test-addons-clean distclean: $(RM) -r out @@ -209,15 +213,27 @@ test: all $(MAKE) build-addons $(MAKE) build-addons-napi $(MAKE) doc-only + $(MAKE) lint $(MAKE) cctest $(PYTHON) tools/test.py --mode=release -J \ $(CI_ASYNC_HOOKS) \ $(CI_JS_SUITES) \ $(CI_NATIVE_SUITES) \ - doctool known_issues - $(MAKE) lint + $(CI_DOC) \ + known_issues endif +# For a quick test, does not run linter or build doc +test-only: all + $(MAKE) build-addons + $(MAKE) build-addons-napi + $(MAKE) cctest + $(PYTHON) tools/test.py --mode=release -J \ + $(CI_ASYNC_HOOKS) \ + $(CI_JS_SUITES) \ + $(CI_NATIVE_SUITES) \ + known_issues + test-cov: all $(MAKE) build-addons $(MAKE) build-addons-napi @@ -253,7 +269,6 @@ test/gc/build/Release/binding.node: test/gc/binding.cc test/gc/binding.gyp --directory="$(shell pwd)/test/gc" \ --nodedir="$(shell pwd)" -# Implicitly depends on $(NODE_EXE), see the build-addons rule for rationale. DOCBUILDSTAMP_PREREQS = tools/doc/addon-verify.js doc/api/addons.md ifeq ($(OSTYPE),aix) @@ -262,7 +277,7 @@ endif test/addons/.docbuildstamp: $(DOCBUILDSTAMP_PREREQS) $(RM) -r test/addons/??_*/ - $(NODE) $< + [ -x $(NODE) ] && $(NODE) $< || node $< touch $@ ADDONS_BINDING_GYPS := \ @@ -284,7 +299,8 @@ test/addons/.buildstamp: config.gypi \ test/addons/.docbuildstamp # Cannot use $(wildcard test/addons/*/) here, it's evaluated before # embedded addons have been generated from the documentation. -# Ignore folders without binding.gyp (#14843) +# Ignore folders without binding.gyp +# (https://github.com/nodejs/node/issues/14843) @for dirname in test/addons/*/; do \ if [ ! -f "$$PWD/$${dirname}binding.gyp" ]; then \ continue; fi ; \ @@ -297,10 +313,10 @@ test/addons/.buildstamp: config.gypi \ done touch $@ -# .buildstamp and .docbuildstamp need $(NODE_EXE) but cannot depend on it +# .buildstamp needs $(NODE_EXE) but cannot depend on it # directly because it calls make recursively. The parent make cannot know # if the subprocess touched anything so it pessimistically assumes that -# .buildstamp and .docbuildstamp are out of date and need a rebuild. +# .buildstamp is out of date and need a rebuild. # Just goes to show that recursive make really is harmful... # TODO(bnoordhuis) Force rebuild after gyp update. build-addons: $(NODE_EXE) test/addons/.buildstamp @@ -322,7 +338,11 @@ test/addons-napi/.buildstamp: config.gypi \ src/node_api.h src/node_api_types.h # Cannot use $(wildcard test/addons-napi/*/) here, it's evaluated before # embedded addons have been generated from the documentation. +# Ignore folders without binding.gyp +# (https://github.com/nodejs/node/issues/14843) @for dirname in test/addons-napi/*/; do \ + if [ ! -f "$$PWD/$${dirname}binding.gyp" ]; then \ + continue; fi ; \ printf "\nBuilding addon $$PWD/$$dirname\n" ; \ env MAKEFLAGS="-j1" $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp \ --loglevel=$(LOGLEVEL) rebuild \ @@ -332,10 +352,10 @@ test/addons-napi/.buildstamp: config.gypi \ done touch $@ -# .buildstamp and .docbuildstamp need $(NODE_EXE) but cannot depend on it +# .buildstamp needs $(NODE_EXE) but cannot depend on it # directly because it calls make recursively. The parent make cannot know # if the subprocess touched anything so it pessimistically assumes that -# .buildstamp and .docbuildstamp are out of date and need a rebuild. +# .buildstamp is out of date and need a rebuild. # Just goes to show that recursive make really is harmful... # TODO(bnoordhuis) Force rebuild after gyp or node-gyp update. build-addons-napi: $(NODE_EXE) test/addons-napi/.buildstamp @@ -367,6 +387,7 @@ test-all-valgrind: test-build CI_NATIVE_SUITES ?= addons addons-napi CI_ASYNC_HOOKS := async-hooks CI_JS_SUITES ?= default +CI_DOC := doctool # Build and test addons without building anything else test-ci-native: LOGLEVEL := info @@ -392,7 +413,8 @@ test-ci: | clear-stalled build-addons build-addons-napi doc-only out/Release/cctest --gtest_output=tap:cctest.tap $(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \ --mode=release --flaky-tests=$(FLAKY_TESTS) \ - $(TEST_CI_ARGS) $(CI_ASYNC_HOOKS) $(CI_JS_SUITES) $(CI_NATIVE_SUITES) doctool known_issues + $(TEST_CI_ARGS) $(CI_ASYNC_HOOKS) $(CI_JS_SUITES) $(CI_NATIVE_SUITES) \ + $(CI_DOC) known_issues # Clean up any leftover processes, error if found. ps awwx | grep Release/node | grep -v grep | cat @PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \ @@ -428,6 +450,10 @@ test-tick-processor: all test-hash-seed: all $(NODE) test/pummel/test-hash-seed.js +test-doc: doc-only + $(MAKE) lint + $(PYTHON) tools/test.py $(CI_DOC) + test-known-issues: all $(PYTHON) tools/test.py known_issues @@ -522,13 +548,13 @@ doc-only: $(apidocs_html) $(apidocs_json) doc: $(NODE_EXE) doc-only $(apidoc_dirs): - mkdir -p $@ + @mkdir -p $@ out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets - cp $< $@ + @cp $< $@ out/doc/%: doc/% - cp -r $< $@ + @cp -r $< $@ # check if ./node is actually set, else use user pre-installed binary gen-json = tools/doc/generate.js --format=json $< > $@ @@ -546,11 +572,11 @@ gen-doc = \ [ -x $(NODE) ] && $(NODE) $(1) || node $(1) out/doc/api/%.json: doc/api/%.md - $(call gen-doc, $(gen-json)) + @$(call gen-doc, $(gen-json)) # check if ./node is actually set, else use user pre-installed binary out/doc/api/%.html: doc/api/%.md - $(call gen-doc, $(gen-html)) + @$(call gen-doc, $(gen-html)) docopen: $(apidocs_html) @$(PYTHON) -mwebbrowser file://$(PWD)/out/doc/api/all.html @@ -804,7 +830,7 @@ $(TARBALL): release-only $(NODE_EXE) doc $(RM) -r $(TARNAME)/deps/openssl/openssl/{doc,demos,test} $(RM) -r $(TARNAME)/deps/zlib/contrib # too big, unused $(RM) -r $(TARNAME)/.{editorconfig,git*,mailmap} - $(RM) -r $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc} + $(RM) -r $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc,remark-cli,remark-preset-lint-node} $(RM) -r $(TARNAME)/tools/{osx-*,license-builder.sh,cpplint.py} $(RM) -r $(TARNAME)/test*.tap find $(TARNAME)/ -name ".eslint*" -maxdepth 2 | xargs $(RM) @@ -945,27 +971,54 @@ bench: bench-net bench-http bench-fs bench-tls bench-ci: bench +lint-md-clean: + $(RM) -r tools/remark-cli/node_modules + $(RM) -r tools/remark-preset-lint-node/node_modules + +lint-md-build: + if [ ! -d tools/remark-cli/node_modules ]; then \ + cd tools/remark-cli && ../../$(NODE) ../../$(NPM) install; fi + if [ ! -d tools/remark-preset-lint-node/node_modules ]; then \ + cd tools/remark-preset-lint-node && ../../$(NODE) ../../$(NPM) install; fi + +lint-md: lint-md-build + @echo "Running Markdown linter..." + $(NODE) tools/remark-cli/cli.js -q -f \ + ./*.md doc src lib benchmark tools/doc/ tools/icu/ + LINT_JS_TARGETS = benchmark doc lib test tools +LINT_JS_CMD = tools/eslint/bin/eslint.js --cache \ + --rulesdir=tools/eslint-rules --ext=.js,.mjs,.md \ + $(LINT_JS_TARGETS) lint-js: @echo "Running JS linter..." - $(NODE) tools/eslint/bin/eslint.js --cache --rulesdir=tools/eslint-rules --ext=.js,.mjs,.md \ - $(LINT_JS_TARGETS) + @if [ -x $(NODE) ]; then \ + $(NODE) $(LINT_JS_CMD); \ + else \ + node $(LINT_JS_CMD); \ + fi jslint: lint-js @echo "Please use lint-js instead of jslint" lint-js-ci: @echo "Running JS linter..." - $(NODE) tools/lint-js.js $(PARALLEL_ARGS) -f tap -o test-eslint.tap \ - $(LINT_JS_TARGETS) + @if [ -x $(NODE) ]; then \ + $(NODE) tools/lint-js.js $(PARALLEL_ARGS) -f tap -o test-eslint.tap \ + $(LINT_JS_TARGETS); \ + else \ + node tools/lint-js.js $(PARALLEL_ARGS) -f tap -o test-eslint.tap \ + $(LINT_JS_TARGETS); \ + fi jslint-ci: lint-js-ci @echo "Please use lint-js-ci instead of jslint-ci" +LINT_CPP_ADDON_DOC_FILES = $(wildcard test/addons/??_*/*.cc test/addons/??_*/*.h) LINT_CPP_EXCLUDE ?= LINT_CPP_EXCLUDE += src/node_root_certs.h -LINT_CPP_EXCLUDE += $(wildcard test/addons/??_*/*.cc test/addons/??_*/*.h) +LINT_CPP_EXCLUDE += $(LINT_CPP_ADDON_DOC_FILES) LINT_CPP_EXCLUDE += $(wildcard test/addons-napi/??_*/*.cc test/addons-napi/??_*/*.h) # These files were copied more or less verbatim from V8. LINT_CPP_EXCLUDE += src/tracing/trace_event.h src/tracing/trace_event_common.h @@ -989,11 +1042,19 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ tools/icu/*.h \ )) +# Code blocks don't have newline at the end, +# and the actual filename is generated so it won't match header guards +ADDON_DOC_LINT_FLAGS=-whitespace/ending_newline,-build/header_guard + lint-cpp: @echo "Running C++ linter..." @$(PYTHON) tools/cpplint.py $(LINT_CPP_FILES) @$(PYTHON) tools/check-imports.py +lint-addon-docs: test/addons/.docbuildstamp + @echo "Running C++ linter on addon docs..." + @$(PYTHON) tools/cpplint.py --filter=$(ADDON_DOC_LINT_FLAGS) $(LINT_CPP_ADDON_DOC_FILES) + cpplint: lint-cpp @echo "Please use lint-cpp instead of cpplint" @@ -1002,9 +1063,11 @@ lint: @EXIT_STATUS=0 ; \ $(MAKE) lint-js || EXIT_STATUS=$$? ; \ $(MAKE) lint-cpp || EXIT_STATUS=$$? ; \ + $(MAKE) lint-md || EXIT_STATUS=$$? ; \ + $(MAKE) lint-addon-docs || EXIT_STATUS=$$? ; \ exit $$EXIT_STATUS CONFLICT_RE=^>>>>>>> [0-9A-Fa-f]+|^<<<<<<< [A-Za-z]+ -lint-ci: lint-js-ci lint-cpp +lint-ci: lint-js-ci lint-cpp lint-md lint-addon-docs @if ! ( grep -IEqrs "$(CONFLICT_RE)" benchmark deps doc lib src test tools ) \ && ! ( find . -maxdepth 1 -type f | xargs grep -IEqs "$(CONFLICT_RE)" ); then \ exit 0 ; \ @@ -1067,6 +1130,9 @@ endif lint-js \ lint-js-ci \ list-gtests \ + lint-md \ + lint-md-build \ + lint-md-clean \ pkg \ release-only \ run-ci \ @@ -1081,9 +1147,11 @@ endif test-ci \ test-ci-js \ test-ci-native \ + test-doc \ test-gc \ test-gc-clean \ test-hash-seed \ + test-only \ test-v8 \ test-v8-all \ test-v8-benchmarks \ diff --git a/README.md b/README.md index 6fcaac417d2e51..ce40c348e4cce2 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Binaries, installers, and source tarballs are available at The [latest](https://nodejs.org/download/release/latest/) directory is an alias for the latest Current release. The latest LTS release from an LTS line is available in the form: latest-_codename_. For example: - +. #### Nightly Releases **Nightly** builds are available at @@ -535,6 +535,8 @@ Node.js releases are signed with one of the following GPG keys: `94AE36675C464D64BAFA68DD7434390BDBE9B9C5` * **Evan Lucas** <evanlucas@me.com> `B9AE9905FFD7803F25714661B63B535A4C206CA9` +* **Gibson Fahnestock** <gibfahn@gmail.com> +`77984A986EBC2AA786BC0F66B01FBB92821C587A` * **Italo A. Casas** <me@italoacasas.com> `56730D5401028683275BD23C23EFEFE93C4CFFFE` * **James M Snell** <jasnell@keybase.io> @@ -556,6 +558,7 @@ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273 gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 gpg --keyserver pool.sks-keyservers.net --recv-keys 56730D5401028683275BD23C23EFEFE93C4CFFFE +gpg --keyserver pool.sks-keyservers.net --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A ``` See the section above on [Verifying Binaries](#verifying-binaries) for details diff --git a/common.gypi b/common.gypi index 08523e105ec3ef..77de0404d54a46 100644 --- a/common.gypi +++ b/common.gypi @@ -116,6 +116,7 @@ 'BasicRuntimeChecks': 3, # /RTC1 'AdditionalOptions': [ '/bigobj', # prevent error C1128 in VS2015 + '/MP', # compile across multiple CPUs ], }, 'VCLinkerTool': { @@ -171,6 +172,9 @@ 'EnableFunctionLevelLinking': 'true', 'EnableIntrinsicFunctions': 'true', 'RuntimeTypeInfo': 'false', + 'AdditionalOptions': [ + '/MP', # compile across multiple CPUs + ], }, 'VCLibrarianTool': { 'AdditionalOptions': [ @@ -203,9 +207,6 @@ # and their sheer number drowns out other, more legitimate warnings. 'DisableSpecificWarnings': ['4267'], 'WarnAsError': 'false', - 'AdditionalOptions': [ - '/MP', # compile across multiple CPUs - ], }, 'VCLibrarianTool': { }, diff --git a/configure b/configure index 1e4cb4b3dd57a7..9e04b03d4fe481 100755 --- a/configure +++ b/configure @@ -1351,7 +1351,9 @@ def configure_inspector(o): o['variables']['v8_enable_inspector'] = 0 if disable_inspector else 1 -def get_bin_override(): +def make_bin_override(): + if sys.platform == 'win32': + raise Exception('make_bin_override should not be called on win32.') # If the system python is not the python we are running (which should be # python 2), then create a directory with a symlink called `python` to our # sys.executable. This directory will be prefixed to the PATH, so that @@ -1460,7 +1462,8 @@ if options.prefix: config = '\n'.join(map('='.join, config.iteritems())) + '\n' -bin_override = get_bin_override() +# On Windows there's no reason to search for a different python binary. +bin_override = None if sys.platform == 'win32' else make_bin_override() if bin_override: config = 'export PATH:=' + bin_override + ':$(PATH)\n' + config diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index a6e16166453d23..1c650d724bd66d 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,3 +1,118 @@ +## v5.5.1 (2017-10-04): + +A very quick, record time, patch release, of a bug fix to a (sigh) last minute bug fix. + +* [`e628e058b`](https://github.com/npm/npm/commit/e628e058b) + Fix login to properly recognize OTP request and store bearer tokens. + ([@Rebecca Turner](https://github.com/Rebecca Turner)) + +## v5.5.0 (2017-10-04): + +Hey y'all, this is a big new feature release! We've got some security +related goodies plus a some quality-of-life improvements for anyone who uses +the public registry (so, virtually everyone). + +The changes largely came together in one piece, so I'm just gonna leave the commit line here: + +* [`f6ebf5e8b`](https://github.com/npm/npm/commit/f6ebf5e8bd6a212c7661e248c62c423f2b54d978) + [`f97ad6a38`](https://github.com/npm/npm/commit/f97ad6a38412581d059108ea29be470acb4fa510) + [`f644018e6`](https://github.com/npm/npm/commit/f644018e6ef1ff7523c6ec60ae55a24e87a9d9ae) + [`8af91528c`](https://github.com/npm/npm/commit/8af91528ce6277cd3a8c7ca8c8102671baf10d2f) + [`346a34260`](https://github.com/npm/npm/commit/346a34260b5fba7de62717135f3e083cc4820853) + Two factor authentication, profile editing and token management. + ([@iarna](https://github.com/iarna)) + +### TWO FACTOR AUTHENTICATION + +You can now enable two-factor authentication for your npm account. You can +even do it from the CLI. In fact, you have to, for the time being: + +``` +npm profile enable-tfa +``` + +With the default two-factor authentication mode you'll be prompted to enter +a one-time password when logging in, when publishing and when modifying access rights to +your modules. + +### TOKEN MANAGEMENT + +You can now create, list and delete authentication tokens from the comfort +of the command line. Authentication tokens created this way can have NEW +restrictions placed on them. For instance, you can create a `read-only` +token to give to your CI. It will be able to download your private modules +but it won't be able to publish or modify modules. You can also create +tokens that can only be used from certain network addresses. This way you +can lock down access to your corporate VPN or other trusted machines. + +Deleting tokens isn't new, you could [do it via the +website](https://www.npmjs.com/settings/tokens) but now you can do it via +the CLI as well. + +### CHANGE YOUR PASSWORD, SET YOUR EMAIL + +You can finally change your password from the CLI with `npm profile set +password`! You can also update your email address with `npm profile set +email
`. If you change your email address we'll send you a new +verification email so you verify that its yours. + +### AND EVERYTHING ELSE ON YOUR PROFILE + +You can also update all of the other attributes of your profile that +previously you could only update via the website: `fullname`, `homepage`, +`freenode`, `twitter` and `github`. + +### AVAILABLE STAND ALONE + +All of these features were implemented in a stand alone library, so if you +have use for them in your own project you can find them in +[npm-profile](https://www.npmjs.com/package/npm-profile) on the registry. +There's also a little mini-cli written just for it at +[npm-profile-cli](https://www.npmjs.com/package/npm-profile-cli). You might +also be interested in the [API +documentation](https://github.com/npm/registry/tree/master/docs) for these +new features: [user profile editing](https://github.com/npm/registry/blob/master/docs/user/profile.md) and +[authentication](https://github.com/npm/registry/blob/master/docs/user/authentication.md). + +### BUG FIXES + +* [`5ee55dc71`](https://github.com/npm/npm/commit/5ee55dc71b8b74b8418c3d5ec17483a07b3b6777) + install.sh: Drop support for upgrading from npm@1 as npm@5 can't run on + any Node.js version that ships npm@1. This fixes an issue some folks were seeing when trying + to upgrade using `curl | http://npmjs.com/install.sh`. + ([@iarna](https://github.com/iarna)) +* [`5cad1699a`](https://github.com/npm/npm/commit/5cad1699a7a0fc85ac7f77a95087a9647f75e344) + `npm-lifecycle@1.0.3` Fix a bug where when more than one lifecycle script + got queued to run, npm would crash. + ([@zkat](https://github.com/zkat)) +* [`cd256cbb2`](https://github.com/npm/npm/commit/cd256cbb2f97fcbcb82237e94b66eac80e493626) + `npm-packlist@1.1.9` Fix a bug where test directories would always be + excluded from published modules. + ([@isaacs](https://github.com/isaacs)) +* [`2a11f0215`](https://github.com/npm/npm/commit/2a11f021561acb1eb1ad4ad45ad955793b1eb4af) + Fix formatting of unsupported version warning + ([@iarna](https://github.com/iarna)) + +### DEPENDENCY UPDATES + +* [`6d2a285a5`](https://github.com/npm/npm/commit/6d2a285a58655f10834f64d38449eb1f3c8b6c47) + `npm-registry-client@8.5.0` +* [`69e64e27b`](https://github.com/npm/npm/commit/69e64e27bf58efd0b76b3cf6e8182c77f8cc452f) + `request@2.83.0` +* [`34e0f4209`](https://github.com/npm/npm/commit/34e0f42090f6153eb5462f742e402813e4da56c8) + `abbrev@1.1.1` +* [`10d31739d`](https://github.com/npm/npm/commit/10d31739d39765f1f0249f688bd934ffad92f872) + `aproba@1.2.0` +* [`2b02e86c0`](https://github.com/npm/npm/commit/2b02e86c06cf2a5fe7146404f5bfd27f190ee4f4) + `meant@1.0.1` +* [`b81fff808`](https://github.com/npm/npm/commit/b81fff808ee269361d3dcf38c1b6019f1708ae02) + `rimraf@2.6.2`: + Fixes a long standing bug in rimraf's attempts to work around Windows limitations + where it owns a file and can change its perms but can't remove it without + first changing its perms. This _may_ be an improvement for Windows users of npm under + some circumstances. + ([@isaacs](https://github.com/isaacs)) + ## v5.4.2 (2017-09-14): This is a small bug fix release wrapping up most of the issues introduced with 5.4.0. diff --git a/deps/npm/doc/cli/npm-access.md b/deps/npm/doc/cli/npm-access.md index aabdbe03ca0169..a338673c8d84a6 100644 --- a/deps/npm/doc/cli/npm-access.md +++ b/deps/npm/doc/cli/npm-access.md @@ -60,6 +60,9 @@ You must have privileges to set the access of a package: * You have been given read-write privileges for a package, either as a member of a team or directly as an owner. +If you have two-factor authentication enabled then you'll have to pass in an +otp with `--otp` when making access changes. + If your account is not paid, then attempts to publish scoped packages will fail with an HTTP 402 status code (logically enough), unless you use `--access=public`. diff --git a/deps/npm/doc/cli/npm-dist-tag.md b/deps/npm/doc/cli/npm-dist-tag.md index 8b4c170ddebf9e..14ce2d3f52e392 100644 --- a/deps/npm/doc/cli/npm-dist-tag.md +++ b/deps/npm/doc/cli/npm-dist-tag.md @@ -15,7 +15,9 @@ Add, remove, and enumerate distribution tags on a package: * add: Tags the specified version of the package with the specified tag, or the - `--tag` config if not specified. + `--tag` config if not specified. The tag you're adding is `latest` and you + have two-factor authentication on auth-and-writes then you'll need to include + an otp on the command line with `--otp`. * rm: Clear a tag that is no longer in use from the package. diff --git a/deps/npm/doc/cli/npm-owner.md b/deps/npm/doc/cli/npm-owner.md index 43929cb3322aed..94010298c18ef5 100644 --- a/deps/npm/doc/cli/npm-owner.md +++ b/deps/npm/doc/cli/npm-owner.md @@ -27,6 +27,10 @@ Note that there is only one level of access. Either you can modify a package, or you can't. Future versions may contain more fine-grained access levels, but that is not implemented at this time. +If you have two-factor authentication enabled with `auth-and-writes` then +you'll need to include an otp on the command line when changing ownership +with `--otp`. + ## SEE ALSO * npm-publish(1) diff --git a/deps/npm/doc/cli/npm-profile.md b/deps/npm/doc/cli/npm-profile.md new file mode 100644 index 00000000000000..31e8b7e8ef8afa --- /dev/null +++ b/deps/npm/doc/cli/npm-profile.md @@ -0,0 +1,74 @@ +npm-profile(1) -- Change settings on your registry profile +========================================================== + +## SYNOPSIS + + npm profile get [--json|--parseable] [] + npm profile set [--json|--parseable] + npm profile set password + npm profile enable-2fa [auth-and-writes|auth-only] + npm profile disable-2fa + +## DESCRIPTION + +Change your profile information on the registry. This not be available if +you're using a non-npmjs registry. + +* `npm profile get []`: + Display all of the properties of your profile, or one or more specific + properties. It looks like: + +``` ++-----------------+---------------------------+ +| name | example | ++-----------------+---------------------------+ +| email | me@example.com (verified) | ++-----------------+---------------------------+ +| two factor auth | auth-and-writes | ++-----------------+---------------------------+ +| fullname | Example User | ++-----------------+---------------------------+ +| homepage | | ++-----------------+---------------------------+ +| freenode | | ++-----------------+---------------------------+ +| twitter | | ++-----------------+---------------------------+ +| github | | ++-----------------+---------------------------+ +| created | 2015-02-26T01:38:35.892Z | ++-----------------+---------------------------+ +| updated | 2017-10-02T21:29:45.922Z | ++-----------------+---------------------------+ +``` + +* `npm profile set `: + Set the value of a profile property. You can set the following properties this way: + email, fullname, homepage, freenode, twitter, github + +* `npm profile set password`: + Change your password. This is interactive, you'll be prompted for your + current password and a new password. You'll also be prompted for an OTP + if you have two-factor authentication enabled. + +* `npm profile enable-2fa [auth-and-writes|auth-only]`: + Enables two-factor authentication. Defaults to `auth-and-writes` mode. Modes are: + * `auth-only`: Require an OTP when logging in or making changes to your + account's authentication. The OTP will be required on both the website + and the command line. + * `auth-and-writes`: Requires an OTP at all the times `auth-only` does, and also requires one when + publishing a module, setting the `latest` dist-tag, or changing access + via `npm access` and `npm owner`. + +* `npm profile disable-2fa`: + Disables two-factor authentication. + +## DETAILS + +All of the `npm profile` subcommands accept `--json` and `--parseable` and +will tailor their output based on those. Some of these commands may not be +available on non npmjs.com registries. + +## SEE ALSO + +* npm-config(7) diff --git a/deps/npm/doc/cli/npm-publish.md b/deps/npm/doc/cli/npm-publish.md index 892786b61d9556..7e173ec00aff25 100644 --- a/deps/npm/doc/cli/npm-publish.md +++ b/deps/npm/doc/cli/npm-publish.md @@ -4,7 +4,7 @@ npm-publish(1) -- Publish a package ## SYNOPSIS - npm publish [|] [--tag ] [--access ] + npm publish [|] [--tag ] [--access ] [--otp otpcode] Publishes '.' if no argument supplied Sets tag 'latest' if no --tag specified @@ -41,6 +41,11 @@ specifying a different default registry or using a `npm-scope(7)` in the name If you don't have a paid account, you must publish with `--access public` to publish scoped packages. +* `[--otp ]` + If you have two-factor authentication enabled in `auth-and-writes` mode + then you can provide a code from your authenticator with this. If you + don't include this and you're running from a TTY then you'll be prompted. + Fails if the package name and version combination already exists in the specified registry. @@ -65,3 +70,4 @@ packs them into a tarball to be uploaded to the registry. * npm-deprecate(1) * npm-dist-tag(1) * npm-pack(1) +* npm-profile(1) diff --git a/deps/npm/doc/cli/npm-token.md b/deps/npm/doc/cli/npm-token.md new file mode 100644 index 00000000000000..bc0d7596fe0cf4 --- /dev/null +++ b/deps/npm/doc/cli/npm-token.md @@ -0,0 +1,59 @@ +npm-token(1) -- Manage your authentication tokens +================================================= + +## SYNOPSIS + + npm token list [--json|--parseable] + npm token create [--read-only] [--cidr=1.1.1.1/24,2.2.2.2/16] + npm token delete + +## DESCRIPTION + +This list you list, create and delete authentication tokens. + +* `npm token list`: + Shows a table of all active authentication tokens. You can request this as + JSON with `--json` or tab-separated values with `--parseable`. +``` ++--------+---------+------------+----------+----------------+ +| 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 | | ++--------+---------+------------+----------+----------------+ +``` + +* `npm token create [--read-only] [--cidr=]`: + Create a new authentication token. It can be `--read-only` or accept a list of + [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) ranges to + limit use of this token to. This will prompt you for your password, and, if you have + two-factor authentication enabled, an otp. + +``` ++----------------+--------------------------------------+ +| token | a73c9572-f1b9-8983-983d-ba3ac3cc913d | ++----------------+--------------------------------------+ +| cidr_whitelist | | ++----------------+--------------------------------------+ +| readonly | false | ++----------------+--------------------------------------+ +| created | 2017-10-02T07:52:24.838Z | ++----------------+--------------------------------------+ +``` + +* `npm token delete `: + This removes an authentication token, making it immediately unusable. This can accept + both complete tokens (as you get back from `npm token create` and will + find in your `.npmrc`) and ids as seen in the `npm token list` output. + This will NOT accept the truncated token found in `npm token list` output. diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md index 30ea578f08834a..3c9ec38817754e 100644 --- a/deps/npm/doc/misc/npm-config.md +++ b/deps/npm/doc/misc/npm-config.md @@ -269,6 +269,13 @@ PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newlines repla It is _not_ the path to a certificate file (and there is no "certfile" option). +### cidr + +* Default: `null` +* Type: String, Array, null + +This is a list of CIDR address to be used when configuring limited access tokens with the `npm token create` command. + ### color * Default: true @@ -699,6 +706,14 @@ Attempt to install packages in the `optionalDependencies` object. Note that if these packages fail to install, the overall installation process is not aborted. +### otp + +* Default: null +* Type: Number + +This is a one-time password from a two-factor authenticator. It's needed +when publishing or changing package permissions with `npm access`. + ### package-lock * Default: true @@ -773,6 +788,13 @@ A proxy to use for outgoing http requests. If the `HTTP_PROXY` or `http_proxy` environment variables are set, proxy settings will be honored by the underlying `request` library. +### read-only + +* Default: false +* Type: Boolean + +This is used to mark a token as unable to publish when configuring limited access tokens with the `npm token create` command. + ### rebuild-bundle * Default: true diff --git a/deps/npm/doc/misc/npm-index.md b/deps/npm/doc/misc/npm-index.md index ed478d84ad9119..64fb25de2e284e 100644 --- a/deps/npm/doc/misc/npm-index.md +++ b/deps/npm/doc/misc/npm-index.md @@ -129,6 +129,10 @@ Ping npm registry Display prefix +### npm-profile(1) + +Change settings on your registry profile + ### npm-prune(1) Remove extraneous packages @@ -189,6 +193,10 @@ Manage organization teams and team memberships Test a package +### npm-token(1) + +Manage your authentication tokens + ### npm-uninstall(1) Remove a package diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html index 41aff5ef27ea6f..296bbb0697e58d 100644 --- a/deps/npm/html/doc/README.html +++ b/deps/npm/html/doc/README.html @@ -127,5 +127,5 @@

SEE ALSO

  
   
- + diff --git a/deps/npm/html/doc/cli/npm-access.html b/deps/npm/html/doc/cli/npm-access.html index 8871c80f45dfe9..ab140aade0c82a 100644 --- a/deps/npm/html/doc/cli/npm-access.html +++ b/deps/npm/html/doc/cli/npm-access.html @@ -61,6 +61,8 @@

DETAILS

  • You have been given read-write privileges for a package, either as a member of a team or directly as an owner.
  • +

    If you have two-factor authentication enabled then you'll have to pass in an +otp with --otp when making access changes.

    If your account is not paid, then attempts to publish scoped packages will fail with an HTTP 402 status code (logically enough), unless you use --access=public.

    @@ -84,5 +86,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html index cddf8a12cf9b34..282d6268b78b3c 100644 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ b/deps/npm/html/doc/cli/npm-adduser.html @@ -81,5 +81,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html index c83e0ec9794907..9af0c17e26af55 100644 --- a/deps/npm/html/doc/cli/npm-bin.html +++ b/deps/npm/html/doc/cli/npm-bin.html @@ -35,5 +35,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html index cdd01a386b658f..069bcf2938bfc6 100644 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ b/deps/npm/html/doc/cli/npm-bugs.html @@ -55,5 +55,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html index a0f714b86fd1b2..091b28bb172a3f 100644 --- a/deps/npm/html/doc/cli/npm-build.html +++ b/deps/npm/html/doc/cli/npm-build.html @@ -40,5 +40,5 @@

    DESCRIPTION

           - + diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html index aef2ba8836d7fd..7b4e0c71936ab5 100644 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ b/deps/npm/html/doc/cli/npm-bundle.html @@ -31,5 +31,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html index 1b34548c1e7ded..d2394086d4faea 100644 --- a/deps/npm/html/doc/cli/npm-cache.html +++ b/deps/npm/html/doc/cli/npm-cache.html @@ -89,5 +89,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html index 31254ce3b7875e..d94785492335cf 100644 --- a/deps/npm/html/doc/cli/npm-completion.html +++ b/deps/npm/html/doc/cli/npm-completion.html @@ -43,5 +43,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html index edf6bf631b751b..9dfa27aa5463a2 100644 --- a/deps/npm/html/doc/cli/npm-config.html +++ b/deps/npm/html/doc/cli/npm-config.html @@ -68,5 +68,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html index f69dd4b3142aa4..1349617d0dab44 100644 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ b/deps/npm/html/doc/cli/npm-dedupe.html @@ -61,5 +61,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html index 6ad21625b702b1..32433db75a0f50 100644 --- a/deps/npm/html/doc/cli/npm-deprecate.html +++ b/deps/npm/html/doc/cli/npm-deprecate.html @@ -38,5 +38,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-dist-tag.html b/deps/npm/html/doc/cli/npm-dist-tag.html index b5ef756fec71a4..230013c3e2f7cb 100644 --- a/deps/npm/html/doc/cli/npm-dist-tag.html +++ b/deps/npm/html/doc/cli/npm-dist-tag.html @@ -21,7 +21,9 @@

    SYNOPSIS

    @@ -79,5 +85,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html index f415fbbc822826..021ecf7f55123f 100644 --- a/deps/npm/html/doc/cli/npm-rebuild.html +++ b/deps/npm/html/doc/cli/npm-rebuild.html @@ -35,5 +35,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html index 182965fb704702..fdf446784b70f6 100644 --- a/deps/npm/html/doc/cli/npm-repo.html +++ b/deps/npm/html/doc/cli/npm-repo.html @@ -41,5 +41,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html index 36a9e0b9b52ed1..01f57667e48237 100644 --- a/deps/npm/html/doc/cli/npm-restart.html +++ b/deps/npm/html/doc/cli/npm-restart.html @@ -53,5 +53,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html index 49ac12783222a6..a513f8c7a44563 100644 --- a/deps/npm/html/doc/cli/npm-root.html +++ b/deps/npm/html/doc/cli/npm-root.html @@ -35,5 +35,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html index 5960d30434b2e4..72b946b21e28f1 100644 --- a/deps/npm/html/doc/cli/npm-run-script.html +++ b/deps/npm/html/doc/cli/npm-run-script.html @@ -74,5 +74,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html index a1f9a00439cc59..413da85416ba10 100644 --- a/deps/npm/html/doc/cli/npm-search.html +++ b/deps/npm/html/doc/cli/npm-search.html @@ -109,5 +109,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html index 78d1c7963eeefe..a8d3d7e5e9501c 100644 --- a/deps/npm/html/doc/cli/npm-shrinkwrap.html +++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html @@ -41,5 +41,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html index a809953af077e9..dd57a76118a3a9 100644 --- a/deps/npm/html/doc/cli/npm-star.html +++ b/deps/npm/html/doc/cli/npm-star.html @@ -36,5 +36,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html index 1196e814616209..060faeed4b6c49 100644 --- a/deps/npm/html/doc/cli/npm-stars.html +++ b/deps/npm/html/doc/cli/npm-stars.html @@ -36,5 +36,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html index 1c9ad027ce9a34..6cd9df603bbff7 100644 --- a/deps/npm/html/doc/cli/npm-start.html +++ b/deps/npm/html/doc/cli/npm-start.html @@ -39,5 +39,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html index 1be76d097eaaa0..7e795163b86a68 100644 --- a/deps/npm/html/doc/cli/npm-stop.html +++ b/deps/npm/html/doc/cli/npm-stop.html @@ -34,5 +34,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-team.html b/deps/npm/html/doc/cli/npm-team.html index c788bb723c49c6..a24bc6558ae980 100644 --- a/deps/npm/html/doc/cli/npm-team.html +++ b/deps/npm/html/doc/cli/npm-team.html @@ -67,5 +67,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html index a9f115dac28bd3..1aaa8687c1c312 100644 --- a/deps/npm/html/doc/cli/npm-test.html +++ b/deps/npm/html/doc/cli/npm-test.html @@ -36,5 +36,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-token.html b/deps/npm/html/doc/cli/npm-token.html new file mode 100644 index 00000000000000..a2e4ce181494bf --- /dev/null +++ b/deps/npm/html/doc/cli/npm-token.html @@ -0,0 +1,76 @@ + + + npm-token + + + + + + +
    + +

    npm-token

    Manage your authentication tokens

    +

    SYNOPSIS

    +
    npm token list [--json|--parseable]
    +npm token create [--read-only] [--cidr=1.1.1.1/24,2.2.2.2/16]
    +npm token delete <id|token>
    +

    DESCRIPTION

    +

    This list you list, create and delete authentication tokens.

    +
      +
    • npm token list: +Shows a table of all active authentication tokens. You can request this as +JSON with --json or tab-separated values with --parseable.

      +
      +--------+---------+------------+----------+----------------+
      +| 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       |                |
      ++--------+---------+------------+----------+----------------+
      +
    • +
    • npm token create [--read-only] [--cidr=<cidr-ranges>]: +Create a new authentication token. It can be --read-only or accept a list of +CIDR ranges to +limit use of this token to. This will prompt you for your password, and, if you have +two-factor authentication enabled, an otp.

      +
    • +
    +
    +----------------+--------------------------------------+
    +| token          | a73c9572-f1b9-8983-983d-ba3ac3cc913d |
    ++----------------+--------------------------------------+
    +| cidr_whitelist |                                      |
    ++----------------+--------------------------------------+
    +| readonly       | false                                |
    ++----------------+--------------------------------------+
    +| created        | 2017-10-02T07:52:24.838Z             |
    ++----------------+--------------------------------------+
    +
      +
    • npm token delete <token|id>: +This removes an authentication token, making it immediately unusable. This can accept +both complete tokens (as you get back from npm token create and will +find in your .npmrc) and ids as seen in the npm token list output. +This will NOT accept the truncated token found in npm token list output.
    • +
    + +
    + + + + + + + + + + + diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html index 6afc765585fdfc..454f575ce3aa91 100644 --- a/deps/npm/html/doc/cli/npm-uninstall.html +++ b/deps/npm/html/doc/cli/npm-uninstall.html @@ -63,5 +63,5 @@

    SYNOPSIS

           - + diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html index 08005d0beb3542..e278eb29efeceb 100644 --- a/deps/npm/html/doc/cli/npm-unpublish.html +++ b/deps/npm/html/doc/cli/npm-unpublish.html @@ -51,5 +51,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html index 0a34283c79642c..c2ee6bfe1064a8 100644 --- a/deps/npm/html/doc/cli/npm-update.html +++ b/deps/npm/html/doc/cli/npm-update.html @@ -118,5 +118,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html index e8fdfbe1e6e191..5e1d389d777a4e 100644 --- a/deps/npm/html/doc/cli/npm-version.html +++ b/deps/npm/html/doc/cli/npm-version.html @@ -120,5 +120,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html index 7179bad486e311..691ea8ee431911 100644 --- a/deps/npm/html/doc/cli/npm-view.html +++ b/deps/npm/html/doc/cli/npm-view.html @@ -86,5 +86,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html index 9799b1d1ec9abc..f4190a368294b2 100644 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ b/deps/npm/html/doc/cli/npm-whoami.html @@ -33,5 +33,5 @@

    SEE ALSO

           - + diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html index 12ba9c4871f6d1..c6a68d7652e07d 100644 --- a/deps/npm/html/doc/cli/npm.html +++ b/deps/npm/html/doc/cli/npm.html @@ -13,7 +13,7 @@

    npm

    javascript package manager

    SYNOPSIS

    npm <command> [args]
     

    VERSION

    -

    5.4.2

    +

    5.5.1

    DESCRIPTION

    npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency @@ -126,7 +126,7 @@

    AUTHOR

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

    +i@izs.me

    SEE ALSO