From 26e9d5f7808f2952bd8eedcb5841861af3eebe6a Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Thu, 19 Mar 2020 12:53:27 -0400 Subject: [PATCH] deps: update npm to 6.14.3 PR-URL: https://github.com/nodejs/node/pull/32368 Refs: https://github.com/nodejs/node/issues/32296 Reviewed-By: Bradley Farias Reviewed-By: Beth Griggs Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater --- deps/npm/AUTHORS | 3 + deps/npm/CHANGELOG.md | 31 +++ .../docs/content/cli-commands/npm-access.md | 6 +- .../docs/content/cli-commands/npm-adduser.md | 6 +- .../docs/content/cli-commands/npm-audit.md | 2 +- deps/npm/docs/content/cli-commands/npm-bin.md | 6 +- .../npm/docs/content/cli-commands/npm-bugs.md | 8 +- .../docs/content/cli-commands/npm-build.md | 4 +- .../docs/content/cli-commands/npm-bundle.md | 2 +- .../docs/content/cli-commands/npm-cache.md | 8 +- deps/npm/docs/content/cli-commands/npm-ci.md | 4 +- .../docs/content/cli-commands/npm-config.md | 2 +- .../docs/content/cli-commands/npm-dedupe.md | 6 +- .../content/cli-commands/npm-deprecate.md | 2 +- .../docs/content/cli-commands/npm-dist-tag.md | 8 +- .../npm/docs/content/cli-commands/npm-docs.md | 6 +- .../docs/content/cli-commands/npm-doctor.md | 6 +- .../npm/docs/content/cli-commands/npm-edit.md | 6 +- .../docs/content/cli-commands/npm-explore.md | 8 +- .../npm/docs/content/cli-commands/npm-fund.md | 8 +- .../content/cli-commands/npm-help-search.md | 2 +- .../npm/docs/content/cli-commands/npm-help.md | 4 +- .../npm/docs/content/cli-commands/npm-init.md | 2 +- .../cli-commands/npm-install-ci-test.md | 4 +- .../content/cli-commands/npm-install-test.md | 4 +- .../docs/content/cli-commands/npm-install.md | 24 +-- .../npm/docs/content/cli-commands/npm-link.md | 4 +- .../docs/content/cli-commands/npm-logout.md | 6 +- deps/npm/docs/content/cli-commands/npm-ls.md | 12 +- .../docs/content/cli-commands/npm-outdated.md | 4 +- .../docs/content/cli-commands/npm-owner.md | 4 +- .../npm/docs/content/cli-commands/npm-pack.md | 6 +- .../npm/docs/content/cli-commands/npm-ping.md | 2 +- .../docs/content/cli-commands/npm-prefix.md | 8 +- .../docs/content/cli-commands/npm-profile.md | 2 +- .../docs/content/cli-commands/npm-prune.md | 4 +- .../docs/content/cli-commands/npm-publish.md | 4 +- .../docs/content/cli-commands/npm-rebuild.md | 4 +- .../npm/docs/content/cli-commands/npm-repo.md | 4 +- .../docs/content/cli-commands/npm-restart.md | 10 +- .../npm/docs/content/cli-commands/npm-root.md | 6 +- .../content/cli-commands/npm-run-script.md | 10 +- .../docs/content/cli-commands/npm-search.md | 4 +- .../content/cli-commands/npm-shrinkwrap.md | 6 +- .../npm/docs/content/cli-commands/npm-star.md | 6 +- .../docs/content/cli-commands/npm-stars.md | 8 +- .../docs/content/cli-commands/npm-start.md | 10 +- .../npm/docs/content/cli-commands/npm-stop.md | 8 +- .../npm/docs/content/cli-commands/npm-team.md | 4 +- .../npm/docs/content/cli-commands/npm-test.md | 8 +- .../content/cli-commands/npm-uninstall.md | 6 +- .../content/cli-commands/npm-unpublish.md | 34 ++- .../docs/content/cli-commands/npm-update.md | 12 +- .../docs/content/cli-commands/npm-version.md | 4 +- .../npm/docs/content/cli-commands/npm-view.md | 6 +- .../docs/content/cli-commands/npm-whoami.md | 4 +- .../docs/content/configuring-npm/folders.md | 12 +- .../npm/docs/content/configuring-npm/npmrc.md | 2 +- .../content/configuring-npm/package-json.md | 16 +- .../configuring-npm/package-lock-json.md | 4 +- .../content/configuring-npm/package-locks.md | 4 +- .../configuring-npm/shrinkwrap-json.md | 6 +- deps/npm/docs/content/using-npm/config.md | 12 +- deps/npm/docs/content/using-npm/disputes.md | 2 +- deps/npm/docs/content/using-npm/orgs.md | 8 +- deps/npm/docs/content/using-npm/registry.md | 4 +- deps/npm/docs/content/using-npm/removal.md | 4 +- deps/npm/docs/content/using-npm/scope.md | 8 +- deps/npm/docs/content/using-npm/scripts.md | 12 +- .../public/cli-commands/npm-access/index.html | 10 +- .../cli-commands/npm-adduser/index.html | 10 +- .../public/cli-commands/npm-audit/index.html | 6 +- .../public/cli-commands/npm-bin/index.html | 10 +- .../public/cli-commands/npm-bugs/index.html | 12 +- .../public/cli-commands/npm-build/index.html | 8 +- .../public/cli-commands/npm-bundle/index.html | 6 +- .../public/cli-commands/npm-cache/index.html | 12 +- .../public/cli-commands/npm-ci/index.html | 8 +- .../cli-commands/npm-completion/index.html | 4 +- .../public/cli-commands/npm-config/index.html | 6 +- .../public/cli-commands/npm-dedupe/index.html | 10 +- .../cli-commands/npm-deprecate/index.html | 6 +- .../cli-commands/npm-dist-tag/index.html | 12 +- .../public/cli-commands/npm-docs/index.html | 10 +- .../public/cli-commands/npm-doctor/index.html | 10 +- .../public/cli-commands/npm-edit/index.html | 10 +- .../cli-commands/npm-explore/index.html | 12 +- .../public/cli-commands/npm-fund/index.html | 12 +- .../cli-commands/npm-help-search/index.html | 6 +- .../public/cli-commands/npm-help/index.html | 8 +- .../public/cli-commands/npm-hook/index.html | 4 +- .../public/cli-commands/npm-init/index.html | 6 +- .../npm-install-ci-test/index.html | 8 +- .../cli-commands/npm-install-test/index.html | 8 +- .../cli-commands/npm-install/index.html | 28 +-- .../public/cli-commands/npm-link/index.html | 8 +- .../public/cli-commands/npm-logout/index.html | 10 +- .../public/cli-commands/npm-ls/index.html | 18 +- .../public/cli-commands/npm-org/index.html | 4 +- .../cli-commands/npm-outdated/index.html | 8 +- .../public/cli-commands/npm-owner/index.html | 8 +- .../public/cli-commands/npm-pack/index.html | 10 +- .../public/cli-commands/npm-ping/index.html | 6 +- .../public/cli-commands/npm-prefix/index.html | 12 +- .../cli-commands/npm-profile/index.html | 6 +- .../public/cli-commands/npm-prune/index.html | 8 +- .../cli-commands/npm-publish/index.html | 8 +- .../cli-commands/npm-rebuild/index.html | 8 +- .../public/cli-commands/npm-repo/index.html | 8 +- .../cli-commands/npm-restart/index.html | 14 +- .../public/cli-commands/npm-root/index.html | 10 +- .../cli-commands/npm-run-script/index.html | 14 +- .../public/cli-commands/npm-search/index.html | 8 +- .../cli-commands/npm-shrinkwrap/index.html | 10 +- .../public/cli-commands/npm-star/index.html | 10 +- .../public/cli-commands/npm-stars/index.html | 12 +- .../public/cli-commands/npm-start/index.html | 14 +- .../public/cli-commands/npm-stop/index.html | 12 +- .../public/cli-commands/npm-team/index.html | 7 +- .../public/cli-commands/npm-test/index.html | 12 +- .../public/cli-commands/npm-token/index.html | 4 +- .../cli-commands/npm-uninstall/index.html | 10 +- .../cli-commands/npm-unpublish/index.html | 33 ++- .../public/cli-commands/npm-update/index.html | 15 +- .../cli-commands/npm-version/index.html | 8 +- .../public/cli-commands/npm-view/index.html | 10 +- .../public/cli-commands/npm-whoami/index.html | 8 +- .../docs/public/cli-commands/npm/index.html | 6 +- .../public/configuring-npm/folders/index.html | 16 +- .../public/configuring-npm/install/index.html | 4 +- .../public/configuring-npm/npmrc/index.html | 6 +- .../configuring-npm/package-json/index.html | 20 +- .../package-lock-json/index.html | 8 +- .../configuring-npm/package-locks/index.html | 8 +- .../shrinkwrap-json/index.html | 10 +- deps/npm/docs/public/index.html | 2 +- .../docs/public/using-npm/config/index.html | 16 +- .../public/using-npm/developers/index.html | 4 +- .../docs/public/using-npm/disputes/index.html | 6 +- .../npm/docs/public/using-npm/orgs/index.html | 12 +- .../docs/public/using-npm/registry/index.html | 8 +- .../docs/public/using-npm/removal/index.html | 8 +- .../docs/public/using-npm/scope/index.html | 12 +- .../docs/public/using-npm/scripts/index.html | 16 +- .../docs/public/using-npm/semver/index.html | 4 +- deps/npm/lib/team.js | 8 +- deps/npm/lib/unpublish.js | 8 +- deps/npm/man/man1/npm-README.1 | 2 +- deps/npm/man/man1/npm-access.1 | 2 +- deps/npm/man/man1/npm-adduser.1 | 2 +- deps/npm/man/man1/npm-audit.1 | 2 +- deps/npm/man/man1/npm-bin.1 | 2 +- deps/npm/man/man1/npm-bugs.1 | 2 +- deps/npm/man/man1/npm-build.1 | 2 +- deps/npm/man/man1/npm-bundle.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 2 +- deps/npm/man/man1/npm-ci.1 | 2 +- deps/npm/man/man1/npm-completion.1 | 2 +- deps/npm/man/man1/npm-config.1 | 2 +- deps/npm/man/man1/npm-dedupe.1 | 2 +- deps/npm/man/man1/npm-deprecate.1 | 2 +- deps/npm/man/man1/npm-dist-tag.1 | 2 +- deps/npm/man/man1/npm-docs.1 | 2 +- deps/npm/man/man1/npm-doctor.1 | 2 +- deps/npm/man/man1/npm-edit.1 | 2 +- deps/npm/man/man1/npm-explore.1 | 2 +- deps/npm/man/man1/npm-fund.1 | 2 +- deps/npm/man/man1/npm-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-hook.1 | 2 +- deps/npm/man/man1/npm-init.1 | 2 +- deps/npm/man/man1/npm-install-ci-test.1 | 2 +- deps/npm/man/man1/npm-install-test.1 | 2 +- deps/npm/man/man1/npm-install.1 | 2 +- deps/npm/man/man1/npm-link.1 | 2 +- deps/npm/man/man1/npm-logout.1 | 2 +- deps/npm/man/man1/npm-ls.1 | 4 +- deps/npm/man/man1/npm-org.1 | 2 +- deps/npm/man/man1/npm-outdated.1 | 2 +- deps/npm/man/man1/npm-owner.1 | 2 +- deps/npm/man/man1/npm-pack.1 | 2 +- deps/npm/man/man1/npm-ping.1 | 2 +- deps/npm/man/man1/npm-prefix.1 | 2 +- deps/npm/man/man1/npm-profile.1 | 2 +- deps/npm/man/man1/npm-prune.1 | 2 +- deps/npm/man/man1/npm-publish.1 | 2 +- deps/npm/man/man1/npm-rebuild.1 | 2 +- deps/npm/man/man1/npm-repo.1 | 2 +- deps/npm/man/man1/npm-restart.1 | 2 +- deps/npm/man/man1/npm-root.1 | 2 +- deps/npm/man/man1/npm-run-script.1 | 2 +- deps/npm/man/man1/npm-search.1 | 2 +- deps/npm/man/man1/npm-shrinkwrap.1 | 2 +- deps/npm/man/man1/npm-star.1 | 2 +- deps/npm/man/man1/npm-stars.1 | 2 +- deps/npm/man/man1/npm-start.1 | 2 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-team.1 | 4 +- deps/npm/man/man1/npm-test.1 | 2 +- deps/npm/man/man1/npm-token.1 | 2 +- deps/npm/man/man1/npm-uninstall.1 | 2 +- deps/npm/man/man1/npm-unpublish.1 | 31 ++- deps/npm/man/man1/npm-update.1 | 6 +- deps/npm/man/man1/npm-version.1 | 2 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 4 +- deps/npm/man/man5/folders.5 | 2 +- deps/npm/man/man5/install.5 | 2 +- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package-json.5 | 2 +- deps/npm/man/man5/package-lock-json.5 | 2 +- deps/npm/man/man5/package-locks.5 | 2 +- deps/npm/man/man5/shrinkwrap-json.5 | 2 +- deps/npm/man/man7/config.7 | 2 +- deps/npm/man/man7/developers.7 | 2 +- deps/npm/man/man7/disputes.7 | 2 +- deps/npm/man/man7/orgs.7 | 2 +- deps/npm/man/man7/registry.7 | 2 +- deps/npm/man/man7/removal.7 | 2 +- deps/npm/man/man7/scope.7 | 2 +- deps/npm/man/man7/scripts.7 | 2 +- deps/npm/man/man7/semver.7 | 2 +- deps/npm/node_modules/glob/README.md | 2 + deps/npm/node_modules/glob/package.json | 26 ++- .../node_modules/hosted-git-info/CHANGELOG.md | 10 + .../npm/node_modules/hosted-git-info/index.js | 2 +- .../node_modules/hosted-git-info/package.json | 26 +-- deps/npm/node_modules/minimist/.travis.yml | 4 - deps/npm/node_modules/mkdirp/examples/pow.js | 6 - .../{ => node_modules/minimist}/.travis.yml | 0 .../node_modules}/minimist/LICENSE | 0 .../node_modules}/minimist/example/parse.js | 2 +- .../node_modules}/minimist/index.js | 197 +++++++++++------- .../node_modules}/minimist/package.json | 30 +-- .../node_modules}/minimist/readme.markdown | 34 ++- .../node_modules/minimist/test/all_bool.js | 32 +++ .../mkdirp/node_modules/minimist/test/bool.js | 178 ++++++++++++++++ .../node_modules}/minimist/test/dash.js | 7 + .../minimist/test/default_bool.js | 15 ++ .../node_modules}/minimist/test/dotted.js | 6 + .../node_modules/minimist/test/kv_short.js | 16 ++ .../node_modules}/minimist/test/long.js | 0 .../mkdirp/node_modules/minimist/test/num.js | 36 ++++ .../node_modules}/minimist/test/parse.js | 177 +++------------- .../minimist/test/parse_modified.js | 4 +- .../node_modules/minimist/test/proto.js | 44 ++++ .../node_modules}/minimist/test/short.js | 4 +- .../node_modules/minimist/test/stop_early.js | 15 ++ .../node_modules/minimist/test/unknown.js | 102 +++++++++ .../node_modules}/minimist/test/whitespace.js | 0 deps/npm/node_modules/mkdirp/package.json | 49 +++-- deps/npm/node_modules/mkdirp/test/chmod.js | 41 ---- deps/npm/node_modules/mkdirp/test/clobber.js | 38 ---- deps/npm/node_modules/mkdirp/test/mkdirp.js | 28 --- deps/npm/node_modules/mkdirp/test/opts_fs.js | 29 --- .../node_modules/mkdirp/test/opts_fs_sync.js | 27 --- deps/npm/node_modules/mkdirp/test/perm.js | 32 --- .../npm/node_modules/mkdirp/test/perm_sync.js | 36 ---- deps/npm/node_modules/mkdirp/test/race.js | 37 ---- deps/npm/node_modules/mkdirp/test/rel.js | 32 --- deps/npm/node_modules/mkdirp/test/return.js | 25 --- .../node_modules/mkdirp/test/return_sync.js | 24 --- deps/npm/node_modules/mkdirp/test/root.js | 19 -- deps/npm/node_modules/mkdirp/test/sync.js | 32 --- deps/npm/node_modules/mkdirp/test/umask.js | 28 --- .../node_modules/mkdirp/test/umask_sync.js | 32 --- .../.github/workflows/Python_tests.yml | 40 ++++ deps/npm/node_modules/node-gyp/.travis.yml | 71 ++++--- deps/npm/node_modules/node-gyp/CHANGELOG.md | 18 ++ deps/npm/node_modules/node-gyp/README.md | 8 +- .../node-gyp/gyp/pylib/gyp/MSVSUtil.pyc | Bin 0 -> 7654 bytes .../node-gyp/gyp/pylib/gyp/MSVSVersion.pyc | Bin 0 -> 14398 bytes .../node-gyp/gyp/pylib/gyp/__init__.pyc | Bin 0 -> 16426 bytes .../node-gyp/gyp/pylib/gyp/common.pyc | Bin 0 -> 19552 bytes .../gyp/pylib/gyp/generator/__init__.pyc | Bin 0 -> 168 bytes .../node-gyp/gyp/pylib/gyp/generator/make.pyc | Bin 0 -> 71261 bytes .../gyp/pylib/gyp/generator/ninja.pyc | Bin 0 -> 68498 bytes .../gyp/pylib/gyp/generator/xcode.pyc | Bin 0 -> 26219 bytes .../node-gyp/gyp/pylib/gyp/input.py | 2 +- .../node-gyp/gyp/pylib/gyp/input.pyc | Bin 0 -> 63378 bytes .../node-gyp/gyp/pylib/gyp/msvs_emulation.pyc | Bin 0 -> 48168 bytes .../node-gyp/gyp/pylib/gyp/ninja_syntax.pyc | Bin 0 -> 6457 bytes .../node-gyp/gyp/pylib/gyp/simple_copy.pyc | Bin 0 -> 2222 bytes .../gyp/pylib/gyp/xcode_emulation.pyc | Bin 0 -> 61720 bytes .../node-gyp/gyp/pylib/gyp/xcode_ninja.pyc | Bin 0 -> 7555 bytes .../node-gyp/gyp/pylib/gyp/xcodeproj_file.pyc | Bin 0 -> 93565 bytes .../node-gyp/lib/Find-VisualStudio.cs | 9 +- .../node_modules/node-gyp/lib/find-python.js | 2 +- deps/npm/node_modules/node-gyp/lib/install.js | 6 +- .../npm/node_modules/node-gyp/lib/node-gyp.js | 1 + deps/npm/node_modules/node-gyp/lib/proxy.js | 92 ++++++++ .../node_modules/node-gyp/macOS_Catalina.md | 49 +++-- deps/npm/node_modules/node-gyp/package.json | 22 +- deps/npm/node_modules/node-gyp/test/docker.sh | 112 ---------- .../node-gyp/test/test-download.js | 97 ++++++++- deps/npm/node_modules/npm-profile/index.js | 27 ++- .../npm/node_modules/npm-profile/package.json | 28 +-- deps/npm/node_modules/rimraf/package.json | 29 +-- deps/npm/node_modules/rimraf/rimraf.js | 10 +- deps/npm/package.json | 18 +- .../test/fixtures/config/userconfig-with-gc | 23 -- 302 files changed, 1859 insertions(+), 1713 deletions(-) delete mode 100644 deps/npm/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/mkdirp/examples/pow.js rename deps/npm/node_modules/mkdirp/{ => node_modules/minimist}/.travis.yml (100%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/LICENSE (100%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/example/parse.js (72%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/index.js (50%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/package.json (63%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/readme.markdown (53%) create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/all_bool.js create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/bool.js rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/dash.js (74%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/default_bool.js (58%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/dotted.js (75%) create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/kv_short.js rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/long.js (100%) create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/num.js rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/parse.js (54%) rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/parse_modified.js (77%) create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/proto.js rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/short.js (99%) create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/stop_early.js create mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/unknown.js rename deps/npm/node_modules/{ => mkdirp/node_modules}/minimist/test/whitespace.js (100%) delete mode 100644 deps/npm/node_modules/mkdirp/test/chmod.js delete mode 100644 deps/npm/node_modules/mkdirp/test/clobber.js delete mode 100644 deps/npm/node_modules/mkdirp/test/mkdirp.js delete mode 100644 deps/npm/node_modules/mkdirp/test/opts_fs.js delete mode 100644 deps/npm/node_modules/mkdirp/test/opts_fs_sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/perm.js delete mode 100644 deps/npm/node_modules/mkdirp/test/perm_sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/race.js delete mode 100644 deps/npm/node_modules/mkdirp/test/rel.js delete mode 100644 deps/npm/node_modules/mkdirp/test/return.js delete mode 100644 deps/npm/node_modules/mkdirp/test/return_sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/root.js delete mode 100644 deps/npm/node_modules/mkdirp/test/sync.js delete mode 100644 deps/npm/node_modules/mkdirp/test/umask.js delete mode 100644 deps/npm/node_modules/mkdirp/test/umask_sync.js create mode 100644 deps/npm/node_modules/node-gyp/.github/workflows/Python_tests.yml create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.pyc create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.pyc create mode 100644 deps/npm/node_modules/node-gyp/lib/proxy.js delete mode 100755 deps/npm/node_modules/node-gyp/test/docker.sh delete mode 100644 deps/npm/test/fixtures/config/userconfig-with-gc diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS index 89270e3c127b4f..c2a38c02d53f97 100644 --- a/deps/npm/AUTHORS +++ b/deps/npm/AUTHORS @@ -688,3 +688,6 @@ Netanel Gilad Dave Nicolson Ajay Narain Mathur Vitaliy Markitanov <9357021+vit100@users.noreply.github.com> +simon_s +John Kennedy +Bernard Kitchens diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index ff02d1dea0bcad..1c0779eb25e5d7 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,3 +1,34 @@ +## 6.14.3 (2020-03-19) + +### DOCUMENTATION + +* [`4ad221487`](https://github.com/npm/cli/commit4ad2214873cddfd4a0eff1bd188516b08fae9f9e) [#1020](https://github.com/npm/cli/pull/1020) docs(teams): updated team docs to reflect MFA workflow ([@blkdm0n](https://github.com/blkdm0n)) +* [`4a31a4ba2`](https://github.com/npm/cli/commit/4a31a4ba2db0a5db2d1d0890ee934ba1babb73a6) [#1034](https://github.com/npm/cli/pull/1034) docs: cleanup ([@ruyadorno](https://github.com/ruyadorno)) +* [`0eac801cd`](https://github.com/npm/cli/commit/0eac801cdef344e9fbda6270145e062211255b0e) [#1013](https://github.com/npm/cli/pull/1013) docs: fix links to cli commands ([@alenros](https://github.com/alenros)) +* [`7d8e5b99c`](https://github.com/npm/cli/commit/7d8e5b99c4ef8c394cffa7fc845f54a25ff37e3a) [#755](https://github.com/npm/cli/pull/755) docs: correction to `npm update -g` behaviour ([@johnkennedy9147](https://github.com/johnkennedy9147)) + +### DEPENDENCIES + +* [`e11167646`](https://github.com/npm/cli/commit/e111676467f090f73802b97e8da7ece481b18f99) `mkdirp@0.5.3` + * [`c5b97d17d`](https://github.com/isaacs/node-mkdirp/commit/c5b97d17d45a22bcf4c815645cbb989dab57ddd8) fix: bump `minimist` dep to resolve security issue ([@isaacs](https://github.com/isaacs)) +* [`c50d679c6`](https://github.com/npm/cli/commit/c50d679c68b39dd03ad127d34f540ddcb1b1e804) `rimraf@2.7.1` +* [`a2de99ff9`](https://github.com/npm/cli/commit/a2de99ff9e02425a3ccc25280f390178be755a36) `npm-registry-mock@1.3.1` +* [`217debeb9`](https://github.com/npm/cli/commit/217debeb9812e037a6686cbf6ec67a0cd47fa68a) `npm-registry-couchapp@2.7.4` + +## 6.14.2 (2020-03-03) + +### DOCUMENTATION +* [`f9248c0be`](https://github.com/npm/cli/commit/f9248c0be63fba37a30098dc9215c752474380e3) [#730](https://github.com/npm/cli/pull/730) chore(docs): update unpublish docs & policy reference ([@nomadtechie](https://github.com/nomadtechie), [@mikemimik](https://github.com/mikemimik)) + +### DEPENDENCIES + +* [`909cc3918`](https://github.com/npm/cli/commit/909cc39180a352f206898481add5772206c8b65f) `hosted-git-info@2.8.8` ([@darcyclarke](https://github.com/darcyclarke)) + * [`5038b1891`](https://github.com/npm/hosted-git-info/commit/5038b1891a61ca3cd7453acbf85d7011fe0086bb) fix: regression in old node versions w/ respect to url.URL implmentation +* [`9204ffa58`](https://github.com/npm/cli/commit/9204ffa584c140c5e22b1ee37f6df2c98f5dc70b) `npm-profile@4.0.4` ([@isaacs](https://github.com/isaacs)) + * [`6bcf0860a`](https://github.com/npm/npm-profile/commit/6bcf0860a3841865099d0115dbcbde8b78109bd9) fix: treat non-http/https login urls as invalid +* [`0365d39bd`](https://github.com/npm/cli/commit/0365d39bdc74960a18caac674f51d0e2a98b31e6) `glob@7.1.6` ([@isaacs](https://github.com/isaacs)) +* [`dab030536`](https://github.com/nodejs/node-gyp/commit/dab030536b6a70ecae37debc74c581db9e5280fd) `node-gyp@5.1.0` ([@rvagg](https://github.com/rvagg)) + ## 6.14.1 (2020-02-26) * [`303e5c11e`](https://github.com/npm/cli/commit/303e5c11e7db34cf014107aecd2e81c821bfde8d) diff --git a/deps/npm/docs/content/cli-commands/npm-access.md b/deps/npm/docs/content/cli-commands/npm-access.md index 0fbce9c0759d12..f4088fe8855139 100644 --- a/deps/npm/docs/content/cli-commands/npm-access.md +++ b/deps/npm/docs/content/cli-commands/npm-access.md @@ -87,7 +87,7 @@ Management of teams and team memberships is done with the `npm team` command. ### See Also * [`libnpmaccess`](https://npm.im/libnpmaccess) -* [npm team](/cli-commands/npm-team) -* [npm publish](/cli-commands/npm-publish) -* [npm config](/cli-commands/npm-config) +* [npm team](/cli-commands/team) +* [npm publish](/cli-commands/publish) +* [npm config](/cli-commands/config) * [npm registry](/using-npm/registry) diff --git a/deps/npm/docs/content/cli-commands/npm-adduser.md b/deps/npm/docs/content/cli-commands/npm-adduser.md index 2df35e45fc550e..ec61cdd39acbad 100644 --- a/deps/npm/docs/content/cli-commands/npm-adduser.md +++ b/deps/npm/docs/content/cli-commands/npm-adduser.md @@ -89,7 +89,7 @@ username/password entry in legacy npm. ### See Also * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) -* [npm owner](/cli-commands/npm-owner) -* [npm whoami](/cli-commands/npm-whoami) +* [npm owner](/cli-commands/owner) +* [npm whoami](/cli-commands/whoami) diff --git a/deps/npm/docs/content/cli-commands/npm-audit.md b/deps/npm/docs/content/cli-commands/npm-audit.md index 0aba874f96df8d..8b944e94cc12e2 100644 --- a/deps/npm/docs/content/cli-commands/npm-audit.md +++ b/deps/npm/docs/content/cli-commands/npm-audit.md @@ -131,6 +131,6 @@ configuration setting. ### See Also -* [npm install](/cli-commands/npm-install) +* [npm install](/cli-commands/install) * [package-locks](/configuring-npm/package-locks) * [config](/using-npm/config) diff --git a/deps/npm/docs/content/cli-commands/npm-bin.md b/deps/npm/docs/content/cli-commands/npm-bin.md index 6c7ce0eee54e21..eb0912ae48a92a 100644 --- a/deps/npm/docs/content/cli-commands/npm-bin.md +++ b/deps/npm/docs/content/cli-commands/npm-bin.md @@ -19,8 +19,8 @@ Print the folder where npm will install executables. ### See Also -* [npm prefix](/cli-commands/npm-prefix) -* [npm root](/cli-commands/npm-root) +* [npm prefix](/cli-commands/prefix) +* [npm root](/cli-commands/root) * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-bugs.md b/deps/npm/docs/content/cli-commands/npm-bugs.md index dcc9c358df14d8..6e59f2bd1a05e0 100644 --- a/deps/npm/docs/content/cli-commands/npm-bugs.md +++ b/deps/npm/docs/content/cli-commands/npm-bugs.md @@ -41,10 +41,10 @@ The base URL of the npm package registry. ### See Also -* [npm docs](/cli-commands/npm-docs) -* [npm view](/cli-commands/npm-view) -* [npm publish](/cli-commands/npm-publish) +* [npm docs](/cli-commands/docs) +* [npm view](/cli-commands/view) +* [npm publish](/cli-commands/publish) * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [package.json](/configuring-npm/package-json) diff --git a/deps/npm/docs/content/cli-commands/npm-build.md b/deps/npm/docs/content/cli-commands/npm-build.md index b657129787663d..eca5397d9c77d5 100644 --- a/deps/npm/docs/content/cli-commands/npm-build.md +++ b/deps/npm/docs/content/cli-commands/npm-build.md @@ -28,7 +28,7 @@ directly, run: ### See Also -* [npm install](/cli-commands/npm-install) -* [npm link](/cli-commands/npm-link) +* [npm install](/cli-commands/install) +* [npm link](/cli-commands/link) * [npm scripts](/using-npm/scripts) * [package.json](/configuring-npm/package-json) diff --git a/deps/npm/docs/content/cli-commands/npm-bundle.md b/deps/npm/docs/content/cli-commands/npm-bundle.md index 76417ac8b0b0c7..c4fdc5e6bb0e64 100644 --- a/deps/npm/docs/content/cli-commands/npm-bundle.md +++ b/deps/npm/docs/content/cli-commands/npm-bundle.md @@ -18,4 +18,4 @@ Just use `npm install` now to do what `npm bundle` used to do. ### See Also -* [npm install](/cli-commands/npm-install) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/content/cli-commands/npm-cache.md b/deps/npm/docs/content/cli-commands/npm-cache.md index ed31a320421b0c..4d19749b80f2d9 100644 --- a/deps/npm/docs/content/cli-commands/npm-cache.md +++ b/deps/npm/docs/content/cli-commands/npm-cache.md @@ -82,10 +82,10 @@ The root cache folder. ### See Also * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) -* [npm install](/cli-commands/npm-install) -* [npm publish](/cli-commands/npm-publish) -* [npm pack](/cli-commands/npm-pack) +* [npm install](/cli-commands/install) +* [npm publish](/cli-commands/publish) +* [npm pack](/cli-commands/pack) * https://npm.im/cacache * https://npm.im/pacote diff --git a/deps/npm/docs/content/cli-commands/npm-ci.md b/deps/npm/docs/content/cli-commands/npm-ci.md index 357ba16cf6ade1..b5b6447a485f8f 100644 --- a/deps/npm/docs/content/cli-commands/npm-ci.md +++ b/deps/npm/docs/content/cli-commands/npm-ci.md @@ -45,7 +45,7 @@ cache: ### Description -This command is similar to [`npm install`](/cli-commands/npm-install), except it's meant to be used in +This command is similar to [`npm install`](/cli-commands/install), except it's meant to be used in automated environments such as test platforms, continuous integration, and deployment -- or any situation where you want to make sure you're doing a clean install of your dependencies. It can be significantly faster than a regular npm @@ -63,5 +63,5 @@ In short, the main differences between using `npm install` and `npm ci` are: ### See Also -* [npm install](/cli-commands/npm-install) +* [npm install](/cli-commands/install) * [package-locks](/configuring-npm/package-locks) diff --git a/deps/npm/docs/content/cli-commands/npm-config.md b/deps/npm/docs/content/cli-commands/npm-config.md index c2f2033b066d29..68d403746fc103 100644 --- a/deps/npm/docs/content/cli-commands/npm-config.md +++ b/deps/npm/docs/content/cli-commands/npm-config.md @@ -79,7 +79,7 @@ global config. ### See Also * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [package.json](/configuring-npm/package-json) * [npmrc](/configuring-npm/npmrc) * [npm](/cli-commands/npm) diff --git a/deps/npm/docs/content/cli-commands/npm-dedupe.md b/deps/npm/docs/content/cli-commands/npm-dedupe.md index e15a12ba7c18a3..a146885a044086 100644 --- a/deps/npm/docs/content/cli-commands/npm-dedupe.md +++ b/deps/npm/docs/content/cli-commands/npm-dedupe.md @@ -62,6 +62,6 @@ result in new modules being installed. ### See Also -* [npm ls](/cli-commands/npm-ls) -* [npm update](/cli-commands/npm-update) -* [npm install](/cli-commands/npm-install) +* [npm ls](/cli-commands/ls) +* [npm update](/cli-commands/update) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/content/cli-commands/npm-deprecate.md b/deps/npm/docs/content/cli-commands/npm-deprecate.md index d2d9613f653c6c..252c0e70370791 100644 --- a/deps/npm/docs/content/cli-commands/npm-deprecate.md +++ b/deps/npm/docs/content/cli-commands/npm-deprecate.md @@ -32,5 +32,5 @@ format an empty string. ### See Also -* [npm publish](/cli-commands/npm-publish) +* [npm publish](/cli-commands/publish) * [npm registry](/using-npm/registry) diff --git a/deps/npm/docs/content/cli-commands/npm-dist-tag.md b/deps/npm/docs/content/cli-commands/npm-dist-tag.md index c7921c7f739d72..4f7fcb9f58f1ba 100644 --- a/deps/npm/docs/content/cli-commands/npm-dist-tag.md +++ b/deps/npm/docs/content/cli-commands/npm-dist-tag.md @@ -92,9 +92,9 @@ begin with a number or the letter `v`. ### See Also -* [npm publish](/cli-commands/npm-publish) -* [npm install](/cli-commands/npm-install) -* [npm dedupe](/cli-commands/npm-dedupe) +* [npm publish](/cli-commands/publish) +* [npm install](/cli-commands/install) +* [npm dedupe](/cli-commands/dedupe) * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-docs.md b/deps/npm/docs/content/cli-commands/npm-docs.md index 46f5cd0d900a47..f157e200dc514f 100644 --- a/deps/npm/docs/content/cli-commands/npm-docs.md +++ b/deps/npm/docs/content/cli-commands/npm-docs.md @@ -44,9 +44,9 @@ The base URL of the npm package registry. ### See Also -* [npm view](/cli-commands/npm-view) -* [npm publish](/cli-commands/npm-publish) +* [npm view](/cli-commands/view) +* [npm publish](/cli-commands/publish) * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [package.json](/configuring-npm/package-json) diff --git a/deps/npm/docs/content/cli-commands/npm-doctor.md b/deps/npm/docs/content/cli-commands/npm-doctor.md index 7cec349e5a8145..60a57ea4765a26 100644 --- a/deps/npm/docs/content/cli-commands/npm-doctor.md +++ b/deps/npm/docs/content/cli-commands/npm-doctor.md @@ -106,6 +106,6 @@ cache, you should probably run `npm cache clean` and reset the cache. ### See Also -* [npm bugs](/cli-commands/npm-bugs) -* [npm help](/cli-commands/npm-help) -* [npm ping](/cli-commands/npm-ping) +* [npm bugs](/cli-commands/bugs) +* [npm help](/cli-commands/help) +* [npm ping](/cli-commands/ping) diff --git a/deps/npm/docs/content/cli-commands/npm-edit.md b/deps/npm/docs/content/cli-commands/npm-edit.md index 94b6a087fa102f..d4b9bbb819b94f 100644 --- a/deps/npm/docs/content/cli-commands/npm-edit.md +++ b/deps/npm/docs/content/cli-commands/npm-edit.md @@ -41,7 +41,7 @@ The command to run for `npm edit` or `npm config edit`. ### See Also * [npm folders](/configuring-npm/folders) -* [npm explore](/cli-commands/npm-explore) -* [npm install](/cli-commands/npm-install) -* [npm config](/cli-commands/npm-config) +* [npm explore](/cli-commands/explore) +* [npm install](/cli-commands/install) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-explore.md b/deps/npm/docs/content/cli-commands/npm-explore.md index 8ded96d40984fe..dfa4d9c0737412 100644 --- a/deps/npm/docs/content/cli-commands/npm-explore.md +++ b/deps/npm/docs/content/cli-commands/npm-explore.md @@ -44,7 +44,7 @@ The shell to run for the `npm explore` command. ### See Also * [npm folders](/configuring-npm/folders) -* [npm edit](/cli-commands/npm-edit) -* [npm rebuild](/cli-commands/npm-rebuild) -* [npm build](/cli-commands/npm-build) -* [npm install](/cli-commands/npm-install) +* [npm edit](/cli-commands/edit) +* [npm rebuild](/cli-commands/rebuild) +* [npm build](/cli-commands/build) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/content/cli-commands/npm-fund.md b/deps/npm/docs/content/cli-commands/npm-fund.md index 5a751eec466871..73910ff7c07bde 100644 --- a/deps/npm/docs/content/cli-commands/npm-fund.md +++ b/deps/npm/docs/content/cli-commands/npm-fund.md @@ -61,8 +61,8 @@ If there are multiple funding sources, which 1-indexed source URL to open. ## See Also -* [npm docs](/cli-commands/npm-docs) -* [npm config](/cli-commands/npm-config) -* [npm install](/cli-commands/npm-install) -* [npm ls](/cli-commands/npm-ls) +* [npm docs](/cli-commands/docs) +* [npm config](/cli-commands/config) +* [npm install](/cli-commands/install) +* [npm ls](/cli-commands/ls) diff --git a/deps/npm/docs/content/cli-commands/npm-help-search.md b/deps/npm/docs/content/cli-commands/npm-help-search.md index 69d005cb160ed7..96781856551383 100644 --- a/deps/npm/docs/content/cli-commands/npm-help-search.md +++ b/deps/npm/docs/content/cli-commands/npm-help-search.md @@ -40,4 +40,4 @@ If false, then help-search will just list out the help topics found. ### See Also * [npm](/cli-commands/npm) -* [npm help](/cli-commands/npm-help) +* [npm help](/cli-commands/help) diff --git a/deps/npm/docs/content/cli-commands/npm-help.md b/deps/npm/docs/content/cli-commands/npm-help.md index c47676ffcac1d3..358010c05ece33 100644 --- a/deps/npm/docs/content/cli-commands/npm-help.md +++ b/deps/npm/docs/content/cli-commands/npm-help.md @@ -38,7 +38,7 @@ Set to `"browser"` to view html help content in the default web browser. * [npm](/cli-commands/npm) * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [package.json](/configuring-npm/package-json) -* [npm help-search](/cli-commands/npm-help-search) +* [npm help-search](/cli-commands/help-search) diff --git a/deps/npm/docs/content/cli-commands/npm-init.md b/deps/npm/docs/content/cli-commands/npm-init.md index 73ad74b23ea998..32b7f823019910 100644 --- a/deps/npm/docs/content/cli-commands/npm-init.md +++ b/deps/npm/docs/content/cli-commands/npm-init.md @@ -70,5 +70,5 @@ will create a scoped package. * * [package.json](/configuring-npm/package-json) -* [npm version](/cli-commands/npm-version) +* [npm version](/cli-commands/version) * [npm scope](/using-npm/scope) diff --git a/deps/npm/docs/content/cli-commands/npm-install-ci-test.md b/deps/npm/docs/content/cli-commands/npm-install-ci-test.md index 98e40f4b27a77d..09d738c79fbed5 100644 --- a/deps/npm/docs/content/cli-commands/npm-install-ci-test.md +++ b/deps/npm/docs/content/cli-commands/npm-install-ci-test.md @@ -22,5 +22,5 @@ This command runs an `npm ci` followed immediately by an `npm test`. ### See Also -* [npm ci](/cli-commands/npm-ci) -* [npm test](/cli-commands/npm-test) +* [npm ci](/cli-commands/ci) +* [npm test](/cli-commands/test) diff --git a/deps/npm/docs/content/cli-commands/npm-install-test.md b/deps/npm/docs/content/cli-commands/npm-install-test.md index b86a5199117c4a..58b8844b4fcfff 100644 --- a/deps/npm/docs/content/cli-commands/npm-install-test.md +++ b/deps/npm/docs/content/cli-commands/npm-install-test.md @@ -31,5 +31,5 @@ takes exactly the same arguments as `npm install`. ### See Also -* [npm install](/cli-commands/npm-install) -* [npm test](/cli-commands/npm-test) +* [npm install](/cli-commands/install) +* [npm test](/cli-commands/test) diff --git a/deps/npm/docs/content/cli-commands/npm-install.md b/deps/npm/docs/content/cli-commands/npm-install.md index 8e661bf643f394..be196fa825546b 100644 --- a/deps/npm/docs/content/cli-commands/npm-install.md +++ b/deps/npm/docs/content/cli-commands/npm-install.md @@ -32,7 +32,7 @@ common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exa This command installs a package, and any packages that it depends on. If the package has a package-lock or shrinkwrap file, the installation of dependencies will be driven by that, with an `npm-shrinkwrap.json` taking precedence if both -files exist. See [package-lock.json](/configuring-npm/package-lock-json) and [`npm shrinkwrap`](/cli-commands/npm-shrinkwrap). +files exist. See [package-lock.json](/configuring-npm/package-lock-json) and [`npm shrinkwrap`](/cli-commands/shrinkwrap). A `package` is: @@ -40,7 +40,7 @@ A `package` is: * b) a gzipped tarball containing (a) * c) a url that resolves to (b) * d) a `@` that is published on the registry (see [`registry`](/using-npm/registry)) with (c) -* e) a `@` (see [`npm dist-tag`](/cli-commands/npm-dist-tag)) that points to (d) +* e) a `@` (see [`npm dist-tag`](/cli-commands/dist-tag)) that points to (d) * f) a `` that has a "latest" tag satisfying (e) * g) a `` that resolves to (a) @@ -503,17 +503,17 @@ affects a real use-case, it will be investigated. ### See Also * [npm folders](/configuring-npm/folders) -* [npm update](/cli-commands/npm-update) -* [npm audit](/cli-commands/npm-audit) -* [npm fund](/cli-commands/npm-fund) -* [npm link](/cli-commands/npm-link) -* [npm rebuild](/cli-commands/npm-rebuild) +* [npm update](/cli-commands/update) +* [npm audit](/cli-commands/audit) +* [npm fund](/cli-commands/fund) +* [npm link](/cli-commands/link) +* [npm rebuild](/cli-commands/rebuild) * [npm scripts](/using-npm/scripts) -* [npm build](/cli-commands/npm-build) -* [npm config](/cli-commands/npm-config) +* [npm build](/cli-commands/build) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [npm registry](/using-npm/registry) -* [npm dist-tag](/cli-commands/npm-dist-tag) -* [npm uninstall](/cli-commands/npm-uninstall) -* [npm shrinkwrap](/cli-commands/npm-shrinkwrap) +* [npm dist-tag](/cli-commands/dist-tag) +* [npm uninstall](/cli-commands/uninstall) +* [npm shrinkwrap](/cli-commands/shrinkwrap) * [package.json](/configuring-npm/package-json) diff --git a/deps/npm/docs/content/cli-commands/npm-link.md b/deps/npm/docs/content/cli-commands/npm-link.md index a6d2908c4a32ab..3f513868dfebd6 100644 --- a/deps/npm/docs/content/cli-commands/npm-link.md +++ b/deps/npm/docs/content/cli-commands/npm-link.md @@ -86,7 +86,7 @@ npm link @myorg/privatepackage * [npm developers](/using-npm/developers) * [package.json](/configuring-npm/package-json) -* [npm- nstall](/cli-commands/npm-install) +* [npm- nstall](/cli-commands/install) * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-logout.md b/deps/npm/docs/content/cli-commands/npm-logout.md index ca7d86f2d1960e..5fb7100e8ef7d0 100644 --- a/deps/npm/docs/content/cli-commands/npm-logout.md +++ b/deps/npm/docs/content/cli-commands/npm-logout.md @@ -48,7 +48,7 @@ npm logout --scope=@myco ### See Also -* [npm adduser](/cli-commands/npm-adduser) +* [npm adduser](/cli-commands/adduser) * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) -* [npm whoami](/cli-commands/npm-whoami) +* [npm config](/cli-commands/config) +* [npm whoami](/cli-commands/whoami) diff --git a/deps/npm/docs/content/cli-commands/npm-ls.md b/deps/npm/docs/content/cli-commands/npm-ls.md index 64a399155ff601..797f15a50d8494 100644 --- a/deps/npm/docs/content/cli-commands/npm-ls.md +++ b/deps/npm/docs/content/cli-commands/npm-ls.md @@ -119,11 +119,11 @@ Set it to false in order to use all-ansi output. ### See Also -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [npm folders](/configuring-npm/folders) -* [npm install](/cli-commands/npm-install) -* [npm link](/cli-commands/npm-link) -* [npm prune](/cli-commands/npm-prune) -* [npm outdated](/cli-commands/npm-outdated) -* [npm update](/cli-commands/npm-update) +* [npm install](/cli-commands/install) +* [npm link](/cli-commands/link) +* [npm prune](/cli-commands/prune) +* [npm outdated](/cli-commands/outdated) +* [npm update](/cli-commands/update) diff --git a/deps/npm/docs/content/cli-commands/npm-outdated.md b/deps/npm/docs/content/cli-commands/npm-outdated.md index c7934109dca370..3dae28c465f4e6 100644 --- a/deps/npm/docs/content/cli-commands/npm-outdated.md +++ b/deps/npm/docs/content/cli-commands/npm-outdated.md @@ -118,7 +118,7 @@ Max depth for checking dependency tree. ### See Also -* [npm update](/cli-commands/npm-update) -* [npm dist-tag](/cli-commands/npm-dist-tag) +* [npm update](/cli-commands/update) +* [npm dist-tag](/cli-commands/dist-tag) * [npm registry](/using-npm/registry) * [npm folders](/configuring-npm/folders) diff --git a/deps/npm/docs/content/cli-commands/npm-owner.md b/deps/npm/docs/content/cli-commands/npm-owner.md index bc2fbc82fb280e..7088cdaf5cb396 100644 --- a/deps/npm/docs/content/cli-commands/npm-owner.md +++ b/deps/npm/docs/content/cli-commands/npm-owner.md @@ -41,7 +41,7 @@ with `--otp`. ### See Also -* [npm publish](/cli-commands/npm-publish) +* [npm publish](/cli-commands/publish) * [npm registry](/using-npm/registry) -* [npm adduser](/cli-commands/npm-adduser) +* [npm adduser](/cli-commands/adduser) * [npm disputes](/using-npm/disputes) diff --git a/deps/npm/docs/content/cli-commands/npm-pack.md b/deps/npm/docs/content/cli-commands/npm-pack.md index acf18559c14e00..d4774ff3716710 100644 --- a/deps/npm/docs/content/cli-commands/npm-pack.md +++ b/deps/npm/docs/content/cli-commands/npm-pack.md @@ -32,7 +32,7 @@ actually packing anything. Reports on what would have gone into the tarball. ### See Also -* [npm cache](/cli-commands/npm-cache) -* [npm publish](/cli-commands/npm-publish) -* [npm config](/cli-commands/npm-config) +* [npm cache](/cli-commands/cache) +* [npm publish](/cli-commands/publish) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-ping.md b/deps/npm/docs/content/cli-commands/npm-ping.md index 93d18b57f840b0..8f765501ac9f33 100644 --- a/deps/npm/docs/content/cli-commands/npm-ping.md +++ b/deps/npm/docs/content/cli-commands/npm-ping.md @@ -29,5 +29,5 @@ Ping error: {*Detail about error} ### See Also -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-prefix.md b/deps/npm/docs/content/cli-commands/npm-prefix.md index b82fec663a147d..c6b1f7441bcd65 100644 --- a/deps/npm/docs/content/cli-commands/npm-prefix.md +++ b/deps/npm/docs/content/cli-commands/npm-prefix.md @@ -21,12 +21,12 @@ 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`](/cli-commands/npm-config) for more detail. +[`npm config`](/cli-commands/config) for more detail. ### See Also -* [npm root](/cli-commands/npm-root) -* [npm bin](/cli-commands/npm-bin) +* [npm root](/cli-commands/root) +* [npm bin](/cli-commands/bin) * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-profile.md b/deps/npm/docs/content/cli-commands/npm-profile.md index 9fe82cd2d3a952..7cc38e2c9c3fe3 100644 --- a/deps/npm/docs/content/cli-commands/npm-profile.md +++ b/deps/npm/docs/content/cli-commands/npm-profile.md @@ -79,4 +79,4 @@ available on non npmjs.com registries. ### See Also -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) diff --git a/deps/npm/docs/content/cli-commands/npm-prune.md b/deps/npm/docs/content/cli-commands/npm-prune.md index c6b61e62f828a2..586c2e7024642b 100644 --- a/deps/npm/docs/content/cli-commands/npm-prune.md +++ b/deps/npm/docs/content/cli-commands/npm-prune.md @@ -41,6 +41,6 @@ and it's up to you to run `npm prune` from time-to-time to remove them. ### See Also -* [npm uninstall](/cli-commands/npm-uninstall) +* [npm uninstall](/cli-commands/uninstall) * [npm folders](/configuring-npm/folders) -* [npm ls](/cli-commands/npm-ls) +* [npm ls](/cli-commands/ls) diff --git a/deps/npm/docs/content/cli-commands/npm-publish.md b/deps/npm/docs/content/cli-commands/npm-publish.md index 44c36e0b7ac6cc..199377fa0df32d 100644 --- a/deps/npm/docs/content/cli-commands/npm-publish.md +++ b/deps/npm/docs/content/cli-commands/npm-publish.md @@ -60,13 +60,13 @@ the specified registry. Once a package is published with a given name and version, that specific name and version combination can never be used again, even if -it is removed with [`npm unpublish`](/cli-commands/npm-unpublish). +it is removed with [`npm unpublish`](/cli-commands/unpublish). As of `npm@5`, both a sha1sum and an integrity field with a sha512sum of the tarball will be submitted to the registry during publication. Subsequent installs will use the strongest supported algorithm to verify downloads. -Similar to `--dry-run` see [`npm pack`](/cli-commands/npm-pack), which figures out the files to be +Similar to `--dry-run` see [`npm pack`](/cli-commands/pack), which figures out the files to be included and packs them into a tarball to be uploaded to the registry. ### See Also diff --git a/deps/npm/docs/content/cli-commands/npm-rebuild.md b/deps/npm/docs/content/cli-commands/npm-rebuild.md index 414b9ca55a1932..9503d6aae84263 100644 --- a/deps/npm/docs/content/cli-commands/npm-rebuild.md +++ b/deps/npm/docs/content/cli-commands/npm-rebuild.md @@ -22,5 +22,5 @@ This command runs the `npm build` command on the matched folders. This is usefu ### See Also -* [npm build](/cli-commands/npm-build) -* [npm install](/cli-commands/npm-install) +* [npm build](/cli-commands/build) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/content/cli-commands/npm-repo.md b/deps/npm/docs/content/cli-commands/npm-repo.md index ad41ea571253fd..48021d9af5d912 100644 --- a/deps/npm/docs/content/cli-commands/npm-repo.md +++ b/deps/npm/docs/content/cli-commands/npm-repo.md @@ -32,5 +32,5 @@ The browser that is called by the `npm repo` command to open websites. ### See Also -* [npm docs](/cli-commands/npm-docs) -* [npm config](/cli-commands/npm-config) +* [npm docs](/cli-commands/docs) +* [npm config](/cli-commands/config) diff --git a/deps/npm/docs/content/cli-commands/npm-restart.md b/deps/npm/docs/content/cli-commands/npm-restart.md index d6d388b224ab1f..663b8f45066084 100644 --- a/deps/npm/docs/content/cli-commands/npm-restart.md +++ b/deps/npm/docs/content/cli-commands/npm-restart.md @@ -41,9 +41,9 @@ behavior will be accompanied by an increase in major version number ### See Also -* [npm run-script](/cli-commands/npm-run-script) +* [npm run-script](/cli-commands/run-script) * [npm scripts](/using-npm/scripts) -* [npm test](/cli-commands/npm-test) -* [npm start](/cli-commands/npm-start) -* [npm stop](/cli-commands/npm-stop) -* [npm restart](/cli-commands/npm-restart) \ No newline at end of file +* [npm test](/cli-commands/test) +* [npm start](/cli-commands/start) +* [npm stop](/cli-commands/stop) +* [npm restart](/cli-commands/restart) \ No newline at end of file diff --git a/deps/npm/docs/content/cli-commands/npm-root.md b/deps/npm/docs/content/cli-commands/npm-root.md index 2b27878af4c6dc..fce4490de78eac 100644 --- a/deps/npm/docs/content/cli-commands/npm-root.md +++ b/deps/npm/docs/content/cli-commands/npm-root.md @@ -19,8 +19,8 @@ Print the effective `node_modules` folder to standard out. ### See Also -* [npm prefix](/cli-commands/npm-prefix) -* [npm bin](/cli-commands/npm-bin) +* [npm prefix](/cli-commands/prefix) +* [npm bin](/cli-commands/bin) * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-run-script.md b/deps/npm/docs/content/cli-commands/npm-run-script.md index 51def74c3c4c33..1ee381e00f2f1e 100644 --- a/deps/npm/docs/content/cli-commands/npm-run-script.md +++ b/deps/npm/docs/content/cli-commands/npm-run-script.md @@ -90,8 +90,8 @@ without breaking the execution chain. ### See Also * [npm scripts](/using-npm/scripts) -* [npm test](/cli-commands/npm-test) -* [npm start](/cli-commands/npm-start) -* [npm restart](/cli-commands/npm-restart) -* [npm stop](/cli-commands/npm-stop) -* [npm config](/cli-commands/npm-config) +* [npm test](/cli-commands/test) +* [npm start](/cli-commands/start) +* [npm restart](/cli-commands/restart) +* [npm stop](/cli-commands/stop) +* [npm config](/cli-commands/config) diff --git a/deps/npm/docs/content/cli-commands/npm-search.md b/deps/npm/docs/content/cli-commands/npm-search.md index e066106faf71f4..c65e489cba27c8 100644 --- a/deps/npm/docs/content/cli-commands/npm-search.md +++ b/deps/npm/docs/content/cli-commands/npm-search.md @@ -109,6 +109,6 @@ setting. ### See Also * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) -* [npm view](/cli-commands/npm-view) +* [npm view](/cli-commands/view) diff --git a/deps/npm/docs/content/cli-commands/npm-shrinkwrap.md b/deps/npm/docs/content/cli-commands/npm-shrinkwrap.md index 342fb001675ab3..a22aed88e125fe 100644 --- a/deps/npm/docs/content/cli-commands/npm-shrinkwrap.md +++ b/deps/npm/docs/content/cli-commands/npm-shrinkwrap.md @@ -24,11 +24,11 @@ of package locks in npm, see [package-locks](/configuring-npm/package-locks). ### See Also -* [npm install](/cli-commands/npm-install) -* [npm run-script](/cli-commands/npm-run-script) +* [npm install](/cli-commands/install) +* [npm run-script](/cli-commands/run-script) * [npm scripts](/using-npm/scripts) * [package.js](/configuring-npm/package-json) * [package-locks](/configuring-npm/package-locks) * [package-lock.json](/configuring-npm/package-lock-json) * [shrinkwrap.json](/configuring-npm/shrinkwrap-json) -* [npm ls](/cli-commands/npm-ls) +* [npm ls](/cli-commands/ls) diff --git a/deps/npm/docs/content/cli-commands/npm-star.md b/deps/npm/docs/content/cli-commands/npm-star.md index 1912e9c654bc28..440d15d05c652e 100644 --- a/deps/npm/docs/content/cli-commands/npm-star.md +++ b/deps/npm/docs/content/cli-commands/npm-star.md @@ -26,6 +26,6 @@ It's a boolean thing. Starring repeatedly has no additional effect. ### See Also -* [npm view](/cli-commands/npm-view) -* [npm whoami](/cli-commands/npm-whoami) -* [npm adduser](/cli-commands/npm-adduser) +* [npm view](/cli-commands/view) +* [npm whoami](/cli-commands/whoami) +* [npm adduser](/cli-commands/adduser) diff --git a/deps/npm/docs/content/cli-commands/npm-stars.md b/deps/npm/docs/content/cli-commands/npm-stars.md index 475547bb4b7f2f..87b1664ef8595d 100644 --- a/deps/npm/docs/content/cli-commands/npm-stars.md +++ b/deps/npm/docs/content/cli-commands/npm-stars.md @@ -23,7 +23,7 @@ you will most certainly enjoy this command. ### See Also -* [npm star](/cli-commands/npm-star) -* [npm view](/cli-commands/npm-view) -* [npm whoami](/cli-commands/npm-whoami) -* [npm adduser](/cli-commands/npm-adduser) +* [npm star](/cli-commands/star) +* [npm view](/cli-commands/view) +* [npm whoami](/cli-commands/whoami) +* [npm adduser](/cli-commands/adduser) diff --git a/deps/npm/docs/content/cli-commands/npm-start.md b/deps/npm/docs/content/cli-commands/npm-start.md index 839528257b6d95..70221c9926a5d8 100644 --- a/deps/npm/docs/content/cli-commands/npm-start.md +++ b/deps/npm/docs/content/cli-commands/npm-start.md @@ -21,12 +21,12 @@ its `"scripts"` object. If no `"start"` property is specified on the `"scripts"` object, it will run `node server.js`. As of [`npm@2.0.0`](https://blog.npmjs.org/post/98131109725/npm-2-0-0), you can -use custom arguments when executing scripts. Refer to [`npm run-script`](/cli-commands/npm-run-script) for more details. +use custom arguments when executing scripts. Refer to [`npm run-script`](/cli-commands/run-script) for more details. ### See Also -* [npm run-script](/cli-commands/npm-run-script) +* [npm run-script](/cli-commands/run-script) * [npm scripts](/using-npm/scripts) -* [npm test](/cli-commands/npm-test) -* [npm restart](/cli-commands/npm-restart) -* [npm stop](/cli-commands/npm-stop) +* [npm test](/cli-commands/test) +* [npm restart](/cli-commands/restart) +* [npm stop](/cli-commands/stop) diff --git a/deps/npm/docs/content/cli-commands/npm-stop.md b/deps/npm/docs/content/cli-commands/npm-stop.md index da759047cb19a5..889f04ec41e3e2 100644 --- a/deps/npm/docs/content/cli-commands/npm-stop.md +++ b/deps/npm/docs/content/cli-commands/npm-stop.md @@ -20,8 +20,8 @@ This runs a package's "stop" script, if one was provided. ### See Also -* [npm run-script](/cli-commands/npm-run-script) +* [npm run-script](/cli-commands/run-script) * [npm scripts](/using-npm/scripts) -* [npm test](/cli-commands/npm-test) -* [npm start](/cli-commands/npm-start) -* [npm restart](/cli-commands/npm-restart) +* [npm test](/cli-commands/test) +* [npm start](/cli-commands/start) +* [npm restart](/cli-commands/restart) diff --git a/deps/npm/docs/content/cli-commands/npm-team.md b/deps/npm/docs/content/cli-commands/npm-team.md index 9a63b10c26f325..53e084d47d14a3 100644 --- a/deps/npm/docs/content/cli-commands/npm-team.md +++ b/deps/npm/docs/content/cli-commands/npm-team.md @@ -30,6 +30,8 @@ handle permissions for packages. Teams must always be fully qualified with the organization/scope they belong to when operating on them, separated by a colon (`:`). That is, if you have a `wombats` team in a `wisdom` organization, you must always refer to that team as `wisdom:wombats` in these commands. +If you have two-factor authentication enabled in `auth-and-writes` mode, then you can provide a code from your authenticator with `[--otp ]`. If you don't include this then you will be prompted. + * create / destroy: Create a new team, or destroy an existing one. Note: You cannot remove the `developers` team, learn more. * add / rm: @@ -60,5 +62,5 @@ use the `npm access` command to grant or revoke the appropriate permissions. ### See Also -* [npm access](/cli-commands/npm-access) +* [npm access](/cli-commands/access) * [npm registry](/using-npm/registry) diff --git a/deps/npm/docs/content/cli-commands/npm-test.md b/deps/npm/docs/content/cli-commands/npm-test.md index 99c027e3e057af..11900fd2fbf5e1 100644 --- a/deps/npm/docs/content/cli-commands/npm-test.md +++ b/deps/npm/docs/content/cli-commands/npm-test.md @@ -22,8 +22,8 @@ This runs a package's "test" script, if one was provided. ### See Also -* [npm run-script](/cli-commands/npm-run-script) +* [npm run-script](/cli-commands/run-script) * [npm scripts](/using-npm/scripts) -* [npm start](/cli-commands/npm-start) -* [npm restart](/cli-commands/npm-restart) -* [npm stop](/cli-commands/npm-stop) +* [npm start](/cli-commands/start) +* [npm restart](/cli-commands/restart) +* [npm stop](/cli-commands/stop) diff --git a/deps/npm/docs/content/cli-commands/npm-uninstall.md b/deps/npm/docs/content/cli-commands/npm-uninstall.md index 96fdc4ebe05ba9..2b994ba6180b65 100644 --- a/deps/npm/docs/content/cli-commands/npm-uninstall.md +++ b/deps/npm/docs/content/cli-commands/npm-uninstall.md @@ -57,8 +57,8 @@ npm uninstall lodash --no-save ### See Also -* [npm prune](/cli-commands/npm-prune) -* [npm install](/cli-commands/npm-install) +* [npm prune](/cli-commands/prune) +* [npm install](/cli-commands/install) * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) diff --git a/deps/npm/docs/content/cli-commands/npm-unpublish.md b/deps/npm/docs/content/cli-commands/npm-unpublish.md index 5348023d9a8400..9b918ed432c306 100644 --- a/deps/npm/docs/content/cli-commands/npm-unpublish.md +++ b/deps/npm/docs/content/cli-commands/npm-unpublish.md @@ -10,19 +10,21 @@ description: Remove a package from the registry ### Synopsis +#### Unpublishing a single version of a package + ```bash -npm unpublish [<@scope>/][@] +npm unpublish [<@scope>/]@ ``` -### Warning +#### Unpublishing an entire package -**It is generally considered bad behavior to remove versions of a library -that others are depending on!** +```bash +npm unpublish [<@scope>/] --force +``` -Consider using the `deprecate` command -instead, if your intent is to encourage users to upgrade. +### Warning -There is plenty of room on the registry. +Consider using the `deprecate` command instead, if your intent is to encourage users to upgrade, or if you no longer want to maintain a package. ### Description @@ -34,21 +36,15 @@ the root package entry is removed from the registry entirely. Even if a package version is unpublished, that specific name and version combination can never be reused. In order to publish the -package again, a new version number must be used. Additionally, -new versions of packages with every version unpublished may not -be republished until 24 hours have passed. +package again, a new version number must be used. If you unpublish the entire package, you may not publish any new versions of that package until 24 hours have passed. -With the default registry (`registry.npmjs.org`), unpublish is -only allowed with versions published in the last 72 hours. If you -are trying to unpublish a version published longer ago than that, -contact support@npmjs.com. +To learn more about how unpublish is treated on the npm registry, see our unpublish policies. -The scope is optional and follows the usual rules for [`scope`](/using-npm/scope). ### See Also -* [npm deprecate](/cli-commands/npm-deprecate) -* [npm publish](/cli-commands/npm-publish) +* [npm deprecate](/cli-commands/deprecate) +* [npm publish](/cli-commands/publish) * [npm registry](/using-npm/registry) -* [npm adduser](/cli-commands/npm-adduser) -* [npm owner](/cli-commands/npm-owner) +* [npm adduser](/cli-commands/adduser) +* [npm owner](/cli-commands/owner) diff --git a/deps/npm/docs/content/cli-commands/npm-update.md b/deps/npm/docs/content/cli-commands/npm-update.md index f2e93b6dc33df1..706d8acf208f91 100644 --- a/deps/npm/docs/content/cli-commands/npm-update.md +++ b/deps/npm/docs/content/cli-commands/npm-update.md @@ -122,7 +122,9 @@ version that satisfies `^0.4.0` (`>= 0.4.0 <0.5.0`) `npm update -g` will apply the `update` action to each globally installed package that is `outdated` -- that is, has a version that is different from -`latest`. +`wanted`. + +Note: Globally installed packages are treated as if they are installed with a caret semver range specified. So if you require to update to `latest` you may need to run `npm install -g [...]` NOTE: If a package has been upgraded to a version newer than `latest`, it will be _downgraded_. @@ -130,9 +132,9 @@ be _downgraded_. ### See Also -* [npm install](/cli-commands/npm-install) -* [npm outdated](/cli-commands/npm-outdated) -* [npm shrinkwrap](/cli-commands/npm-shrinkwrap) +* [npm install](/cli-commands/install) +* [npm outdated](/cli-commands/outdated) +* [npm shrinkwrap](/cli-commands/shrinkwrap) * [npm registry](/using-npm/registry) * [npm folders](/configuring-npm/folders) -* [npm ls](/cli-commands/npm-ls) +* [npm ls](/cli-commands/ls) diff --git a/deps/npm/docs/content/cli-commands/npm-version.md b/deps/npm/docs/content/cli-commands/npm-version.md index a47e9e33326acf..05a2ea4c8d8097 100644 --- a/deps/npm/docs/content/cli-commands/npm-version.md +++ b/deps/npm/docs/content/cli-commands/npm-version.md @@ -126,8 +126,8 @@ Note that you must have a default GPG key set up in your git config for this to ### See Also -* [npm init](/cli-commands/npm-init) -* [npm run-script](/cli-commands/npm-run-script) +* [npm init](/cli-commands/init) +* [npm run-script](/cli-commands/run-script) * [npm scripts](/using-npm/scripts) * [package.json](/configuring-npm/package-json) * [semver](/using-npm/semver) diff --git a/deps/npm/docs/content/cli-commands/npm-view.md b/deps/npm/docs/content/cli-commands/npm-view.md index 0c108e6f566154..b4c68471f5a7dc 100644 --- a/deps/npm/docs/content/cli-commands/npm-view.md +++ b/deps/npm/docs/content/cli-commands/npm-view.md @@ -117,8 +117,8 @@ the field name. ### See Also -* [npm search](/cli-commands/npm-search) +* [npm search](/cli-commands/search) * [npm registry](/using-npm/registry) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) -* [npm docs](/cli-commands/npm-docs) +* [npm docs](/cli-commands/docs) diff --git a/deps/npm/docs/content/cli-commands/npm-whoami.md b/deps/npm/docs/content/cli-commands/npm-whoami.md index b0eda4e46aa61b..d82f1f89732def 100644 --- a/deps/npm/docs/content/cli-commands/npm-whoami.md +++ b/deps/npm/docs/content/cli-commands/npm-whoami.md @@ -19,6 +19,6 @@ Print the `username` config to standard output. ### See Also -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) -* [npm adduser](/cli-commands/npm-adduser) +* [npm adduser](/cli-commands/adduser) diff --git a/deps/npm/docs/content/configuring-npm/folders.md b/deps/npm/docs/content/configuring-npm/folders.md index 96a8f4783d719b..abb6133fd1702f 100644 --- a/deps/npm/docs/content/configuring-npm/folders.md +++ b/deps/npm/docs/content/configuring-npm/folders.md @@ -73,7 +73,7 @@ Man pages are not installed on Windows systems. #### Cache -See [`npm cache`](/cli-commands/npm-cache). Cache files are stored in `~/.npm` on Posix, or +See [`npm cache`](/cli-commands/cache). Cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` on Windows. This is controlled by the `cache` configuration param. @@ -214,10 +214,10 @@ cannot be found elsewhere. See [`package.json`](/configuring-npm/package.json) ### See also * [package.json](/configuring-npm/package-json) -* [npm install](/cli-commands/npm-install) -* [npm pack](/cli-commands/npm-pack) -* [npm cache](/cli-commands/npm-cache) -* [npm config](/cli-commands/npm-config) +* [npm install](/cli-commands/install) +* [npm pack](/cli-commands/pack) +* [npm cache](/cli-commands/cache) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [config](/using-npm/config) -* [npm publish](/cli-commands/npm-publish) +* [npm publish](/cli-commands/publish) diff --git a/deps/npm/docs/content/configuring-npm/npmrc.md b/deps/npm/docs/content/configuring-npm/npmrc.md index 090ed5944fcce5..3439c0a8bfcf8b 100644 --- a/deps/npm/docs/content/configuring-npm/npmrc.md +++ b/deps/npm/docs/content/configuring-npm/npmrc.md @@ -97,7 +97,7 @@ manner. ### See also * [npm folders](/configuring-npm/folders) -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [config](/using-npm/config) * [package.json](/configuring-npm/package-json) * [npm](/cli-commands/npm) diff --git a/deps/npm/docs/content/configuring-npm/package-json.md b/deps/npm/docs/content/configuring-npm/package-json.md index 9af70ea0ab2ccc..6d9cae346b1944 100644 --- a/deps/npm/docs/content/configuring-npm/package-json.md +++ b/deps/npm/docs/content/configuring-npm/package-json.md @@ -533,7 +533,7 @@ See [semver](/using-npm/semver) for more details about specifying version ranges * `range1 || range2` Passes if either range1 or range2 are satisfied. * `git...` See 'Git URLs as Dependencies' below * `user/repo` See 'GitHub URLs' below -* `tag` A specific version tagged and published as `tag` See [`npm dist-tag`](/cli-commands/npm-dist-tag) +* `tag` A specific version tagged and published as `tag` See [`npm dist-tag`](/cli-commands/dist-tag) * `path/path/path` See [Local Paths](#local-paths) below For example, these are all valid: @@ -910,10 +910,10 @@ npm will default some values based on package contents. ### SEE ALSO * [semver](/using-npm/semver) -* [npm init](/cli-commands/npm-init) -* [npm version](/cli-commands/npm-version) -* [npm config](/cli-commands/npm-config) -* [npm help](/cli-commands/npm-help) -* [npm install](/cli-commands/npm-install) -* [npm publish](/cli-commands/npm-publish) -* [npm uninstall](/cli-commands/npm-uninstall) +* [npm init](/cli-commands/init) +* [npm version](/cli-commands/version) +* [npm config](/cli-commands/config) +* [npm help](/cli-commands/help) +* [npm install](/cli-commands/install) +* [npm publish](/cli-commands/publish) +* [npm uninstall](/cli-commands/uninstall) diff --git a/deps/npm/docs/content/configuring-npm/package-lock-json.md b/deps/npm/docs/content/configuring-npm/package-lock-json.md index 9f3ca4683defe7..0ab0aaa4ce247e 100644 --- a/deps/npm/docs/content/configuring-npm/package-lock-json.md +++ b/deps/npm/docs/content/configuring-npm/package-lock-json.md @@ -142,8 +142,8 @@ The dependencies of this dependency, exactly as at the top level. ### See also -* [npm shrinkwrap](/cli-commands/npm-shrinkwrap) +* [npm shrinkwrap](/cli-commands/shrinkwrap) * [shrinkwrap.json](/configuring-npm/shrinkwrap-json) * [package-locks](/configuring-npm/package-locks) * [package.json](/configuring-npm/package-json) -* [npm install](/cli-commands/npm-install) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/content/configuring-npm/package-locks.md b/deps/npm/docs/content/configuring-npm/package-locks.md index de65e3c634f077..81d21298ae84dd 100644 --- a/deps/npm/docs/content/configuring-npm/package-locks.md +++ b/deps/npm/docs/content/configuring-npm/package-locks.md @@ -10,7 +10,7 @@ description: An explanation of npm lockfiles ### Description -Conceptually, the "input" to [`npm install`](/cli-commands/npm-install) is a [package.json](/configuring-npm/package-json), while its +Conceptually, the "input" to [`npm install`](/cli-commands/install) is a [package.json](/configuring-npm/package-json), while its "output" is a fully-formed `node_modules` tree: a representation of the dependencies you declared. In an ideal world, npm would work like a pure function: the same `package.json` should produce the exact same `node_modules` @@ -179,4 +179,4 @@ pre-`npm@5.7.0` versions of npm 5, albeit a bit more noisily. Note that if * [package.json](/configuring-npm/package-json) * [package-lock.json](/configuring-npm/package-lock-json) * [shrinkwrap.json](/configuring-npm/shrinkwrap-json) -* [npm shrinkwrap](/cli-commands/npm-shrinkwrap) +* [npm shrinkwrap](/cli-commands/shrinkwrap) diff --git a/deps/npm/docs/content/configuring-npm/shrinkwrap-json.md b/deps/npm/docs/content/configuring-npm/shrinkwrap-json.md index bc5e061d55b095..fcb32952f93776 100644 --- a/deps/npm/docs/content/configuring-npm/shrinkwrap-json.md +++ b/deps/npm/docs/content/configuring-npm/shrinkwrap-json.md @@ -10,7 +10,7 @@ description: A publishable lockfile ### Description -`npm-shrinkwrap.json` is a file created by [`npm shrinkwrap`](/cli-commands/npm-shrinkwrap). It is identical to +`npm-shrinkwrap.json` is a file created by [`npm shrinkwrap`](/cli-commands/shrinkwrap). It is identical to `package-lock.json`, with one major caveat: Unlike `package-lock.json`, `npm-shrinkwrap.json` may be included when publishing a package. @@ -28,7 +28,7 @@ to the manual page for [package-lock.json](/configuring-npm/package-lock-json). ### See also -* [npm shrinkwrap](/cli-commands/npm-shrinkwrap) +* [npm shrinkwrap](/cli-commands/shrinkwrap) * [package-lock.json](/configuring-npm/package-lock-json) * [package.json](/configuring-npm/package-json) -* [npm install](/cli-commands/npm-install) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/content/using-npm/config.md b/deps/npm/docs/content/using-npm/config.md index a6947b17d58d15..fcf116d7f1ff66 100644 --- a/deps/npm/docs/content/using-npm/config.md +++ b/deps/npm/docs/content/using-npm/config.md @@ -179,7 +179,7 @@ When "dev" or "development" and running local `npm shrinkwrap`, When "true" submit audit reports alongside `npm install` runs to the default registry and all registries configured for scopes. See the documentation -for [`npm audit`](/cli-commands/npm-audit) for details on what is submitted. +for [`npm audit`](/cli-commands/audit) for details on what is submitted. #### audit-level @@ -270,7 +270,7 @@ well as for the CA information to be stored in a file on disk. * Default: Windows: `%AppData%\npm-cache`, Posix: `~/.npm` * Type: path -The location of npm's cache directory. See [`npm cache`](/cli-commands/npm-cache) +The location of npm's cache directory. See [`npm cache`](/cli-commands/cache) #### cache-lock-stale @@ -456,7 +456,7 @@ packages. When "true" displays the message at the end of each `npm install` aknowledging the number of dependencies looking for funding. -See [`npm fund`](/cli-commands/npm-fund) for details. +See [`npm fund`](/cli-commands/fund) for details. #### git @@ -571,7 +571,7 @@ If true, npm does not run scripts specified in package.json files. A module that will be loaded by the `npm init` command. See the documentation for the [init-package-json](https://github.com/isaacs/init-package-json) module -for more information, or [npm init](/cli-commands/npm-init). +for more information, or [npm init](/cli-commands/init). #### init-author-name @@ -1228,7 +1228,7 @@ version of npm than the latest. * Type: Boolean Set to show short usage output (like the -H output) -instead of complete help when doing [`npm help`](/cli-commands/npm-help). +instead of complete help when doing [`npm help`](/cli-commands/help). #### user @@ -1293,7 +1293,7 @@ Set to `"browser"` to view html help content in the default web browser. ### See also -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [npmrc](/configuring-npm/npmrc) * [npm scripts](/using-npm/scripts) * [npm folders](/configuring-npm/folders) diff --git a/deps/npm/docs/content/using-npm/disputes.md b/deps/npm/docs/content/using-npm/disputes.md index bb2d25663cb26c..37a724e6b0f1c2 100644 --- a/deps/npm/docs/content/using-npm/disputes.md +++ b/deps/npm/docs/content/using-npm/disputes.md @@ -134,4 +134,4 @@ License. ### See also * [npm registry](/using-npm/registry) -* [npm owner](/cli-commands/npm-owner) +* [npm owner](/cli-commands/owner) diff --git a/deps/npm/docs/content/using-npm/orgs.md b/deps/npm/docs/content/using-npm/orgs.md index 9709a12d726752..107bac7a9454bd 100644 --- a/deps/npm/docs/content/using-npm/orgs.md +++ b/deps/npm/docs/content/using-npm/orgs.md @@ -24,8 +24,8 @@ The developer will be able to access packages based on the teams they are on. Ac There are two main commands: -1. `npm team` see [npm team](/cli-commands/npm-team) for more details -2. `npm access` see [npm access](/cli-commands/npm-access) for more details +1. `npm team` see [npm team](/cli-commands/team) for more details +2. `npm access` see [npm access](/cli-commands/access) for more details ### Team Admins create teams @@ -92,6 +92,6 @@ npm access ls-collaborators ### See also -* [npm team](/cli-commands/npm-team) -* [npm access](/cli-commands/npm-access) +* [npm team](/cli-commands/team) +* [npm access](/cli-commands/access) * [npm scope](/using-npm/scope) diff --git a/deps/npm/docs/content/using-npm/registry.md b/deps/npm/docs/content/using-npm/registry.md index cd6a2e4d71eebc..44d0594132929f 100644 --- a/deps/npm/docs/content/using-npm/registry.md +++ b/deps/npm/docs/content/using-npm/registry.md @@ -33,7 +33,7 @@ available at . The registry URL used is determined by the scope of the package (see [`scope`](/using-npm/scope). If no scope is specified, the default registry is used, which is -supplied by the `registry` config parameter. See [`npm config`](/cli-commands/npm-config), +supplied by the `registry` config parameter. See [`npm config`](/cli-commands/config), [`npmrc`](/configuring-npm/npmrc), and [`config`](/using-npm/config) for more on managing npm's configuration. ### Does npm send any information about me back to the registry? @@ -100,7 +100,7 @@ Yes, head over to ### See also -* [npm config](/cli-commands/npm-config) +* [npm config](/cli-commands/config) * [config](/using-npm/config) * [npmrc](/configuring-npm/npmrc) * [npm developers](/using-npm/developers) diff --git a/deps/npm/docs/content/using-npm/removal.md b/deps/npm/docs/content/using-npm/removal.md index 7c836846732403..20f353dc3475d8 100644 --- a/deps/npm/docs/content/using-npm/removal.md +++ b/deps/npm/docs/content/using-npm/removal.md @@ -66,5 +66,5 @@ find /usr/local/{lib/node,bin} -exec grep -l npm \{\} \; ; ### See also -* [npm uninstall](/cli-commands/npm-uninstall) -* [npm prune](/cli-commands/npm-prune) +* [npm uninstall](/cli-commands/uninstall) +* [npm prune](/cli-commands/prune) diff --git a/deps/npm/docs/content/using-npm/scope.md b/deps/npm/docs/content/using-npm/scope.md index 2cbc108f0db92c..81c55060ff601e 100644 --- a/deps/npm/docs/content/using-npm/scope.md +++ b/deps/npm/docs/content/using-npm/scope.md @@ -55,7 +55,7 @@ Or in `package.json`: ``` Note that if the `@` symbol is omitted, in either case, npm will instead attempt to -install from GitHub; see [`npm install`](/cli-commands/npm-install). +install from GitHub; see [`npm install`](/cli-commands/install). ### Requiring scoped packages @@ -125,7 +125,7 @@ that registry instead. ### See also -* [npm install](/cli-commands/npm-install) -* [npm publish](/cli-commands/npm-publish) -* [npm access](/cli-commands/npm-access) +* [npm install](/cli-commands/install) +* [npm publish](/cli-commands/publish) +* [npm access](/cli-commands/access) * [npm registry](/using-npm/registry) diff --git a/deps/npm/docs/content/using-npm/scripts.md b/deps/npm/docs/content/using-npm/scripts.md index a518e804727a51..a9ca433fdea08c 100644 --- a/deps/npm/docs/content/using-npm/scripts.md +++ b/deps/npm/docs/content/using-npm/scripts.md @@ -78,7 +78,7 @@ The advantage of doing these things at `prepublish` time is that they can be don ### Life Cycle Operation Order -#### [`npm publish`](/cli-commands/npm-publish) +#### [`npm publish`](/cli-commands/publish) * `prepublishOnly` * `prepare` @@ -86,12 +86,12 @@ The advantage of doing these things at `prepublish` time is that they can be don * `publish` * `postpublish` -#### [`npm pack`](/cli-commands/npm-pack) +#### [`npm pack`](/cli-commands/pack) * `prepack` * `postpack` -#### [`npm install`](/cli-commands/npm-install) +#### [`npm install`](/cli-commands/install) * `preinstall` * `install` @@ -102,7 +102,7 @@ Also triggers * `prepublish` (when on local) * `prepare` (when on local) -#### [`npm start`](/cli-commands/npm-start) +#### [`npm start`](/cli-commands/start) `npm run start` has an `npm start` shorthand. @@ -290,7 +290,7 @@ above. ### See Also -* [npm run-script](/cli-commands/npm-run-script) +* [npm run-script](/cli-commands/run-script) * [package.json](/configuring-npm/package-json) * [npm developers](/using-npm/developers) -* [npm install](/cli-commands/npm-install) +* [npm install](/cli-commands/install) diff --git a/deps/npm/docs/public/cli-commands/npm-access/index.html b/deps/npm/docs/public/cli-commands/npm-access/index.html index 925113b9b8e9ec..42d6d5374f2655 100644 --- a/deps/npm/docs/public/cli-commands/npm-access/index.html +++ b/deps/npm/docs/public/cli-commands/npm-access/index.html @@ -74,7 +74,7 @@ } } }) -

npm access

+

npm access

Set access level on published packages

Synopsis

npm access public [<package>]
@@ -137,9 +137,9 @@ 

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-adduser/index.html b/deps/npm/docs/public/cli-commands/npm-adduser/index.html index 38de0b0d9a8bd4..755c36040bf4c5 100644 --- a/deps/npm/docs/public/cli-commands/npm-adduser/index.html +++ b/deps/npm/docs/public/cli-commands/npm-adduser/index.html @@ -74,7 +74,7 @@ } } }) -

+

section: cli-commands title: npm-adduser description: Set access level on published packages

@@ -132,10 +132,10 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-audit/index.html b/deps/npm/docs/public/cli-commands/npm-audit/index.html index 38e49d8acfd59c..af60442b3d8bbb 100644 --- a/deps/npm/docs/public/cli-commands/npm-audit/index.html +++ b/deps/npm/docs/public/cli-commands/npm-audit/index.html @@ -74,7 +74,7 @@ } } }) -

npm audit

+

npm audit

Run a security audit

Synopsis

npm audit [--json|--parseable|--audit-level=(low|moderate|high|critical)]
@@ -155,7 +155,7 @@ 

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-bin/index.html b/deps/npm/docs/public/cli-commands/npm-bin/index.html index 9ab0c902e28d7f..a90382b1fa30a7 100644 --- a/deps/npm/docs/public/cli-commands/npm-bin/index.html +++ b/deps/npm/docs/public/cli-commands/npm-bin/index.html @@ -74,7 +74,7 @@ } } }) -

npm bin

+

npm bin

Display npm bin folder

Synopsis

npm bin [-g|--global]
@@ -82,10 +82,10 @@

Print the folder where npm will install executables.

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-bugs/index.html b/deps/npm/docs/public/cli-commands/npm-bugs/index.html index 2be442a22d2257..abdf2358c20769 100644 --- a/deps/npm/docs/public/cli-commands/npm-bugs/index.html +++ b/deps/npm/docs/public/cli-commands/npm-bugs/index.html @@ -74,7 +74,7 @@ } } }) -

npm bugs

+

npm bugs

Bugs for a package in a web browser maybe

Synopsis

npm bugs [<pkgname>]
@@ -100,11 +100,11 @@ 

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-build/index.html b/deps/npm/docs/public/cli-commands/npm-build/index.html index 8e1a7d49e31256..d628353420206e 100644 --- a/deps/npm/docs/public/cli-commands/npm-build/index.html +++ b/deps/npm/docs/public/cli-commands/npm-build/index.html @@ -74,7 +74,7 @@ } } }) -

npm build

+

npm build

Build a package

Synopsis

npm build [<package-folder>]
@@ -89,8 +89,8 @@

    npm run-script build

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-bundle/index.html b/deps/npm/docs/public/cli-commands/npm-bundle/index.html index 4860ead9435ed1..1d2afb83593ef2 100644 --- a/deps/npm/docs/public/cli-commands/npm-bundle/index.html +++ b/deps/npm/docs/public/cli-commands/npm-bundle/index.html @@ -74,7 +74,7 @@ } } }) -

npm bundle

+

npm bundle

REMOVED

Description

The npm bundle command has been removed in 1.0, for the simple reason @@ -83,7 +83,7 @@

Just use npm install now to do what npm bundle used to do.

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-cache/index.html b/deps/npm/docs/public/cli-commands/npm-cache/index.html index ae8d90e7b63bc0..f60c5bdab9a212 100644 --- a/deps/npm/docs/public/cli-commands/npm-cache/index.html +++ b/deps/npm/docs/public/cli-commands/npm-cache/index.html @@ -74,7 +74,7 @@ } } }) -

npm cache

+

npm cache

Manipulates packages cache

Synopsis

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-ci/index.html b/deps/npm/docs/public/cli-commands/npm-ci/index.html index fd0561cfc04ed3..d502204291cba4 100644 --- a/deps/npm/docs/public/cli-commands/npm-ci/index.html +++ b/deps/npm/docs/public/cli-commands/npm-ci/index.html @@ -74,7 +74,7 @@ } } }) -

npm ci

+

npm ci

Install a project with a clean slate

Synopsis

npm ci
@@ -96,7 +96,7 @@

"$HOME/.npm"

Description

-

This command is similar to npm install, except it's meant to be used in +

This command is similar to npm install, except it's meant to be used in automated environments such as test platforms, continuous integration, and deployment -- or any situation where you want to make sure you're doing a clean install of your dependencies. It can be significantly faster than a regular npm @@ -113,7 +113,7 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-completion/index.html b/deps/npm/docs/public/cli-commands/npm-completion/index.html index a97a27f53f494f..e97603b0ab3c9d 100644 --- a/deps/npm/docs/public/cli-commands/npm-completion/index.html +++ b/deps/npm/docs/public/cli-commands/npm-completion/index.html @@ -74,7 +74,7 @@ } } }) -

npm completion

+

npm completion

Tab Completion for npm

Synopsis

source <(npm completion)
@@ -104,4 +104,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-config/index.html b/deps/npm/docs/public/cli-commands/npm-config/index.html index 445ffb15f02d82..0af6041b1384ff 100644 --- a/deps/npm/docs/public/cli-commands/npm-config/index.html +++ b/deps/npm/docs/public/cli-commands/npm-config/index.html @@ -74,7 +74,7 @@ } } }) -

npm config

+

npm config

Manage the npm configuration files

Synopsis

npm config set <key> <value> [-g|--global]
@@ -117,7 +117,7 @@ 

See Also

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-dedupe/index.html b/deps/npm/docs/public/cli-commands/npm-dedupe/index.html index 617444b4bda9fb..6e9e8cca40b85a 100644 --- a/deps/npm/docs/public/cli-commands/npm-dedupe/index.html +++ b/deps/npm/docs/public/cli-commands/npm-dedupe/index.html @@ -74,7 +74,7 @@ } } }) -

npm dedupe

+

npm dedupe

Reduce duplication

Synopsis

npm dedupe
@@ -111,9 +111,9 @@ 

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-deprecate/index.html b/deps/npm/docs/public/cli-commands/npm-deprecate/index.html index 188fe3ecfe2d58..18996ef9a79b39 100644 --- a/deps/npm/docs/public/cli-commands/npm-deprecate/index.html +++ b/deps/npm/docs/public/cli-commands/npm-deprecate/index.html @@ -74,7 +74,7 @@ } } }) -

npm deprecate

+

npm deprecate

Deprecate a version of a package

Synopsis

npm deprecate <pkg>[@<version>] <message>
@@ -91,7 +91,7 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html b/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html index d5644af8ace98b..6a79d5c45dfa03 100644 --- a/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html +++ b/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html @@ -74,7 +74,7 @@ } } }) -

+

section: cli-commands title: npm-dist-tag description: Modify package distribution tags

@@ -136,11 +136,11 @@

v.

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-docs/index.html b/deps/npm/docs/public/cli-commands/npm-docs/index.html index 1ce1101b8f389c..f83c2dcc919064 100644 --- a/deps/npm/docs/public/cli-commands/npm-docs/index.html +++ b/deps/npm/docs/public/cli-commands/npm-docs/index.html @@ -74,7 +74,7 @@ } } }) -

npm docs

+

npm docs

Docs for a package in a web browser maybe

Synopsis

npm docs [<pkgname> [<pkgname> ...]]
@@ -102,10 +102,10 @@ 

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-doctor/index.html b/deps/npm/docs/public/cli-commands/npm-doctor/index.html index 8d7a375fd38362..af07d1dc13ddc8 100644 --- a/deps/npm/docs/public/cli-commands/npm-doctor/index.html +++ b/deps/npm/docs/public/cli-commands/npm-doctor/index.html @@ -74,7 +74,7 @@ } } }) -

npm doctor

+

npm doctor

Check your environments

Synopsis

npm doctor
@@ -153,9 +153,9 @@

npm cache clean and reset the cache.

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-edit/index.html b/deps/npm/docs/public/cli-commands/npm-edit/index.html index 54e32d0a5dbb66..5637ae9b937ffd 100644 --- a/deps/npm/docs/public/cli-commands/npm-edit/index.html +++ b/deps/npm/docs/public/cli-commands/npm-edit/index.html @@ -74,7 +74,7 @@ } } }) -

npm edit

+

npm edit

Edit an installed package

Synopsis

npm edit <pkg>[/<subpkg>...]
@@ -99,9 +99,9 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-explore/index.html b/deps/npm/docs/public/cli-commands/npm-explore/index.html index 45fdf5557d58ef..b303ef87fa6a25 100644 --- a/deps/npm/docs/public/cli-commands/npm-explore/index.html +++ b/deps/npm/docs/public/cli-commands/npm-explore/index.html @@ -74,7 +74,7 @@ } } }) -

+

section: cli-commands title: npm-explore description: Browse an installed package

@@ -103,10 +103,10 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-fund/index.html b/deps/npm/docs/public/cli-commands/npm-fund/index.html index a924adfadaed53..6316163ea6257c 100644 --- a/deps/npm/docs/public/cli-commands/npm-fund/index.html +++ b/deps/npm/docs/public/cli-commands/npm-fund/index.html @@ -74,7 +74,7 @@ } } }) -

npm fund

+

npm fund

Retrieve funding information

Synopsis

    npm fund [<pkg>]
@@ -117,10 +117,10 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-help-search/index.html b/deps/npm/docs/public/cli-commands/npm-help-search/index.html index ba2f9d323b1287..7d14ad4482c381 100644 --- a/deps/npm/docs/public/cli-commands/npm-help-search/index.html +++ b/deps/npm/docs/public/cli-commands/npm-help-search/index.html @@ -74,7 +74,7 @@ } } }) -

npm help-search

+

npm help-search

Search npm help documentation

Synopsis

npm help-search <text>
@@ -97,7 +97,7 @@

See Also

👀 Found a typo? Let us know!

The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-help/index.html b/deps/npm/docs/public/cli-commands/npm-help/index.html index f547a63b990dee..ccb5a130407fac 100644 --- a/deps/npm/docs/public/cli-commands/npm-help/index.html +++ b/deps/npm/docs/public/cli-commands/npm-help/index.html @@ -74,7 +74,7 @@ } } }) -

npm help

+

npm help

Get help on npm

Synopsis

npm help <term> [<terms..>]
@@ -96,10 +96,10 @@

npm
  • npm folders
  • -
  • npm config
  • +
  • npm config
  • npmrc
  • package.json
  • -
  • npm help-search
  • +
  • npm help-search
  • 👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-hook/index.html b/deps/npm/docs/public/cli-commands/npm-hook/index.html index de18367b6a74c0..bce71b0de492e6 100644 --- a/deps/npm/docs/public/cli-commands/npm-hook/index.html +++ b/deps/npm/docs/public/cli-commands/npm-hook/index.html @@ -74,7 +74,7 @@ } } }) -

    npm hook

    +

    npm hook

    Manage registry hooks

    Synopsis

    npm hook ls [pkg]
    @@ -119,4 +119,4 @@ 

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-init/index.html b/deps/npm/docs/public/cli-commands/npm-init/index.html index 436d4865354c9d..534721f110b361 100644 --- a/deps/npm/docs/public/cli-commands/npm-init/index.html +++ b/deps/npm/docs/public/cli-commands/npm-init/index.html @@ -74,7 +74,7 @@ } } }) -

    npm init

    +

    npm init

    create a package.json file

    Synopsis

    npm init [--force|-f|--yes|-y|--scope]
    @@ -117,7 +117,7 @@ 

    https://github.com/isaacs/init-package-json
  • package.json
  • -
  • npm version
  • +
  • npm version
  • npm scope
  • 👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html b/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html index 5e4f7b005d1e95..b44a6c6569b2cf 100644 --- a/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html +++ b/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html @@ -74,7 +74,7 @@ } } }) -

    npm install-ci-test

    +

    npm install-ci-test

    Install a project with a clean slate and run tests

    Synopsis

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-install-test/index.html b/deps/npm/docs/public/cli-commands/npm-install-test/index.html index 3f2748ab4963c1..ca4592503462e3 100644 --- a/deps/npm/docs/public/cli-commands/npm-install-test/index.html +++ b/deps/npm/docs/public/cli-commands/npm-install-test/index.html @@ -74,7 +74,7 @@ } } }) -

    npm install-test

    +

    npm install-test

    Install package(s) and run tests

    Synopsis

    npm install-test (with no args, in package dir)
    @@ -93,8 +93,8 @@ 

    npm install.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-install/index.html b/deps/npm/docs/public/cli-commands/npm-install/index.html index 81db8d705a5725..c809fc102b07d0 100644 --- a/deps/npm/docs/public/cli-commands/npm-install/index.html +++ b/deps/npm/docs/public/cli-commands/npm-install/index.html @@ -74,7 +74,7 @@ } } }) -

    npm install

    +

    npm install

    Install a package

    Synopsis

    npm install (with no args, in package dir)
    @@ -95,14 +95,14 @@ 

    This command installs a package, and any packages that it depends on. If the package has a package-lock or shrinkwrap file, the installation of dependencies will be driven by that, with an npm-shrinkwrap.json taking precedence if both -files exist. See package-lock.json and npm shrinkwrap.

    +files exist. See package-lock.json and npm shrinkwrap.

    A package is:

    • a) a folder containing a program described by a package.json file
    • b) a gzipped tarball containing (a)
    • c) a url that resolves to (b)
    • d) a <name>@<version> that is published on the registry (see registry) with (c)
    • -
    • e) a <name>@<tag> (see npm dist-tag) that points to (d)
    • +
    • e) a <name>@<tag> (see npm dist-tag) that points to (d)
    • f) a <name> that has a "latest" tag satisfying (e)
    • g) a <git remote url> that resolves to (a)
    @@ -447,19 +447,19 @@

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-link/index.html b/deps/npm/docs/public/cli-commands/npm-link/index.html index a4f7fcee914700..1b0a4516ea94b9 100644 --- a/deps/npm/docs/public/cli-commands/npm-link/index.html +++ b/deps/npm/docs/public/cli-commands/npm-link/index.html @@ -74,7 +74,7 @@ } } }) -

    npm link

    +

    npm link

    Synopsis

    npm link (in package dir)
    @@ -123,9 +123,9 @@ 

    npm developers
  • package.json
  • -
  • npm- nstall
  • +
  • npm- nstall
  • npm folders
  • -
  • npm config
  • +
  • npm config
  • npmrc
  • 👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-logout/index.html b/deps/npm/docs/public/cli-commands/npm-logout/index.html index 3168c941901e4b..3ed2e62a05a4bf 100644 --- a/deps/npm/docs/public/cli-commands/npm-logout/index.html +++ b/deps/npm/docs/public/cli-commands/npm-logout/index.html @@ -74,7 +74,7 @@ } } }) -

    npm logout

    +

    npm logout

    Log out of the registry

    Synopsis

    npm logout [--registry=<url>] [--scope=<@scope>]
    @@ -98,10 +98,10 @@

    npm logout --scope=@myco

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-ls/index.html b/deps/npm/docs/public/cli-commands/npm-ls/index.html index 60e60c921ad328..3cc086aace514a 100644 --- a/deps/npm/docs/public/cli-commands/npm-ls/index.html +++ b/deps/npm/docs/public/cli-commands/npm-ls/index.html @@ -74,7 +74,7 @@ } } }) -

    npm ls

    +

    npm ls

    List installed packages

    Synopsis

    npm ls [[<@scope>/]<pkg> ...]
    @@ -87,7 +87,7 @@ 

    also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

    -

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-org/index.html b/deps/npm/docs/public/cli-commands/npm-org/index.html index 6ca3da7e31974b..c522ab4571b5a2 100644 --- a/deps/npm/docs/public/cli-commands/npm-org/index.html +++ b/deps/npm/docs/public/cli-commands/npm-org/index.html @@ -74,7 +74,7 @@ } } }) -

    npm org

    +

    npm org

    Manage orgs

    Synopsis

    npm org set <orgname> <username> [developer | admin | owner]
    @@ -107,4 +107,4 @@ 

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-outdated/index.html b/deps/npm/docs/public/cli-commands/npm-outdated/index.html index a9764a487afdc2..270d8ed1417a28 100644 --- a/deps/npm/docs/public/cli-commands/npm-outdated/index.html +++ b/deps/npm/docs/public/cli-commands/npm-outdated/index.html @@ -74,7 +74,7 @@ } } }) -

    npm outdated

    +

    npm outdated

    Check for outdated packages

    Synopsis

    npm outdated [[<@scope>/]<pkg> ...]
    @@ -167,8 +167,8 @@

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-owner/index.html b/deps/npm/docs/public/cli-commands/npm-owner/index.html index 7eb600b8972ed9..2d2a9205b791b1 100644 --- a/deps/npm/docs/public/cli-commands/npm-owner/index.html +++ b/deps/npm/docs/public/cli-commands/npm-owner/index.html @@ -74,7 +74,7 @@ } } }) -

    npm owner

    +

    npm owner

    Manage package owners

    Synopsis

    npm owner add <user> [<@scope>/]<pkg>
    @@ -103,9 +103,9 @@ 

    --otp.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-pack/index.html b/deps/npm/docs/public/cli-commands/npm-pack/index.html index f0920804fde85b..c17aa71cea7303 100644 --- a/deps/npm/docs/public/cli-commands/npm-pack/index.html +++ b/deps/npm/docs/public/cli-commands/npm-pack/index.html @@ -74,7 +74,7 @@ } } }) -

    npm pack

    +

    npm pack

    Create a tarball from a package

    Synopsis

    npm pack [[<@scope>/]<pkg>...] [--dry-run]
    @@ -91,9 +91,9 @@

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-ping/index.html b/deps/npm/docs/public/cli-commands/npm-ping/index.html index a3c47f6d5cf5c4..12d116088d3a10 100644 --- a/deps/npm/docs/public/cli-commands/npm-ping/index.html +++ b/deps/npm/docs/public/cli-commands/npm-ping/index.html @@ -74,7 +74,7 @@ } } }) -

    npm ping

    +

    npm ping

    Ping npm registry

    Synopsis

    npm ping [--registry <registry>]
    @@ -86,7 +86,7 @@

    Ping error: {*Detail about error}

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-prefix/index.html b/deps/npm/docs/public/cli-commands/npm-prefix/index.html index bd592f89e1b8a5..6d181e522dedc5 100644 --- a/deps/npm/docs/public/cli-commands/npm-prefix/index.html +++ b/deps/npm/docs/public/cli-commands/npm-prefix/index.html @@ -74,7 +74,7 @@ } } }) -

    npm prefix

    +

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-profile/index.html b/deps/npm/docs/public/cli-commands/npm-profile/index.html index ae212cc643e90c..2be07fe468bd92 100644 --- a/deps/npm/docs/public/cli-commands/npm-profile/index.html +++ b/deps/npm/docs/public/cli-commands/npm-profile/index.html @@ -74,7 +74,7 @@ } } }) -

    npm profile

    +

    npm profile

    Change settings on your registry profile

    Synopsis

    npm profile get [--json|--parseable] [<property>]
    @@ -140,7 +140,7 @@ 

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-prune/index.html b/deps/npm/docs/public/cli-commands/npm-prune/index.html index aa9972bf58d0b0..9acabd16d78bab 100644 --- a/deps/npm/docs/public/cli-commands/npm-prune/index.html +++ b/deps/npm/docs/public/cli-commands/npm-prune/index.html @@ -74,7 +74,7 @@ } } }) -

    npm prune

    +

    npm prune

    Remove extraneous packages

    Synopsis

    npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
    @@ -98,9 +98,9 @@

    npm prune from time-to-time to remove them.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-publish/index.html b/deps/npm/docs/public/cli-commands/npm-publish/index.html index 9d163ecb6640a0..12adfb432ac484 100644 --- a/deps/npm/docs/public/cli-commands/npm-publish/index.html +++ b/deps/npm/docs/public/cli-commands/npm-publish/index.html @@ -74,7 +74,7 @@ } } }) -

    npm publish

    +

    npm publish

    Publish a package

    Synopsis

    npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode] [--dry-run]
    @@ -117,11 +117,11 @@ 

    Once a package is published with a given name and version, that specific name and version combination can never be used again, even if -it is removed with npm unpublish.

    +it is removed with npm unpublish.

    As of npm@5, both a sha1sum and an integrity field with a sha512sum of the tarball will be submitted to the registry during publication. Subsequent installs will use the strongest supported algorithm to verify downloads.

    -

    Similar to --dry-run see npm pack, which figures out the files to be +

    Similar to --dry-run see npm pack, which figures out the files to be included and packs them into a tarball to be uploaded to the registry.

    See Also

      @@ -140,4 +140,4 @@

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-rebuild/index.html b/deps/npm/docs/public/cli-commands/npm-rebuild/index.html index a5252346e9eb21..a1544c2c7cc28e 100644 --- a/deps/npm/docs/public/cli-commands/npm-rebuild/index.html +++ b/deps/npm/docs/public/cli-commands/npm-rebuild/index.html @@ -74,7 +74,7 @@ } } }) -

    npm rebuild

    +

    npm rebuild

    Rebuild a package

    Synopsis

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-repo/index.html b/deps/npm/docs/public/cli-commands/npm-repo/index.html index 4eae022c2d1c01..479482c78b6c29 100644 --- a/deps/npm/docs/public/cli-commands/npm-repo/index.html +++ b/deps/npm/docs/public/cli-commands/npm-repo/index.html @@ -74,7 +74,7 @@ } } }) -

    npm repo

    +

    npm repo

    Open package repository page in the browser

    Synopsis

    npm repo [<pkg>]
    @@ -92,8 +92,8 @@

    npm repo command to open websites.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-restart/index.html b/deps/npm/docs/public/cli-commands/npm-restart/index.html index 3c7836d0506365..7b15c970ea6332 100644 --- a/deps/npm/docs/public/cli-commands/npm-restart/index.html +++ b/deps/npm/docs/public/cli-commands/npm-restart/index.html @@ -74,7 +74,7 @@ } } }) -

    npm restart

    +

    npm restart

    Restart a package

    Synopsis

    npm restart [-- <args>]
    @@ -100,12 +100,12 @@

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-root/index.html b/deps/npm/docs/public/cli-commands/npm-root/index.html index a26538db7c89a2..5dff9f57139a1e 100644 --- a/deps/npm/docs/public/cli-commands/npm-root/index.html +++ b/deps/npm/docs/public/cli-commands/npm-root/index.html @@ -74,7 +74,7 @@ } } }) -

    npm root

    +

    npm root

    Display npm root

    Synopsis

    npm root [-g]
    @@ -82,10 +82,10 @@

    Print the effective node_modules folder to standard out.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-run-script/index.html b/deps/npm/docs/public/cli-commands/npm-run-script/index.html index 4575220b541478..1543590862643a 100644 --- a/deps/npm/docs/public/cli-commands/npm-run-script/index.html +++ b/deps/npm/docs/public/cli-commands/npm-run-script/index.html @@ -74,7 +74,7 @@ } } }) -

    npm run-script

    +

    npm run-script

    Run arbitrary package scripts

    Synopsis

    npm run-script <command> [--silent] [-- <args>...]
    @@ -131,11 +131,11 @@ 

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-search/index.html b/deps/npm/docs/public/cli-commands/npm-search/index.html index 1c44fd0cbf4cbd..beb2c3449b0e60 100644 --- a/deps/npm/docs/public/cli-commands/npm-search/index.html +++ b/deps/npm/docs/public/cli-commands/npm-search/index.html @@ -74,7 +74,7 @@ } } }) -

    npm search

    +

    npm search

    Search for packages

    Synopsis

    npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...]
    @@ -158,9 +158,9 @@ 

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html b/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html index aeb9ab9a9d573c..f3de0a29e8f130 100644 --- a/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html +++ b/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html @@ -74,7 +74,7 @@ } } }) -

    npm shrinkwrap

    +

    npm shrinkwrap

    Lock down dependency versions for publication

    Synopsis

    npm shrinkwrap
    @@ -86,14 +86,14 @@

    package-locks.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-star/index.html b/deps/npm/docs/public/cli-commands/npm-star/index.html index 641b39795e0a83..ea0fbdb1988d75 100644 --- a/deps/npm/docs/public/cli-commands/npm-star/index.html +++ b/deps/npm/docs/public/cli-commands/npm-star/index.html @@ -74,7 +74,7 @@ } } }) -

    npm star

    +

    npm star

    Mark your favorite packages

    Synopsis

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-stars/index.html b/deps/npm/docs/public/cli-commands/npm-stars/index.html index 821469b4585e60..ae9d0a68c5b00e 100644 --- a/deps/npm/docs/public/cli-commands/npm-stars/index.html +++ b/deps/npm/docs/public/cli-commands/npm-stars/index.html @@ -74,7 +74,7 @@ } } }) -

    npm stars

    +

    npm stars

    View packages marked as favorites

    Synopsis

    npm stars [<user>]
    @@ -85,10 +85,10 @@

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-start/index.html b/deps/npm/docs/public/cli-commands/npm-start/index.html index 3cc8120bd3b82b..38a286bf5391a7 100644 --- a/deps/npm/docs/public/cli-commands/npm-start/index.html +++ b/deps/npm/docs/public/cli-commands/npm-start/index.html @@ -74,7 +74,7 @@ } } }) -

    npm start

    +

    npm start

    Start a package

    Synopsis

    npm start [-- <args>]
    @@ -83,14 +83,14 @@

    "scripts" object. If no "start" property is specified on the "scripts" object, it will run node server.js.

    As of npm@2.0.0, you can -use custom arguments when executing scripts. Refer to npm run-script for more details.

    +use custom arguments when executing scripts. Refer to npm run-script for more details.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-stop/index.html b/deps/npm/docs/public/cli-commands/npm-stop/index.html index 94c7b6861645d6..be1fd5d5108e0e 100644 --- a/deps/npm/docs/public/cli-commands/npm-stop/index.html +++ b/deps/npm/docs/public/cli-commands/npm-stop/index.html @@ -74,7 +74,7 @@ } } }) -

    npm stop

    +

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-team/index.html b/deps/npm/docs/public/cli-commands/npm-team/index.html index b8af3c5821bb93..438c0af40fa430 100644 --- a/deps/npm/docs/public/cli-commands/npm-team/index.html +++ b/deps/npm/docs/public/cli-commands/npm-team/index.html @@ -74,7 +74,7 @@ } } }) -

    npm team

    +

    npm team

    Manage organization teams and team memberships

    Synopsis

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-test/index.html b/deps/npm/docs/public/cli-commands/npm-test/index.html index f65035e5b24501..0e509da74b22b9 100644 --- a/deps/npm/docs/public/cli-commands/npm-test/index.html +++ b/deps/npm/docs/public/cli-commands/npm-test/index.html @@ -74,7 +74,7 @@ } } }) -

    npm test

    +

    npm test

    Test a package

    Synopsis

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-token/index.html b/deps/npm/docs/public/cli-commands/npm-token/index.html index f94d350e8dc925..16d94a6d7176ba 100644 --- a/deps/npm/docs/public/cli-commands/npm-token/index.html +++ b/deps/npm/docs/public/cli-commands/npm-token/index.html @@ -74,7 +74,7 @@ } } }) -

    npm token

    +

    npm token

    Manage your authentication tokens

    Synopsis

      npm token list [--json|--parseable]
    @@ -133,4 +133,4 @@ 

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-uninstall/index.html b/deps/npm/docs/public/cli-commands/npm-uninstall/index.html index 80f165f90dd781..9264061d7c3525 100644 --- a/deps/npm/docs/public/cli-commands/npm-uninstall/index.html +++ b/deps/npm/docs/public/cli-commands/npm-uninstall/index.html @@ -74,7 +74,7 @@ } } }) -

    npm uninstall

    +

    npm uninstall

    Remove a package

    Synopsis

    npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save]
    @@ -106,10 +106,10 @@ 

    npm uninstall lodash --no-save

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-unpublish/index.html b/deps/npm/docs/public/cli-commands/npm-unpublish/index.html index 7f42a97a7def07..ae663f1eb94ffa 100644 --- a/deps/npm/docs/public/cli-commands/npm-unpublish/index.html +++ b/deps/npm/docs/public/cli-commands/npm-unpublish/index.html @@ -74,16 +74,15 @@ } } }) -

    npm unpublish

    +

    npm unpublish

    Remove a package from the registry

    Synopsis

    -
    npm unpublish [<@scope>/]<pkg>[@<version>]
    +

    Unpublishing a single version of a package

    +
    npm unpublish [<@scope>/]<pkg>@<version>
    +

    Unpublishing an entire package

    +
    npm unpublish [<@scope>/]<pkg> --force

    Warning

    -

    It is generally considered bad behavior to remove versions of a library -that others are depending on!

    -

    Consider using the deprecate command -instead, if your intent is to encourage users to upgrade.

    -

    There is plenty of room on the registry.

    +

    Consider using the deprecate command instead, if your intent is to encourage users to upgrade, or if you no longer want to maintain a package.

    Description

    This removes a package version from the registry, deleting its entry and removing the tarball.

    @@ -91,21 +90,15 @@

    Even if a package version is unpublished, that specific name and version combination can never be reused. In order to publish the -package again, a new version number must be used. Additionally, -new versions of packages with every version unpublished may not -be republished until 24 hours have passed.

    -

    With the default registry (registry.npmjs.org), unpublish is -only allowed with versions published in the last 72 hours. If you -are trying to unpublish a version published longer ago than that, -contact support@npmjs.com.

    -

    The scope is optional and follows the usual rules for scope.

    +package again, a new version number must be used. If you unpublish the entire package, you may not publish any new versions of that package until 24 hours have passed.

    +

    To learn more about how unpublish is treated on the npm registry, see our unpublish policies.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-update/index.html b/deps/npm/docs/public/cli-commands/npm-update/index.html index 2f81638b91dd3e..19e83c6baf524f 100644 --- a/deps/npm/docs/public/cli-commands/npm-update/index.html +++ b/deps/npm/docs/public/cli-commands/npm-update/index.html @@ -74,7 +74,7 @@ } } }) -

    npm update

    +

    npm update

    Update a package

    Synopsis

    npm update [-g] [<pkg>...]
    @@ -148,17 +148,18 @@ 

    Updating Globally-Installed Packages

    npm update -g will apply the update action to each globally installed package that is outdated -- that is, has a version that is different from -latest.

    +wanted.

    +

    Note: Globally installed packages are treated as if they are installed with a caret semver range specified. So if you require to update to latest you may need to run npm install -g [<pkg>...]

    NOTE: If a package has been upgraded to a version newer than latest, it will be downgraded.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-version/index.html b/deps/npm/docs/public/cli-commands/npm-version/index.html index 047c689cf3007e..59d72822ff9509 100644 --- a/deps/npm/docs/public/cli-commands/npm-version/index.html +++ b/deps/npm/docs/public/cli-commands/npm-version/index.html @@ -74,7 +74,7 @@ } } }) -

    npm version

    +

    npm version

    Bump a package version

    Synopsis

    npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]
    @@ -167,8 +167,8 @@ 

    Note that you must have a default GPG key set up in your git config for this to work properly.

    See Also

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-view/index.html b/deps/npm/docs/public/cli-commands/npm-view/index.html index 23115f84ff6163..3fc7a4bd29fbf1 100644 --- a/deps/npm/docs/public/cli-commands/npm-view/index.html +++ b/deps/npm/docs/public/cli-commands/npm-view/index.html @@ -74,7 +74,7 @@ } } }) -

    npm view

    +

    npm view

    View registry info

    Synopsis

    npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
    @@ -133,11 +133,11 @@ 

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-whoami/index.html b/deps/npm/docs/public/cli-commands/npm-whoami/index.html index aca97476eb19bb..30f978f3423be9 100644 --- a/deps/npm/docs/public/cli-commands/npm-whoami/index.html +++ b/deps/npm/docs/public/cli-commands/npm-whoami/index.html @@ -74,7 +74,7 @@ } } }) -

    npm whoami

    +

    npm whoami

    Display npm username

    Synopsis

    npm whoami [--registry <registry>]
    @@ -82,9 +82,9 @@

    Print the username config to standard output.

    See Also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm/index.html b/deps/npm/docs/public/cli-commands/npm/index.html index 610982c2e0d8f0..bfb6cd55911791 100644 --- a/deps/npm/docs/public/cli-commands/npm/index.html +++ b/deps/npm/docs/public/cli-commands/npm/index.html @@ -74,12 +74,12 @@ } } }) -

    npm

    +

    npm

    javascript package manager

    Synopsis

    npm <command> [args]

    Version

    -

    6.14.1

    +

    6.14.3

    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 @@ -211,4 +211,4 @@

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/folders/index.html b/deps/npm/docs/public/configuring-npm/folders/index.html index 3e94c99b2ce678..af6b56d09bd784 100644 --- a/deps/npm/docs/public/configuring-npm/folders/index.html +++ b/deps/npm/docs/public/configuring-npm/folders/index.html @@ -74,7 +74,7 @@ } } }) -

    folders

    +

    folders

    Folder Structures Used by npm

    Description

    npm puts various things on your computer. That's its job.

    @@ -122,7 +122,7 @@

    Cache

    -

    See npm cache. Cache files are stored in ~/.npm on Posix, or +

    See npm cache. Cache files are stored in ~/.npm on Posix, or %AppData%/npm-cache on Windows.

    This is controlled by the cache configuration param.

    Temp Files

    @@ -226,13 +226,13 @@

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/install/index.html b/deps/npm/docs/public/configuring-npm/install/index.html index 2b9dee47e6dc40..f36bcf6c3606d7 100644 --- a/deps/npm/docs/public/configuring-npm/install/index.html +++ b/deps/npm/docs/public/configuring-npm/install/index.html @@ -74,7 +74,7 @@ } } }) -

    install

    +

    install

    Download and Install npm

    Description

    To publish and install packages to and from the public npm registry, you must install Node.js and the npm command line interface using either a Node version manager or a Node installer. We strongly recommend using a Node version manager to install Node.js and npm. We do not recommend using a Node installer, since the Node installation process installs npm in a directory with local permissions and can cause permissions errors when you run npm packages globally.

    @@ -123,4 +123,4 @@

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/npmrc/index.html b/deps/npm/docs/public/configuring-npm/npmrc/index.html index b7fed53c905956..a05313359580bc 100644 --- a/deps/npm/docs/public/configuring-npm/npmrc/index.html +++ b/deps/npm/docs/public/configuring-npm/npmrc/index.html @@ -74,7 +74,7 @@ } } }) -

    npmrc

    +

    npmrc

    The npm config files

    Description

    npm gets its config settings from the command line, environment @@ -134,7 +134,7 @@

    See also

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/package-json/index.html b/deps/npm/docs/public/configuring-npm/package-json/index.html index ef1025e327d9a7..c4f28223828aa1 100644 --- a/deps/npm/docs/public/configuring-npm/package-json/index.html +++ b/deps/npm/docs/public/configuring-npm/package-json/index.html @@ -74,7 +74,7 @@ } } }) -

    package.json

    +

    package.json

    Specifics of npm's package.json handling

    Description

    This document is all you need to know about what's required in your package.json @@ -440,7 +440,7 @@

    range1 || range2 Passes if either range1 or range2 are satisfied.
  • git... See 'Git URLs as Dependencies' below
  • user/repo See 'GitHub URLs' below
  • -
  • tag A specific version tagged and published as tag See npm dist-tag
  • +
  • tag A specific version tagged and published as tag See npm dist-tag
  • path/path/path See Local Paths below
  • For example, these are all valid:

    @@ -699,13 +699,13 @@

    SEE ALSO

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/package-lock-json/index.html b/deps/npm/docs/public/configuring-npm/package-lock-json/index.html index 7256154fe32d40..b1922b55d44d9d 100644 --- a/deps/npm/docs/public/configuring-npm/package-lock-json/index.html +++ b/deps/npm/docs/public/configuring-npm/package-lock-json/index.html @@ -74,7 +74,7 @@ } } }) -

    package-lock.json

    +

    package-lock.json

    A manifestation of the manifest

    Description

    package-lock.json is automatically generated for any operations where npm @@ -174,11 +174,11 @@

    The dependencies of this dependency, exactly as at the top level.

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/package-locks/index.html b/deps/npm/docs/public/configuring-npm/package-locks/index.html index 16fdc3eeea2c58..9ca424f40d2dab 100644 --- a/deps/npm/docs/public/configuring-npm/package-locks/index.html +++ b/deps/npm/docs/public/configuring-npm/package-locks/index.html @@ -74,10 +74,10 @@ } } }) -

    package-locks

    +

    package-locks

    An explanation of npm lockfiles

    Description

    -

    Conceptually, the "input" to npm install is a package.json, while its +

    Conceptually, the "input" to npm install is a package.json, while its "output" is a fully-formed node_modules tree: a representation of the dependencies you declared. In an ideal world, npm would work like a pure function: the same package.json should produce the exact same node_modules @@ -206,7 +206,7 @@

    package.json
  • package-lock.json
  • shrinkwrap.json
  • -
  • npm shrinkwrap
  • +
  • npm shrinkwrap
  • 👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html b/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html index 1f0ac45677ee5f..95d88d30a59950 100644 --- a/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html +++ b/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html @@ -74,10 +74,10 @@ } } }) -

    npm shrinkwrap.json

    +

    npm shrinkwrap.json

    A publishable lockfile

    Description

    -

    npm-shrinkwrap.json is a file created by npm shrinkwrap. It is identical to +

    npm-shrinkwrap.json is a file created by npm shrinkwrap. It is identical to package-lock.json, with one major caveat: Unlike package-lock.json, npm-shrinkwrap.json may be included when publishing a package.

    The recommended use-case for npm-shrinkwrap.json is applications deployed @@ -91,10 +91,10 @@

    package-lock.json.

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/index.html b/deps/npm/docs/public/index.html index 8b66aab22a4504..265bf4ca533db3 100644 --- a/deps/npm/docs/public/index.html +++ b/deps/npm/docs/public/index.html @@ -128,4 +128,4 @@ } } }) -
    npm cli _
    The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
    npm cli _
    The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
    npm cli _
    The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!

    The current stable version of npm is available on GitHub.

    To upgrade, run: npm install npm@latest -g

    \ No newline at end of file +
    npm cli _
    The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
    npm cli _
    The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
    npm cli _
    The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!

    The current stable version of npm is available on GitHub.

    To upgrade, run: npm install npm@latest -g

    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/config/index.html b/deps/npm/docs/public/using-npm/config/index.html index 14b2f75498ec67..fa60cc1ed1ca28 100644 --- a/deps/npm/docs/public/using-npm/config/index.html +++ b/deps/npm/docs/public/using-npm/config/index.html @@ -74,7 +74,7 @@ } } }) -

    config

    +

    config

    More than you probably want to know about npm configuration

    Description

    npm gets its configuration values from the following sources, sorted by priority:

    @@ -207,7 +207,7 @@

    npm install runs to the default registry and all registries configured for scopes. See the documentation -for npm audit for details on what is submitted.

    +for npm audit for details on what is submitted.

    audit-level

    -

    The location of npm's cache directory. See npm cache

    +

    The location of npm's cache directory. See npm cache

    cache-lock-stale

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/developers/index.html b/deps/npm/docs/public/using-npm/developers/index.html index 98b491cb57a762..16dfd872f01372 100644 --- a/deps/npm/docs/public/using-npm/developers/index.html +++ b/deps/npm/docs/public/using-npm/developers/index.html @@ -74,7 +74,7 @@ } } }) -

    developers

    +

    developers

    Developer Guide

    Description

    So, you've decided to use npm to develop (and maybe publish/deploy) @@ -259,4 +259,4 @@

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/disputes/index.html b/deps/npm/docs/public/using-npm/disputes/index.html index 19011ba37b70dc..a96090bc963e98 100644 --- a/deps/npm/docs/public/using-npm/disputes/index.html +++ b/deps/npm/docs/public/using-npm/disputes/index.html @@ -74,7 +74,7 @@ } } }) -

    disputes

    +

    disputes

    Handling Module Name Disputes

    This document describes the steps that you should take to resolve module name disputes with other npm publishers. It also describes special steps you should @@ -184,7 +184,7 @@

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/orgs/index.html b/deps/npm/docs/public/using-npm/orgs/index.html index d3583790ce3568..6985aac6bbf1db 100644 --- a/deps/npm/docs/public/using-npm/orgs/index.html +++ b/deps/npm/docs/public/using-npm/orgs/index.html @@ -74,7 +74,7 @@ } } }) -

    orgs

    +

    orgs

    Working with Teams & Orgs

    Description

    There are three levels of org users:

    @@ -88,8 +88,8 @@

    The developer will be able to access packages based on the teams they are on. Access is either read-write or read-only.

    There are two main commands:

      -
    1. npm team see npm team for more details
    2. -
    3. npm access see npm access for more details
    4. +
    5. npm team see npm team for more details
    6. +
    7. npm access see npm access for more details

    Team Admins create teams

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/registry/index.html b/deps/npm/docs/public/using-npm/registry/index.html index 91e28bb9514e46..332a1d0944b2a6 100644 --- a/deps/npm/docs/public/using-npm/registry/index.html +++ b/deps/npm/docs/public/using-npm/registry/index.html @@ -74,7 +74,7 @@ } } }) -

    registry

    +

    registry

    The JavaScript Package Registry

    Description

    To resolve packages by name and version, npm talks to a registry website @@ -95,7 +95,7 @@

    https://github.com/npm/npm-registry-couchapp.

    The registry URL used is determined by the scope of the package (see scope. If no scope is specified, the default registry is used, which is -supplied by the registry config parameter. See npm config, +supplied by the registry config parameter. See npm config, npmrc, and config for more on managing npm's configuration.

    Does npm send any information about me back to the registry?

    Yes.

    @@ -144,7 +144,7 @@

    https://www.npmjs.com/

    See also

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/removal/index.html b/deps/npm/docs/public/using-npm/removal/index.html index d537016410ea10..cc20f5f3446807 100644 --- a/deps/npm/docs/public/using-npm/removal/index.html +++ b/deps/npm/docs/public/using-npm/removal/index.html @@ -74,7 +74,7 @@ } } }) -

    removal

    +

    removal

    Cleaning the Slate

    Synopsis

    So sad to see you go.

    @@ -107,8 +107,8 @@

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/scope/index.html b/deps/npm/docs/public/using-npm/scope/index.html index 1fcfa14853a6e3..fdd0038f4ddd80 100644 --- a/deps/npm/docs/public/using-npm/scope/index.html +++ b/deps/npm/docs/public/using-npm/scope/index.html @@ -74,7 +74,7 @@ } } }) -

    scope

    +

    scope

    Scoped packages

    Description

    All npm packages have a name. Some package names also have a scope. A scope @@ -106,7 +106,7 @@

    "@myorg/mypackage": "^1.3.0" }

    Note that if the @ symbol is omitted, in either case, npm will instead attempt to -install from GitHub; see npm install.

    +install from GitHub; see npm install.

    Requiring scoped packages

    Because scoped packages are installed into a scope folder, you have to include the name of the scope when requiring them in your code, e.g.

    @@ -148,9 +148,9 @@

    See also

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/scripts/index.html b/deps/npm/docs/public/using-npm/scripts/index.html index 8e10a99e532e68..aab873ddb350ea 100644 --- a/deps/npm/docs/public/using-npm/scripts/index.html +++ b/deps/npm/docs/public/using-npm/scripts/index.html @@ -74,7 +74,7 @@ } } }) -

    scripts

    +

    scripts

    How npm handles the "scripts" field

    Description

    The "scripts" property of of your package.json file supports a number of built-in scripts and their preset life cycle events as well as arbitrary scripts. These all can be executed by running npm run-script <stage> or npm run <stage> for short. Pre and post commands with matching names will be run for those as well (e.g. premyscript, myscript, postmyscript). Scripts from dependencies can be run with npm explore <pkg> -- npm run <stage>.

    @@ -138,7 +138,7 @@

    Life Cycle Operation Order

    -

    npm publish

    +

    npm publish

    -

    npm pack

    +

    npm pack

    • prepack
    • postpack
    -

    npm install

    +

    npm install

    -

    npm start

    +

    npm start

    npm run start has an npm start shorthand.

    👀 Found a typo? Let us know!

    The current stable version of npm is here. To upgrade, run: npm install npm@latest -g

    To report bugs or submit feature requests for the docs, please post here. Submit npm issues here.

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/semver/index.html b/deps/npm/docs/public/using-npm/semver/index.html index bd26f5f4d4ce09..513a6cf741a421 100644 --- a/deps/npm/docs/public/using-npm/semver/index.html +++ b/deps/npm/docs/public/using-npm/semver/index.html @@ -74,7 +74,7 @@ } } }) -

    semver(7) -- The semantic versioner for npm

    +

    semver(7) -- The semantic versioner for npm

    Install

    npm install --save semver

    Usage

    @@ -435,4 +435,4 @@

    \ No newline at end of file +
    \ No newline at end of file diff --git a/deps/npm/lib/team.js b/deps/npm/lib/team.js index 2b56e3b14f95bb..e24f733475a23a 100644 --- a/deps/npm/lib/team.js +++ b/deps/npm/lib/team.js @@ -14,10 +14,10 @@ team.subcommands = ['create', 'destroy', 'add', 'rm', 'ls', 'edit'] team.usage = usage( 'team', - 'npm team create \n' + - 'npm team destroy \n' + - 'npm team add \n' + - 'npm team rm \n' + + 'npm team create [--otp ]\n' + + 'npm team destroy [--otp ]\n' + + 'npm team add [--otp ]\n' + + 'npm team rm [--otp ]\n' + 'npm team ls |\n' + 'npm team edit ' ) diff --git a/deps/npm/lib/unpublish.js b/deps/npm/lib/unpublish.js index 203c8b592f1099..59d7d1b5887d21 100644 --- a/deps/npm/lib/unpublish.js +++ b/deps/npm/lib/unpublish.js @@ -20,7 +20,11 @@ const readJson = BB.promisify(require('read-package-json')) const usage = require('./utils/usage.js') const whoami = BB.promisify(require('./whoami.js')) -unpublish.usage = usage('npm unpublish [<@scope>/][@]') +unpublish.usage = usage( + 'unpublish', + '\nnpm unpublish [<@scope>/]@' + + '\nnpm unpublish [<@scope>/] --force' +) function UsageError () { throw Object.assign(new Error(`Usage: ${unpublish.usage}`), { @@ -75,7 +79,7 @@ function unpublish (args, cb) { 'Refusing to delete entire project.\n' + 'Run with --force to do this.\n' + unpublish.usage - ), {code: 'EUSAGE'}) + ), { code: 'EUSAGE' }) } if (!spec || path.resolve(spec.name) === npm.localPrefix) { // if there's a package.json in the current folder, then diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 index bc250bdaabc40c..2ba6afd57c0e2f 100644 --- a/deps/npm/man/man1/npm-README.1 +++ b/deps/npm/man/man1/npm-README.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "February 2020" "" "" +.TH "NPM" "1" "March 2020" "" "" .SH "NAME" \fBnpm\fR \- a JavaScript package manager .P diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1 index 5521fd45a5ea05..448c9859a44a62 100644 --- a/deps/npm/man/man1/npm-access.1 +++ b/deps/npm/man/man1/npm-access.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ACCESS" "1" "February 2020" "" "" +.TH "NPM\-ACCESS" "1" "March 2020" "" "" .SH "NAME" \fBnpm-access\fR \- Set access level on published packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index 9e2ed19a86b336..3d005b13029d1a 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -3,7 +3,7 @@ section: cli\-commands title: npm\-adduser .SH description: Set access level on published packages -.TH "NPM\-ADDUSER" "1" "February 2020" "" "" +.TH "NPM\-ADDUSER" "1" "March 2020" "" "" .SH "NAME" \fBnpm-adduser\fR \- Add a registry user account .SS Synopsis diff --git a/deps/npm/man/man1/npm-audit.1 b/deps/npm/man/man1/npm-audit.1 index 3665ef2f7b690a..d0a77fdf0d7815 100644 --- a/deps/npm/man/man1/npm-audit.1 +++ b/deps/npm/man/man1/npm-audit.1 @@ -1,4 +1,4 @@ -.TH "NPM\-AUDIT" "1" "February 2020" "" "" +.TH "NPM\-AUDIT" "1" "March 2020" "" "" .SH "NAME" \fBnpm-audit\fR \- Run a security audit .SS Synopsis diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 index 806e11757fb0e7..26480b0d0ff647 100644 --- a/deps/npm/man/man1/npm-bin.1 +++ b/deps/npm/man/man1/npm-bin.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BIN" "1" "February 2020" "" "" +.TH "NPM\-BIN" "1" "March 2020" "" "" .SH "NAME" \fBnpm-bin\fR \- Display npm bin folder .SS Synopsis diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index 019763dd8c8c0e..1566c8706c1c53 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BUGS" "1" "February 2020" "" "" +.TH "NPM\-BUGS" "1" "March 2020" "" "" .SH "NAME" \fBnpm-bugs\fR \- Bugs for a package in a web browser maybe .SS Synopsis diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 index f199a43ad95303..20919da86c19f8 100644 --- a/deps/npm/man/man1/npm-build.1 +++ b/deps/npm/man/man1/npm-build.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BUILD" "1" "February 2020" "" "" +.TH "NPM\-BUILD" "1" "March 2020" "" "" .SH "NAME" \fBnpm-build\fR \- Build a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1 index 7c927041da9d1d..a2cb2ad35b4f2a 100644 --- a/deps/npm/man/man1/npm-bundle.1 +++ b/deps/npm/man/man1/npm-bundle.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BUNDLE" "1" "February 2020" "" "" +.TH "NPM\-BUNDLE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-bundle\fR \- REMOVED .SS Description diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index 330f127fed0cf3..30186d7925cf8f 100644 --- a/deps/npm/man/man1/npm-cache.1 +++ b/deps/npm/man/man1/npm-cache.1 @@ -1,4 +1,4 @@ -.TH "NPM\-CACHE" "1" "February 2020" "" "" +.TH "NPM\-CACHE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-cache\fR \- Manipulates packages cache .SS Synopsis diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1 index ae835891432faa..625cf2ef7b4eea 100644 --- a/deps/npm/man/man1/npm-ci.1 +++ b/deps/npm/man/man1/npm-ci.1 @@ -1,4 +1,4 @@ -.TH "NPM\-CI" "1" "February 2020" "" "" +.TH "NPM\-CI" "1" "March 2020" "" "" .SH "NAME" \fBnpm-ci\fR \- Install a project with a clean slate .SS Synopsis diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index 92d201f8c05539..263e04cba27875 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -1,4 +1,4 @@ -.TH "NPM\-COMPLETION" "1" "February 2020" "" "" +.TH "NPM\-COMPLETION" "1" "March 2020" "" "" .SH "NAME" \fBnpm-completion\fR \- Tab Completion for npm .SS Synopsis diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index 278a7df70c65ef..2c71ad1410e40c 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -1,4 +1,4 @@ -.TH "NPM\-CONFIG" "1" "February 2020" "" "" +.TH "NPM\-CONFIG" "1" "March 2020" "" "" .SH "NAME" \fBnpm-config\fR \- Manage the npm configuration files .SS Synopsis diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 22653cc2729c4f..53e71c0f405040 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DEDUPE" "1" "February 2020" "" "" +.TH "NPM\-DEDUPE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-dedupe\fR \- Reduce duplication .SS Synopsis diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index 82a5c34b1b4302..3d7c160d987b33 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DEPRECATE" "1" "February 2020" "" "" +.TH "NPM\-DEPRECATE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-deprecate\fR \- Deprecate a version of a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 index 9fe3f66a3b6b91..9e8fb37ac0db3b 100644 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ b/deps/npm/man/man1/npm-dist-tag.1 @@ -3,7 +3,7 @@ section: cli\-commands title: npm\-dist\-tag .SH description: Modify package distribution tags -.TH "NPM\-DIST\-TAG" "1" "February 2020" "" "" +.TH "NPM\-DIST\-TAG" "1" "March 2020" "" "" .SH "NAME" \fBnpm-dist-tag\fR \- Modify package distribution tags .SS Synopsis diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index 24d9054c06839a..e518a5082fd6de 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DOCS" "1" "February 2020" "" "" +.TH "NPM\-DOCS" "1" "March 2020" "" "" .SH "NAME" \fBnpm-docs\fR \- Docs for a package in a web browser maybe .SS Synopsis diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1 index fb947f1b205a70..4c04a7b6be9d41 100644 --- a/deps/npm/man/man1/npm-doctor.1 +++ b/deps/npm/man/man1/npm-doctor.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DOCTOR" "1" "February 2020" "" "" +.TH "NPM\-DOCTOR" "1" "March 2020" "" "" .SH "NAME" \fBnpm-doctor\fR \- Check your environments .SS Synopsis diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 2f8332a88813c0..9f992f04d55f65 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -1,4 +1,4 @@ -.TH "NPM\-EDIT" "1" "February 2020" "" "" +.TH "NPM\-EDIT" "1" "March 2020" "" "" .SH "NAME" \fBnpm-edit\fR \- Edit an installed package .SS Synopsis diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index bce86b07718fd9..74159220becef2 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -3,7 +3,7 @@ section: cli\-commands title: npm\-explore .SH description: Browse an installed package -.TH "NPM\-EXPLORE" "1" "February 2020" "" "" +.TH "NPM\-EXPLORE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-explore\fR \- Browse an installed package .SS Synopsis diff --git a/deps/npm/man/man1/npm-fund.1 b/deps/npm/man/man1/npm-fund.1 index 75e3eb5bc36ae3..e4c418f8dae881 100644 --- a/deps/npm/man/man1/npm-fund.1 +++ b/deps/npm/man/man1/npm-fund.1 @@ -1,4 +1,4 @@ -.TH "NPM\-FUND" "1" "February 2020" "" "" +.TH "NPM\-FUND" "1" "March 2020" "" "" .SH "NAME" \fBnpm-fund\fR \- Retrieve funding information .SS Synopsis diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 35020590bcfc59..19c7d7b5f5693d 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -1,4 +1,4 @@ -.TH "NPM\-HELP\-SEARCH" "1" "February 2020" "" "" +.TH "NPM\-HELP\-SEARCH" "1" "March 2020" "" "" .SH "NAME" \fBnpm-help-search\fR \- Search npm help documentation .SS Synopsis diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index 3e1f7cf8cbd64c..6fa907cc9000f2 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -1,4 +1,4 @@ -.TH "NPM\-HELP" "1" "February 2020" "" "" +.TH "NPM\-HELP" "1" "March 2020" "" "" .SH "NAME" \fBnpm-help\fR \- Get help on npm .SS Synopsis diff --git a/deps/npm/man/man1/npm-hook.1 b/deps/npm/man/man1/npm-hook.1 index a7f11bbf11ae21..74169fb4423c60 100644 --- a/deps/npm/man/man1/npm-hook.1 +++ b/deps/npm/man/man1/npm-hook.1 @@ -1,4 +1,4 @@ -.TH "NPM\-HOOK" "1" "February 2020" "" "" +.TH "NPM\-HOOK" "1" "March 2020" "" "" .SH "NAME" \fBnpm-hook\fR \- Manage registry hooks .SS Synopsis diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 50e1bfa21b01e0..5c1b522ccbf7bb 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,4 +1,4 @@ -.TH "NPM\-INIT" "1" "February 2020" "" "" +.TH "NPM\-INIT" "1" "March 2020" "" "" .SH "NAME" \fBnpm-init\fR \- create a package\.json file .SS Synopsis diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1 index b9de2ba2a63c74..e5962b93fdae02 100644 --- a/deps/npm/man/man1/npm-install-ci-test.1 +++ b/deps/npm/man/man1/npm-install-ci-test.1 @@ -1,4 +1,4 @@ -.TH "NPM" "" "February 2020" "" "" +.TH "NPM" "" "March 2020" "" "" .SH "NAME" \fBnpm\fR .SS Synopsis diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1 index d5fb253f77c1e8..73c7400b73d3de 100644 --- a/deps/npm/man/man1/npm-install-test.1 +++ b/deps/npm/man/man1/npm-install-test.1 @@ -1,4 +1,4 @@ -.TH "NPM" "" "February 2020" "" "" +.TH "NPM" "" "March 2020" "" "" .SH "NAME" \fBnpm\fR .SS Synopsis diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index 099a1534e13cdd..6bd9a4cd58e440 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -1,4 +1,4 @@ -.TH "NPM\-INSTALL" "1" "February 2020" "" "" +.TH "NPM\-INSTALL" "1" "March 2020" "" "" .SH "NAME" \fBnpm-install\fR \- Install a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index f9f4ec3e37aea8..79ad02d88ca0db 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -1,4 +1,4 @@ -.TH "NPM\-LINK" "1" "February 2020" "" "" +.TH "NPM\-LINK" "1" "March 2020" "" "" .SH "NAME" \fBnpm-link\fR \- Symlink a package folder .SS Synopsis diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 index 7f53279a540c4a..d9020ea68413cb 100644 --- a/deps/npm/man/man1/npm-logout.1 +++ b/deps/npm/man/man1/npm-logout.1 @@ -1,4 +1,4 @@ -.TH "NPM\-LOGOUT" "1" "February 2020" "" "" +.TH "NPM\-LOGOUT" "1" "March 2020" "" "" .SH "NAME" \fBnpm-logout\fR \- Log out of the registry .SS Synopsis diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index a621cf829ecd91..550ae7c67d177a 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -1,4 +1,4 @@ -.TH "NPM\-LS" "1" "February 2020" "" "" +.TH "NPM\-LS" "1" "March 2020" "" "" .SH "NAME" \fBnpm-ls\fR \- List installed packages .SS Synopsis @@ -22,7 +22,7 @@ For example, running \fBnpm ls promzard\fP in npm's source tree will show: .P .RS 2 .nf - npm@6\.14\.1 /path/to/npm + npm@6\.14\.3 /path/to/npm └─┬ init\-package\-json@0\.0\.4 └── promzard@0\.1\.5 .fi diff --git a/deps/npm/man/man1/npm-org.1 b/deps/npm/man/man1/npm-org.1 index b8fde0ed95d641..d3f1531252ed66 100644 --- a/deps/npm/man/man1/npm-org.1 +++ b/deps/npm/man/man1/npm-org.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ORG" "1" "February 2020" "" "" +.TH "NPM\-ORG" "1" "March 2020" "" "" .SH "NAME" \fBnpm-org\fR \- Manage orgs .SS Synopsis diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index f547f08a1c3187..808555c7b1b989 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -1,4 +1,4 @@ -.TH "NPM\-OUTDATED" "1" "February 2020" "" "" +.TH "NPM\-OUTDATED" "1" "March 2020" "" "" .SH "NAME" \fBnpm-outdated\fR \- Check for outdated packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index 1c15beef6cff14..f0e2f07a0cbc9a 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -1,4 +1,4 @@ -.TH "NPM\-OWNER" "1" "February 2020" "" "" +.TH "NPM\-OWNER" "1" "March 2020" "" "" .SH "NAME" \fBnpm-owner\fR \- Manage package owners .SS Synopsis diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index eca5f3c7b6dbb1..dac6963b4a2672 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PACK" "1" "February 2020" "" "" +.TH "NPM\-PACK" "1" "March 2020" "" "" .SH "NAME" \fBnpm-pack\fR \- Create a tarball from a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1 index 0611ffe2e1186b..28ae935229cda4 100644 --- a/deps/npm/man/man1/npm-ping.1 +++ b/deps/npm/man/man1/npm-ping.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PING" "1" "February 2020" "" "" +.TH "NPM\-PING" "1" "March 2020" "" "" .SH "NAME" \fBnpm-ping\fR \- Ping npm registry .SS Synopsis diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index d65e3b45ecc5f0..3b695b870e085b 100644 --- a/deps/npm/man/man1/npm-prefix.1 +++ b/deps/npm/man/man1/npm-prefix.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PREFIX" "1" "February 2020" "" "" +.TH "NPM\-PREFIX" "1" "March 2020" "" "" .SH "NAME" \fBnpm-prefix\fR \- Display prefix .SS Synopsis diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1 index ee5018341e54d3..b0990f099e5085 100644 --- a/deps/npm/man/man1/npm-profile.1 +++ b/deps/npm/man/man1/npm-profile.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PROFILE" "1" "February 2020" "" "" +.TH "NPM\-PROFILE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-profile\fR \- Change settings on your registry profile .SS Synopsis diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index 81c474ccf08979..b51f829ca9c9fc 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PRUNE" "1" "February 2020" "" "" +.TH "NPM\-PRUNE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-prune\fR \- Remove extraneous packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index 7bb65ff36bd82a..eec1f60120a4cd 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PUBLISH" "1" "February 2020" "" "" +.TH "NPM\-PUBLISH" "1" "March 2020" "" "" .SH "NAME" \fBnpm-publish\fR \- Publish a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index 9666d94ab1408a..7e0d43fadf134d 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -1,4 +1,4 @@ -.TH "NPM\-REBUILD" "1" "February 2020" "" "" +.TH "NPM\-REBUILD" "1" "March 2020" "" "" .SH "NAME" \fBnpm-rebuild\fR \- Rebuild a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 3da701d2e09417..68920454a69173 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -1,4 +1,4 @@ -.TH "NPM\-REPO" "1" "February 2020" "" "" +.TH "NPM\-REPO" "1" "March 2020" "" "" .SH "NAME" \fBnpm-repo\fR \- Open package repository page in the browser .SS Synopsis diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index 25d39529847e4b..d90bebb90633d5 100644 --- a/deps/npm/man/man1/npm-restart.1 +++ b/deps/npm/man/man1/npm-restart.1 @@ -1,4 +1,4 @@ -.TH "NPM\-RESTART" "1" "February 2020" "" "" +.TH "NPM\-RESTART" "1" "March 2020" "" "" .SH "NAME" \fBnpm-restart\fR \- Restart a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index b87596ea23ed79..dab19fcabf5a0e 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ROOT" "1" "February 2020" "" "" +.TH "NPM\-ROOT" "1" "March 2020" "" "" .SH "NAME" \fBnpm-root\fR \- Display npm root .SS Synopsis diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index e0ae4fe6a3bb8a..8a7d2b6e2ff06c 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -1,4 +1,4 @@ -.TH "NPM\-RUN\-SCRIPT" "1" "February 2020" "" "" +.TH "NPM\-RUN\-SCRIPT" "1" "March 2020" "" "" .SH "NAME" \fBnpm-run-script\fR \- Run arbitrary package scripts .SS Synopsis diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index 6ba914b01bc002..9b9b7861dab818 100644 --- a/deps/npm/man/man1/npm-search.1 +++ b/deps/npm/man/man1/npm-search.1 @@ -1,4 +1,4 @@ -.TH "NPM\-SEARCH" "1" "February 2020" "" "" +.TH "NPM\-SEARCH" "1" "March 2020" "" "" .SH "NAME" \fBnpm-search\fR \- Search for packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 07283a8a326360..59b2e499d1e9bf 100644 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ b/deps/npm/man/man1/npm-shrinkwrap.1 @@ -1,4 +1,4 @@ -.TH "NPM\-SHRINKWRAP" "1" "February 2020" "" "" +.TH "NPM\-SHRINKWRAP" "1" "March 2020" "" "" .SH "NAME" \fBnpm-shrinkwrap\fR \- Lock down dependency versions for publication .SS Synopsis diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index e8384832905bd4..e5a18f85be1374 100644 --- a/deps/npm/man/man1/npm-star.1 +++ b/deps/npm/man/man1/npm-star.1 @@ -1,4 +1,4 @@ -.TH "NPM\-STAR" "1" "February 2020" "" "" +.TH "NPM\-STAR" "1" "March 2020" "" "" .SH "NAME" \fBnpm-star\fR \- Mark your favorite packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index 5f666362a90058..bcc7cce20518c1 100644 --- a/deps/npm/man/man1/npm-stars.1 +++ b/deps/npm/man/man1/npm-stars.1 @@ -1,4 +1,4 @@ -.TH "NPM\-STARS" "1" "February 2020" "" "" +.TH "NPM\-STARS" "1" "March 2020" "" "" .SH "NAME" \fBnpm-stars\fR \- View packages marked as favorites .SS Synopsis diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 index b7d61384e4a3de..64a22b7cb9461a 100644 --- a/deps/npm/man/man1/npm-start.1 +++ b/deps/npm/man/man1/npm-start.1 @@ -1,4 +1,4 @@ -.TH "NPM\-START" "1" "February 2020" "" "" +.TH "NPM\-START" "1" "March 2020" "" "" .SH "NAME" \fBnpm-start\fR \- Start a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 index 15b7fea95073f1..5144671e15fcdd 100644 --- a/deps/npm/man/man1/npm-stop.1 +++ b/deps/npm/man/man1/npm-stop.1 @@ -1,4 +1,4 @@ -.TH "NPM\-STOP" "1" "February 2020" "" "" +.TH "NPM\-STOP" "1" "March 2020" "" "" .SH "NAME" \fBnpm-stop\fR \- Stop a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1 index 5b04f786639a04..6e0b1da57d6e06 100644 --- a/deps/npm/man/man1/npm-team.1 +++ b/deps/npm/man/man1/npm-team.1 @@ -1,4 +1,4 @@ -.TH "NPM\-TEAM" "1" "February 2020" "" "" +.TH "NPM\-TEAM" "1" "March 2020" "" "" .SH "NAME" \fBnpm-team\fR \- Manage organization teams and team memberships .SS Synopsis @@ -23,6 +23,8 @@ handle permissions for packages\. .P Teams must always be fully qualified with the organization/scope they belong to when operating on them, separated by a colon (\fB:\fP)\. That is, if you have a \fBwombats\fP team in a \fBwisdom\fP organization, you must always refer to that team as \fBwisdom:wombats\fP in these commands\. +.P +If you have two\-factor authentication enabled in \fBauth\-and\-writes\fP mode, then you can provide a code from your authenticator with \fB[\-\-otp ]\fP\|\. If you don't include this then you will be prompted\. .RS 0 .IP \(bu 2 create / destroy: diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 index c5e017eaea2dca..fed0b5d5bb2dd1 100644 --- a/deps/npm/man/man1/npm-test.1 +++ b/deps/npm/man/man1/npm-test.1 @@ -1,4 +1,4 @@ -.TH "NPM\-TEST" "1" "February 2020" "" "" +.TH "NPM\-TEST" "1" "March 2020" "" "" .SH "NAME" \fBnpm-test\fR \- Test a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1 index 7e2a93d2621959..2ef8c563f1eb30 100644 --- a/deps/npm/man/man1/npm-token.1 +++ b/deps/npm/man/man1/npm-token.1 @@ -1,4 +1,4 @@ -.TH "NPM\-TOKEN" "1" "February 2020" "" "" +.TH "NPM\-TOKEN" "1" "March 2020" "" "" .SH "NAME" \fBnpm-token\fR \- Manage your authentication tokens .SS Synopsis diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index a46cc6b1e153cf..72172f08c8f1fb 100644 --- a/deps/npm/man/man1/npm-uninstall.1 +++ b/deps/npm/man/man1/npm-uninstall.1 @@ -1,4 +1,4 @@ -.TH "NPM\-UNINSTALL" "1" "February 2020" "" "" +.TH "NPM\-UNINSTALL" "1" "March 2020" "" "" .SH "NAME" \fBnpm-uninstall\fR \- Remove a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index 73c4c17b0d047b..5db95caffc36d5 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -1,22 +1,24 @@ -.TH "NPM\-UNPUBLISH" "1" "February 2020" "" "" +.TH "NPM\-UNPUBLISH" "1" "March 2020" "" "" .SH "NAME" \fBnpm-unpublish\fR \- Remove a package from the registry .SS Synopsis +.SS Unpublishing a single version of a package .P .RS 2 .nf -npm unpublish [<@scope>/][@] +npm unpublish [<@scope>/]@ .fi .RE -.SS Warning -.P -\fBIt is generally considered bad behavior to remove versions of a library -that others are depending on!\fR +.SS Unpublishing an entire package .P -Consider using the \fBdeprecate\fP command -instead, if your intent is to encourage users to upgrade\. +.RS 2 +.nf +npm unpublish [<@scope>/] \-\-force +.fi +.RE +.SS Warning .P -There is plenty of room on the registry\. +Consider using the \fBdeprecate\fP command instead, if your intent is to encourage users to upgrade, or if you no longer want to maintain a package\. .SS Description .P This removes a package version from the registry, deleting its @@ -27,16 +29,9 @@ the root package entry is removed from the registry entirely\. .P Even if a package version is unpublished, that specific name and version combination can never be reused\. In order to publish the -package again, a new version number must be used\. Additionally, -new versions of packages with every version unpublished may not -be republished until 24 hours have passed\. -.P -With the default registry (\fBregistry\.npmjs\.org\fP), unpublish is -only allowed with versions published in the last 72 hours\. If you -are trying to unpublish a version published longer ago than that, -contact support@npmjs\.com\|\. +package again, a new version number must be used\. If you unpublish the entire package, you may not publish any new versions of that package until 24 hours have passed\. .P -The scope is optional and follows the usual rules for npm help \fBscope\fP\|\. +To learn more about how unpublish is treated on the npm registry, see our unpublish policies\|\. .SS See Also .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index e91c4a0a09f236..b236b1eaaaa561 100644 --- a/deps/npm/man/man1/npm-update.1 +++ b/deps/npm/man/man1/npm-update.1 @@ -1,4 +1,4 @@ -.TH "NPM\-UPDATE" "1" "February 2020" "" "" +.TH "NPM\-UPDATE" "1" "March 2020" "" "" .SH "NAME" \fBnpm-update\fR \- Update a package .SS Synopsis @@ -120,7 +120,9 @@ version that satisfies \fB^0\.4\.0\fP (\fB>= 0\.4\.0 <0\.5\.0\fP) .P \fBnpm update \-g\fP will apply the \fBupdate\fP action to each globally installed package that is \fBoutdated\fP \-\- that is, has a version that is different from -\fBlatest\fP\|\. +\fBwanted\fP\|\. +.P +Note: Globally installed packages are treated as if they are installed with a caret semver range specified\. So if you require to update to \fBlatest\fP you may need to run \fBnpm install \-g [\.\.\.]\fP .P NOTE: If a package has been upgraded to a version newer than \fBlatest\fP, it will be \fIdowngraded\fR\|\. diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 83040d7709325f..22dc7a71ed4b01 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -1,4 +1,4 @@ -.TH "NPM\-VERSION" "1" "February 2020" "" "" +.TH "NPM\-VERSION" "1" "March 2020" "" "" .SH "NAME" \fBnpm-version\fR \- Bump a package version .SS Synopsis diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index 7aec57fbc7c631..0bed92ababc3dd 100644 --- a/deps/npm/man/man1/npm-view.1 +++ b/deps/npm/man/man1/npm-view.1 @@ -1,4 +1,4 @@ -.TH "NPM\-VIEW" "1" "February 2020" "" "" +.TH "NPM\-VIEW" "1" "March 2020" "" "" .SH "NAME" \fBnpm-view\fR \- View registry info .SS Synopsis diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index 1fe3c7a0327f46..c581a1f0a4d363 100644 --- a/deps/npm/man/man1/npm-whoami.1 +++ b/deps/npm/man/man1/npm-whoami.1 @@ -1,4 +1,4 @@ -.TH "NPM\-WHOAMI" "1" "February 2020" "" "" +.TH "NPM\-WHOAMI" "1" "March 2020" "" "" .SH "NAME" \fBnpm-whoami\fR \- Display npm username .SS Synopsis diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index d2626ef19f1a35..3a0308ea98f117 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "February 2020" "" "" +.TH "NPM" "1" "March 2020" "" "" .SH "NAME" \fBnpm\fR \- javascript package manager .SS Synopsis @@ -10,7 +10,7 @@ npm [args] .RE .SS Version .P -6\.14\.1 +6\.14\.3 .SS Description .P npm is the package manager for the Node JavaScript platform\. It puts diff --git a/deps/npm/man/man5/folders.5 b/deps/npm/man/man5/folders.5 index 95b668999f2aee..c88bdecd34f1e8 100644 --- a/deps/npm/man/man5/folders.5 +++ b/deps/npm/man/man5/folders.5 @@ -1,4 +1,4 @@ -.TH "FOLDERS" "5" "February 2020" "" "" +.TH "FOLDERS" "5" "March 2020" "" "" .SH "NAME" \fBfolders\fR \- Folder Structures Used by npm .SS Description diff --git a/deps/npm/man/man5/install.5 b/deps/npm/man/man5/install.5 index 745eab3ed3f637..9309aa1f17c006 100644 --- a/deps/npm/man/man5/install.5 +++ b/deps/npm/man/man5/install.5 @@ -1,4 +1,4 @@ -.TH "INSTALL" "5" "February 2020" "" "" +.TH "INSTALL" "5" "March 2020" "" "" .SH "NAME" \fBinstall\fR \- Download and Install npm .SS Description diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 index f3f9057d883786..bc3f8fdaed0e5b 100644 --- a/deps/npm/man/man5/npmrc.5 +++ b/deps/npm/man/man5/npmrc.5 @@ -1,4 +1,4 @@ -.TH "NPMRC" "5" "February 2020" "" "" +.TH "NPMRC" "5" "March 2020" "" "" .SH "NAME" \fBnpmrc\fR \- The npm config files .SS Description diff --git a/deps/npm/man/man5/package-json.5 b/deps/npm/man/man5/package-json.5 index f188a08e50a416..13d90854131429 100644 --- a/deps/npm/man/man5/package-json.5 +++ b/deps/npm/man/man5/package-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\.JSON" "5" "February 2020" "" "" +.TH "PACKAGE\.JSON" "5" "March 2020" "" "" .SH "NAME" \fBpackage.json\fR \- Specifics of npm's package\.json handling .SS Description diff --git a/deps/npm/man/man5/package-lock-json.5 b/deps/npm/man/man5/package-lock-json.5 index 6a4dece03d0027..43c6e419367742 100644 --- a/deps/npm/man/man5/package-lock-json.5 +++ b/deps/npm/man/man5/package-lock-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\-LOCK\.JSON" "5" "February 2020" "" "" +.TH "PACKAGE\-LOCK\.JSON" "5" "March 2020" "" "" .SH "NAME" \fBpackage-lock.json\fR \- A manifestation of the manifest .SS Description diff --git a/deps/npm/man/man5/package-locks.5 b/deps/npm/man/man5/package-locks.5 index 0658ff24682af8..f610e42ba4ba4a 100644 --- a/deps/npm/man/man5/package-locks.5 +++ b/deps/npm/man/man5/package-locks.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\-LOCKS" "5" "February 2020" "" "" +.TH "PACKAGE\-LOCKS" "5" "March 2020" "" "" .SH "NAME" \fBpackage-locks\fR \- An explanation of npm lockfiles .SS Description diff --git a/deps/npm/man/man5/shrinkwrap-json.5 b/deps/npm/man/man5/shrinkwrap-json.5 index 11f24412a9c637..e891c84ecff4ee 100644 --- a/deps/npm/man/man5/shrinkwrap-json.5 +++ b/deps/npm/man/man5/shrinkwrap-json.5 @@ -1,4 +1,4 @@ -.TH "NPM\-SHRINKWRAP\.JSON" "5" "February 2020" "" "" +.TH "NPM\-SHRINKWRAP\.JSON" "5" "March 2020" "" "" .SH "NAME" \fBnpm-shrinkwrap.json\fR \- A publishable lockfile .SS Description diff --git a/deps/npm/man/man7/config.7 b/deps/npm/man/man7/config.7 index 32612e44c55fd3..0f653366b1d287 100644 --- a/deps/npm/man/man7/config.7 +++ b/deps/npm/man/man7/config.7 @@ -1,4 +1,4 @@ -.TH "CONFIG" "7" "February 2020" "" "" +.TH "CONFIG" "7" "March 2020" "" "" .SH "NAME" \fBconfig\fR \- More than you probably want to know about npm configuration .SS Description diff --git a/deps/npm/man/man7/developers.7 b/deps/npm/man/man7/developers.7 index da4a8a0af5c91c..a84548af27c641 100644 --- a/deps/npm/man/man7/developers.7 +++ b/deps/npm/man/man7/developers.7 @@ -1,4 +1,4 @@ -.TH "DEVELOPERS" "7" "February 2020" "" "" +.TH "DEVELOPERS" "7" "March 2020" "" "" .SH "NAME" \fBdevelopers\fR \- Developer Guide .SS Description diff --git a/deps/npm/man/man7/disputes.7 b/deps/npm/man/man7/disputes.7 index 64088b488db647..a94c70b3d833de 100644 --- a/deps/npm/man/man7/disputes.7 +++ b/deps/npm/man/man7/disputes.7 @@ -1,4 +1,4 @@ -.TH "DISPUTES" "7" "February 2020" "" "" +.TH "DISPUTES" "7" "March 2020" "" "" .SH "NAME" \fBdisputes\fR \- Handling Module Name Disputes .P diff --git a/deps/npm/man/man7/orgs.7 b/deps/npm/man/man7/orgs.7 index 9674c00d19b788..418537ead8c219 100644 --- a/deps/npm/man/man7/orgs.7 +++ b/deps/npm/man/man7/orgs.7 @@ -1,4 +1,4 @@ -.TH "ORGS" "7" "February 2020" "" "" +.TH "ORGS" "7" "March 2020" "" "" .SH "NAME" \fBorgs\fR \- Working with Teams & Orgs .SS Description diff --git a/deps/npm/man/man7/registry.7 b/deps/npm/man/man7/registry.7 index 1bfb2dcf609e52..f22059121e843b 100644 --- a/deps/npm/man/man7/registry.7 +++ b/deps/npm/man/man7/registry.7 @@ -1,4 +1,4 @@ -.TH "REGISTRY" "7" "February 2020" "" "" +.TH "REGISTRY" "7" "March 2020" "" "" .SH "NAME" \fBregistry\fR \- The JavaScript Package Registry .SS Description diff --git a/deps/npm/man/man7/removal.7 b/deps/npm/man/man7/removal.7 index cfc7bce1ba978b..7b7322628f2c65 100644 --- a/deps/npm/man/man7/removal.7 +++ b/deps/npm/man/man7/removal.7 @@ -1,4 +1,4 @@ -.TH "REMOVAL" "7" "February 2020" "" "" +.TH "REMOVAL" "7" "March 2020" "" "" .SH "NAME" \fBremoval\fR \- Cleaning the Slate .SS Synopsis diff --git a/deps/npm/man/man7/scope.7 b/deps/npm/man/man7/scope.7 index 6c6aae668bd97b..1884347b8b6ab1 100644 --- a/deps/npm/man/man7/scope.7 +++ b/deps/npm/man/man7/scope.7 @@ -1,4 +1,4 @@ -.TH "SCOPE" "7" "February 2020" "" "" +.TH "SCOPE" "7" "March 2020" "" "" .SH "NAME" \fBscope\fR \- Scoped packages .SS Description diff --git a/deps/npm/man/man7/scripts.7 b/deps/npm/man/man7/scripts.7 index b9103a3f2de47d..17b549b05e7c1c 100644 --- a/deps/npm/man/man7/scripts.7 +++ b/deps/npm/man/man7/scripts.7 @@ -1,4 +1,4 @@ -.TH "SCRIPTS" "7" "February 2020" "" "" +.TH "SCRIPTS" "7" "March 2020" "" "" .SH "NAME" \fBscripts\fR \- How npm handles the "scripts" field .SS Description diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7 index 85623a5000adaa..419716a83d737a 100644 --- a/deps/npm/man/man7/semver.7 +++ b/deps/npm/man/man7/semver.7 @@ -1,4 +1,4 @@ -.TH "SEMVER" "7" "February 2020" "" "" +.TH "SEMVER" "7" "March 2020" "" "" .SH "NAME" \fBsemver\fR \- The semantic versioner for npm .SH Install diff --git a/deps/npm/node_modules/glob/README.md b/deps/npm/node_modules/glob/README.md index e71b967ea28809..0916a48255cd6f 100644 --- a/deps/npm/node_modules/glob/README.md +++ b/deps/npm/node_modules/glob/README.md @@ -371,3 +371,5 @@ npm run bench # to profile javascript npm run prof ``` + +![](oh-my-glob.gif) diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json index 788801e299e45f..0e1fa5805bccbc 100644 --- a/deps/npm/node_modules/glob/package.json +++ b/deps/npm/node_modules/glob/package.json @@ -1,23 +1,24 @@ { - "_from": "glob@7.1.4", - "_id": "glob@7.1.4", + "_from": "glob@7.1.6", + "_id": "glob@7.1.6", "_inBundle": false, - "_integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "_integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "_location": "/glob", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "glob@7.1.4", + "raw": "glob@7.1.6", "name": "glob", "escapedName": "glob", - "rawSpec": "7.1.4", + "rawSpec": "7.1.6", "saveSpec": null, - "fetchSpec": "7.1.4" + "fetchSpec": "7.1.6" }, "_requiredBy": [ "#USER", "/", + "/cacache", "/deglob", "/eslint", "/init-package-json", @@ -30,10 +31,10 @@ "/tap-mocha-reporter", "/test-exclude" ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "_shasum": "aa608a2f6c577ad357e1ae5a5c26d9a8d1969255", - "_spec": "glob@7.1.4", - "_where": "/Users/isaacs/dev/npm/cli", + "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "_shasum": "141f33b81a7c2492e125594307480c46679278a6", + "_spec": "glob@7.1.6", + "_where": "/Users/darcyclarke/Documents/Repos/npm/cli", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -67,6 +68,9 @@ "sync.js", "common.js" ], + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, "homepage": "https://github.com/isaacs/node-glob#readme", "license": "ISC", "main": "glob.js", @@ -84,5 +88,5 @@ "test": "tap test/*.js --cov", "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" }, - "version": "7.1.4" + "version": "7.1.6" } diff --git a/deps/npm/node_modules/hosted-git-info/CHANGELOG.md b/deps/npm/node_modules/hosted-git-info/CHANGELOG.md index 21fe13ca652fce..4f86601e029e95 100644 --- a/deps/npm/node_modules/hosted-git-info/CHANGELOG.md +++ b/deps/npm/node_modules/hosted-git-info/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [2.8.8](https://github.com/npm/hosted-git-info/compare/v2.8.7...v2.8.8) (2020-02-29) + + +### Bug Fixes + +* [#61](https://github.com/npm/hosted-git-info/issues/61) & [#65](https://github.com/npm/hosted-git-info/issues/65) addressing issues w/ url.URL implmentation which regressed node 6 support ([5038b18](https://github.com/npm/hosted-git-info/commit/5038b18)), closes [#66](https://github.com/npm/hosted-git-info/issues/66) + + + ## [2.8.7](https://github.com/npm/hosted-git-info/compare/v2.8.6...v2.8.7) (2020-02-26) diff --git a/deps/npm/node_modules/hosted-git-info/index.js b/deps/npm/node_modules/hosted-git-info/index.js index 08fa329760d8b4..21e53fe3724be1 100644 --- a/deps/npm/node_modules/hosted-git-info/index.js +++ b/deps/npm/node_modules/hosted-git-info/index.js @@ -120,7 +120,7 @@ function parseGitUrl (giturl) { // Pull off just the auth and host, so we dont' get the confusing // scp-style URL, then pass that to the WhatWG parser to get the // auth properly escaped. - const authmatch = giturl.match(/[^@]+@[^:/]+/) + var authmatch = giturl.match(/[^@]+@[^:/]+/) /* istanbul ignore else - this should be impossible */ if (authmatch) { var whatwg = new url.URL(authmatch[0]) diff --git a/deps/npm/node_modules/hosted-git-info/package.json b/deps/npm/node_modules/hosted-git-info/package.json index 7ce00ce18c551b..8d9c2b2046c742 100644 --- a/deps/npm/node_modules/hosted-git-info/package.json +++ b/deps/npm/node_modules/hosted-git-info/package.json @@ -1,19 +1,19 @@ { - "_from": "hosted-git-info@2.8.7", - "_id": "hosted-git-info@2.8.7", + "_from": "hosted-git-info@2.8.8", + "_id": "hosted-git-info@2.8.8", "_inBundle": false, - "_integrity": "sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg==", + "_integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "_location": "/hosted-git-info", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "hosted-git-info@2.8.7", + "raw": "hosted-git-info@2.8.8", "name": "hosted-git-info", "escapedName": "hosted-git-info", - "rawSpec": "2.8.7", + "rawSpec": "2.8.8", "saveSpec": null, - "fetchSpec": "2.8.7" + "fetchSpec": "2.8.8" }, "_requiredBy": [ "#USER", @@ -21,10 +21,10 @@ "/normalize-package-data", "/npm-package-arg" ], - "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.7.tgz", - "_shasum": "4d2e0d5248e1cfabc984b0f6a6d75fe36e679511", - "_spec": "hosted-git-info@2.8.7", - "_where": "/Users/isaacs/dev/npm/cli", + "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "_shasum": "7539bd4bc1e0e0a895815a2e0262420b12858488", + "_spec": "hosted-git-info@2.8.8", + "_where": "/Users/darcyclarke/Documents/Repos/npm/cli", "author": { "name": "Rebecca Turner", "email": "me@re-becca.org", @@ -65,8 +65,8 @@ "posttest": "standard", "prerelease": "npm t", "release": "standard-version -s", - "test": "tap -J --100 --no-esm test/*.js", - "test:coverage": "tap --coverage-report=html -J --100 --no-esm test/*.js" + "test": "tap -J --coverage=90 --no-esm test/*.js", + "test:coverage": "tap --coverage-report=html -J --coverage=90 --no-esm test/*.js" }, - "version": "2.8.7" + "version": "2.8.8" } diff --git a/deps/npm/node_modules/minimist/.travis.yml b/deps/npm/node_modules/minimist/.travis.yml deleted file mode 100644 index cc4dba29d959a2..00000000000000 --- a/deps/npm/node_modules/minimist/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/deps/npm/node_modules/mkdirp/examples/pow.js b/deps/npm/node_modules/mkdirp/examples/pow.js deleted file mode 100644 index e6924212e6a244..00000000000000 --- a/deps/npm/node_modules/mkdirp/examples/pow.js +++ /dev/null @@ -1,6 +0,0 @@ -var mkdirp = require('mkdirp'); - -mkdirp('/tmp/foo/bar/baz', function (err) { - if (err) console.error(err) - else console.log('pow!') -}); diff --git a/deps/npm/node_modules/mkdirp/.travis.yml b/deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml similarity index 100% rename from deps/npm/node_modules/mkdirp/.travis.yml rename to deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml diff --git a/deps/npm/node_modules/minimist/LICENSE b/deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE similarity index 100% rename from deps/npm/node_modules/minimist/LICENSE rename to deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE diff --git a/deps/npm/node_modules/minimist/example/parse.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js similarity index 72% rename from deps/npm/node_modules/minimist/example/parse.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js index abff3e8ee8f5ef..f7c8d49807f32e 100644 --- a/deps/npm/node_modules/minimist/example/parse.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js @@ -1,2 +1,2 @@ var argv = require('../')(process.argv.slice(2)); -console.dir(argv); +console.log(argv); diff --git a/deps/npm/node_modules/minimist/index.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js similarity index 50% rename from deps/npm/node_modules/minimist/index.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/index.js index 584f551a6da734..d5fa9d510fa17e 100644 --- a/deps/npm/node_modules/minimist/index.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js @@ -1,16 +1,20 @@ module.exports = function (args, opts) { if (!opts) opts = {}; - - var flags = { bools : {}, strings : {} }; - - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); - - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - }); - + + var flags = { bools : {}, strings : {}, unknownFn: null }; + + if (typeof opts['unknown'] === 'function') { + flags.unknownFn = opts['unknown']; + } + + if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { + flags.allBools = true; + } else { + [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + }); + } + var aliases = {}; Object.keys(opts.alias || {}).forEach(function (key) { aliases[key] = [].concat(opts.alias[key]); @@ -20,14 +24,21 @@ module.exports = function (args, opts) { })); }); }); - + + [].concat(opts.string).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + if (aliases[key]) { + flags.strings[aliases[key]] = true; + } + }); + var defaults = opts['default'] || {}; - + var argv = { _ : [] }; Object.keys(flags.bools).forEach(function (key) { setArg(key, defaults[key] === undefined ? false : defaults[key]); }); - + var notFlags = []; if (args.indexOf('--') !== -1) { @@ -35,114 +46,183 @@ module.exports = function (args, opts) { args = args.slice(0, args.indexOf('--')); } - function setArg (key, val) { + function argDefined(key, arg) { + return (flags.allBools && /^--[^=]+$/.test(arg)) || + flags.strings[key] || flags.bools[key] || aliases[key]; + } + + function setArg (key, val, arg) { + if (arg && flags.unknownFn && !argDefined(key, arg)) { + if (flags.unknownFn(arg) === false) return; + } + var value = !flags.strings[key] && isNumber(val) ? Number(val) : val ; setKey(argv, key.split('.'), value); - + (aliases[key] || []).forEach(function (x) { setKey(argv, x.split('.'), value); }); } - + + function setKey (obj, keys, value) { + var o = obj; + for (var i = 0; i < keys.length-1; i++) { + var key = keys[i]; + if (key === '__proto__') return; + if (o[key] === undefined) o[key] = {}; + if (o[key] === Object.prototype || o[key] === Number.prototype + || o[key] === String.prototype) o[key] = {}; + if (o[key] === Array.prototype) o[key] = []; + o = o[key]; + } + + var key = keys[keys.length - 1]; + if (key === '__proto__') return; + if (o === Object.prototype || o === Number.prototype + || o === String.prototype) o = {}; + if (o === Array.prototype) o = []; + if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { + o[key] = value; + } + else if (Array.isArray(o[key])) { + o[key].push(value); + } + else { + o[key] = [ o[key], value ]; + } + } + + function aliasIsBoolean(key) { + return aliases[key].some(function (x) { + return flags.bools[x]; + }); + } + for (var i = 0; i < args.length; i++) { var arg = args[i]; - + if (/^--.+=/.test(arg)) { // Using [\s\S] instead of . because js doesn't support the // 'dotall' regex modifier. See: // http://stackoverflow.com/a/1068308/13216 var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - setArg(m[1], m[2]); + var key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== 'false'; + } + setArg(key, value, arg); } else if (/^--no-.+/.test(arg)) { var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false); + setArg(key, false, arg); } else if (/^--.+/.test(arg)) { var key = arg.match(/^--(.+)/)[1]; var next = args[i + 1]; if (next !== undefined && !/^-/.test(next) && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, next); + && !flags.allBools + && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, next, arg); i++; } else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true'); + setArg(key, next === 'true', arg); i++; } else { - setArg(key, flags.strings[key] ? '' : true); + setArg(key, flags.strings[key] ? '' : true, arg); } } else if (/^-[^-]+/.test(arg)) { var letters = arg.slice(1,-1).split(''); - + var broken = false; for (var j = 0; j < letters.length; j++) { var next = arg.slice(j+2); - + if (next === '-') { - setArg(letters[j], next) + setArg(letters[j], next, arg) continue; } - + + if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { + setArg(letters[j], next.split('=')[1], arg); + broken = true; + break; + } + if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next); + setArg(letters[j], next, arg); broken = true; break; } - + if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2)); + setArg(letters[j], arg.slice(j+2), arg); broken = true; break; } else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true); + setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); } } - + var key = arg.slice(-1)[0]; if (!broken && key !== '-') { if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, args[i+1]); + && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, args[i+1], arg); i++; } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true'); + else if (args[i+1] && /^(true|false)$/.test(args[i+1])) { + setArg(key, args[i+1] === 'true', arg); i++; } else { - setArg(key, flags.strings[key] ? '' : true); + setArg(key, flags.strings[key] ? '' : true, arg); } } } else { - argv._.push( - flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) - ); + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push( + flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) + ); + } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } } } - + Object.keys(defaults).forEach(function (key) { if (!hasKey(argv, key.split('.'))) { setKey(argv, key.split('.'), defaults[key]); - + (aliases[key] || []).forEach(function (x) { setKey(argv, x.split('.'), defaults[key]); }); } }); - - notFlags.forEach(function(key) { - argv._.push(key); - }); + + if (opts['--']) { + argv['--'] = new Array(); + notFlags.forEach(function(key) { + argv['--'].push(key); + }); + } + else { + notFlags.forEach(function(key) { + argv._.push(key); + }); + } return argv; }; @@ -157,31 +237,8 @@ function hasKey (obj, keys) { return key in o; } -function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - - var key = keys[keys.length - 1]; - if (o[key] === undefined || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } -} - function isNumber (x) { if (typeof x === 'number') return true; if (/^0x[0-9a-f]+$/i.test(x)) return true; return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); } - -function longest (xs) { - return Math.max.apply(null, xs.map(function (x) { return x.length })); -} diff --git a/deps/npm/node_modules/minimist/package.json b/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json similarity index 63% rename from deps/npm/node_modules/minimist/package.json rename to deps/npm/node_modules/mkdirp/node_modules/minimist/package.json index 0a1961342b71b0..2846f6885ae634 100644 --- a/deps/npm/node_modules/minimist/package.json +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json @@ -1,27 +1,27 @@ { - "_from": "minimist@0.0.8", - "_id": "minimist@0.0.8", + "_from": "minimist@^1.2.5", + "_id": "minimist@1.2.5", "_inBundle": false, - "_integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "_location": "/minimist", + "_integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "_location": "/mkdirp/minimist", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "minimist@0.0.8", + "raw": "minimist@^1.2.5", "name": "minimist", "escapedName": "minimist", - "rawSpec": "0.0.8", + "rawSpec": "^1.2.5", "saveSpec": null, - "fetchSpec": "0.0.8" + "fetchSpec": "^1.2.5" }, "_requiredBy": [ "/mkdirp" ], - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_spec": "minimist@0.0.8", - "_where": "/Users/rebecca/code/npm/node_modules/mkdirp", + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "_shasum": "67d66014b66a6a8aaa0c083c5fd58df4e4e97602", + "_spec": "minimist@^1.2.5", + "_where": "/Users/darcyclarke/Documents/Repos/npm/npm/cli/node_modules/mkdirp", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -34,8 +34,9 @@ "deprecated": false, "description": "parse argument options", "devDependencies": { + "covert": "^1.0.0", "tap": "~0.4.0", - "tape": "~1.0.4" + "tape": "^3.5.0" }, "homepage": "https://github.com/substack/minimist", "keywords": [ @@ -52,6 +53,7 @@ "url": "git://github.com/substack/minimist.git" }, "scripts": { + "coverage": "covert test/*.js", "test": "tap test/*.js" }, "testling": { @@ -67,5 +69,5 @@ "opera/12" ] }, - "version": "0.0.8" + "version": "1.2.5" } diff --git a/deps/npm/node_modules/minimist/readme.markdown b/deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown similarity index 53% rename from deps/npm/node_modules/minimist/readme.markdown rename to deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown index c25635323e1661..5fd97ab11ee9d8 100644 --- a/deps/npm/node_modules/minimist/readme.markdown +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown @@ -5,15 +5,11 @@ parse argument options This module is the guts of optimist's argument parser without all the fanciful decoration. -[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist) - -[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist) - # example ``` js var argv = require('minimist')(process.argv.slice(2)); -console.dir(argv); +console.log(argv); ``` ``` @@ -33,6 +29,13 @@ $ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz beep: 'boop' } ``` +# security + +Previous versions had a prototype pollution bug that could cause privilege +escalation in some circumstances when handling untrusted user input. + +Please use version 1.2.3 or later: https://snyk.io/vuln/SNYK-JS-MINIMIST-559764 + # methods ``` js @@ -55,10 +58,29 @@ options can be: * `opts.string` - a string or array of strings argument names to always treat as strings -* `opts.boolean` - a string or array of strings to always treat as booleans +* `opts.boolean` - a boolean, string or array of strings to always treat as +booleans. if `true` will treat all double hyphenated arguments without equal signs +as boolean (e.g. affects `--foo`, not `-f` or `--foo=bar`) * `opts.alias` - an object mapping string names to strings or arrays of string argument names to use as aliases * `opts.default` - an object mapping string argument names to default values +* `opts.stopEarly` - when true, populate `argv._` with everything after the +first non-option +* `opts['--']` - when true, populate `argv._` with everything before the `--` +and `argv['--']` with everything after the `--`. Here's an example: + + ``` + > require('./')('one two three -- four five --six'.split(' '), { '--': true }) + { _: [ 'one', 'two', 'three' ], + '--': [ 'four', 'five', '--six' ] } + ``` + + Note that with `opts['--']` set, parsing for arguments still stops after the + `--`. + +* `opts.unknown` - a function which is invoked with a command line parameter not +defined in the `opts` configuration object. If the function returns `false`, the +unknown option is not added to `argv`. # install diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/all_bool.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/all_bool.js new file mode 100644 index 00000000000000..25df1654bc99d9 --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/all_bool.js @@ -0,0 +1,32 @@ +var parse = require('../'); +var test = require('tape'); + +test('flag boolean true (default all --args to boolean)', function (t) { + var argv = parse(['moo', '--honk', 'cow'], { + boolean: true + }); + + t.deepEqual(argv, { + honk: true, + _: ['moo', 'cow'] + }); + + t.deepEqual(typeof argv.honk, 'boolean'); + t.end(); +}); + +test('flag boolean true only affects double hyphen arguments without equals signs', function (t) { + var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], { + boolean: true + }); + + t.deepEqual(argv, { + honk: true, + tacos: 'good', + p: 55, + _: ['moo', 'cow'] + }); + + t.deepEqual(typeof argv.honk, 'boolean'); + t.end(); +}); diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/bool.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/bool.js new file mode 100644 index 00000000000000..dc9666bc619755 --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/bool.js @@ -0,0 +1,178 @@ +var parse = require('../'); +var test = require('tape'); + +test('flag boolean default false', function (t) { + var argv = parse(['moo'], { + boolean: ['t', 'verbose'], + default: { verbose: false, t: false } + }); + + t.deepEqual(argv, { + verbose: false, + t: false, + _: ['moo'] + }); + + t.deepEqual(typeof argv.verbose, 'boolean'); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); + +}); + +test('boolean groups', function (t) { + var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { + boolean: ['x','y','z'] + }); + + t.deepEqual(argv, { + x : true, + y : false, + z : true, + _ : [ 'one', 'two', 'three' ] + }); + + t.deepEqual(typeof argv.x, 'boolean'); + t.deepEqual(typeof argv.y, 'boolean'); + t.deepEqual(typeof argv.z, 'boolean'); + t.end(); +}); +test('boolean and alias with chainable api', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var opts = { + herp: { alias: 'h', boolean: true } + }; + var aliasedArgv = parse(aliased, { + boolean: 'herp', + alias: { h: 'herp' } + }); + var propertyArgv = parse(regular, { + boolean: 'herp', + alias: { h: 'herp' } + }); + var expected = { + herp: true, + h: true, + '_': [ 'derp' ] + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test('boolean and alias with options hash', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var opts = { + alias: { 'h': 'herp' }, + boolean: 'herp' + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + '_': [ 'derp' ] + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test('boolean and alias array with options hash', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var alt = [ '--harp', 'derp' ]; + var opts = { + alias: { 'h': ['herp', 'harp'] }, + boolean: 'h' + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var altPropertyArgv = parse(alt, opts); + var expected = { + harp: true, + herp: true, + h: true, + '_': [ 'derp' ] + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.same(altPropertyArgv, expected); + t.end(); +}); + +test('boolean and alias using explicit true', function (t) { + var aliased = [ '-h', 'true' ]; + var regular = [ '--herp', 'true' ]; + var opts = { + alias: { h: 'herp' }, + boolean: 'h' + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + '_': [ ] + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +// regression, see https://github.com/substack/node-optimist/issues/71 +test('boolean and --x=true', function(t) { + var parsed = parse(['--boool', '--other=true'], { + boolean: 'boool' + }); + + t.same(parsed.boool, true); + t.same(parsed.other, 'true'); + + parsed = parse(['--boool', '--other=false'], { + boolean: 'boool' + }); + + t.same(parsed.boool, true); + t.same(parsed.other, 'false'); + t.end(); +}); + +test('boolean --boool=true', function (t) { + var parsed = parse(['--boool=true'], { + default: { + boool: false + }, + boolean: ['boool'] + }); + + t.same(parsed.boool, true); + t.end(); +}); + +test('boolean --boool=false', function (t) { + var parsed = parse(['--boool=false'], { + default: { + boool: true + }, + boolean: ['boool'] + }); + + t.same(parsed.boool, false); + t.end(); +}); + +test('boolean using something similar to true', function (t) { + var opts = { boolean: 'h' }; + var result = parse(['-h', 'true.txt'], opts); + var expected = { + h: true, + '_': ['true.txt'] + }; + + t.same(result, expected); + t.end(); +}); \ No newline at end of file diff --git a/deps/npm/node_modules/minimist/test/dash.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js similarity index 74% rename from deps/npm/node_modules/minimist/test/dash.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js index 8b034b99a9eace..5a4fa5be418596 100644 --- a/deps/npm/node_modules/minimist/test/dash.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js @@ -22,3 +22,10 @@ test('-a -- b', function (t) { t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); }); + +test('move arguments after the -- into their own `--` array', function(t) { + t.plan(1); + t.deepEqual( + parse([ '--name', 'John', 'before', '--', 'after' ], { '--': true }), + { name: 'John', _: [ 'before' ], '--': [ 'after' ] }); +}); diff --git a/deps/npm/node_modules/minimist/test/default_bool.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js similarity index 58% rename from deps/npm/node_modules/minimist/test/default_bool.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js index f0041ee40cd05f..780a311270fcda 100644 --- a/deps/npm/node_modules/minimist/test/default_bool.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js @@ -18,3 +18,18 @@ test('boolean default false', function (t) { t.equal(argv.somefalse, false); t.end(); }); + +test('boolean default to null', function (t) { + var argv = parse([], { + boolean: 'maybe', + default: { maybe: null } + }); + t.equal(argv.maybe, null); + var argv = parse(['--maybe'], { + boolean: 'maybe', + default: { maybe: null } + }); + t.equal(argv.maybe, true); + t.end(); + +}) diff --git a/deps/npm/node_modules/minimist/test/dotted.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js similarity index 75% rename from deps/npm/node_modules/minimist/test/dotted.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js index ef0ae349bf3bf5..d8b3e856ec795f 100644 --- a/deps/npm/node_modules/minimist/test/dotted.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js @@ -14,3 +14,9 @@ test('dotted default', function (t) { t.equal(argv.aa.bb, 11); t.end(); }); + +test('dotted default with no alias', function (t) { + var argv = parse('', {default: {'a.b': 11}}); + t.equal(argv.a.b, 11); + t.end(); +}); diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/kv_short.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/kv_short.js new file mode 100644 index 00000000000000..ae880be4661dd5 --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/kv_short.js @@ -0,0 +1,16 @@ +var parse = require('../'); +var test = require('tape'); + +test('short -k=v' , function (t) { + t.plan(1); + + var argv = parse([ '-b=123' ]); + t.deepEqual(argv, { b: 123, _: [] }); +}); + +test('multi short -k=v' , function (t) { + t.plan(1); + + var argv = parse([ '-a=whatever', '-b=robots' ]); + t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] }); +}); diff --git a/deps/npm/node_modules/minimist/test/long.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js similarity index 100% rename from deps/npm/node_modules/minimist/test/long.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/num.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/num.js new file mode 100644 index 00000000000000..2cc77f4d62ffb2 --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/num.js @@ -0,0 +1,36 @@ +var parse = require('../'); +var test = require('tape'); + +test('nums', function (t) { + var argv = parse([ + '-x', '1234', + '-y', '5.67', + '-z', '1e7', + '-w', '10f', + '--hex', '0xdeadbeef', + '789' + ]); + t.deepEqual(argv, { + x : 1234, + y : 5.67, + z : 1e7, + w : '10f', + hex : 0xdeadbeef, + _ : [ 789 ] + }); + t.deepEqual(typeof argv.x, 'number'); + t.deepEqual(typeof argv.y, 'number'); + t.deepEqual(typeof argv.z, 'number'); + t.deepEqual(typeof argv.w, 'string'); + t.deepEqual(typeof argv.hex, 'number'); + t.deepEqual(typeof argv._[0], 'number'); + t.end(); +}); + +test('already a number', function (t) { + var argv = parse([ '-x', 1234, 789 ]); + t.deepEqual(argv, { x : 1234, _ : [ 789 ] }); + t.deepEqual(typeof argv.x, 'number'); + t.deepEqual(typeof argv._[0], 'number'); + t.end(); +}); diff --git a/deps/npm/node_modules/minimist/test/parse.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js similarity index 54% rename from deps/npm/node_modules/minimist/test/parse.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js index 8a90646696628e..58f24572c47d86 100644 --- a/deps/npm/node_modules/minimist/test/parse.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js @@ -14,7 +14,7 @@ test('parse args', function (t) { ); t.end(); }); - + test('comprehensive', function (t) { t.deepEqual( parse([ @@ -42,32 +42,6 @@ test('comprehensive', function (t) { t.end(); }); -test('nums', function (t) { - var argv = parse([ - '-x', '1234', - '-y', '5.67', - '-z', '1e7', - '-w', '10f', - '--hex', '0xdeadbeef', - '789' - ]); - t.deepEqual(argv, { - x : 1234, - y : 5.67, - z : 1e7, - w : '10f', - hex : 0xdeadbeef, - _ : [ 789 ] - }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv.y, 'number'); - t.deepEqual(typeof argv.z, 'number'); - t.deepEqual(typeof argv.w, 'string'); - t.deepEqual(typeof argv.hex, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); -}); - test('flag boolean', function (t) { var argv = parse([ '-t', 'moo' ], { boolean: 't' }); t.deepEqual(argv, { t : true, _ : [ 'moo' ] }); @@ -80,58 +54,22 @@ test('flag boolean value', function (t) { boolean: [ 't', 'verbose' ], default: { verbose: true } }); - + t.deepEqual(argv, { verbose: false, t: true, _: ['moo'] }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); -test('flag boolean default false', function (t) { - var argv = parse(['moo'], { - boolean: ['t', 'verbose'], - default: { verbose: false, t: false } - }); - - t.deepEqual(argv, { - verbose: false, - t: false, - _: ['moo'] - }); - t.deepEqual(typeof argv.verbose, 'boolean'); t.deepEqual(typeof argv.t, 'boolean'); t.end(); - -}); - -test('boolean groups', function (t) { - var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { - boolean: ['x','y','z'] - }); - - t.deepEqual(argv, { - x : true, - y : false, - z : true, - _ : [ 'one', 'two', 'three' ] - }); - - t.deepEqual(typeof argv.x, 'boolean'); - t.deepEqual(typeof argv.y, 'boolean'); - t.deepEqual(typeof argv.z, 'boolean'); - t.end(); }); test('newlines in params' , function (t) { var args = parse([ '-s', "X\nX" ]) t.deepEqual(args, { _ : [], s : "X\nX" }); - + // reproduce in bash: // VALUE="new // line" @@ -145,7 +83,7 @@ test('strings' , function (t) { var s = parse([ '-s', '0001234' ], { string: 's' }).s; t.equal(s, '0001234'); t.equal(typeof s, 'string'); - + var x = parse([ '-x', '56' ], { string: 'x' }).x; t.equal(x, '56'); t.equal(typeof x, 'string'); @@ -183,6 +121,29 @@ test('empty strings', function(t) { }); +test('string and alias', function(t) { + var x = parse([ '--str', '000123' ], { + string: 's', + alias: { s: 'str' } + }); + + t.equal(x.str, '000123'); + t.equal(typeof x.str, 'string'); + t.equal(x.s, '000123'); + t.equal(typeof x.s, 'string'); + + var y = parse([ '-s', '000123' ], { + string: 'str', + alias: { str: 's' } + }); + + t.equal(y.str, '000123'); + t.equal(typeof y.str, 'string'); + t.equal(y.s, '000123'); + t.equal(typeof y.s, 'string'); + t.end(); +}); + test('slashBreak', function (t) { t.same( parse([ '-I/foo/bar/baz' ]), @@ -222,7 +183,7 @@ test('nested dotted objects', function (t) { '--foo.quux.quibble', '5', '--foo.quux.o_O', '--beep.boop' ]); - + t.same(argv.foo, { bar : 3, baz : 4, @@ -234,85 +195,3 @@ test('nested dotted objects', function (t) { t.same(argv.beep, { boop : true }); t.end(); }); - -test('boolean and alias with chainable api', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = parse(aliased, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var propertyArgv = parse(regular, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - alias: { 'h': 'herp' }, - boolean: 'herp' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias using explicit true', function (t) { - var aliased = [ '-h', 'true' ]; - var regular = [ '--herp', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -// regression, see https://github.com/substack/node-optimist/issues/71 -test('boolean and --x=true', function(t) { - var parsed = parse(['--boool', '--other=true'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'true'); - - parsed = parse(['--boool', '--other=false'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'false'); - t.end(); -}); diff --git a/deps/npm/node_modules/minimist/test/parse_modified.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js similarity index 77% rename from deps/npm/node_modules/minimist/test/parse_modified.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js index 21851b036ee6d9..a22248532f0c6f 100644 --- a/deps/npm/node_modules/minimist/test/parse_modified.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js @@ -3,7 +3,7 @@ var test = require('tape'); test('parse with modifier functions' , function (t) { t.plan(1); - + var argv = parse([ '-b', '123' ], { boolean: 'b' }); - t.deepEqual(argv, { b: true, _: ['123'] }); + t.deepEqual(argv, { b: true, _: [123] }); }); diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/proto.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/proto.js new file mode 100644 index 00000000000000..8649107ecba1f0 --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/proto.js @@ -0,0 +1,44 @@ +var parse = require('../'); +var test = require('tape'); + +test('proto pollution', function (t) { + var argv = parse(['--__proto__.x','123']); + t.equal({}.x, undefined); + t.equal(argv.__proto__.x, undefined); + t.equal(argv.x, undefined); + t.end(); +}); + +test('proto pollution (array)', function (t) { + var argv = parse(['--x','4','--x','5','--x.__proto__.z','789']); + t.equal({}.z, undefined); + t.deepEqual(argv.x, [4,5]); + t.equal(argv.x.z, undefined); + t.equal(argv.x.__proto__.z, undefined); + t.end(); +}); + +test('proto pollution (number)', function (t) { + var argv = parse(['--x','5','--x.__proto__.z','100']); + t.equal({}.z, undefined); + t.equal((4).z, undefined); + t.equal(argv.x, 5); + t.equal(argv.x.z, undefined); + t.end(); +}); + +test('proto pollution (string)', function (t) { + var argv = parse(['--x','abc','--x.__proto__.z','def']); + t.equal({}.z, undefined); + t.equal('...'.z, undefined); + t.equal(argv.x, 'abc'); + t.equal(argv.x.z, undefined); + t.end(); +}); + +test('proto pollution (constructor)', function (t) { + var argv = parse(['--constructor.prototype.y','123']); + t.equal({}.y, undefined); + t.equal(argv.y, undefined); + t.end(); +}); diff --git a/deps/npm/node_modules/minimist/test/short.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js similarity index 99% rename from deps/npm/node_modules/minimist/test/short.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js index d513a1c2529095..ac18880f1eb50c 100644 --- a/deps/npm/node_modules/minimist/test/short.js +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js @@ -43,7 +43,7 @@ test('short', function (t) { ); t.end(); }); - + test('mixed short bool and capture', function (t) { t.same( parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), @@ -54,7 +54,7 @@ test('mixed short bool and capture', function (t) { ); t.end(); }); - + test('short and long', function (t) { t.deepEqual( parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/stop_early.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/stop_early.js new file mode 100644 index 00000000000000..bdf9fbcb0b57ab --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/stop_early.js @@ -0,0 +1,15 @@ +var parse = require('../'); +var test = require('tape'); + +test('stops parsing on the first non-option when stopEarly is set', function (t) { + var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], { + stopEarly: true + }); + + t.deepEqual(argv, { + aaa: 'bbb', + _: ['ccc', '--ddd'] + }); + + t.end(); +}); diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/unknown.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/unknown.js new file mode 100644 index 00000000000000..462a36bdd7ec9f --- /dev/null +++ b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/unknown.js @@ -0,0 +1,102 @@ +var parse = require('../'); +var test = require('tape'); + +test('boolean and alias is not unknown', function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = [ '-h', 'true', '--derp', 'true' ]; + var regular = [ '--herp', 'true', '-d', 'true' ]; + var opts = { + alias: { h: 'herp' }, + boolean: 'h', + unknown: unknownFn + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + + t.same(unknown, ['--derp', '-d']); + t.end(); +}); + +test('flag boolean true any double hyphen argument is not unknown', function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], { + boolean: true, + unknown: unknownFn + }); + t.same(unknown, ['--tacos=good', 'cow', '-p']); + t.same(argv, { + honk: true, + _: [] + }); + t.end(); +}); + +test('string and alias is not unknown', function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = [ '-h', 'hello', '--derp', 'goodbye' ]; + var regular = [ '--herp', 'hello', '-d', 'moon' ]; + var opts = { + alias: { h: 'herp' }, + string: 'h', + unknown: unknownFn + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + + t.same(unknown, ['--derp', '-d']); + t.end(); +}); + +test('default and alias is not unknown', function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = [ '-h', 'hello' ]; + var regular = [ '--herp', 'hello' ]; + var opts = { + default: { 'h': 'bar' }, + alias: { 'h': 'herp' }, + unknown: unknownFn + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + + t.same(unknown, []); + t.end(); + unknownFn(); // exercise fn for 100% coverage +}); + +test('value following -- is not unknown', function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = [ '--bad', '--', 'good', 'arg' ]; + var opts = { + '--': true, + unknown: unknownFn + }; + var argv = parse(aliased, opts); + + t.same(unknown, ['--bad']); + t.same(argv, { + '--': ['good', 'arg'], + '_': [] + }) + t.end(); +}); diff --git a/deps/npm/node_modules/minimist/test/whitespace.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js similarity index 100% rename from deps/npm/node_modules/minimist/test/whitespace.js rename to deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js diff --git a/deps/npm/node_modules/mkdirp/package.json b/deps/npm/node_modules/mkdirp/package.json index aa7b9061128f2f..a880e2ef545118 100644 --- a/deps/npm/node_modules/mkdirp/package.json +++ b/deps/npm/node_modules/mkdirp/package.json @@ -1,47 +1,41 @@ { - "_args": [ - [ - "mkdirp@0.5.1", - "/Users/rebecca/code/npm" - ] - ], - "_from": "mkdirp@0.5.1", - "_id": "mkdirp@0.5.1", + "_from": "mkdirp@0.5.3", + "_id": "mkdirp@0.5.3", "_inBundle": false, - "_integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "_integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", "_location": "/mkdirp", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "mkdirp@0.5.1", + "raw": "mkdirp@0.5.3", "name": "mkdirp", "escapedName": "mkdirp", - "rawSpec": "0.5.1", + "rawSpec": "0.5.3", "saveSpec": null, - "fetchSpec": "0.5.1" + "fetchSpec": "0.5.3" }, "_requiredBy": [ + "#USER", "/", "/cacache", "/cmd-shim", "/copy-concurrently", "/eslint", - "/fstream", "/gentle-fs", + "/libcipm", "/move-concurrently", "/node-gyp", - "/npm-profile/cacache", - "/npm-registry-fetch/cacache", "/pacote", - "/tacks", + "/spawn-wrap", "/tap", "/tar", "/write" ], - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "_spec": "0.5.1", - "_where": "/Users/rebecca/code/npm", + "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "_shasum": "5a514b7179259287952881e94410ec5465659f8c", + "_spec": "mkdirp@0.5.3", + "_where": "/Users/darcyclarke/Documents/Repos/npm/npm/cli", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -53,14 +47,20 @@ "bugs": { "url": "https://github.com/substack/node-mkdirp/issues" }, + "bundleDependencies": false, "dependencies": { - "minimist": "0.0.8" + "minimist": "^1.2.5" }, + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "description": "Recursively mkdir, like `mkdir -p`", "devDependencies": { - "mock-fs": "2 >=2.7.0", - "tap": "1" + "mock-fs": "^3.7.0", + "tap": "^5.4.2" }, + "files": [ + "bin", + "index.js" + ], "homepage": "https://github.com/substack/node-mkdirp#readme", "keywords": [ "mkdir", @@ -69,6 +69,9 @@ "license": "MIT", "main": "index.js", "name": "mkdirp", + "publishConfig": { + "tag": "legacy" + }, "repository": { "type": "git", "url": "git+https://github.com/substack/node-mkdirp.git" @@ -76,5 +79,5 @@ "scripts": { "test": "tap test/*.js" }, - "version": "0.5.1" + "version": "0.5.3" } diff --git a/deps/npm/node_modules/mkdirp/test/chmod.js b/deps/npm/node_modules/mkdirp/test/chmod.js deleted file mode 100644 index 6a404b932f941f..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/chmod.js +++ /dev/null @@ -1,41 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); -var _0744 = parseInt('0744', 8); - -var ps = [ '', 'tmp' ]; - -for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); -} - -var file = ps.join('/'); - -test('chmod-pre', function (t) { - var mode = _0744 - mkdirp(file, mode, function (er) { - t.ifError(er, 'should not error'); - fs.stat(file, function (er, stat) { - t.ifError(er, 'should exist'); - t.ok(stat && stat.isDirectory(), 'should be directory'); - t.equal(stat && stat.mode & _0777, mode, 'should be 0744'); - t.end(); - }); - }); -}); - -test('chmod', function (t) { - var mode = _0755 - mkdirp(file, mode, function (er) { - t.ifError(er, 'should not error'); - fs.stat(file, function (er, stat) { - t.ifError(er, 'should exist'); - t.ok(stat && stat.isDirectory(), 'should be directory'); - t.end(); - }); - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/clobber.js b/deps/npm/node_modules/mkdirp/test/clobber.js deleted file mode 100644 index 2433b9ad548557..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/clobber.js +++ /dev/null @@ -1,38 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0755 = parseInt('0755', 8); - -var ps = [ '', 'tmp' ]; - -for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); -} - -var file = ps.join('/'); - -// a file in the way -var itw = ps.slice(0, 3).join('/'); - - -test('clobber-pre', function (t) { - console.error("about to write to "+itw) - fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.'); - - fs.stat(itw, function (er, stat) { - t.ifError(er) - t.ok(stat && stat.isFile(), 'should be file') - t.end() - }) -}) - -test('clobber', function (t) { - t.plan(2); - mkdirp(file, _0755, function (err) { - t.ok(err); - t.equal(err.code, 'ENOTDIR'); - t.end(); - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/mkdirp.js b/deps/npm/node_modules/mkdirp/test/mkdirp.js deleted file mode 100644 index eaa8921c7f1488..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/mkdirp.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('woo', function (t) { - t.plan(5); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/opts_fs.js b/deps/npm/node_modules/mkdirp/test/opts_fs.js deleted file mode 100644 index 97186b62e0bb90..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/opts_fs.js +++ /dev/null @@ -1,29 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var test = require('tap').test; -var mockfs = require('mock-fs'); -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('opts.fs', function (t) { - t.plan(5); - - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/beep/boop/' + [x,y,z].join('/'); - var xfs = mockfs.fs(); - - mkdirp(file, { fs: xfs, mode: _0755 }, function (err) { - t.ifError(err); - xfs.exists(file, function (ex) { - t.ok(ex, 'created file'); - xfs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/opts_fs_sync.js b/deps/npm/node_modules/mkdirp/test/opts_fs_sync.js deleted file mode 100644 index 6c370aa6e93a20..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/opts_fs_sync.js +++ /dev/null @@ -1,27 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var test = require('tap').test; -var mockfs = require('mock-fs'); -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('opts.fs sync', function (t) { - t.plan(4); - - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/beep/boop/' + [x,y,z].join('/'); - var xfs = mockfs.fs(); - - mkdirp.sync(file, { fs: xfs, mode: _0755 }); - xfs.exists(file, function (ex) { - t.ok(ex, 'created file'); - xfs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/perm.js b/deps/npm/node_modules/mkdirp/test/perm.js deleted file mode 100644 index fbce44b82bafee..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/perm.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('async perm', function (t) { - t.plan(5); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); - -test('async root perm', function (t) { - mkdirp('/tmp', _0755, function (err) { - if (err) t.fail(err); - t.end(); - }); - t.end(); -}); diff --git a/deps/npm/node_modules/mkdirp/test/perm_sync.js b/deps/npm/node_modules/mkdirp/test/perm_sync.js deleted file mode 100644 index 398229fe54ab04..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/perm_sync.js +++ /dev/null @@ -1,36 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('sync perm', function (t) { - t.plan(4); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json'; - - mkdirp.sync(file, _0755); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); - -test('sync root perm', function (t) { - t.plan(3); - - var file = '/tmp'; - mkdirp.sync(file, _0755); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/race.js b/deps/npm/node_modules/mkdirp/test/race.js deleted file mode 100644 index b0b9e183c902fb..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/race.js +++ /dev/null @@ -1,37 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('race', function (t) { - t.plan(10); - var ps = [ '', 'tmp' ]; - - for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); - } - var file = ps.join('/'); - - var res = 2; - mk(file); - - mk(file); - - function mk (file, cb) { - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }) - }); - } -}); diff --git a/deps/npm/node_modules/mkdirp/test/rel.js b/deps/npm/node_modules/mkdirp/test/rel.js deleted file mode 100644 index 4ddb34276a72a2..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/rel.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('rel', function (t) { - t.plan(5); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var cwd = process.cwd(); - process.chdir('/tmp'); - - var file = [x,y,z].join('/'); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - process.chdir(cwd); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/return.js b/deps/npm/node_modules/mkdirp/test/return.js deleted file mode 100644 index bce68e5613e3f9..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/return.js +++ /dev/null @@ -1,25 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('return value', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - // should return the first dir created. - // By this point, it would be profoundly surprising if /tmp didn't - // already exist, since every other test makes things in there. - mkdirp(file, function (err, made) { - t.ifError(err); - t.equal(made, '/tmp/' + x); - mkdirp(file, function (err, made) { - t.ifError(err); - t.equal(made, null); - }); - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/return_sync.js b/deps/npm/node_modules/mkdirp/test/return_sync.js deleted file mode 100644 index 7c222d3558d6f0..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/return_sync.js +++ /dev/null @@ -1,24 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('return value', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - // should return the first dir created. - // By this point, it would be profoundly surprising if /tmp didn't - // already exist, since every other test makes things in there. - // Note that this will throw on failure, which will fail the test. - var made = mkdirp.sync(file); - t.equal(made, '/tmp/' + x); - - // making the same file again should have no effect. - made = mkdirp.sync(file); - t.equal(made, null); -}); diff --git a/deps/npm/node_modules/mkdirp/test/root.js b/deps/npm/node_modules/mkdirp/test/root.js deleted file mode 100644 index 9e7d079d9fc757..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/root.js +++ /dev/null @@ -1,19 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0755 = parseInt('0755', 8); - -test('root', function (t) { - // '/' on unix, 'c:/' on windows. - var file = path.resolve('/'); - - mkdirp(file, _0755, function (err) { - if (err) throw err - fs.stat(file, function (er, stat) { - if (er) throw er - t.ok(stat.isDirectory(), 'target is a directory'); - t.end(); - }) - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/sync.js b/deps/npm/node_modules/mkdirp/test/sync.js deleted file mode 100644 index 8c8dc938c8b4a8..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('sync', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - try { - mkdirp.sync(file, _0755); - } catch (err) { - t.fail(err); - return t.end(); - } - - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/umask.js b/deps/npm/node_modules/mkdirp/test/umask.js deleted file mode 100644 index 2033c63a414efa..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/umask.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('implicit mode from umask', function (t) { - t.plan(5); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - mkdirp(file, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0777 & (~process.umask())); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }) - }); -}); diff --git a/deps/npm/node_modules/mkdirp/test/umask_sync.js b/deps/npm/node_modules/mkdirp/test/umask_sync.js deleted file mode 100644 index 11a76147496a52..00000000000000 --- a/deps/npm/node_modules/mkdirp/test/umask_sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('umask sync modes', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - try { - mkdirp.sync(file); - } catch (err) { - t.fail(err); - return t.end(); - } - - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, (_0777 & (~process.umask()))); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/deps/npm/node_modules/node-gyp/.github/workflows/Python_tests.yml b/deps/npm/node_modules/node-gyp/.github/workflows/Python_tests.yml new file mode 100644 index 00000000000000..dba9d10933cbf9 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/.github/workflows/Python_tests.yml @@ -0,0 +1,40 @@ +# TODO: Line 15, enable python-version: 3.5 +# TODO: Line 36, enable pytest --doctest-modules + +name: Python_tests +on: [push, pull_request] +jobs: + Python_tests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + max-parallel: 15 + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + python-version: [2.7, 3.6, 3.7, 3.8] # 3.5, + steps: + - uses: actions/checkout@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest # -r requirements.txt + - name: Lint with flake8 + if: matrix.os == 'ubuntu-latest' + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest (Linux and macOS) + if: matrix.os != 'windows-latest' + run: pytest + - name: Test with pytest (Windows) + if: matrix.os == 'windows-latest' + shell: bash + run: GYP_MSVS_VERSION=2015 GYP_MSVS_OVERRIDE_PATH="C:\\Dummy" pytest + # - name: Run doctests with pytest + # run: pytest --doctest-modules diff --git a/deps/npm/node_modules/node-gyp/.travis.yml b/deps/npm/node_modules/node-gyp/.travis.yml index e43ba548fb784b..22f7bc12fc349c 100644 --- a/deps/npm/node_modules/node-gyp/.travis.yml +++ b/deps/npm/node_modules/node-gyp/.travis.yml @@ -1,33 +1,17 @@ dist: xenial language: python cache: pip -matrix: +addons: + homebrew: + update: true + packages: + - npm + - pyenv +jobs: include: - name: "Python 2.7 on Linux" env: NODE_GYP_FORCE_PYTHON=python2 python: 2.7 - - name: "Python 2.7 on macOS" - os: osx - osx_image: xcode11.2 - language: shell # 'language: python' is not yet supported on macOS - env: NODE_GYP_FORCE_PYTHON=python2 - before_install: HOMEBREW_NO_AUTO_UPDATE=1 brew install npm - - name: "Node.js 6 & Python 2.7 on Windows" - os: windows - language: node_js - node_js: 6 # node - env: >- - PATH=/c/Python27:/c/Python27/Scripts:$PATH - NODE_GYP_FORCE_PYTHON=/c/Python27/python.exe - before_install: choco install python2 - - name: "Node.js 12 & Python 2.7 on Windows" - os: windows - language: node_js - node_js: 12 # node - env: >- - PATH=/c/Python27:/c/Python27/Scripts:$PATH - NODE_GYP_FORCE_PYTHON=/c/Python27/python.exe - before_install: choco install python2 - name: "Node.js 6 & Python 3.8 on Linux" python: 3.8 @@ -58,12 +42,36 @@ matrix: env: NODE_GYP_FORCE_PYTHON=python3 before_install: nvm install 12 - - name: "Python 3.7 on macOS" + - name: "Python 2.7 on macOS" os: osx osx_image: xcode11.2 language: shell # 'language: python' is not yet supported on macOS - env: NODE_GYP_FORCE_PYTHON=python3 - before_install: HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade npm || true + env: NODE_GYP_FORCE_PYTHON=python2 PATH=$HOME/.pyenv/shims:$PATH PYENV_VERSION=2.7.17 + before_install: pyenv install $PYENV_VERSION + - name: "Python 3.8 on macOS" + os: osx + osx_image: xcode11.2 + language: shell # 'language: python' is not yet supported on macOS + env: NODE_GYP_FORCE_PYTHON=python3 PATH=$HOME/.pyenv/shims:$PATH PYENV_VERSION=3.8.0 + before_install: pyenv install $PYENV_VERSION + + - name: "Node.js 6 & Python 2.7 on Windows" + os: windows + language: node_js + node_js: 6 # node + env: >- + PATH=/c/Python27:/c/Python27/Scripts:$PATH + NODE_GYP_FORCE_PYTHON=/c/Python27/python.exe + before_install: choco install python2 + - name: "Node.js 12 & Python 2.7 on Windows" + os: windows + language: node_js + node_js: 12 # node + env: >- + PATH=/c/Python27:/c/Python27/Scripts:$PATH + NODE_GYP_FORCE_PYTHON=/c/Python27/python.exe + before_install: choco install python2 + - name: "Node.js 12 & Python 3.7 on Windows" os: windows language: node_js @@ -82,20 +90,19 @@ matrix: before_install: choco install python install: - #- pip install -r requirements.txt - - pip install --upgrade flake8 pytest==4.6.6 # pytest 5 no longer supports legacy Python + - python -m pip install --upgrade flake8 pytest==4.6.6 # pytest 5 no longer supports legacy Python before_script: - - flake8 --version + - python -m flake8 --version # stop the build if there are Python syntax errors or undefined names - - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + - python -m flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. Two space indentation is OK. The GitHub editor is 127 chars wide - - flake8 . --count --exit-zero --ignore=E111,E114,W503 --max-complexity=10 --max-line-length=127 --statistics + - python -m flake8 . --count --exit-zero --ignore=E111,E114,W503 --max-complexity=10 --max-line-length=127 --statistics - npm install - npm list script: - node -e 'require("npmlog").level="verbose"; require("./lib/find-python")(null,()=>{})' - npm test - - GYP_MSVS_VERSION=2015 GYP_MSVS_OVERRIDE_PATH="C:\\Dummy" pytest + - GYP_MSVS_VERSION=2015 GYP_MSVS_OVERRIDE_PATH="C:\\Dummy" python -m pytest notifications: on_success: change on_failure: change # `always` will be the setting once code changes slow down diff --git a/deps/npm/node_modules/node-gyp/CHANGELOG.md b/deps/npm/node_modules/node-gyp/CHANGELOG.md index 28f523779841de..5dc6bb4d47069b 100644 --- a/deps/npm/node_modules/node-gyp/CHANGELOG.md +++ b/deps/npm/node_modules/node-gyp/CHANGELOG.md @@ -1,3 +1,21 @@ +v5.1.0 2020-02-05 +================= + +* [[`f37a8b40d0`](https://github.com/nodejs/node-gyp/commit/f37a8b40d0)] - **doc**: add GitHub Actions badge (#1994) (Rod Vagg) [#1994](https://github.com/nodejs/node-gyp/pull/1994) +* [[`cb3f6aae5e`](https://github.com/nodejs/node-gyp/commit/cb3f6aae5e)] - **doc**: update macOS\_Catalina.md (#1992) (James Home) [#1992](https://github.com/nodejs/node-gyp/pull/1992) +* [[`0607596a4c`](https://github.com/nodejs/node-gyp/commit/0607596a4c)] - **doc**: fix typo in README.md (#1985) (Suraneti Rodsuwan) [#1985](https://github.com/nodejs/node-gyp/pull/1985) +* [[`0d5a415a14`](https://github.com/nodejs/node-gyp/commit/0d5a415a14)] - **doc**: add travis badge (Rod Vagg) [#1971](https://github.com/nodejs/node-gyp/pull/1971) +* [[`103740cd95`](https://github.com/nodejs/node-gyp/commit/103740cd95)] - **gyp**: list(dict) so we can del dict(key) while iterating (Christian Clauss) [#2009](https://github.com/nodejs/node-gyp/pull/2009) +* [[`278dcddbdd`](https://github.com/nodejs/node-gyp/commit/278dcddbdd)] - **lib**: ignore VS instances that cause COMExceptions (Andrew Casey) [#2018](https://github.com/nodejs/node-gyp/pull/2018) +* [[`1694907bbf`](https://github.com/nodejs/node-gyp/commit/1694907bbf)] - **lib**: compatibility with semver ≥ 7 (`new` for semver.Range) (Xavier Guimard) [#2006](https://github.com/nodejs/node-gyp/pull/2006) +* [[`a3f1143514`](https://github.com/nodejs/node-gyp/commit/a3f1143514)] - **(SEMVER-MINOR)** **lib**: noproxy support, match proxy detection to `request` (Matias Lopez) [#1978](https://github.com/nodejs/node-gyp/pull/1978) +* [[`52365819c7`](https://github.com/nodejs/node-gyp/commit/52365819c7)] - **test**: remove old docker test harness (#1993) (Rod Vagg) [#1993](https://github.com/nodejs/node-gyp/pull/1993) +* [[`bc509c511d`](https://github.com/nodejs/node-gyp/commit/bc509c511d)] - **test**: add Windows to GitHub Actions testing (#1996) (Christian Clauss) [#1996](https://github.com/nodejs/node-gyp/pull/1996) +* [[`91ee26dd48`](https://github.com/nodejs/node-gyp/commit/91ee26dd48)] - **test**: fix typo in header download test (#2001) (Richard Lau) [#2001](https://github.com/nodejs/node-gyp/pull/2001) +* [[`0923f344c9`](https://github.com/nodejs/node-gyp/commit/0923f344c9)] - **test**: direct python invocation & simpler pyenv (Matias Lopez) [#1979](https://github.com/nodejs/node-gyp/pull/1979) +* [[`32c8744b34`](https://github.com/nodejs/node-gyp/commit/32c8744b34)] - **test**: fix macOS Travis on Python 2.7 & 3.7 (Christian Clauss) [#1979](https://github.com/nodejs/node-gyp/pull/1979) +* [[`fd4b1351e4`](https://github.com/nodejs/node-gyp/commit/fd4b1351e4)] - **test**: initial Github Actions with Ubuntu & macOS (Christian Clauss) [#1985](https://github.com/nodejs/node-gyp/pull/1985) + v5.0.7 2019-12-16 ================= diff --git a/deps/npm/node_modules/node-gyp/README.md b/deps/npm/node_modules/node-gyp/README.md index e39c5de8ea0453..79abf4ba71fe3d 100644 --- a/deps/npm/node_modules/node-gyp/README.md +++ b/deps/npm/node_modules/node-gyp/README.md @@ -1,5 +1,8 @@ # `node-gyp` - Node.js native addon build tool +[![Travis CI](https://travis-ci.com/nodejs/node-gyp.svg?branch=master)](https://travis-ci.com/nodejs/node-gyp) +[![Build Status](https://github.com/nodejs/node-gyp/workflows/Python_tests/badge.svg)](https://github.com/nodejs/node-gyp/actions?workflow=Python_tests) + `node-gyp` is a cross-platform command-line tool written in Node.js for compiling native addon modules for Node.js. It contains a fork of the [gyp](https://gyp.gsrc.io) project that was previously used by the Chromium @@ -14,7 +17,7 @@ etc.), regardless of what version of Node.js is actually installed on your syste ## Features * The same build commands work on any of the supported platforms - * Supports the targetting of different versions of Node.js + * Supports the targeting of different versions of Node.js ## Installation @@ -191,7 +194,8 @@ Some additional resources for Node.js native addons and writing `gyp` configurat | `--devdir=$path` | SDK download directory (default is OS cache directory) | `--ensure` | Don't reinstall headers if already present | `--dist-url=$url` | Download header tarball from custom URL -| `--proxy=$url` | Set HTTP proxy for downloading header tarball +| `--proxy=$url` | Set HTTP(S) proxy for downloading header tarball +| `--noproxy=$urls` | Set urls to ignore proxies when downloading header tarball | `--cafile=$cafile` | Override default CA chain (to download tarball) | `--nodedir=$path` | Set the path to the node source code | `--python=$path` | Set path to the Python binary diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29a620fe4e274ba38d1343c70a43db676a612b4a GIT binary patch literal 7654 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 literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..39ccea3454f79de724e5d445270c448de8e2ed89 GIT binary patch literal 16426 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ʃm#*RKy_M>G9Y+?x472b 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 literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..07853302a501f736a35f6681c50452d1c8d43656 GIT binary patch literal 168 zcmZSn%*&;{s5mZ}0SXv_v;zPHHijqnln?pbx?Yl{uM7U{-o+UTRTdNq&)je0*kJ ZW=VX!UO{CE2hda-h)z3@-6cTG003e1DKG#4 literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.pyc new file mode 100644 index 0000000000000000000000000000000000000000..515194caa3ff4e7f24be1d28d243e63fa97665c1 GIT binary patch literal 71261 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

    ^5AQteDoiUUI^pwua`EoLhG zBF=x+=~Y^%15arg?jn#3Z!F!tUQ2NsmTX8A?8>&%y``E6lfJjJ1V7CSFwZ1N;5Rc5 z+k#J$7M@YL(0%avUYBBOj%n46WX~%T$&{SzW`X1kB-uq}$;pyQ41`Ml9OCa;Giws9 zPIOhg#tMXv^_Or#$W!6?G5E0Tlw3-7=a%yCpt~<3mCMR7GbK|h_8pt@5aU~6xWG4r zIWVYJdo71v4jub?0p+oXRF6eAMN1u^1&~*a<=5ANu}F6i zUdwO4yiI-!@L?UiLtz45hP(A*a>=;(#e_1KB6hRPv?9rh0Ku|TZi@~?vGO2!ELz0j zJZVU{OL?Gf>qOC}NA%j^=#+%|_s(QMp-s-ZInRM`E}Za_MaeBW!H%4);Hap+*4f@F zsew=+(tV3I${Drc7LAS4-Gb<<;ErS(9r3Wkm@^Q3=yj=^f}#@o3z1$KjrRI>(de>o z7j4be##fJ+ zEeWeqy}vU#Mvi>=?@4ZaUbyaRBBh0%XzRCX9Hn#liN3{4p31Gs?qiqUpDbHFtV-^6 z`cPklQTOg%Mh`rgOy4JM>vY*Itye4jlu$0`344TG6?J2%kDv4Hy_(xxN*qk`S5PpF z(~v7cYmUY@#K^%ShN&v@kfcrwB$a)N%)|S|H|cZM`FV%qAJDg;P^QSz9b%gD%m?zo z^nqmlKlf3|@`y_zRggKrc86l<)z0M&$;1PG{_FjVW3HMZzjUA2 zK$QWmMjbe4)-6Wp#_|61^q8?&-snVX4zT?@{W;hkQoE|)K>@D<59u2UsE(FUn0vL7 zrX1sb9!}m`qk5YMik0%P|9{Y4KRaUMKmS>Dh}J{wsJeLo#$gw|_3 zh&*=b-eehA1soqO8bd0)cYv4=^d&d$9ayGMo0HbR=ozs7B%2wyb--B3-!QNg^=_u# z?aA^M*Z5Gfv_&wZ>fRW5lBREbcA$-~JgYJ=k~rwnjejxFJmLbKS@{?5YJ^2W{s(}L<*h|MF$a&V(O{C{Nm+n|a~@ekPb0GORI(KLfx-8vHq9b1 zyFMA2dtnWbHnI%7u1~T{MKuQ$rk&Q;JLYM_WehVgx7E|N&D8^GU#}{(e742H`T8|^ zhe`WUmw(3PK`+}qecRLra%VrghMr93U4K?9FZ)Mp+Rx=R!9GROS0VxXcfTT-MPm8Vp>T+}9Yr}!S&By1(Jmo(>cSs*KqT9~LJB!rr1%)VU*nv^+E zmdlf?3hwIQxRr$Q683_RFa(w{Lvy%*oFNh2ZXj)$xnZfA_38}O$@{6tRmbc=nvum~ zd}!k(%hzhAuKQ{;6$|>c#YMA9wOR#twYFtv;^IY|MKzm^60YM_;jAYJZ#LXr5i}ErQ9LJdWJWHBedBi zJxdcdWS_ys@J#q?bom-fCN@ZXl6-bkpml6T5BtM!F~zTfBEVZEo|T4galZB5Zx9co z_6G;7@#r|Jzy(@SSa_`EZUv6ZJuOfU%84@bq~yM(HPxkG&Bs=axENxMsmGmR+sUX) zrU-wU(;mOE_-si-;kaR0O{~>SwRv^*$HbuY>`Zm`a=rTAUt>r@|E~U=ueRX(u0CB3 z*O%POwk!OH8>K|~tX!XK9$@3bT^lT4kPsua75K0~@*IRS*^VBz99*xyg-k%*z z<&<`M^u0Vo5o4ynffqEG+*h>M|PuLSgmQ0K3_UkI0P%%M1en?rRHa~9* zT)LoWao;C1G+Qs&AvX+T(u7eX3N_4Z^3x3i;0B^YX;$Edl-Uf!;A>K*P39=0t2jHw z_J|_Z;PGOkEtWZiBK4`z3Z}2ADm9@j_Rm$u%#xGFF0)AG&#zC_+Rm!@N|tlvnazKe z#;WrI$R6Ji$a9i@r5=yz@i-4}Z!$X0XH=Tv?5Mq_?G580D=JU5O52hEUd2!K%FR<# zncP|@!;?Bar&_@$vF8iVpL}W5U&4HZTqp=i&nsP;M~0g$?CyzFFF5xkug)!NMR|vi zq)%^9%MCI!Gjd-Br}{lt%zH?@P>`#QY}2RI=6lqpCfW4|5%JLZy*uwmm05!8sALx_ zC_U679)?ACylW3&>&n$E70NccO20*+Z{=aI1R(^l3X;(Jx2lyKFWA`I1*{J05O%l) zo#f83!=%X1Q(3e0+lnUU*=HcEe#KuWGjmYC%&~L+@bn?&)`$bm4g7I$=I}g9RFAjQ zDqvUJ;bTr2!FgfVpH!nmvf8d^bJf;TKi1pfzPpg6L+3hTP3xVdo%#Pe`=o!}PQH4`DAPJoWhH;qS}IgjNXh2oDMnHWQBYCH)q|=@ zQF+foVnx2Om@;hzvs7DnQ=we8uq~;!zpsSQFioGVDlYLMVUEkLF(fa6eet7}=1Fey zQ#CyFU!5$EPt|9_!&b^y@m;YH!n?M7g3WDNc_|0oC9_sq^iCF2hkvg4vwY#P(aD5W z3cw+LO<1KQ3ibuP%R45o3>GTQJd&~Z7hWWiA6%F`V{kbV;CmG8`hGsxBP$UIZkku} zz|9khNb+SxS)@P5L_^}0ySp6Kv95wPRInda+=F_wc$gAk92cV+idoZnu?obdR2THB z(7mR!Dml-?N+6?nhD_#V>x1T$!tbisO9bzr>WVts2S<}h@szNJcJZGT=il`25@)o{ zd>c0!5AtF}P!PGyYQ59;lM31?h<1sW7_pdUd{1AYHJRcg(nXpA>r7<x`G82=ApO)JE~L$XNi8Xhm*2j<)=Yz7{*#a3O{uXT_jNQ@jf3A`dz zI9_aF86vW<*aGvd2Zcc<`DHyUJ|eCPWbrY>w6t)*^|4F4yZUZP?<@z_0;uoCOUZeH z`JM$a6h`z}F2vy;=6#~&Q850dzFy zj>Dgf3PzPX{V^U6dAe42lW;1ph&$<^d0`Xau2(_my3GaNO}3Y+8KzPrzkCj}Gp&NX zdRsmJP4!&U6_E7P3jL}czotiLA+OqM*5dVS1(<<<8`(CkYH^+ko>bZnJ6O608eCI1 z1(HH&hOUT5K$C3*}O7$R%W*7l<9=m+s~dtu6Pd+Y-keNBn3550QMAxpg|$z6#I71WPJfun@70PO zS2F|n->4)YbPwDwt!-suf9>8n$hO2yqYUmQgxO|rvvz1 zkJ%U6{t5ZI@``+jElw(l3nkxC6wH;5(ps2)jiTc4=KTE`+79cV9D16!)4^j{*Kv&k zW=p!xGL}U(8eXLN2O1WO##R;R+VUqWX7N~e44)Sqt|KiO!dMTS?d&tv5PDFwVeEIH z8UapknRbYR3?_?zrv#)OyYvesnTr4@o}vhbF2R)yMTRL+1dKoSl&PD_AQ#ET5SSJe zzQ+3WMd!zU1g3^Q-~tA#j~r$B2!r8nT>bNkXv-C0q`@N5`f-<}y6^-;lmd^Bh#G;Q z@*+6Ycng4-r~g};8=1-8@Cro^|+C5#>2X4!DS$9l1~UMq=SQo;IU_mhY+EBeQFicZEaD?w*E83&Xx zZ<>;BdW(Ba(*#V_)bv-CFk0wqHYC#+X$WJmVRH;&F@B|zDDPHCDSsl@ri3Xi-PjF3 zs6DJg$)|G&uj~)~Oi&5y#!X6M#isv(tU*d7%S9%`Hd+oT5sk@hXs)2OgSs?vn`wx> z4e2S5aFyQtkQsa9k1NNZLKjl0q8H3nR6_IZ13Ye%=eFn`OI9+vS*3CzF=o)(TI8JS%(RT6^J=xF((zX-Bam*C7k|EJv6whihVQ$x_YZ)BgqpD64cTu9KU7mk^06jIa3uovSzSU=_P8_tvZiK7 z=x->#TNsE&z!%_!sKR^gsRFJNS+kDqdnc%4hp-w*gv?|ZHdgx)zk>h3FD&rDYQs__ z!As?}*^MAa62GqPZ8>fVbk@O2wqR=w3oBX6wBCEAu)caT7I@{VP066D#rFx39lP|T z(A461m}wtKz)g4ofE0Fsv}E2tRKlJs9JX0~E8RGxpYu2FDV={iEW%r55ylG3kmbGI zmdgr8LwWwkalPi^ul3tm}fWk zDJzytCaZ|ipvKNIi3RNI+i9%USK^atO*3!r%f%n*qvWwmf2nVIr?lDA-Z8ecQPQ+QH=PNRONtX?H89;<4cRTsb}jGc$O1U$T6+XOr#|z-IyLGu^n$g$9lOr}~!f z>6uw7?ogc{?-TmJhtD+(D3p`DFf&5ovPNfR;q`9hCyT=LtW$VTQ8*|So*%as1`28U9~V7jhVQzi zdfZsZF))yKgAbz{o}`uCNRsPoarTlE1}3F|XPU#r%}1UW_};_NFxfGOj0J%X$c_y# zZ|Znw;l5S0NPYLn+lBHX{nUvi9(1WO-#AE@oLF}`Il{GztMq~ek?9}P+ z^Dx0p|BGIwn+QcDJq~T8iHfV;_o4mSa!s^BzoKeZ%}Stp2kPN7(!jD{Lzq0kB2I-< zzSFV0C#@0=S|SU*SNhAmgwE#+jp6A1s_75(_>>-9=HgMk&gij655_P_ z|GOR&di)PPBw?A6kX2GcTCLY@iwhr23DQ04=taGLRF4PsusT}b+G@;l;86NQioB-B zMLlE@GoZ-R!u*-GV{*2L8=9>@Vea5sW3fKP!A0$^nl}9vN{))y2D9>83jLfOW>zF_ zr~g(DaV+Wo$0M2%$0SxIEtPoukwSe68Dcl^ns0Th%*@r;@MbSa9R$SjCLJZS+|d1Z)Nn`Z-sN$uk$4lX@-`f!&5EHu z;4mAVUlrZUHv_Q^RD1Orb+ePPCOdJ4?Ers)`YJ$q`aAkyLH1V>NYECDfw~W?+Rnap zg!^qFI{*VUSh|;eW3scY2l{vQZ5(`rL-L#-&(}e$Z^QlTVYkr#_xJZbii`Go*S4#) z4sFC%){L|dcVo5N-hHB#Ag*t3-+q|0;ZoT(4VH%b*oP)gQ=F+7O-qdbiGT<)LJX)d zn6ov>;%`VdaqQCHxA^!sg?zSDBC3&pM;qm6?MnLYc% z@BgEEr3?8EfcGo(jviLcZBytoJfL+pzl8I{QT8I^w3VHhn?YbXi@nF_phtc7+bZY< z{PPMK33>tFt95lqaauWnjaoJT#V;nHn}k&X?0-qU|3-j)w^{%|M*zUh7<6|4q<14B z>@5us?JC{XR}*p^;?ZHQv#0 zuBAQ|(Y6zlF~cJ)uQ#cpM8ynXy8f>_b(;hv|MHG=bdh@>yrlmjwEF7TXC z!z3s=*@5u}!w>ADrUR%ar!42d$N-u^<`G~HEOw-WYQeSwX-TbM+-C)Gpw+iHpYzhV zp&nbfaVO%exL<(Sf~j`Z5U{H5*&E2k$CC53Cm|T%{|;AbV~a`<>3F2yXCb#*fgnuK zCf?h|uri;}3x2?su#JUgt32sTMRpc7I$Wjn_TlwF_fQZ(P19KSQ#2psYR|Kb;AS;So1Bh0+i?JxN|WIx#tU z{M=+^;_TVVNzUT-aU?TU&Og64=8tX*4|TG=Jn_ouqc2rXo|<^^xDUMc;N?SC>3pFyX>yUtXzjZ&v~R>a45xW~dNtiZ`e!=dLB-*mlk zGaFTBP0zzqO}0CZUz*K&RFidOF>~ML6ka9H3@r#ZIDjx^&36`N%a*1F*9!z;HKDxHWzit%v~X92i)sW4E5To8`hzd?u6f2W7pn8RvDNHdyY zPqGJjb&>kNroAmf>hC3>(;5aq?EO|(ZiUa@2s5*p82!g@&LR1*iC^D@b#EgK&PKfC z#BH0o8KIUA;{RTK5s1u;F%+xI(+Iu6IrPg@4Xqc*A7n3PgiRGsi8A=uKi&(r20o+p zbH<7=+8q|h$X56qlLWl&9YW;fw31}4FtR8DO@Uj(wy|J(0n!1tZYvX>s!dmaN9iFPJ9~F7(t>1ZQ!i-d|2H z4eJEaEPM9W1dFab?s=}h4W${8?5!Ywke2ugXedM?zQWp85eYtj-AZb~c*%$Yg+W0U zoSeow=*BoxXS$Ie*elIVFm1tvlx5BiU{ zbPTY_v_^f{aJ>g`mMX-wBpA>pg^QDuEhj|cQHkEeAJ zdI&FgqZHv_4O7_c&C!9d)Ay;+vpn1qwwXq2wo#vAw|Hbs52!8+JsyHXWL;e(@o#AG zc_E1-1UOt4^dK>OKVlh7qpT$~yP%`bi2y0al8*Ky($|0D7(8p;y?49`=^b{)_1g^>Oo1j8M)K{#&Gzm7 zDMYoXnJ2~*NzI#)FT^bw7D{o_nG?QBAh!}6^eM} zZO%sC=4`}if$O9ujy<*u-M;)Kx{#5&avzWu#AAYkqXfWom)?`_1JaPj6u?I#1-yH3 zS+^v-HB=4NolS=MHQy?n{vh!o7Jd^Umk0@LO0QbQUU#6fe7G45 zZy~U*j_7=^O|0f`Q=y;c;T5MR1kPjp-ofut0haiXtH@kIu{&ty<0j6=DG)+1jr43B zClv}a;*lVcH#-ED7#M_z0dGLYL%t(Ely7XJLTrPJ=qA8OxPbQAHZwB^v>#3)e5j9hf44` zm_n7tx3Ci%(fH{S_9$t49LX6lTkO|ioe*Lx2XTm1!mbtNsELg1Wi|69e+|wm9cB#3 zL5MRiX$&N)TqIg>rET+6h^d`exRcHAjzzF_?Rj?g!ot;XS|*l1=8~_`JVlJXSrh}q z6EUG;IiIgsdwV(dQbdL#Os|@+)cOH`8MUKaz(ij z%3=Qg@}dXZO)vhirw15`drEX$V4r?Z{JVSbh00+TT~RLY0W%PzvO6CYIM$uAYIkP9 z3E1|`E@Rxr?uqr7WDlau;1BdO%eR29t)wxr7b6Z* zdrUByqx@AArJ0OaRh_24$xRE6;wyYLnr1t!vv+IuFnmXM^QEU^9?5VA!KSqGavzGm@sQhzR~zc;DBFR4GDT-BbOC#@*EJCQ}0 z!ev{Et-=aZee1u-za%&J-m6b8-S{s9{G9I&_`%}S*tE^3#aG~^(V1~OsTD&L$zY34 zvT@JKDQq7CJweSfmNCt1AEhdgxbQrfq?x4?M&k|i>RCk2@>gL8WFL&<%)`F($~Ob((Z z?1u8;L2kxd-k-D|&~Q}_B+cz5rS8#pWuG2Y_^`k62M6_y0ZX9Y9~|VEWC}L1&yeR~ z=lKUK^ZbKB?$%SDpZ8pJ;Be!RiahEfgaZOcWm}@(Bdv`?q*07(_~>i%V@2T@>&IMp zzY9M$#0`CF;7eEL`BLXO;5=VCRDVKwx?lKMkvS;aVSnTiXFfbwKjNlw-`S@k3^G1J zH^@UTSr{JLWe?W$!DQ+FWNBXa(3XLotCX`DGWNU8DK_YN`X3VlK@|%1vczid0SuN>aGU z{Pmh%^-baB?#x_&oA}F4k3OQpd-V7W4+9!1o})2T>xk;S9kl_n`+C%~(|JF0dHSd| zRx4tT##Td(Iq?$(Fy)%0Tq(`DU%G`aD-=wM#t*r5wtiVhU4>7K#l3^-=pjAqOCv3M zoVk62kRi^3@2mNtt1n9d_9-O^deJNEp49ZCgi}ea>3+t+3zEL20Ry2W+pAO=_g&{i zT{m)_3@|<>c-OQ=>?t6;H$}oXwVkb9^QKBZ#aC|?t>jtL&#Hk>=rN(kgL-(6zBCUy zurd7}0=7={Y;0rvp4Nqy`(QEv|s+zT%7|U!yJ@_KZ4YA zUP&G^dK|`tY*g4Ug#5D%&>t@+Ta92y2<3gD>O7~Cujuir9@q8IVP)wh9tBF&zSb^E zjJH~xh^PqzX(}%Cf(O*8U(|!s%W^H?8ilH=P>a}jBOhHWj{Ya=q~@#LvOLwyHfPTjqma(mi>M~OU4^rl`N>Dz=0 zRZZhBWF?|$70CAzKo-d@?~7ljmt&W{@>Z+M6uQ+F#(1;@CjX z_#Bz+QK@3Gmql8+kh94ZR`_Wew4yXDBS0E_50WQbn2gp#GCOoEETtQpZKKZ(5L$3v zgoWEkSRi^7pTQqsVAhcy+4yOr|I~y)nBUaWNIy0D7rsx8`9;6d8+vW&A&?C+@hK&| zqgM@F&vO6s%J+3Vyh?TWO-0lo{SIZ*3h*MqtuJhO#-SR2TvApS^gltLc7Y#bUp62x z(6`$byCKx_{O{Wfn0ODAzDU0Yh4)Y_=ZsuwV1wze z&|PIe>uQMPhw?NBIB`H+aOP;)b^}N9`$xQ@y&=RLLbeD3jARD7#CXRSNEPNP0Og(7 z-{g0J`kh$G45d;Nsm`COjQBjEis((I>?Giw!{@_{rQy@tWUCyY$|aoMESR4nf%PUo zUuZlo6C5v_kv1=75)tRZ$kv)ZuZPfT>@4S&G4ro%GMbv73${p9P;dFwB%Na654T4Z zhyhVSr2vJTvics9OI_^h6@9OPv$hk|VgWBn~_LrUQu zQusIYYEocoX}{LpS~Q|Wt}WjKw5n^uOSJRt2emlFx+GQ)?*K>l_rEXjX=(SsCh+f8 z4l!8Qhsj#we?PySW%BQdnX;uCjCcfy1>%kf?G1tlfgf%I5H19q09^yZO^p%(m5psYtUP&B<$HP>r5lZsbyHM?vWFo-8NHD+lz&>v>!@D3 z?7CL5YC$8aud8b)RZy4)S(~mikbQmKA*2wmxLTpYf7peDX~@T*F)!dNWOcNr(62|d zKcjWjg|~orB1EnHkd;gvZkVI002N?}Inu_VZPq^%i=EMmxX?dqACZR>(~`P?LJ)$%%%RJb0?$XK#-<$M@!d)5lG~4b zOb?1?c~lsQxA*vq>BC<2fnKR&AbTn%@_q+UWe`c}}L?c5x=msjD4z9s9HdBLA@;otawO&xWMCz0MeKW}k1o+sD|K7*$13 zVIGl#M10WJTmvSZwpBSEgy_w#yf^t)95|*}rGI6BUV8h^U5Qk%@v-Qb2r~%boN`e+ zc#3?e7rB&;*&oeEgscpTN5N<%je z4c+*-JF_Lp%1Tx>;PNP>H0a-hEV!Yh`TELvCoOu|`;F?$AJ;E>K{jWee%Vj-JZ*HiyXJM@<{PY_SiJO`^^g-&hZRgu!bHWs zHo09`dVl#?Xfx$YVb3eGJxJtJS5O*dcEIZO7AjI)c&2V$mK$L6)M4vuvz=5mc7Eoe zv6eIp&t2TN?@W5~#gnHGb2x;wDc!U&ea>_H;{xpbW@jrstsg%8^2ry@PMmw`>Ck$< z95R#df7a=x!N*>XlU#7*M5_=i@sK{{GLQIh?uAdErqa-!NkFNzuRShs9q1BJav|iJ*UPmeu%Jf+7p51$QsGUL*Nm*YC@j%woD#^utqFbI)*@Sf)TckF;$)qQ=xrr*-wbqtpKw^jhxr?GC&~JoAORBT#>F`&UPoW z4mTL^HVhkA&WMwDjKCTC9 z>X_5BXC_a+Hi@74%tW!tPSB!Gwsi7n%O6u#%>rZMPtTq7CGGhv#MzknP@O&Yg7SL- z-CDnOr;>rvpX3p{B<=NLo#5@HAqzrZt07dEa-A7RqCuF15h9 zDEx{;k7)Q;T>7(QiC(WIq<9_oVkHE3S-38bV*X+Q40STj+(@PDEleer#nusbg5x+B z8?}YDYms6ay>KPR66vSaDUDo#LwvVGY%G<;*^6e_h!_~i-&?%cwNe=3S{fP{>IsxQVl8wDC*73hm&j10gnfBiQb~P5tth9wDE0Hd>WO zid-ePTO?JC)R+Bsnj|z}wIVq;(e^eHACl?0W3)JIuS<*6;Q{TBFtb-6PdC z+^_y_F0EtlqE#53xE?-^Y2`Tk3-(hu}f#cszbCvT{zYpzSj9(pGgGB20eob+)r`iMbDX<5gQ?{1x}7_WNtqgAf_)4H;B{|KK0tHOh@$@ywDG- z!f&TPJy#Onjy}If`F>XY{$+*!fkMBchn1IOijzXqliQu^)i7dxj%I#Wv->gu-G{lm z?_Myk@cnk4>oEDOgMx_8c+Wc&0IGsgQ?!Lst4Y(TdiRhzRN72QV*A(i<=2#nc(NvFsdWaGVOrqP(FZhQEqkh@||SR zQEzgm>59?$q!r?)Z&9xM0FC_quuXiwj+qJzrp`5Q#XYI{1(xm2WSHluz3SCQyZQ9)QjoPd`1IUFexhiMQ|)z?X3xTq zh|%2~Y=7+Z=hfU=9>sa;=|2+e3Swh{5?D1~^z^5w{DCz9QCZCxQsY#HLEv#MT#dE@ zuVdrK5HMORFmpe74TTbLH0$8wA5$#2o*a2Ks~K4b(tjHITpkE#9Ls7RFA@@yXom(bR|v1A8=uc4IU(d>+9V zJG|NR!7{+!cCcQZ%D5b}JlS5TPtE-?1D1*LTX8M6uN;VBF>Y1{1}?w9m?5)yC>Bg- z+*WtU{wXsvp&`@QB-nd8pf||72TLe62CItz4T%6C-bo-e**l2=kr4yhGPWYDNOVXM z09gUHI$D$_V?R`JrH?iZcY)EnPXCy34HMouD)9+7-SYa1~1`4qH*_3QBs*hKB7mCgcxP)`OCfYr`> zWn#5E3Uu&4UF5eL*ZIP7nV(H;MZwXR(le({zH+KEc`iM9wlX>K>ha2nlbkiBWgH`D z#-s35YOLHu>}lu@w1weLJKg=!Vq3B{XUJBv>KjlF)E%oj6Fy>+)z-7Mxns9w>7D7$ zk=#inTXIIb7J)bc5@Rt)I~B8|xiFgzMU_zrLJhBsdNss3Cb4r>1Czxx%->*Yt$OTKx~h|5zVm{HTqB(H>mq`V!bzv}K1Le7QpQ!lwVj}0=x=5f-Z zTcSN%C6OrU0>&9M1E2we82sK&xILt2_)2Q>MS1M(j@{38Uze$BZ;28+!?P$X>N|GA zu2g)3Y^N4!?_kf;MWX*!ujfJU38|=!f)=I5zeS3M-gipn? zeMBF8ru^b_`}V!>neympW06}>_U(J|V0me&+?p+qwXW!%tFkdU1v=@#1$fbryiYZa zo*tETAP#ldtI!@jtg>AoWF#w0#N|4-uGK943U&KYWs{T!ra=4ZO9?tzv+yFZ2HP}l zQPrE!T~s+Osi~%}aJPmy{hVqv2|S|E=k?gHA`kHBao*~n1WUJ}`z(}-!Vl^1=pi;P zwUSorG>3_7rN-8?v$_c6U(%PV5Xd;aNCx(>rCJ)j5o7K>$oqRF{mI7*UEbEx_Wq&L zL)Pkz^wk6a!ss0tPh%%3tuI-8UU=r%rKh|N2bhC|Rr#!J4*% zQ0c~cyz*DAuMHepd*0xb-JJaHBG(-s^%AM(5M2QgU#dvT#kI?z;Ap z{*2;&oNw)s3l0&tx`X?hH2BpT+_f|%wpGWL)cOez^GiZd=moL?=^2E|eCckM5Tp(b zH=_*@h-xvqW|dHiX%0Mq95jE8yljhG)Na0**=~q)9DpJjN`kl)O1KmUiIoy) z@}-IN_^}FhW|JpuaG}TUl3T%M;^|QVCm#&b*8p3 z!zm$!|7M($6uMY7W6t>aVy)o|FJkFhKsU)0x8V=OTvz3`%$~zcH;{Df_=$;EUOrbj zn;zGgh&6ETBL4Vm=Z>GAKY`whm`_}ibD~%B92hDDV(5{U$83i;Qe6S6~TVR54rLpKE_0)t{zv*Y70X^+m zB^nD$N(N5S%ohlUSK~1F!5nXcBUA;itZ&@?SUZtqWdq!?IBXUxHNwqgV-(MUM~bAuEJgdvJzuNc!bGPLFoc!OD`pBO>^7rZ>## zu;yoM__r%WLzP_9L){Mrw6Gnyj(6Mu&T5yD*43@l+rArzRq(s@sOvGo<5srY#uFnF zVOWMMDN_+x@1xVi{L{xp9}2t-&l z>01Z-kab=s0^e({dkg0Z?=Gz$7~!y^t^9848{uZpjku0W%RS({db{1NMlb1WSrBHn zf$x!w(+>J{l)J#y2fd>S6Sp3RjF~0SIwt_sv+`j(;4a9T-#-`Jt;vv()f9K%LP46f zhK+9UtigeKdOu5s;BpNyM)GGh3El~&I(*Y$wz>l>H=^Iy01Frrj8hV8d=8YfW+E!q zk9@hXZJ?RhmtM6_K)XuVk{x=DK)4ZR{6b42wCk-TJFHuzipbWR0d)xje5Pn15Z@1X z8o(JBOoJlBC>X302tcZbH?4r_B!PVbyLJwRi~CV&m2D$-ZfN~u=^tbXb0jXL#xHps zdJIK`?nP)8Y>ZkN;mk+vf~^84g2Jw{9|ru02eRGf!GtP>4ku1rpeD%2PO?O0L}NqW zsS1G`Dr5loF!mtuq&DN_W0(A`>KgX;Vk7}EeQT{S!&pKTDlPS?+nZ?xgb7*uz7l7Q zG-)W5IZ6OOlkn?C#tb}!E2afM2JksYpltET;tvXYXgQKdSjEus?7*vFC%YbeLQWWc z;0_sLcvw_QjQg(q&=AGoG#{Sny7prY1vj{$zUEH5IfJ?xA3hvz6Qabu8JvrNlRM*# z8!SVCLp06`{cGG^%5ZT3Fv&;KHRRsO(Yt}i?CW{-?(o5xs_Zj7%X_sKZ7=dI43>mm zWBh9Q>eL$?5Sr@`@^e!QjgxSHFCVMQR7+@=s+5|yB58?ZBeSK@{S*q+&^jTIqKM+k zSzD~)u4j9Hnn+w$k7a%Nk`GkJJ~%OU;o-6OR4&Cwe~naIZYzMiWF#^ttYL?hqLY(ME- z6q}-qxVvvOZURF@S@^O?>f4w^bN(`(8HwcE<%Ae7cPg&$&QH+D1#B`HHD;X zvc5gGF#Cq07r1)>;x7&2%k0&TYt}U);WwCO^YVC<(_qwpGYcYbos~5Z)?>Y2^=}bI zwxaA4yp9Sf#{NThw4~HOQXFSlhXC!en*dgsmH(4<6rCXZ}j+4J+!kp{e&L!C9!8<`Z*>1lpcSehs=#( zrn44uLUA_pOP!Z`s-<}dR?2R>B89#sqdO4}t%g_0NxJi^{AORogB#25AGvpUWMtdO zzL8DC1H)f6ylZ&f@ZRAK!w(EE5Z*jI&fCtB?<92h$PW%bHoSFY?Z}#uVaf~+?<4Qf z$fF};!$UQ|YNZwF-|!fY(r0vMl`iY6oL&{+? zHk!K8F=UHdI!{b*=joe`Dzu4sr;%yi)Zj|IV~E)_!Vv$t5=4#|$(u2@OaNlvim~RV zq3%0l?dzm;6dL==d}d5fGQ-}R%qd$Iz)B4NkRl425$G<5$ab@c2Ld&Or>-^=cz4r^{ml%g#H@|##&x&l}i=Cgg zSwRIAH_irCzD(9Y@`DPQ5Uy3oBHpkhdLysuNRRWGq2TNS#V;wJrm_RM#kPh|5!pQkCpfr6ko8Mv?i-u})c!Z5`oo*}?2$&@o~#~Ju->~qXx9ze5*(cW?; zbE=uOegG>4w`fTB$B`VO3D_U12t4vmQhV78YN3O5D=>po?Mg*+q!2eoPkpda?hFwK zd}aYRy31UAfF`<$5lE|UJUv*T09LqI@z~W-OuMzfH}ECnTphM=FprwV(=mY`pa(t5 zq^^l~Omzw&begyCj5c{y1YTKpBGbdS(5afmS}LAyacn9|wR-q|}T4dX&@w#sioS=m$H&*}>Me_L;fUIh_1X@(2s` z>8_L+j@erKF$&)Z&M=wEMa=ke3^G@ZbMn|#{p2vhglu>oKaPAS+Sh3i*3!`g3@?mc zQ+OS}+H}>ggNpy5I?qqB?7;+D(CnB2uL65D+2(hIg^z)YhsvZs)ggj}5Y#k%+vPPo%GB6Vk|Hvm%wtUGsE z`U57P`AZv<)=~K2{DOpHQwN8RT?N?&uUsv21K?$D%)wv)%UYN=wOJz@_pZbj zUq6dQ^7I#1xGCo7D`|TC^wHO$=X|TE2x^wc9yOyBcSz=}u{5lwj-NV{zCL+w;@m5f z$6qt(shGeInIOsJ`_M>|3ye~ibka6RFWdT?FE^T3+t+MIt-pDSs~}r9U!JSh9f4=UxjAkLI(rTF zO*oi{i8pY)a)j7|P7eI{rGYUe?&K;Wg&~WauVQL|YMGxbG8SkaAeJd>o!_%Z4A{^hUcSk>rB?XO zRu|LfRZlcgrgmNh`#lD_AP?xr|DC| zzK5)!GH^f^lL^$h!XPJ zg22gMUa%Y4o5UAL+lE~4;Vz@vzYSf=FxyKUh9KFZh~GDh3v;Vh-n*~&+<~ILy`*=}KmksZ=!n$_MyIaRC@-(lv2HwQ zj0lA_cp*#7=v7JxqsBOopdxZ@l|tt*Vs$PsAwU|k>1v=u@hm6cMTGux%hNy9YLo?t z>o^fY^}ip7rgeEZFero^maj5-{Om+Jaqf8K)Fj7TOs21T?jDAIQit}wh^^e8jUIdX z<%8vY@v+%O;%_zK#YC z*1|9~<|jSCWrDcgpuOr)o$kPTbDdvqTvVw%Q>1d}TLYN#8rWq7SBlbOua zPkpY4Jo?C%?2G?QpY;X5BE6=@zJtax;ldcm&KSzIab*|X>Aa(-!*xcu^>)0AA#_0p znWP=y?Ai-`mya2OUNn#j4AUDt%>0V}_`r_h=n*;ML%Ps$OR>XcVzU`%Yh?6XkazqTwHtw{0F)dsHb#4`*i{OQzYQKyMCl^54zBP zR0%q2BM#xv#^;_emw`v>CXl`UdpFLDl-C5A)_)R)7|aY})b+A~1c5-JLdX=>wjGES zB1zYFC}~N<$Oqxwa#cfBr2#3IKq(u(-s*v z=m1H`A@}k?5y=Mm;rvA9qya*w@M~Bwwd^<+;9@LqP&xrE(`Da(yRzKx6n(hMdAMn)0|%Xc;{S5L1~$)mw{w2_ zb~$l!At&cKMxFOK=ik0v&W%N$d!6Us-!2dE5cS;WJe&J()3>;)i7_lY&l9)H8a_1opyU9`2=d6sXN=guO}{m%2L+vT~d$g|IRe(`pB;?Tyup0fR(vTwi5)GzH3 zY@n5^JI@{EXK#FaiJ$X}Z7)_kCc$zZyHxWwnF8XtCyH2sL)5)-U}ZJS9Qe0G$|uh5 z<8Z#EeP#iPeAmRQ2m6v|Z)_ak=X`e+FRZ!Byr^Z2w`lfI&+W&Xe-sa1jyIM=)+Yv* zshnj&{p{jk86DIzW4UC%KA>e3&QT92Rcpu>qvY{;I)Q$`LkDD8d5cY*qsih&lcmvo z58km$bN*hgJUOKMj#_uF;Yk=^;X)>PP3@8U)DpPFretxr4?5?CHA@8O${|nA*)<#k z$fYh^it{8n1Z-fmdvx#~nRb$wzLjqLk#7}hbDHJ2YR9=)r`^(P)?MUhw_?$-l8hot zDsWgTM-_<6w6VKKfrnjyFJ**DiUQpMeswU<$61O#ipR&^(y>Q%6^=TUr^A^09-`v? z@q{aGdeV<1^(TAZpGvswr6>LAr2dTGo8Mb>?GbnFS$B=L^R7j=pX*6OtGOZ#%+CkE zR|roZ>~6UwkpKJa$@~Y!SK(Mk*5|bzmDTqBo=$N-DajK$s8Y!t6Tjy7KF(TP%UO#V zw*`UZwt3RFC)vG2j3X4FJBKg0mZLhkRi`CFv%14}%xTA+=KH*Q(oQ(-MW=P#2h^dL z9AzM;UB#Sq49g8zfcT)^MFWdh{7(;Y-fTRl%Z?9tac}EitYco4?ejw%of%JMBR-&{ z_bXoZh;t4qfI`zNM*Ni10Cdvm#H~Q|#cOjQIj!@Gd%h5FQs1{$y1`J!#GdY%Sn{rD z=1fl-wJ4udl7AUU8GjGDoXMJO-1eht-jN zmNCyI^;eSmt4aNQQhzO}zn;`DBufubB?nnWrY}kAolF-==qnO9-;{()F8zUbm2Uo0 zQm-WSFU9q8%%Liwal`$}mX}DroYZScz0RG#o%Zp)jP`q)Spp?=vR-+2Ru(Khy6PTX zOWOOB=?An&vD4$noj&FC>D#1VclwOeXIG?mmQ`{`cN_^v7n?3O=W_GCLv*7jq2+{n zW=Xrv&E%XE{zg)N6R~;ua4{|mF0h!?Zzk;ns&DDAZbGepFsXltjQaW|57cr}|FD3- zii+sPM_l%!|MRk6_U^J@?y_(B3qICK?k_d}d0!V%e#y%3{R-#)cri}hnR%OD4U}{g zF|M@l=tBgd-S>ljZ+=BzK75~W`iYmU-UFogjVK@Azs3Jh%yS`8_KJ_Q)#do_Gy;ZE} z#h;{#0H*Kpn0{~PJGtsCzVp*=;WJMDi@kI4zdPakobcJ+gump3?{~rv^d|hE6Mo1E zKir$}m!0reobV&P34hfIKk9@Zi-f?7hz%PzgPHi6d1pKNK|0?(S*w#5jE>S zuNwnikbJfHo#RnpV3HU zZ*6Qt4E}nu5O*4@B`1g44)K;n92H)jcRDzm*=t0kRO+xHQg2C5~Ab7J~rH< zBZqGDsXEC#l32H#DE^*g>1oHqYVr9D!gKok>Bl{u?=1$4lcGIX%kN9-ea{=CI1Zk@XQxwCNvlY*|9P=-R(YLfii5O>n4DK@FJNN zNk)feW91K}&jN*!ET;tc5>v4|Q@%N`$w$WEK{bE|XC@ zB|uy|)6As4&rDj>E`XkyM5ee8v{TN_D&^d)MeRWXmrYM*XQm{n<-_)IFFqC{=^&=O zGV)TcFrSo>btQ3ML#zaZ)$v6#OH1&0SFaU2tX)V>Ep!)T-%UzuqS85JKt!XKnic$Z8$?q-zu&R}IQ9Y`|fNg1~NW-cx&e8iY>iYLTQoG%w)gWG2BTA%;2b-K*FV9iK^~o|GYTKeNpI#G-738m0YgKgyQO=DRtoGciAWX| zZx=~P#(aWdmOk4jNmvqkO;64c55h9Q_g143f?2wII0+#KS$zVsjBN zR)B^OE7;r;UM0J{#UiR~MskH?E~7Gu&AnwdO1&lGBDLL|)@`PD4GBE=-fe@?>oz)Q zP20(9x-e^~R@kAe#jw^}7@|5#YZroeUDy#7fChreHn`t$dKi(hf=;5K2JBW{w=}R! z1)K}uOP0R|LrBETzh&m(yJeW)o+JD@5<{r=wctr%GuBkj;MU6sys`yX&r;5P6<5;c z)B`uts0FUCH=7M8HWuMa0#PsE5)vyiGQhAAjDCHxfvM zuWfAq6r6>{0sapuOU%pIR0ts-$fra%q9RCY7TtW9?~N}c?Uz-QNXw~E7qHw(o0Dd0%}@268^$aOL}c{X@cx91&w zq>W7>$7@o7b-b$$dF^)&rQo8LvgLB~p~cN=23tpLSJ!7*{E%mo)a~VZwUQzYf*!8T z6OIvXhwb}ny*CLz>Vnv=gn0vQbs9ETEw}_{k~4@m5D=wmKv%fJMjGIG5%zlYNRF9TpQJ^fP_Eu1XHaSeTZ4$a~veP**Gt>E; z+TT@)iEWjj=SVE#)FZIDk-|X16NvJ5LVk~sKZX392|K~Q(uR#HYlet2f^yxx5TxuV z1XS+s6f?Yv0^SJVl?S@wsj3QysLo8LI6YaMe1%w_N(Y}m8;JVkqeMM~C(4%E2rea) zpxkgG4PvBKfwS<$FeP~?ROBTwS_HC948wn-Iv=|#(4gXuHBPMssI<#w7xFnb@2md* zu!c|~^;{3J?HIxqig*Ivg??PJ{n{f_H!>3d5)xpo0Vde8W>T!)HI|$(g`8hI5a8{w z%?_Qk8a)6b*yha1PYl)!NZytEG)mZ!{%)&XM_b(soD)22!{Alkn-f{4^ICi7+h>e8{lY)xxSnp@R%Xi{Qs)>mO8rx|S4 zs;32050_@y6x`0_@~?E3ihU(zUz0eF20bK(#w1dd=S{)RW{5e?u175+d88mo^;dU} zpbrDaY!(`vZP*272x-4(C*ZXT4zXR(1sOZ8kqBNUH=Bob zsm;=22(?up2P?-axZ?y!`TN;)hD4XbeI*e|h#{$x8qXbipf_Px^JOJpPGR%u%*8aC zKIO2Pxtw!5V9bjszNdS=Yk*YCHGqfi-3N4F4!3j7`a0}eu>0NHfF#fBC_}-CMCJPf^)gF1EnFp6O#z4YZX|G zhWP5WiW$a&1f|(gp#@$sN?=PDJ+q-7={=i0tZS%+PCCXDb6ogk%0sA9Sf*J~%43?u zYy?WIv0D&I-4glF)^0VoqH+StoN_UwK|$gpbVi`_7lx-s)IU(0gq9E3vECYAuKUDmhwJ-{b2EKJs`-7C(atJ5SNXF~)F8<`)}b<>g3| za$f!6US*~q^1-Fwv>ToV5~yv}`fW%El5D$uEQ^DMD}JZ}+R>z-vj8=>3(|Xzj^o~T z?<%#TE7`UsS8C3{Ass;-C(!TlLAD`$F?OnIh7e6emxsj~B=lF%bvOgnapr+)L%=Lw z<%3d~4g%la&`Dd4@oj#%!w+eu+sD>WAt?WMHsA~3 zszI-1A((CE%%mXa>ARh@nR#^b*5p&age1M1eG)>rvHnuC2 zG0nvqcz9BeRdlIZ4=e5m%#-2cQMToM=H@C0WTJr}`L?l>47#dPmj5^twKS9(CYjOX zG2F7F4|!+)y}VNL8l2<^xFk!d;Ir|HpJeD~eB}6Wct{nuQzTRq(rqwfiw)etd;AtZ zkSplE&Cok~5ZJo}Mge2b6z*a7%4vASBJTZ0PK)@x#ZuMS$KN1a@{rwo2x+Lr-?rNA z;)l2Rfn?1-H0v@8=O!3U{KN9#eve;e#*4SwDM8n^?y>co9|T%{2-OHX5qs5tC_x)T zPm>UgT4@_Qu6#CqC4cRZqTiZOhgumr z-`PI@?!5t0!Wo3d^I1cqb^m5nX7P|hsmBE{(_oocBu>#4(lVdVM{~Sr^kVy`w&f#< zhT|pyGj|6rzC6q*NpGLZ=EX8>AGsM;ERF}8sLnGo%^kcZq4Ca*xC;HL(F`h;$2e>F z+D&nPL?*Ip?w|BL*HW*`UCD{yPt_aHDFSlr#bgaBEU?cNV4(mxp1*q5VBd*Zq5-@2LUW z7fj%P0L8t5zT<#<2!06Zb>k2$5}Hp!C=;XH$KY#+sgEHg4MjwM55c+pG1w-g#X?$H zI;MKlA4FVV;PFpwhRr4XvR<@1&DtM?Jwra}ZEy%a0Ef^gk+Ah{K-mKr{M!@t1b&D1 zLJxro@xIS|3ZJt3ZJ-}s75NAMg+2tK?tQSe*qv_A-hn|t?BCadnLwU)`Sfha98rCC zV-%x$4j{}gY>Pqd%Gm*B4=iqXKtY`b`X1Pgx;-$|zt4Z;_x&*5(UA^et8c3pK0ZZ% zRMRL=>s^rBEosHK`aR)WL9a?yUz)D95Iuxh&4z#@31A65Jz_)$fWd>X_ym);k6|1c ze^7n&DEvXjp*RN%UGOeMmGlJggZMRow?qAig$2w%W5Hk-YcMznK#9hG)J;^WoUN+8|K63DgX_$fZ<#?TgK8p)7> zKCLTS#=zGXrNo|QojU?;Lhm1`gX3PHKH@utFTTtz zr1^5eG(oN_=z55kU|0|jArQIAcEjmf^PE8Ks<#whm998+t=ZVFpK1!fb1;g zCcYrJMOB`@wZFzF=MLd{>{2M(0-52&7>7`O!_oEje$N58nbp$VlD;E!8zOiqJPZ?B?C4mH3_Na1e0Uc4%1mWO?-yq z2L1es?E}1dFzgE^D;q1NN_w@N#kpp&S#Q|Ujt4aJL89Z{6F^Vxba=Wd&)bPbe5q-< zE16+TzI?5)yaJn5Rc0o#yHR2ZuQTk>WNO`@L^^Whc@oqKkLL(?f~4y&EGU83iTR zR_^bdlOB zWwCgDoqGMnA`e7xIl%{+CQfI+F^2xee&yt?ha=qmyHiZ0Q}mxXP$c=LcE^Lhz|yuE z_x*6s2ne<_XPj(}RfH|{lui=N=*U)@6Rz-%iLqw2teqO|jg?@D05~w6(>YWF22VNI z>u1Tbp-@9?rEW)X-jorHZLq_w)h28Wh^HVNJIq=?%m+=jnZ3-@49Q#^Q7h8`&nM%J z4OG@(euT%;_nC$aH#_ok)ZHi^BHXwn!P(k9&B$p!Xxq&A8e_~SzJ~Y(I_OKC5j4SL z{GS*i7Q27o(Z(l*?uQQHUR3dUV+)gi88HzT9{RjHvyW8h6VDKQ`PYxf;AqXx9O9J4oR#+{U++7d=N$ipU)c|+6B(bBxbORV* zFpusAIoO?%lU*gYBulPXmXuhMt%oI9QCZHTDsjcCM3qWPi7KhYs!A-yd8$;2V>wF2 z%8yi>Ncp~VyJs2zDd`Wh1RCAr$^{6W=j{OM74w;BSJDGT-b@TXr{1NzS({tPK=7=I2cD~>-$lyww;jw$On z{yd?q6ZiuVJpj>!*Mzc8s;N7D${JDDDP@hSb@UGqPb=$5Wt~x0vXNztDeEb<4ipSD z5?Ovw*+VKbtZcM;R$1rNdPKbg^v9Jou0EjD9du(t*+8=qQ1&6UiQc_S0G(9Uvywg%q`zCz(c>veA63?K@`8T9M_$nT=j8=sh^VFH z1rSN@C-^UE;LYp8qvYfYUV3e(ko9uK!h+X>wE2bQIrGNc?ELidTzYoi^oEhRbZy$4 zn@u0c8$jOm`OD_C`FeV3ZrYr=mcBW?d~L}?y7GGQn7chUb8C6}^7Xm&O>^$b{O$dz zOSi5tHHxzN+^Xa*El)4c&!ho3T*vQ2Bh>}5tBK71DjJ|0W2UuRhp9)v+J1p%6c|mO zcE_ac?M&7qyu~GVP%Xd_(U{ChsPNqF<%3`srf(bs%fy34ITZ(b zz(jwDp&noa8Zd_u>Vlu{k}^hD8TrmABK5 z?G|^OtnGS4EHl=e%(nfY=xn7o?2KhQu6O)E4oLHU#`}3b*@>=za;=us4;ghrao}^-iHsC0n%Ybk?!i0n0Ag1B%*+?!m?X7bF;lJA=EOUj#}xc(qsz$%-D z+Ki~2q1HuoPeF3j3?{}UErB&AFiO52kKlFW9|+R59le2injll(1F2FcsH z4a&)QMQ2iwFj3m|;s7}#g!T|5SjZGYQ%2nAGdhe;`5iC@46g%ux7j*IyJ=^=x-LK> zyG-IbhZh@54+u!fIsn2j%3IqtZD*PY_%)r ze=DQbjIN`-0R>Xq98_CT<@~vNTdDG&tAe3!19wYFB4a@)qLlGAJfe8QUqA)g3P`In4r_Rvj1OJ29+xKJbooqMxvb}L zq*pR|*A`~dBG5vXBjec4Y}t6%%(Lw5*wTl^r8&nbI#SnmoI+7LKR0)KerZ{RieS#Q z^K0g_0I!koBHy0DL$GN-UM}Mtq|>&Vs&G;nhJm?&j0YQPF~8ZWh6oB|O`2w}z?e|oV^Ycg2Fta`H@gYA9cmMr zd#i%z2WxJ2sdu>G98>qer){bRjutr8HdSqxdSzv#pt|e2TQTL_rc_`Tg)spTxp5Bn zkksu_)k88wtY?h|+x-S>9je-)oJ6GZ*NKqXmETk~FuU}s+8Gq;Qq?ZyyeT{ke(w}) zcB{%1(|=a~yNQQT|G%O8-=*03c%;#Jbfr_pL%m1Mdhg5eNcl|zKPilZ^wA^FUU~M( zvtL2})CS~zP*uJppn(oU#b;MO8L17aD$JHcDqb6ww+_4==Gq0h1fj%^fIN_QSiKWf zwYW&+I0_w6Rs3iq0|MZo>+bJFptZjZ$qWD>jU$5OYESs%h}t}?oF7H1eSRuFNh0+s z{x^n%MGCzmE;~64&;km&N2Arj5I|1hu-ZgZPzHcNC@fP^?EAkdt3QX!@O}>B_Fe=Qod!o5cabaq_=zlz^Knl{FCeN3Q{i64H(}F*Y(@kf zKs-C5DNT1I75iB|06zEk;FR>BSNC94RZmF|MrGLLQ?Y|Rz|5QqdLU{Bb%F(1QoW3` zZhNj+GY6G%D#+#u6gE%d;ZldhLcf}~w-XO?-bMoIMuN(9;;qJ(A5hmY4;Zd|osRSYqjn>ox(d zxl>38G$=UMPS&I8A!SM#2S$X+G6IoSC;CW@1{zw?*>$NKWUa)=X?LVuK-h)*Ij30I zrpZT5uia(O?MewM4lsI&CEdS)B&hEj#X@2{n;6M$OYT~>;N{OH+?`eQ0~W7~_g%ML z=HgNUR!SjxW_0<+O(1^q>gzXwF(;SF=iapIrlou4T;fdT%vigCnpn#hvs+2lpWvfV zOpcvP=&b9DGq0xSZjZI2g$cWo^OB8bCtz{rlgt1e-M{g z7p5n0Or2>upLc1Pb5ii0ScbLbCaIO0Q!K+Kt~Sgx-MUzE<^&6|qyWMIB-8caB+&Zh z11IO%qDG2m1=gOJhWJa;lPQLt=h@CS6jhq<_cM+dsA+ctq+lJ$G^vP6YhXB0VbQ?0 zD_*Z@%UX2M(pCxY>ayMdv`GJ zYdPCm7ETwOq(L+^WOKk5Np9K&eQ;8=dd(y<1jsP0nMS&e(Mq@T#Rs-yUPd8pThKuP z+hTfs-Lcn!3BMsu48}FtYezSS;jsXEwm` zWL;9~5{4|8*W>`Z8+}buH8-yi49BG9jmC?M6%n|qGZ&aa7|b}u9E$MGft)i1E+|Gh7L(2@(ztTnOOh48iAq;mp4i44>)ES4F^_^8q%^|VlfD?;3_ zMaRk&GS03)#jYe$(h2f{@sWh~(t>NwBTeWA?3m8(xL$EPjgbqv`SsFkMMu(TUFtM* z0k7sFzscq0fGz_PqtzJ3tsq1CqY0OWC+*Zs!P2}cvoEOIvUlb0{Y+l^2A8+3P{au&0Y9T zAio7AdZL8V)7)>IzNa1DvS2+kX-Vln!5pwrWu z!8^djPzY`#v5Q$0{-ZVmbZQ1|Dwsd8m$k_Xt+q{77HGN6u3QmIv|aLGzG~wVTPG+g z_A|^#@FdJeSZ@UP3EI^#MYSPGowWQ3g`X5?R9oB_2({5Sje0krSYtm5JsyIMHif^~ zlA3}w#F5aZF<_Wd{cP3B9{_cVeF&48@Sik9`Gd`f4J(*vn^0VJSG8T-$mmy9Y>jon z27n<;e=Y3Fno;h80ijZrr~C%BQ3wrsc4dgxrtZcjv|iE7jq?X2v|vf$X;MbEyPFRo_t^Rr7H zyrb*p4hp*BzJe-n+SQtX$XIiUZ7kyOfXy_DNh6OsTWcV)w5i|g}jOY$6FSPAGMA8r0;T*M3U-)S!A{OaRTRhnzJf; z`PzrW|9=Ad8Mq6S%S}$zF#xw7g(<~tyD=D{;H9wUzu_hdyhB=u8oklDakd2_Ino*J zjAg0Aw&Itong~94&;8vMFs>GI5Ny6z4bo0U=?#O>iKyK_^+g<{nRcu}K$7#s7pMIl z2BjrfpT;lV;8lZMLlMXqq>BIBgKMo>?Z!zm@PboJVuJ^=3zD)~Y43H1c(4B+yw@>U z@No3OF$0MMw+p=2zpvotEB}7r>2v--x&=ui!r3TH%QyDkwRnWgMNc3^L?TJI;73D; z;2CRC-7ixNu>@om3~=p`PZeIS`_ON}-6#d>EpR{s%2_n9;YXn)5-0LCvnv zT80e0!9XmeMe?Q7B5KqAUR*kDUPGSw2|m8Y$2ak43`*V}!^WODiDtOmh<^b}+Hl+V z+Fp{~HO>?JEAr*v;ANj=(V;Nl&h=LAD1Z;4dqD4i&avJ^8Q_7TpfJf^8Uz48!I^O7 z8{&*?@pluPZ7L+tQchr}4iX0{6u1vbU}E~WKSi~Ru3E?pyo1HT+<+wt8ugaK3sSmS zO8?VPX}qH}8r)MF>Ja1^^f&2PNVAX~9vxi)BPWUxXR%Q)e=8Nq+!hwz-j)x&Ah{26 zYo2^(gkf|f2XR-A9+2Fk_B)Vp3&nyh{2(k;D!RD}_rrwgS7ECQcMh&+mTbLC2pz(FizT?6>k^GX z1Xt7zYzjNH^XkD2uK69-;7GWKC=He1 zO)oE-^OtWe&n+b`B@lLWE;05(q9(+K<%O{>LQXe#R`a>6;LH4D)HDAp9vXd=*4K2v zObB`GoYd5@G!4`V7v$V@NgxV-=~tzP_VHqsG!Lxmt_CSD>2kot8%b?1N0K{BHE0~GBamau1nBMROFz@ zN|>0Ca@5$VZx<~+mOmc|mfLc$fpCjmEJ0-A6FUgL~JD!B=6uTQkMCld20 zRou1{;C?%irR(%u0&duxn?U>$Jb-Y)d3M4p>dKaGE&)HLcFiRoY}kcF27r8BN4xq_ z-48FZt%*e9O3_JV3cGYg`(2WrhWdy`*AnQwGz@64b2xy9^!l70>;LTk{&+Sq^ zleI0q+t3)}U4UDe0IX@W?6=qGKm$AQLSYoS>_*T&LIx6*%*|mF;FT zB|nUbs-bR6bd1Kp1;{pI&|n>tg5_Nb!Cv#xB^(%ZM^rICgF6k6mm>$zB~86TyLC5j zKbcYleLGF1Cis*XV$@;8@HP^0Y3L{K-n(~iVk|ys5dz z=NSVN&qfi$@#c~DP#d`+RYA4pQy+m@qJp;A^Yv>Gc#8#pBz)g@gydvfn z|H;Cgz@7^NU9i0Z3b$Aj%SH(nd15t_-E#98cSADDJ8(!OxY9caXqiY{gM%E?d=71D zXwor)*Ck2$x^L$aAW*@SCc7M5-VXPR@?;Uuh6B@UFr)@1UBG4zii{?61$YwBur)Rz zG7lJhT2?vpM?jeQKZ&&-JYZHcY)rQbI+4g+^Isz8@zMh&^qdg3jB-|HWP-#%4p7bF z0OaJ?r7_oOEq>#$YAd^(X}#Rfu52~LEmSfZwK{T3tD`YL)&<5hHO(8UJS<`uqE=MS zVJnJFacHIZYF5rLeTsyk^C7-rrou38Wj*|)==Wo|4g7x4jI}KeT^TYP9y;+4!YzpK z>*w$dzJy(^13b7BPpuYg$e<5Itk5<05tXtickvL?sK*MX zwZSGfr^ps85HLmwp|Rm7pO8M;t+Z_YiHD9{YGu5P-u0mH!ft40+cn9m0<7VrZgC73LmZ zO#8K2=BK~`xd(6*2^Qs}l3S8iwk=p00=O^h_kvb{d$ z4dL;437c-;nM^*rgQ!pYY7jO&Ux0IGzOYuj)}ZrF7-uIC!FUooM}rYQ`=Z>-5yNE{ zV2CnVtFI#botBwGR&$+)%v81*yVvi@+pHmNH}TKr7m(fK*K*YxK<&lTV3?udg^bz zx)|d1V$%4{~pI<)uDEB(f>lW2$1C z3CINkfb=7ZQF{49O}Yxt|^@4!uhQ!9Nog9 zttp(;!Wk{8_ii;+OGr2#AWum!BT-*FDMNV7%N8S~+f0byT@)l06;DCXmYlq+qM+lgjzD6#Nw_IJ2+d ztS)#_RnI8rA4|dClY(>m3SQ9#!91hN`HuATs!jsyX*xftYGY~_I~56qKEx64XkAkm zQ{`-PlQ$xJCa0T?+EY*hHL;#j)u)s-uNwk0y$!QJ+kCqKs?z{R2@vgdxYwJBgjd3S zI)&t{B)=L?MgS=$^}0;wSyjbxK&7_8+#hbnJG*p4Gco|<1KKS3b&-U@YByQUdT;P) z%I8w>xy;XZjHcQ-VRRhzyQQkZSZ;)CN57hp4lqMnmC!hDUvtCUjX0i0BjGQrN( zCPU=#^;mTrp7>aGLOFPELOkZzV-2=BABf%C%6eUZJ}q>9KA`jJ(~y~@^=CMA=L0b! z;B{2^ zzGBp#Rn=z&dv{p2_HI>uw{l`F*4;oTftuyGkt_Lvw=eRlhZ=`0x{tHVGEwb)26Ck5IiB`A9&e3$E5fs z=J;Jf4&JOSEMM;uF`!YD_hmW|<-E{Z0cLcYvnz-~enEK?stULN2xo(o)dXpJw3W*( z<&p-m9Rl&~7#EKK1Qri~z&rtjt{+AHH(FEWZ^!VHBIo{kt552MfCw*gPC%lyi?Xg< zQk5?@gZyS!KGR%#QC0DCiBGGj;ul%$B`N%}Jg4P(SyjGcpa`kG#1v5b?8-kfYBS0^ zuQs1n)frA57yMaOgC31UtjlvjB5cX4GCNn4RR->_D$Bv2Ic2%{GovgIe`b}n1G>H@ zEzYY71etDet==LI<6-=ue2o8^a0dj&ysS*Guq}f$j_J`KTEAQQEb4pnclvPm{yb(|$0P{^17c)PqhHBRXb+60U!Q#;Usu0T{ zf*Z=i@yQ#?dP_bbgcj5$__`{MR@RjVwtHTb(3hAbm;rG6+PsO)JYBNFO#%}umUuM zJq)E^45+dp;U6K^zt*{5te3yt`7^~jx{TGt`X&0iYPadsa=N=f8`ayOAe_B_3qZ1J3+>ZHt7nhoQ`<9wamoFiu zs!`5#$(nJwy8;5eh(W!oYUu!cIspGZRm-R<5YYht<1Q{k>F_f2jR3aPGs@rSN>!lF zXua#h^#NcRTvZ+x9Sly^Fxo&|21mL@5<=r$?xu1)Dm?Xz-3=hW{8NCyMkSDS0YW1x zt13SZTK`DB;-9FRrK*;)J_`D`Rn?{(id$b6oc;4|>#s0r7&(|d3Uo`>ykBK02q~bu zhNHBYU`?+Wj29m1#m-EH~7viG`q(q)t4B8XZ>2xs%UT2%dq-GFOw>pFB1r$ z8wW^ogY6msi?&dPmTU#u14i(1-<-^`(M?D;ysS&a`PvyPJ`jD~; z%KBwxVIC;`E~wh3s&0~Shih9xnlew-tvaS2LYm(K*e~~RmNZvDm$E(~K@*xc&h|c< zH(Gjq-e~Fdc?0Ovv=Qjfvnxv!#1)8f^4Dcy8mNDw6@{4Qv@p$GwRu@tpCr~?tJf!M zpNFj8vela^zlz@%dsCGU2QB^8`sg008kT)+rC`0x*Vjv|QlM&IyWAshnw0g|D0M}* z{B^1GsjzPOFv$bGF|10Kf4etjeVV;tfQZvq!Mwxv{xoM2XI8gG(S%M8Lt|SMW`io} zg+9uzJ;~(@efW`?_)Gxq|MXSf5^$d(xV)+r1ROLo_*+391tBnh?U9dKQB{k|n-${! zU>|7@y4w|&>u|rR#ptOEeT`&Mtwq{9XYC6R-4z9^_!~dXyDKHOH{5d{Mm;V{#?EA8VW-U z>cXF|7k)+U8Ry6P*-B%a-|FW$krW=MF0^NyAL}oFtUqOafemo>P7YL{_m&h=fbJ1h zbCn0mb&0*27YyaMRMpc%`Ct7qU0)39XM*})gjM1D()8Ki9aXz8^`TkrsOo)P|HT2R z|D~XQwBM(Bbm2?dx_ThBuB++;nd)-1A3v$`tw@UcOht}IHyn3oW$6&d9b>hzipgPN z=c@zNil`qQ8p>A(%3mEwQRq}KyKp$c2M6UIM`$;12&tm;B!vI;h(Zu`pl6(ZWue$$ zssj6&kOsn#7G;?)pB>cOMPGqab;0bWGq{Hj?x>i(c*q?m;_HS-8T*d#F5_kqoMq8> zoamf`CsP=h>xS+g*(t3%xEUp_w{-mNr8GCG5fhkeLhFzXN}ZRpC>p4EvF%DWzhmK; zlQ`XVH049~u%f8@`rMLt5`SgmWFDc={xv5$1PEumZuFb7xh6eMju@r<8NS4=qZGO zI%)$zV~++T_Z;C?qYyOma0r@|IC}u**+;_+P0obWMuLQ_9f0c31o`1%6yW#Yd^^u~T4BO@X0f6k-~a2*rZf>rW0)u86Gr_pqIu3a{dd$6q<{mwhKL-RIny!1PPqfqz3`rKY{IfPgBe>zrXa|2p z+!PKK@Q)f&UIqpHBuZcnq|Pg{@f;MZr|NT+#H~IdtpmIq-t#02$KGR@X;+_PU_41; zNuSn*2Lsr^Y4FUtEg@BQcB9C+Ci_A{PNthF6!6cQbJ-)~B_y(B&k5}uw}17jDX%vX z-0VuRX*s){7!ge9ZVJ*wNf?p#_5Qp*yQSZyx_KMznXmJ42M--gP3{C9c!1rHKEb_f zZd%7NyWW|HXE#U%kxYJBlTuq2_BuXgc8I<@JWfUED!R+lOLH<6p)~)Jz9zEeapUIS zLR}G7(CIED?zKy#RN|gXrG=qsr(IsQK+TL_Qj$q5DYSq@sm8FcwwJfJK&OfElD>Ap zr9L*27;$xGh&%$AZG8DHlzL_Ha(ZU**240okf&x;jRjEM&DH-&1rR50_)t|dci$~^82E%8ELqLyv4#y zv9zlrv1OY0$%sM;v=SX!v|pcj>YWxXVl?@XDmnA!BOMe0A^boQw(am1$j; zah%uYrg1yS!GgY$s0(tobhx7HaZSHEGs8PNK_WAAOG}F;E*QBozcA1HA(zZoQNX;8 zhs02u%a}Ry79R4s@bgYg@+QGpd~hm7#_2hhXd(&H(O2lD9IT$fB?$k6Wyx5G*wsfs zZGx!B3Yp*K=kM~tNFjZuYm%ST9^?`VIaF$n;!^^YaKV8#O}O4n%Y_wkO@T}R0^aL) zMO@ycY}MC3JjdEJh+s~+_P%Q$%zwaK23xs^w8BjhzkyeMa&>}l+k9-{A%u9rlTskmhvLuhu?p==SUHZT!TejMQQy?$ zqD@W53d|l&(L~&}jD`-F)PcmRu9tG{jDyQX8A0aCbt0^RTS25hK@IYt#(Fr}+(5GV z6FxG0tn={+KEB4sH}OdB;vqDx^(!=s+b_wW{x_rFT{A`!ZNWpxT?jw@z$f>H^MO6v z=XNmPBq%E4Kh>w8Z_L=r@p9F$ku4%fqYoN^oQgJE*%vvh-Nv_eJ`S;KoYhLUWb*Wm zFoj*OZ zrjroUG!gVgL_QkP75{D(F-=5-;&6<%Jc2J@dFC>VJO~qDBe-f7(Q`~ZXaUG%1vzpD zEvJDU2yVdTMHn0y8WYZy-pLV5L3^Wz)XBA&e~TbU1sq{I&^(2{nV{8AA}>%s0b7^% zZ;0X5rshS?N<37m(Ugx2y~H@So&$X%K7|VAC01ppeRVQ)?!i}Oaifkbj(Z9q(flau z|0*6b6?*Lyxx>@x57QE*<1(c5svL-uxn%;jI3%tZ7g6FapI{kAA!hmtq)1n|ZT6Po z84t>oK<_p$a6rUZxGLAZ&^IN5oD!tK4yV_T50W&(84@DR`3@(7XhdL3nrJ@&jQP<% zntdIG5t8;cKtCY}QhVQ!#N+k=YWPDiC=*4EjVg=Q{5f^?6v{4*4Zn<7F8dn5)kwGx zL73QvSBoRvS3+M~urEtHg*kUl0O0lFLaG|MeUQY@t32@bW^rk6+?A=Pr`!>j?g`F=ir0S~FDMS&>4)E#uB z^W!*s%2nKtZMGNX;5zn-mHR_H6wY|ZB4=<43GvJk{ENmA%Rh+g8u}5@ACBxliW2Qc z8}f0-4u0Ds?TGd7iSnw4IB&Btj^YeC@83BJXgxSh9z|-WaUAe?<4#*sM+@Vn5B!U? zL~tXH#8S6M+i{lQ3HIaz{_VsqJUGXWa@|HN`o(fl{K^xDYI%o` zzLKJkclw|N#@ZTdIw38vZi~?siA8!*O70Pgw&4VPXRI4-#qlvmLVM61s0lOya;2ISn4{4`-Wl|MI;^>j11!bqG0sxs2N8K zozY%EC8WbBf24_H=G!pv8snTGX9)f3#mw;j+)-_5JZLqDAGtjYm&2$@U@tI$~gx7#J*IT>OoZ y_4oe6EjM89sL=)yxA$M0PLIZ#nBEa>>lpe8jvyRqi?y{t+#JDgYg=F2!2biaR)*LB literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py index 2973c078fc82b7..d1742800ac507e 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py @@ -2286,7 +2286,7 @@ def SetUpConfigurations(target, target_dict): merged_configurations[configuration]) # Now drop all the abstract ones. - for configuration in target_dict['configurations'].keys(): + for configuration in list(target_dict['configurations']): old_configuration_dict = target_dict['configurations'][configuration] if old_configuration_dict.get('abstract'): del target_dict['configurations'][configuration] diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7db27168471000ecd8547ac8f37b2704ead31b90 GIT binary patch literal 63378 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 b#@)1QclWt>snJ2|R@coFS}5D+I$g_uUflHu literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc new file mode 100644 index 0000000000000000000000000000000000000000..565cfb5bd6286ca2fdd997c9beb8e9570c6d0485 GIT binary patch literal 48168 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�UHqYM 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 E1qenp`v3p{ literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0de5efbc6d2ca56aa1d69fbe74f863d300a06f2e GIT binary patch literal 6457 zcmcIo&2t<_74P0%ee7yw*|9Cjacoaw87(B1ih?SL6G9+PsKQl?YedRKV2065uQc-P z%xb#VlB(nj)`c_02~Ke156G1Y{|SEsH!kq|z203(CY6G!tfX$e>CgB5UcdT37h7-t z+5S3Fqn|qde~4y(iY`@Z8@*O(P32l`1MqN7ZP!#eo@Zs|TUXYN?;-5F+idY^aQAEN-o?6GyGZ~e7#UYR&OZVjyoJmMRz?BDq5CK|M`kzpU9 z*$%oBrS``Rds!10?9pljH^?EtTb)@f?%EpqwZQU-wY9+UINv|;Qx7^Ea^ziQ26>zq zKhVIyVOgcTQb}hY0owf3n#ykWcgiX&>}FD?X0sUdHwyrfXSkJ*`@6@3O}4>tp6v)E zjF0Sb;o_r>!LeJwdB!I3z(j-C?JeO`a8lY4_a{~6OqBqVpC4OJvaP zaHa5~9J;~Kxfy&PW~tlj@Ek`OS(EodvMZzrrzov?93Mqlk+~?k%8Pls(oH>4(+OSI zFyYm7ALKwawbGE)meA9+RJfMFg1D!O!WODSUNl8I$fm*^=2>A@0FE>+A@XD@sS@FQ z2;k^lY6b3Ug~T4buAT_NJguAYY`N!d zFe09UbR^W7BX?NE1Cb>G5u+Dq3-cmqVTr8Zasi0`l$n&2{k|#O>qMS(C>`jG{}XI578YJrV4`55Z0Xh1@=2X5 zywXrA-4LC!l-)fW{2;hz#k~nDx@BP;d6ikXBo`Nn8L`NEUhS7zAyx!G438rE76}7M zgl8@jdGO>__{m^Q#X?U~1oUE$lHEOYQpC``@3?S(fmm(du#Ez%o>l=dq+SHyi2 z-sCviltKXoK?LvN|47-c=!5}+Z9@HBVEaE(4-Kk5k;UN5jKb#`XQ*=xguC(dEI%(! zBjJUz!iaB+H8Reu>zH`NIekO|v)_?)W#KAuMOcy%{yFmnYPsl zV$y}fTdKM<7Wtw&!TIN>X?mSYV49bD#S92ir{&O~<03tiyF}m=A-Kv0E-MRJ1>Io2 z;uvp7IZIhd-tg`47RJOdDg#4vK5MXkJ;Qh9;V8jbFdQ*MoM&HEFbY-dE_{O!H9x$= zE@1a2J6;vuWw*wTiV=PT-ISG({Q4%YvAk8)ujpkxt8aWoOUT(a8e_1S=w}lpg?-Y= z`Pc!qsPpsoi#Y{$!ZEr!J>JL@&Yv5c8xPKjo}P{uOXdev#VOeJqCrJt@bM9rA5e6e z*3?4i@ZT09bopr)l>z!q>ZR31B#Yf0Kh zPj>K*enNsYRGaMXiaMT1NIf~R3c+}`` z2Us&jQpmC~3cn#t0+gOeW)f; znZ%hD(X*Zt9WSHk>=X&6>_%860LSzaWnNG6MH3$ZfFpeYpDd5bRk+uq?@D5z)iY!Z zNG8C7hPr`p`wR{a--x?4^*wHp7r^(i<>0D%g7K{meT97=U1;2}D)`tpK{4#_n2Pm- z^|kdN*^8?kDa*J4+v3Ze6~g;&S(_q>n>b|M2Jkb z0lHb;ZZzx7MtiQ=0IZj;HFf(IM)=!ouO)QSY!r}$8X`q2g?Q(bU1f>M`>o%~AfNK1 z7afEvs=I?7A4{b)hy&|Tdfg4|Fxm4Jit3h6?5du^Kjbk)I tWMI+z>;X{j?3=`ictd)#GeoDNM`9B1`=a>=;)mJI*4l6m&HD21{sWqwQ*i(Q literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c521ea364fe6d50672cbd4baa405458610c92b5 GIT binary patch literal 2222 zcmcgt&2Ah;5U!s6^(J9%$um^Yp z@Fu^e3$IA)7T_(Ibz!m%C;1SX_!gY?p!^k-QvbDS*5>88f^V05fZK3*x($;Zzz$#= za0d>~e}@y(meX$o(o5pE;lOl6^bR1sB-(|8CuC+9j{6&o_b+Nb*Kuld)OM!*0=2fBFasQIlmw+Q@ES=w^V14WWA z*e^^7q~IzTANQ#b{eT+J;xNpk48zd(WRO`?r8HcvA`wW>eM!CHV~3?1W>Z@xxf{mT z;4m+;VNRWJwb9Ao0bw8VSJY`Tm7Yu3kD)}NsK>0B4|HrtTZtu?!HL;y{ut0B`sDC> z4?LNy;03W)!QIvG_$1$lrVoU2M@%_SOcs`}m+s!7^*<@08?pVk-(;P?P;*FhxNv`g zW#ki^YkE0ycFLZn&{gq5NA&lEdG0=0P+?y91&rAH&2(;t!=rrQN`2bzNLFNN*{+DL0~Suh{3 zxth!uWrLA`_B*sNyi^sM#1)Z`7oHu$1eY*;g|)CqV$|n2kS76_SB!YwWN483Tl6_* z1hg7zPi?BUTJwO97ap*k6!&AXYP2$lC&wLX-k5!Uo3vkfE%KCa@p~i_^1{ka<}sTm zcD_%YxtMx*x&tp2GxvpJ+CB~7yt4)%wljK3M?oRJj@}%WEjsNA3zx3@B)N`+QLHoX z6B^KcKoFJ>+4axl>Nq^T2j2(qlHP`-WP`C0Le9B>`v>Q@;e-U2p^|dLS`&|%8w+MW z=n8X9i3@OswbZfaQCi{ue}_b#nH7e{##ABsiaC-SfC`1A z$Hg>N@h}unV+JKLG~+IJc|5f?6;!j-MqY4I6_G!cl`*?T){W@ek`CQpb5UL830GO! zEH{wYFrtFJN>R3M%vrPAM$sH|BFTtRU3pM?uQ_q0TpX+l|EG-BX=>WRZsTUKaibS( VG#aW;seCWkR9nGDK$2E3_#4r{9)17- literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.pyc new file mode 100644 index 0000000000000000000000000000000000000000..430e45ee42790abdfc94c3eae07095e912cc1327 GIT binary patch literal 61720 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 literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0b7f58059b6f4a3c55c15bee6e41ec2ac4ddfc7 GIT binary patch literal 7555 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 L8krwiAG!H|PX01~ literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.pyc b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3cfa2088007f78249774a225fb9594f72bdafe72 GIT binary patch literal 93565 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 F{{W2t9DD!( literal 0 HcmV?d00001 diff --git a/deps/npm/node_modules/node-gyp/lib/Find-VisualStudio.cs b/deps/npm/node_modules/node-gyp/lib/Find-VisualStudio.cs index 0a533f42d6a4ff..d2e45a76275f53 100644 --- a/deps/npm/node_modules/node-gyp/lib/Find-VisualStudio.cs +++ b/deps/npm/node_modules/node-gyp/lib/Find-VisualStudio.cs @@ -205,7 +205,14 @@ public static void PrintJson() return; } - instances.Add(InstanceJson(rgelt[0])); + try + { + instances.Add(InstanceJson(rgelt[0])); + } + catch (COMException) + { + // Ignore instances that can't be queried. + } } } diff --git a/deps/npm/node_modules/node-gyp/lib/find-python.js b/deps/npm/node_modules/node-gyp/lib/find-python.js index e79bc50d5a1d54..fabc4630f15d44 100644 --- a/deps/npm/node_modules/node-gyp/lib/find-python.js +++ b/deps/npm/node_modules/node-gyp/lib/find-python.js @@ -226,7 +226,7 @@ PythonFinder.prototype = { } this.addLog(`- version is "${version}"`) - const range = semver.Range(this.semverRange) + const range = new semver.Range(this.semverRange) var valid = false try { valid = range.test(version) diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js index f68cd7fd6d2a59..c919c1058811ee 100644 --- a/deps/npm/node_modules/node-gyp/lib/install.js +++ b/deps/npm/node_modules/node-gyp/lib/install.js @@ -11,6 +11,7 @@ const request = require('request') const mkdir = require('mkdirp') const processRelease = require('./process-release') const win = process.platform === 'win32' +const getProxyFromURI = require('./proxy') function install (fs, gyp, argv, callback) { var release = processRelease(argv, gyp, process.version, process.release) @@ -410,10 +411,7 @@ function download (gyp, env, url) { } // basic support for a proxy server - var proxyUrl = gyp.opts.proxy || - env.http_proxy || - env.HTTP_PROXY || - env.npm_config_proxy + var proxyUrl = getProxyFromURI(gyp, env, url) if (proxyUrl) { if (/^https?:\/\//i.test(proxyUrl)) { log.verbose('download', 'using proxy url: "%s"', proxyUrl) diff --git a/deps/npm/node_modules/node-gyp/lib/node-gyp.js b/deps/npm/node_modules/node-gyp/lib/node-gyp.js index 9d24103900f702..81fc590919ba8e 100644 --- a/deps/npm/node_modules/node-gyp/lib/node-gyp.js +++ b/deps/npm/node_modules/node-gyp/lib/node-gyp.js @@ -67,6 +67,7 @@ proto.configDefs = { ensure: Boolean, // 'install' solution: String, // 'build' (windows only) proxy: String, // 'install' + noproxy: String, // 'install' devdir: String, // everywhere nodedir: String, // 'configure' loglevel: String, // everywhere diff --git a/deps/npm/node_modules/node-gyp/lib/proxy.js b/deps/npm/node_modules/node-gyp/lib/proxy.js new file mode 100644 index 00000000000000..92d9ed2f7f0855 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/lib/proxy.js @@ -0,0 +1,92 @@ +'use strict' +// Taken from https://github.com/request/request/blob/212570b/lib/getProxyFromURI.js + +const url = require('url') + +function formatHostname (hostname) { + // canonicalize the hostname, so that 'oogle.com' won't match 'google.com' + return hostname.replace(/^\.*/, '.').toLowerCase() +} + +function parseNoProxyZone (zone) { + zone = zone.trim().toLowerCase() + + var zoneParts = zone.split(':', 2) + var zoneHost = formatHostname(zoneParts[0]) + var zonePort = zoneParts[1] + var hasPort = zone.indexOf(':') > -1 + + return { hostname: zoneHost, port: zonePort, hasPort: hasPort } +} + +function uriInNoProxy (uri, noProxy) { + var port = uri.port || (uri.protocol === 'https:' ? '443' : '80') + var hostname = formatHostname(uri.hostname) + var noProxyList = noProxy.split(',') + + // iterate through the noProxyList until it finds a match. + return noProxyList.map(parseNoProxyZone).some(function (noProxyZone) { + var isMatchedAt = hostname.indexOf(noProxyZone.hostname) + var hostnameMatched = ( + isMatchedAt > -1 && + (isMatchedAt === hostname.length - noProxyZone.hostname.length) + ) + + if (noProxyZone.hasPort) { + return (port === noProxyZone.port) && hostnameMatched + } + + return hostnameMatched + }) +} + +function getProxyFromURI (gyp, env, uri) { + // If a string URI/URL was given, parse it into a URL object + if (typeof uri === 'string') { + // eslint-disable-next-line + uri = url.parse(uri) + } + + // Decide the proper request proxy to use based on the request URI object and the + // environmental variables (NO_PROXY, HTTP_PROXY, etc.) + // respect NO_PROXY environment variables (see: https://lynx.invisible-island.net/lynx2.8.7/breakout/lynx_help/keystrokes/environments.html) + + var noProxy = gyp.opts.noproxy || env.NO_PROXY || env.no_proxy || env.npm_config_noproxy || '' + + // if the noProxy is a wildcard then return null + + if (noProxy === '*') { + return null + } + + // if the noProxy is not empty and the uri is found return null + + if (noProxy !== '' && uriInNoProxy(uri, noProxy)) { + return null + } + + // Check for HTTP or HTTPS Proxy in environment Else default to null + + if (uri.protocol === 'http:') { + return gyp.opts.proxy || + env.HTTP_PROXY || + env.http_proxy || + env.npm_config_proxy || null + } + + if (uri.protocol === 'https:') { + return gyp.opts.proxy || + env.HTTPS_PROXY || + env.https_proxy || + env.HTTP_PROXY || + env.http_proxy || + env.npm_config_proxy || null + } + + // if none of that works, return null + // (What uri protocol are you using then?) + + return null +} + +module.exports = getProxyFromURI diff --git a/deps/npm/node_modules/node-gyp/macOS_Catalina.md b/deps/npm/node_modules/node-gyp/macOS_Catalina.md index 5f02face57d963..d948f76caa074d 100644 --- a/deps/npm/node_modules/node-gyp/macOS_Catalina.md +++ b/deps/npm/node_modules/node-gyp/macOS_Catalina.md @@ -1,39 +1,37 @@ # Installation notes for macOS Catalina (v10.15) -_This document specifically refers to upgrades from previous versions of macOS to Catalina (10.15). It should be removed from the source repository when Catalina ceases to be the latest macOS version or updated to deal with challenges involved in upgrades to the next version of macOS._ +_This document specifically refers to upgrades from previous versions of macOS to Catalina (10.15). It should be removed from the source repository when Catalina ceases to be the latest macOS version or when future Catalina versions no longer raise these issues._ -Lessons learned from: -* https://github.com/nodejs/node-gyp/issues/1779 -* https://github.com/nodejs/node-gyp/issues/1861 -* https://github.com/nodejs/node-gyp/issues/1927 and elsewhere - -Installing `node-gyp` on macOS can be found at https://github.com/nodejs/node-gyp#on-macos - -However, upgrading to macOS Catalina changes some settings that may cause normal `node-gyp` installations to fail. +**Upgrading to macOS Catalina may cause normal `node-gyp` installations to fail.** ### Is my Mac running macOS Catalina? -Let's make first make sure that your Mac is currently running Catalina: -% `sw_vers` +Let's first make sure that your Mac is running Catalina: +``` +% sw_vers ProductName: Mac OS X ProductVersion: 10.15 BuildVersion: 19A602 +``` +If `ProductVersion` is less then `10.15` then this document is not for you. Normal install docs for `node-gyp` on macOS can be found at https://github.com/nodejs/node-gyp#on-macos -If `ProductVersion` is less then `10.15` then this document is not really for you. ### The acid test -Next, lets see if `Xcode Command Line Tools` are installed: +To see if `Xcode Command Line Tools` is installed in a way that will work with `node-gyp`, run: 1. `/usr/sbin/pkgutil --packages | grep CL` - * If nothing is listed, then [skip to the next section](#Two-roads). - * If `com.apple.pkg.CLTools_Executables` is listed then try: + * `com.apple.pkg.CLTools_Executables` should be listed. If it isn't, this test failed. 2. `/usr/sbin/pkgutil --pkg-info com.apple.pkg.CLTools_Executables` - * If `version: 11.0.0` or later is listed then _you are done_! Your Mac should be ready to install `node-gyp`. Doing `clang -v` should show `Apple clang version 11.0.0` or later. + * `version: 11.0.0` (or later) should be listed. If it isn't, this test failed. + +If both tests succeeded, _you are done_! You should be ready to install `node-gyp`. -As you go through the remainder of this document, at anytime you can try these `acid test` commands. If they pass then your Mac should be ready to install `node-gyp`. +If either test failed, there is a problem with your Xcode Command Line Tools installation. [Continue to Solutions](#Solutions). + +### Solutions +There are three ways to install the Xcode libraries `node-gyp` needs on macOS. People running Catalina have had success with some but not others in a way that has been unpredictable. -### Two roads -There are two main ways to install `node-gyp` on macOS: 1. With the full Xcode (~7.6 GB download) from the `App Store` app. 2. With the _much_ smaller Xcode Command Line Tools via `xcode-select --install` +3. With the _much_ smaller Xcode Command Line Tools via manual download. **For people running the latest version of Catalina (10.15.2 at the time of this writing), this has worked when the other two solutions haven't.** ### Installing `node-gyp` using the full Xcode 1. `xcodebuild -version` should show `Xcode 11.1` or later. @@ -52,7 +50,7 @@ There are two main ways to install `node-gyp` on macOS: 10. `sudo xcode-select --reset` # Enter root password. No output is normal. 11. Repeat step 7 above. Is the path different this time? Repeat the _acid test_. -### Installing `node-gyp` using the Xcode Command Line Tools +### Installing `node-gyp` using the Xcode Command Line Tools via `xcode-select --install` 1. If the _acid test_ has not succeeded, then try `xcode-select --install` 2. Wait until the install process is _complete_. 3. `softwareupdate -l` # No listing is a good sign. @@ -64,6 +62,11 @@ There are two main ways to install `node-gyp` on macOS: 8. `sudo xcode-select --reset` # Enter root password. No output is normal. 9. Repeat step 5 above. Is the path different this time? Repeat the _acid test_. +### Installing `node-gyp` using the Xcode Command Line Tools via manual download +1. Download the appropriate version of the "Command Line Tools for Xcode" for your version of Catalina from developer.apple.com/download. As of MacOS 10.15.2, that's Command_Line_Tools_for_Xcode_11.3.dmg +2. Install the package. +3. Run the _acid test_. + ### I did all that and the acid test still does not pass :-( 1. `sudo rm -rf $(xcode-select -print-path)` # Enter root password. No output is normal. 2. `xcode-select --install` @@ -72,3 +75,9 @@ There are two main ways to install `node-gyp` on macOS: 5. `npm explore npm -g -- npm explore npm-lifecycle -- npm install node-gyp@latest` 6. If the _acid test_ still does _not_ pass then... 7. Add a comment to https://github.com/nodejs/node-gyp/issues/1927 so we can improve. + +Lessons learned from: +* https://github.com/nodejs/node-gyp/issues/1779 +* https://github.com/nodejs/node-gyp/issues/1861 +* https://github.com/nodejs/node-gyp/issues/1927 and elsewhere +* Thanks to @rrrix for discovering Solution 3 diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json index afa45f3969095a..4638db5a3f4a30 100644 --- a/deps/npm/node_modules/node-gyp/package.json +++ b/deps/npm/node_modules/node-gyp/package.json @@ -1,29 +1,29 @@ { - "_from": "node-gyp@5.0.7", - "_id": "node-gyp@5.0.7", + "_from": "node-gyp@5.1.0", + "_id": "node-gyp@5.1.0", "_inBundle": false, - "_integrity": "sha512-K8aByl8OJD51V0VbUURTKsmdswkQQusIvlvmTyhHlIT1hBvaSxzdxpSle857XuXa7uc02UEZx9OR5aDxSWS5Qw==", + "_integrity": "sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw==", "_location": "/node-gyp", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "node-gyp@5.0.7", + "raw": "node-gyp@5.1.0", "name": "node-gyp", "escapedName": "node-gyp", - "rawSpec": "5.0.7", + "rawSpec": "5.1.0", "saveSpec": null, - "fetchSpec": "5.0.7" + "fetchSpec": "5.1.0" }, "_requiredBy": [ "#USER", "/", "/npm-lifecycle" ], - "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.0.7.tgz", - "_shasum": "dd4225e735e840cf2870e4037c2ed9c28a31719e", - "_spec": "node-gyp@5.0.7", - "_where": "/Users/mperrotte/npminc/cli", + "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz", + "_shasum": "8e31260a7af4a2e2f994b0673d4e0b3866156332", + "_spec": "node-gyp@5.1.0", + "_where": "/Users/darcyclarke/Documents/Repos/npm/cli", "author": { "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", @@ -84,5 +84,5 @@ "lint": "standard */*.js test/**/*.js", "test": "npm run lint && tap --timeout=120 test/test-*" }, - "version": "5.0.7" + "version": "5.1.0" } diff --git a/deps/npm/node_modules/node-gyp/test/docker.sh b/deps/npm/node_modules/node-gyp/test/docker.sh deleted file mode 100755 index 67014209d00038..00000000000000 --- a/deps/npm/node_modules/node-gyp/test/docker.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/bash - -#set -e - -test_node_versions="6.17.0 8.15.1 10.15.3 11.12.0" - -myuid=$(id -u) -mygid=$(id -g) -__dirname="$(CDPATH= cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -dot_node_gyp=${__dirname}/.node-gyp/ - -# borrows from https://github.com/rvagg/dnt/ - -# Simple setup function for a container: -# setup_container(image id, base image, commands to run to set up) -setup_container() { - local container_id="$1" - local base_container="$2" - local run_cmd="$3" - - # Does this image exist? If yes, ignore - docker inspect "$container_id" &> /dev/null - if [[ $? -eq 0 ]]; then - echo "Found existing container [$container_id]" - else - # No such image, so make it - echo "Did not find container [$container_id], creating..." - docker run -i $base_container /bin/bash -c "$run_cmd" - sleep 2 - docker commit $(docker ps -l -q) $container_id - fi -} - -# Run tests inside each of the versioned containers, copy cwd into npm's copy of node-gyp -# so it'll be invoked by npm when a compile is needed -# run_tests(version, test-commands) -run_tests() { - local version="$1" - local run_cmd="$2" - - run_cmd="rsync -aAXx --delete --exclude .git --exclude build /node-gyp-src/ /usr/lib/node_modules/npm/node_modules/node-gyp/; - /bin/su -s /bin/bash node-gyp -c 'cd && ${run_cmd}'" - - rm -rf $dot_node_gyp - mkdir $dot_node_gyp - - docker run \ - --rm -i \ - -v ~/.npm/:/node-gyp/.npm/ \ - -v ${dot_node_gyp}:/node-gyp/.node-gyp/ \ - -v $(pwd):/node-gyp-src/:ro \ - node-gyp-test/${version} /bin/bash -c "${run_cmd}" -} - -# A base image with build tools and a user account -setup_container "node-gyp-test/base" "ubuntu:14.04" " - adduser --gecos node-gyp --home /node-gyp/ --disabled-login node-gyp --uid $myuid && - echo "node-gyp:node-gyp" | chpasswd && - apt-get update && - apt-get install -y build-essential python git rsync curl -" - -# An image on top of the base containing clones of repos we want to use for testing -setup_container "node-gyp-test/clones" "node-gyp-test/base" " - cd /node-gyp/ && git clone https://github.com/justmoon/node-bignum.git && - cd /node-gyp/ && git clone https://github.com/bnoordhuis/node-buffertools.git && - chown -R node-gyp.node-gyp /node-gyp/ -" - -# An image for each of the node versions we want to test with that version installed and the latest npm -for v in $test_node_versions; do - setup_container "node-gyp-test/${v}" "node-gyp-test/clones" " - curl -sL https://nodejs.org/dist/v${v}/node-v${v}-linux-x64.tar.gz | tar -zxv --strip-components=1 -C /usr/ && - npm install npm@latest -g && - node -v && npm -v - " -done - -# Test use of --target=x.y.z to compile against alternate versions -test_download_node_version() { - local run_with_ver="$1" - local expected_dir="$2" - local expected_ver="$3" - run_tests $run_with_ver "cd node-buffertools && npm install --loglevel=info --target=${expected_ver}" - local node_ver=$(cat "${dot_node_gyp}${expected_dir}/node_version.h" | grep '#define NODE_\w*_VERSION [0-9]*$') - node_ver=$(echo $node_ver | sed 's/#define NODE_[A-Z]*_VERSION //g' | sed 's/ /./g') - if [ "X$(echo $node_ver)" != "X${expected_ver}" ]; then - echo "Did not download v${expected_ver} using --target, instead got: $(echo $node_ver)" - exit 1 - fi - echo "Verified correct download of [v${node_ver}]" -} - -test_download_node_version "0.12.7" "0.10.30/src" "0.10.30" -# should download the headers file -test_download_node_version "4.3.0" "4.3.0/include/node" "4.3.0" -test_download_node_version "5.6.0" "5.6.0/include/node" "5.6.0" - -# TODO: test --dist-url by starting up a localhost server and serving up tarballs - -# testing --dist-url, using simple-proxy.js to make localhost work as a distribution -# point for tarballs -# we can test whether it uses the proxy because after 2 connections the proxy will -# die and therefore should not be running at the end of the test, `nc` can tell us this -run_tests "0.12.7" " - (node /node-gyp-src/test/simple-proxy.js 8080 /boombar/ https://nodejs.org/dist/ &) && - cd node-buffertools && - NODEJS_ORG_MIRROR=http://localhost:8080/boombar/ /node-gyp-src/bin/node-gyp.js --loglevel=info rebuild && - nc -z localhost 8080 && echo -e \"\\n\\n\\033[31mFAILED TO USE LOCAL PROXY\\033[39m\\n\\n\" -" - -rm -rf $dot_node_gyp diff --git a/deps/npm/node_modules/node-gyp/test/test-download.js b/deps/npm/node_modules/node-gyp/test/test-download.js index 738a43f276b093..fe373e3280ce66 100644 --- a/deps/npm/node_modules/node-gyp/test/test-download.js +++ b/deps/npm/node_modules/node-gyp/test/test-download.js @@ -90,6 +90,101 @@ test('download over https with custom ca', function (t) { }) }) +test('download over http with proxy', function (t) { + t.plan(2) + + var server = http.createServer(function (req, res) { + t.strictEqual(req.headers['user-agent'], + 'node-gyp v42 (node ' + process.version + ')') + res.end('ok') + pserver.close(function () { + server.close() + }) + }) + + var pserver = http.createServer(function (req, res) { + t.strictEqual(req.headers['user-agent'], + 'node-gyp v42 (node ' + process.version + ')') + res.end('proxy ok') + server.close(function () { + pserver.close() + }) + }) + + var host = 'localhost' + server.listen(0, host, function () { + var port = this.address().port + pserver.listen(port + 1, host, function () { + var gyp = { + opts: { + proxy: 'http://' + host + ':' + (port + 1) + }, + version: '42' + } + var url = 'http://' + host + ':' + port + var req = install.test.download(gyp, {}, url) + req.on('response', function (res) { + var body = '' + res.setEncoding('utf8') + res.on('data', function (data) { + body += data + }) + res.on('end', function () { + t.strictEqual(body, 'proxy ok') + }) + }) + }) + }) +}) + +test('download over http with noproxy', function (t) { + t.plan(2) + + var server = http.createServer(function (req, res) { + t.strictEqual(req.headers['user-agent'], + 'node-gyp v42 (node ' + process.version + ')') + res.end('ok') + pserver.close(function () { + server.close() + }) + }) + + var pserver = http.createServer(function (req, res) { + t.strictEqual(req.headers['user-agent'], + 'node-gyp v42 (node ' + process.version + ')') + res.end('proxy ok') + server.close(function () { + pserver.close() + }) + }) + + var host = 'localhost' + server.listen(0, host, function () { + var port = this.address().port + pserver.listen(port + 1, host, function () { + var gyp = { + opts: { + proxy: 'http://' + host + ':' + (port + 1), + noproxy: 'localhost' + }, + version: '42' + } + var url = 'http://' + host + ':' + port + var req = install.test.download(gyp, {}, url) + req.on('response', function (res) { + var body = '' + res.setEncoding('utf8') + res.on('data', function (data) { + body += data + }) + res.on('end', function () { + t.strictEqual(body, 'ok') + }) + }) + }) + }) +}) + test('download with missing cafile', function (t) { t.plan(1) var gyp = { @@ -116,7 +211,7 @@ test('download headers (actual)', function (t) { process.release.name !== 'node' || semver.prerelease(process.version) !== null || semver.satisfies(process.version, '<10')) { - return t.skip('Skipping acutal download of headers due to test environment configuration') + return t.skip('Skipping actual download of headers due to test environment configuration') } t.plan(17) diff --git a/deps/npm/node_modules/npm-profile/index.js b/deps/npm/node_modules/npm-profile/index.js index b7f753fb4d41da..d9c48c131bc927 100644 --- a/deps/npm/node_modules/npm-profile/index.js +++ b/deps/npm/node_modules/npm-profile/index.js @@ -1,7 +1,7 @@ 'use strict' const fetch = require('npm-registry-fetch') -const {HttpErrorBase} = require('npm-registry-fetch/errors.js') +const { HttpErrorBase } = require('npm-registry-fetch/errors.js') const os = require('os') const pudding = require('figgy-pudding') const validate = require('aproba') @@ -18,6 +18,16 @@ exports.listTokens = listTokens exports.removeToken = removeToken exports.createToken = createToken +const url = require('url') + +const isValidUrl = u => { + if (u && typeof u === 'string') { + const p = url.parse(u) + return p.slashes && p.host && p.path && /^https?:$/.test(p.protocol) + } + return false +} + const ProfileConfig = pudding({ creds: {}, hostname: {}, @@ -76,21 +86,16 @@ function webAuth (opener, opts, body) { })).then(res => { return Promise.all([res, res.json()]) }).then(([res, content]) => { - const {doneUrl, loginUrl} = content + const { doneUrl, loginUrl } = content process.emit('log', 'verbose', 'web auth', 'got response', content) - if ( - typeof doneUrl !== 'string' || - typeof loginUrl !== 'string' || - !doneUrl || - !loginUrl - ) { + if (!isValidUrl(doneUrl) || !isValidUrl(loginUrl)) { throw new WebLoginInvalidResponse('POST', res, content) } return content - }).then(({doneUrl, loginUrl}) => { + }).then(({ doneUrl, loginUrl }) => { process.emit('log', 'verbose', 'web auth', 'opening url pair') return opener(loginUrl).then( - () => webAuthCheckLogin(doneUrl, opts.concat({cache: false})) + () => webAuthCheckLogin(doneUrl, opts.concat({ cache: false })) ) }).catch(er => { if ((er.statusCode >= 400 && er.statusCode <= 499) || er.statusCode === 500) { @@ -183,7 +188,7 @@ function loginCouch (username, password, opts) { } if (err.code !== 'E409') throw err return fetch.json(target, opts.concat({ - query: {write: true} + query: { write: true } })).then(result => { Object.keys(result).forEach(function (k) { if (!body[k] || k === 'roles') { diff --git a/deps/npm/node_modules/npm-profile/package.json b/deps/npm/node_modules/npm-profile/package.json index 2f252aac85ab0d..e90e16ddf975d9 100644 --- a/deps/npm/node_modules/npm-profile/package.json +++ b/deps/npm/node_modules/npm-profile/package.json @@ -1,28 +1,29 @@ { - "_from": "npm-profile@4.0.2", - "_id": "npm-profile@4.0.2", + "_from": "npm-profile@4.0.4", + "_id": "npm-profile@4.0.4", "_inBundle": false, - "_integrity": "sha512-VRsC04pvRH+9cF+PoVh2nTmJjiG21yu59IHpsBpkxk+jaGAV8lxx96G4SDc0jOHAkfWLXbc6kIph3dGAuRnotQ==", + "_integrity": "sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ==", "_location": "/npm-profile", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "npm-profile@4.0.2", + "raw": "npm-profile@4.0.4", "name": "npm-profile", "escapedName": "npm-profile", - "rawSpec": "4.0.2", + "rawSpec": "4.0.4", "saveSpec": null, - "fetchSpec": "4.0.2" + "fetchSpec": "4.0.4" }, "_requiredBy": [ "#USER", - "/" + "/", + "/libnpm" ], - "_resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-4.0.2.tgz", - "_shasum": "8272a71c19634d0dce9c35a5daf8ee589cbb0f52", - "_spec": "npm-profile@4.0.2", - "_where": "/Users/isaacs/dev/npm/cli", + "_resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-4.0.4.tgz", + "_shasum": "28ee94390e936df6d084263ee2061336a6a1581b", + "_spec": "npm-profile@4.0.4", + "_where": "/Users/darcyclarke/Documents/Repos/npm/cli", "author": { "name": "Rebecca Turner", "email": "me@re-becca.org", @@ -48,9 +49,12 @@ "license": "ISC", "main": "index.js", "name": "npm-profile", + "publishConfig": { + "tag": "legacy-v4" + }, "repository": { "type": "git", "url": "git+https://github.com/npm/npm-profile.git" }, - "version": "4.0.2" + "version": "4.0.4" } diff --git a/deps/npm/node_modules/rimraf/package.json b/deps/npm/node_modules/rimraf/package.json index a82c85a6954442..48f172fb29f5c0 100644 --- a/deps/npm/node_modules/rimraf/package.json +++ b/deps/npm/node_modules/rimraf/package.json @@ -1,46 +1,47 @@ { - "_from": "rimraf@2.6.3", - "_id": "rimraf@2.6.3", + "_from": "rimraf@2.7.1", + "_id": "rimraf@2.7.1", "_inBundle": false, - "_integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "_integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "_location": "/rimraf", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "rimraf@2.6.3", + "raw": "rimraf@2.7.1", "name": "rimraf", "escapedName": "rimraf", - "rawSpec": "2.6.3", + "rawSpec": "2.7.1", "saveSpec": null, - "fetchSpec": "2.6.3" + "fetchSpec": "2.7.1" }, "_requiredBy": [ "#USER", "/", "/cacache", "/copy-concurrently", - "/flat-cache", "/fs-vacuum", - "/fstream", + "/istanbul-lib-source-maps", "/libcipm", "/libnpx", "/move-concurrently", "/node-gyp", + "/nyc", "/pacote", + "/spawn-wrap", "/tap" ], - "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "_shasum": "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab", - "_spec": "rimraf@2.6.3", - "_where": "/Users/aeschright/code/cli", + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "_shasum": "35797f13a7fdadc566142c29d4f07ccad483e3ec", + "_spec": "rimraf@2.7.1", + "_where": "/Users/darcyclarke/Documents/Repos/npm/npm/cli", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", "url": "http://blog.izs.me/" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" }, "bugs": { "url": "https://github.com/isaacs/rimraf/issues" @@ -75,5 +76,5 @@ "preversion": "npm test", "test": "tap test/*.js" }, - "version": "2.6.3" + "version": "2.7.1" } diff --git a/deps/npm/node_modules/rimraf/rimraf.js b/deps/npm/node_modules/rimraf/rimraf.js index e80dd10693f8f6..a90ad029f3ece1 100644 --- a/deps/npm/node_modules/rimraf/rimraf.js +++ b/deps/npm/node_modules/rimraf/rimraf.js @@ -4,7 +4,12 @@ rimraf.sync = rimrafSync var assert = require("assert") var path = require("path") var fs = require("fs") -var glob = require("glob") +var glob = undefined +try { + glob = require("glob") +} catch (_err) { + // treat glob as optional. +} var _0666 = parseInt('666', 8) var defaultGlobOpts = { @@ -37,6 +42,9 @@ function defaults (options) { if (options.glob === false) { options.disableGlob = true } + if (options.disableGlob !== true && glob === undefined) { + throw Error('glob dependency not found, set `options.disableGlob = true` if intentional') + } options.disableGlob = options.disableGlob || false options.glob = options.glob || defaultGlobOpts } diff --git a/deps/npm/package.json b/deps/npm/package.json index 8852d3efad18f1..71c1527eb3285e 100644 --- a/deps/npm/package.json +++ b/deps/npm/package.json @@ -1,5 +1,5 @@ { - "version": "6.14.1", + "version": "6.14.3", "name": "npm", "description": "a package manager for JavaScript", "keywords": [ @@ -60,10 +60,10 @@ "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.3.0", - "glob": "^7.1.4", + "glob": "^7.1.6", "graceful-fs": "^4.2.3", "has-unicode": "~2.0.1", - "hosted-git-info": "^2.8.7", + "hosted-git-info": "^2.8.8", "iferr": "^1.0.2", "infer-owner": "^1.0.4", "inflight": "~1.0.6", @@ -91,9 +91,9 @@ "lru-cache": "^5.1.1", "meant": "~1.0.1", "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", + "mkdirp": "^0.5.3", "move-concurrently": "^1.0.1", - "node-gyp": "^5.0.7", + "node-gyp": "^5.1.0", "nopt": "~4.0.1", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.2", @@ -103,7 +103,7 @@ "npm-package-arg": "^6.1.1", "npm-packlist": "^1.4.8", "npm-pick-manifest": "^3.0.2", - "npm-profile": "^4.0.2", + "npm-profile": "^4.0.4", "npm-registry-fetch": "^4.0.3", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", @@ -125,7 +125,7 @@ "readdir-scoped-modules": "^1.1.0", "request": "^2.88.0", "retry": "^0.12.0", - "rimraf": "^2.6.3", + "rimraf": "^2.7.1", "safe-buffer": "^5.1.2", "semver": "^5.7.1", "sha": "^3.0.0", @@ -280,8 +280,8 @@ "licensee": "^7.0.3", "marked": "^0.6.3", "marked-man": "^0.6.0", - "npm-registry-couchapp": "^2.7.3", - "npm-registry-mock": "^1.3.0", + "npm-registry-couchapp": "^2.7.4", + "npm-registry-mock": "^1.3.1", "require-inject": "^1.4.4", "sprintf-js": "^1.1.2", "standard": "^11.0.1", diff --git a/deps/npm/test/fixtures/config/userconfig-with-gc b/deps/npm/test/fixtures/config/userconfig-with-gc deleted file mode 100644 index cf774bb883d966..00000000000000 --- a/deps/npm/test/fixtures/config/userconfig-with-gc +++ /dev/null @@ -1,23 +0,0 @@ -globalconfig = /Users/isaacs/dev/npm/cli/test/fixtures/config/globalconfig -email = i@izs.me -env-thing = ${random_env_var} -init.author.name = Isaac Z. Schlueter -init.author.email = i@izs.me -init.author.url = http://blog.izs.me/ -init.version = 1.2.3 -npm:publishtest = true -_npmjs.org:couch = https://admin:password@localhost:5984/registry -npm-www:nocache = 1 -nodedir = /Users/isaacs/dev/js/node-v0.8 -sign-git-tag = true -message = v%s -strict-ssl = false -tmp = ~/.tmp -_auth = dXNlcm5hbWU6cGFzc3dvcmQ= - -[_token] -AuthSession = yabba-dabba-doodle -version = 1 -expires = 1345001053415 -path = / -httponly = true