From 468ab4519e1b92473acefb22801497a1af6aebae Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Fri, 20 Apr 2018 18:26:37 -0700 Subject: deps: upgrade npm to 6.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/20190 Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Benjamin Gruenbaum Reviewed-By: MichaĆ«l Zasso --- deps/npm/.github/issue_template.md | 1 + deps/npm/.mailmap | 7 + deps/npm/.npmignore | 11 +- deps/npm/.travis.yml | 5 +- deps/npm/AUTHORS | 48 +- deps/npm/CHANGELOG.md | 1950 +-- deps/npm/Makefile | 4 +- deps/npm/README.md | 4 +- deps/npm/bin/npm-cli.js | 75 +- deps/npm/bin/npx | 5 +- deps/npm/bin/npx.cmd | 3 +- deps/npm/changelogs/CHANGELOG-5.md | 2360 ++++ deps/npm/doc/cli/npm-audit.md | 94 + deps/npm/doc/cli/npm-ci.md | 58 + deps/npm/doc/cli/npm-hook.md | 72 + deps/npm/doc/cli/npm-init.md | 62 +- deps/npm/doc/cli/npm-install-ci-test.md | 16 + deps/npm/doc/cli/npm-install.md | 10 +- deps/npm/doc/cli/npm-ls.md | 2 +- deps/npm/doc/cli/npm-outdated.md | 2 + deps/npm/doc/cli/npm-prune.md | 16 +- deps/npm/doc/cli/npm-run-script.md | 4 + deps/npm/doc/cli/npm-team.md | 3 + deps/npm/doc/cli/npm-update.md | 28 +- deps/npm/doc/cli/npm-version.md | 2 +- deps/npm/doc/cli/npm.md | 2 +- deps/npm/doc/files/npm-folders.md | 2 +- deps/npm/doc/files/npm-package-locks.md | 19 + deps/npm/doc/files/package-lock.json.md | 10 + deps/npm/doc/files/package.json.md | 48 +- deps/npm/doc/misc/npm-coding-style.md | 2 +- deps/npm/doc/misc/npm-config.md | 27 +- deps/npm/doc/misc/npm-developers.md | 2 +- deps/npm/doc/misc/npm-index.md | 18 +- deps/npm/doc/misc/npm-scope.md | 2 +- deps/npm/doc/misc/semver.md | 22 + deps/npm/doc/spec/package-lock.md | 4 +- deps/npm/html/doc/README.html | 6 +- deps/npm/html/doc/cli/npm-access.html | 2 +- deps/npm/html/doc/cli/npm-adduser.html | 2 +- deps/npm/html/doc/cli/npm-audit.html | 88 + deps/npm/html/doc/cli/npm-bin.html | 2 +- deps/npm/html/doc/cli/npm-bugs.html | 2 +- deps/npm/html/doc/cli/npm-build.html | 2 +- deps/npm/html/doc/cli/npm-bundle.html | 2 +- deps/npm/html/doc/cli/npm-cache.html | 2 +- deps/npm/html/doc/cli/npm-ci.html | 64 + deps/npm/html/doc/cli/npm-completion.html | 2 +- deps/npm/html/doc/cli/npm-config.html | 2 +- deps/npm/html/doc/cli/npm-dedupe.html | 2 +- deps/npm/html/doc/cli/npm-deprecate.html | 2 +- deps/npm/html/doc/cli/npm-dist-tag.html | 2 +- deps/npm/html/doc/cli/npm-docs.html | 2 +- deps/npm/html/doc/cli/npm-doctor.html | 12 +- deps/npm/html/doc/cli/npm-edit.html | 2 +- deps/npm/html/doc/cli/npm-explore.html | 2 +- deps/npm/html/doc/cli/npm-help-search.html | 2 +- deps/npm/html/doc/cli/npm-help.html | 2 +- deps/npm/html/doc/cli/npm-hook.html | 63 + deps/npm/html/doc/cli/npm-init.html | 52 +- deps/npm/html/doc/cli/npm-install-ci-test.html | 36 + deps/npm/html/doc/cli/npm-install-test.html | 2 +- deps/npm/html/doc/cli/npm-install.html | 12 +- deps/npm/html/doc/cli/npm-link.html | 2 +- deps/npm/html/doc/cli/npm-logout.html | 2 +- deps/npm/html/doc/cli/npm-ls.html | 6 +- deps/npm/html/doc/cli/npm-outdated.html | 11 +- deps/npm/html/doc/cli/npm-owner.html | 2 +- deps/npm/html/doc/cli/npm-pack.html | 2 +- deps/npm/html/doc/cli/npm-ping.html | 2 +- deps/npm/html/doc/cli/npm-prefix.html | 2 +- deps/npm/html/doc/cli/npm-profile.html | 2 +- deps/npm/html/doc/cli/npm-prune.html | 14 +- deps/npm/html/doc/cli/npm-publish.html | 2 +- deps/npm/html/doc/cli/npm-rebuild.html | 2 +- deps/npm/html/doc/cli/npm-repo.html | 2 +- deps/npm/html/doc/cli/npm-restart.html | 2 +- deps/npm/html/doc/cli/npm-root.html | 2 +- deps/npm/html/doc/cli/npm-run-script.html | 5 +- deps/npm/html/doc/cli/npm-search.html | 2 +- deps/npm/html/doc/cli/npm-shrinkwrap.html | 2 +- deps/npm/html/doc/cli/npm-star.html | 2 +- deps/npm/html/doc/cli/npm-stars.html | 2 +- deps/npm/html/doc/cli/npm-start.html | 2 +- deps/npm/html/doc/cli/npm-stop.html | 2 +- deps/npm/html/doc/cli/npm-team.html | 5 +- deps/npm/html/doc/cli/npm-test.html | 2 +- deps/npm/html/doc/cli/npm-token.html | 2 +- deps/npm/html/doc/cli/npm-uninstall.html | 2 +- deps/npm/html/doc/cli/npm-unpublish.html | 4 +- deps/npm/html/doc/cli/npm-update.html | 48 +- deps/npm/html/doc/cli/npm-version.html | 4 +- deps/npm/html/doc/cli/npm-view.html | 2 +- deps/npm/html/doc/cli/npm-whoami.html | 2 +- deps/npm/html/doc/cli/npm.html | 8 +- deps/npm/html/doc/files/npm-folders.html | 14 +- deps/npm/html/doc/files/npm-global.html | 14 +- deps/npm/html/doc/files/npm-json.html | 47 +- deps/npm/html/doc/files/npm-package-locks.html | 19 +- deps/npm/html/doc/files/npm-shrinkwrap.json.html | 2 +- deps/npm/html/doc/files/npmrc.html | 2 +- deps/npm/html/doc/files/package-lock.json.html | 8 +- deps/npm/html/doc/files/package.json.html | 47 +- deps/npm/html/doc/index.html | 12 +- deps/npm/html/doc/misc/npm-coding-style.html | 4 +- deps/npm/html/doc/misc/npm-config.html | 27 +- deps/npm/html/doc/misc/npm-developers.html | 6 +- deps/npm/html/doc/misc/npm-disputes.html | 14 +- deps/npm/html/doc/misc/npm-index.html | 12 +- deps/npm/html/doc/misc/npm-orgs.html | 2 +- deps/npm/html/doc/misc/npm-registry.html | 2 +- deps/npm/html/doc/misc/npm-scope.html | 4 +- deps/npm/html/doc/misc/npm-scripts.html | 16 +- deps/npm/html/doc/misc/removing-npm.html | 2 +- deps/npm/html/doc/misc/semver.html | 29 +- deps/npm/lib/access.js | 3 +- deps/npm/lib/adduser.js | 2 +- deps/npm/lib/audit.js | 264 + deps/npm/lib/auth/legacy.js | 100 +- deps/npm/lib/auth/sso.js | 7 +- deps/npm/lib/bugs.js | 5 +- deps/npm/lib/build.js | 4 +- deps/npm/lib/cache.js | 1 + deps/npm/lib/ci.js | 40 + deps/npm/lib/completion.js | 4 +- deps/npm/lib/config.js | 30 +- deps/npm/lib/config/cmd-list.js | 11 +- deps/npm/lib/config/core.js | 34 +- deps/npm/lib/config/defaults.js | 18 +- deps/npm/lib/config/fetch-opts.js | 12 +- deps/npm/lib/config/get-credentials-by-uri.js | 6 +- deps/npm/lib/config/load-prefix.js | 2 +- deps/npm/lib/config/pacote.js | 2 + deps/npm/lib/config/set-credentials-by-uri.js | 2 +- deps/npm/lib/dedupe.js | 4 +- deps/npm/lib/deprecate.js | 1 + deps/npm/lib/dist-tag.js | 1 + deps/npm/lib/docs.js | 5 +- deps/npm/lib/edit.js | 4 +- deps/npm/lib/help-search.js | 18 +- deps/npm/lib/help.js | 10 +- deps/npm/lib/hook.js | 135 + deps/npm/lib/init.js | 46 +- deps/npm/lib/install-ci-test.js | 26 + deps/npm/lib/install.js | 148 +- deps/npm/lib/install/action/extract-worker.js | 4 +- deps/npm/lib/install/action/extract.js | 32 +- deps/npm/lib/install/action/fetch.js | 2 +- deps/npm/lib/install/actions.js | 2 +- deps/npm/lib/install/audit.js | 272 + deps/npm/lib/install/copy-tree.js | 17 +- deps/npm/lib/install/decompose-actions.js | 79 +- deps/npm/lib/install/deps.js | 130 +- deps/npm/lib/install/diff-trees.js | 42 +- deps/npm/lib/install/get-requested.js | 4 +- deps/npm/lib/install/has-modern-meta.js | 20 + deps/npm/lib/install/inflate-shrinkwrap.js | 81 +- deps/npm/lib/install/is-only-optional.js | 3 +- deps/npm/lib/install/read-shrinkwrap.js | 68 +- deps/npm/lib/install/save.js | 12 +- deps/npm/lib/link.js | 6 +- deps/npm/lib/ls.js | 16 +- deps/npm/lib/npm.js | 28 +- deps/npm/lib/outdated.js | 181 +- deps/npm/lib/owner.js | 3 +- deps/npm/lib/pack.js | 170 +- deps/npm/lib/profile.js | 29 +- deps/npm/lib/prune.js | 2 + deps/npm/lib/publish.js | 45 +- deps/npm/lib/repo.js | 9 +- deps/npm/lib/run-script.js | 2 +- deps/npm/lib/search/format-package-stream.js | 16 +- deps/npm/lib/search/package-filter.js | 20 +- deps/npm/lib/shrinkwrap.js | 48 +- deps/npm/lib/team.js | 3 +- deps/npm/lib/test.js | 1 + deps/npm/lib/token.js | 31 +- deps/npm/lib/unbuild.js | 2 +- deps/npm/lib/uninstall.js | 4 +- deps/npm/lib/unpublish.js | 9 +- deps/npm/lib/update.js | 2 +- deps/npm/lib/utils/error-handler.js | 2 +- deps/npm/lib/utils/error-message.js | 117 +- deps/npm/lib/utils/gunzip-maybe.js | 4 +- deps/npm/lib/utils/metrics-launch.js | 1 + deps/npm/lib/utils/open-url.js | 16 + deps/npm/lib/utils/parse-json.js | 5 +- deps/npm/lib/utils/perf.js | 3 +- .../utils/pick-manifest-from-registry-metadata.js | 2 +- deps/npm/lib/utils/read-user-info.js | 10 +- deps/npm/lib/utils/stringify-package.js | 17 + deps/npm/lib/utils/unsupported.js | 7 +- deps/npm/lib/version.js | 32 +- deps/npm/lib/view.js | 165 +- deps/npm/lib/xmas.js | 2 +- deps/npm/man/man1/npm-README.1 | 8 +- deps/npm/man/man1/npm-access.1 | 2 +- deps/npm/man/man1/npm-adduser.1 | 4 +- deps/npm/man/man1/npm-audit.1 | 132 + deps/npm/man/man1/npm-bin.1 | 2 +- deps/npm/man/man1/npm-bugs.1 | 4 +- deps/npm/man/man1/npm-build.1 | 2 +- deps/npm/man/man1/npm-bundle.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 6 +- deps/npm/man/man1/npm-ci.1 | 76 + 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 | 4 +- 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-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-hook.1 | 97 + deps/npm/man/man1/npm-init.1 | 78 +- deps/npm/man/man1/npm-install-ci-test.1 | 23 + deps/npm/man/man1/npm-install-test.1 | 2 +- deps/npm/man/man1/npm-install.1 | 15 +- deps/npm/man/man1/npm-link.1 | 2 +- deps/npm/man/man1/npm-logout.1 | 4 +- deps/npm/man/man1/npm-ls.1 | 6 +- deps/npm/man/man1/npm-outdated.1 | 13 +- 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 | 18 +- 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 | 10 +- deps/npm/man/man1/npm-search.1 | 4 +- 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 | 4 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-team.1 | 5 +- 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 | 4 +- deps/npm/man/man1/npm-update.1 | 62 +- deps/npm/man/man1/npm-version.1 | 4 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 8 +- deps/npm/man/man1/npx.1 | 9 +- deps/npm/man/man5/npm-folders.5 | 14 +- deps/npm/man/man5/npm-global.5 | 14 +- deps/npm/man/man5/npm-json.5 | 53 +- deps/npm/man/man5/npm-package-locks.5 | 23 +- deps/npm/man/man5/npm-shrinkwrap.json.5 | 2 +- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package-lock.json.5 | 10 +- deps/npm/man/man5/package.json.5 | 53 +- deps/npm/man/man7/npm-coding-style.7 | 4 +- deps/npm/man/man7/npm-config.7 | 39 +- deps/npm/man/man7/npm-developers.7 | 4 +- deps/npm/man/man7/npm-disputes.7 | 6 +- deps/npm/man/man7/npm-index.7 | 16 +- deps/npm/man/man7/npm-orgs.7 | 2 +- deps/npm/man/man7/npm-registry.7 | 2 +- deps/npm/man/man7/npm-scope.7 | 4 +- deps/npm/man/man7/npm-scripts.7 | 16 +- deps/npm/man/man7/removing-npm.7 | 2 +- deps/npm/man/man7/semver.7 | 26 +- deps/npm/node_modules/JSONStream/bin.js | 10 + deps/npm/node_modules/JSONStream/index.js | 8 - .../JSONStream/node_modules/jsonparse/.npmignore | 1 - .../JSONStream/node_modules/jsonparse/LICENSE | 24 - .../node_modules/jsonparse/README.markdown | 10 - .../JSONStream/node_modules/jsonparse/bench.js | 26 - .../node_modules/jsonparse/examples/twitterfeed.js | 30 - .../JSONStream/node_modules/jsonparse/jsonparse.js | 413 - .../JSONStream/node_modules/jsonparse/package.json | 58 - .../node_modules/jsonparse/samplejson/basic.json | 167 - .../node_modules/jsonparse/samplejson/basic2.json | 180 - .../node_modules/jsonparse/test/big-token.js | 24 - .../node_modules/jsonparse/test/boundary.js | 110 - .../node_modules/jsonparse/test/offset.js | 67 - .../node_modules/jsonparse/test/primitives.js | 57 - .../node_modules/jsonparse/test/surrogate.js | 25 - .../node_modules/jsonparse/test/unvalid.js | 15 - .../JSONStream/node_modules/jsonparse/test/utf8.js | 38 - .../JSONStream/node_modules/through/.travis.yml | 5 - .../node_modules/through/LICENSE.APACHE2 | 15 - .../JSONStream/node_modules/through/LICENSE.MIT | 24 - .../JSONStream/node_modules/through/index.js | 107 - .../JSONStream/node_modules/through/package.json | 72 - .../node_modules/through/readme.markdown | 64 - .../JSONStream/node_modules/through/test/async.js | 28 - .../node_modules/through/test/auto-destroy.js | 29 - .../node_modules/through/test/buffering.js | 71 - .../JSONStream/node_modules/through/test/end.js | 45 - .../JSONStream/node_modules/through/test/index.js | 133 - deps/npm/node_modules/JSONStream/package.json | 32 +- deps/npm/node_modules/abbrev/package.json | 12 +- deps/npm/node_modules/agent-base/.travis.yml | 23 + deps/npm/node_modules/agent-base/History.md | 113 + deps/npm/node_modules/agent-base/README.md | 145 + deps/npm/node_modules/agent-base/index.js | 160 + deps/npm/node_modules/agent-base/package.json | 69 + deps/npm/node_modules/agent-base/patch-core.js | 37 + .../agent-base/test/ssl-cert-snakeoil.key | 15 + .../agent-base/test/ssl-cert-snakeoil.pem | 12 + deps/npm/node_modules/agent-base/test/test.js | 673 + deps/npm/node_modules/agentkeepalive/History.md | 148 + deps/npm/node_modules/agentkeepalive/README.md | 248 + deps/npm/node_modules/agentkeepalive/browser.js | 5 + deps/npm/node_modules/agentkeepalive/index.js | 4 + .../node_modules/agentkeepalive/lib/_http_agent.js | 416 + deps/npm/node_modules/agentkeepalive/lib/agent.js | 133 + .../node_modules/agentkeepalive/lib/https_agent.js | 42 + deps/npm/node_modules/agentkeepalive/package.json | 84 + deps/npm/node_modules/ajv/.tonic_example.js | 20 + deps/npm/node_modules/ajv/LICENSE | 21 + deps/npm/node_modules/ajv/README.md | 1327 ++ deps/npm/node_modules/ajv/dist/ajv.bundle.js | 7345 +++++++++++ deps/npm/node_modules/ajv/dist/ajv.min.js | 3 + deps/npm/node_modules/ajv/dist/ajv.min.js.map | 1 + deps/npm/node_modules/ajv/dist/nodent.min.js | 2 + deps/npm/node_modules/ajv/dist/regenerator.min.js | 2 + deps/npm/node_modules/ajv/lib/$data.js | 49 + deps/npm/node_modules/ajv/lib/ajv.d.ts | 358 + deps/npm/node_modules/ajv/lib/ajv.js | 502 + deps/npm/node_modules/ajv/lib/cache.js | 26 + deps/npm/node_modules/ajv/lib/compile/_rules.js | 31 + deps/npm/node_modules/ajv/lib/compile/async.js | 90 + deps/npm/node_modules/ajv/lib/compile/equal.js | 3 + .../node_modules/ajv/lib/compile/error_classes.js | 34 + deps/npm/node_modules/ajv/lib/compile/formats.js | 135 + deps/npm/node_modules/ajv/lib/compile/index.js | 380 + deps/npm/node_modules/ajv/lib/compile/resolve.js | 271 + deps/npm/node_modules/ajv/lib/compile/rules.js | 58 + .../npm/node_modules/ajv/lib/compile/schema_obj.js | 9 + .../npm/node_modules/ajv/lib/compile/ucs2length.js | 20 + deps/npm/node_modules/ajv/lib/compile/util.js | 267 + deps/npm/node_modules/ajv/lib/dot/_limit.jst | 96 + deps/npm/node_modules/ajv/lib/dot/_limitItems.jst | 10 + deps/npm/node_modules/ajv/lib/dot/_limitLength.jst | 10 + .../node_modules/ajv/lib/dot/_limitProperties.jst | 10 + deps/npm/node_modules/ajv/lib/dot/allOf.jst | 34 + deps/npm/node_modules/ajv/lib/dot/anyOf.jst | 48 + deps/npm/node_modules/ajv/lib/dot/coerce.def | 61 + deps/npm/node_modules/ajv/lib/dot/const.jst | 11 + deps/npm/node_modules/ajv/lib/dot/contains.jst | 57 + deps/npm/node_modules/ajv/lib/dot/custom.jst | 191 + deps/npm/node_modules/ajv/lib/dot/defaults.def | 32 + deps/npm/node_modules/ajv/lib/dot/definitions.def | 199 + deps/npm/node_modules/ajv/lib/dot/dependencies.jst | 80 + deps/npm/node_modules/ajv/lib/dot/enum.jst | 30 + deps/npm/node_modules/ajv/lib/dot/errors.def | 194 + deps/npm/node_modules/ajv/lib/dot/format.jst | 106 + deps/npm/node_modules/ajv/lib/dot/items.jst | 100 + deps/npm/node_modules/ajv/lib/dot/missing.def | 39 + deps/npm/node_modules/ajv/lib/dot/multipleOf.jst | 20 + deps/npm/node_modules/ajv/lib/dot/not.jst | 43 + deps/npm/node_modules/ajv/lib/dot/oneOf.jst | 44 + deps/npm/node_modules/ajv/lib/dot/pattern.jst | 14 + deps/npm/node_modules/ajv/lib/dot/properties.jst | 327 + .../npm/node_modules/ajv/lib/dot/propertyNames.jst | 54 + deps/npm/node_modules/ajv/lib/dot/ref.jst | 85 + deps/npm/node_modules/ajv/lib/dot/required.jst | 108 + deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst | 38 + deps/npm/node_modules/ajv/lib/dot/validate.jst | 272 + deps/npm/node_modules/ajv/lib/dotjs/README.md | 3 + deps/npm/node_modules/ajv/lib/dotjs/_limit.js | 149 + deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js | 76 + .../npm/node_modules/ajv/lib/dotjs/_limitLength.js | 81 + .../node_modules/ajv/lib/dotjs/_limitProperties.js | 76 + deps/npm/node_modules/ajv/lib/dotjs/allOf.js | 43 + deps/npm/node_modules/ajv/lib/dotjs/anyOf.js | 73 + deps/npm/node_modules/ajv/lib/dotjs/const.js | 55 + deps/npm/node_modules/ajv/lib/dotjs/contains.js | 81 + deps/npm/node_modules/ajv/lib/dotjs/custom.js | 226 + .../npm/node_modules/ajv/lib/dotjs/dependencies.js | 167 + deps/npm/node_modules/ajv/lib/dotjs/enum.js | 65 + deps/npm/node_modules/ajv/lib/dotjs/format.js | 149 + deps/npm/node_modules/ajv/lib/dotjs/items.js | 140 + deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js | 76 + deps/npm/node_modules/ajv/lib/dotjs/not.js | 83 + deps/npm/node_modules/ajv/lib/dotjs/oneOf.js | 70 + deps/npm/node_modules/ajv/lib/dotjs/pattern.js | 74 + deps/npm/node_modules/ajv/lib/dotjs/properties.js | 468 + .../node_modules/ajv/lib/dotjs/propertyNames.js | 81 + deps/npm/node_modules/ajv/lib/dotjs/ref.js | 123 + deps/npm/node_modules/ajv/lib/dotjs/required.js | 268 + deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js | 71 + deps/npm/node_modules/ajv/lib/dotjs/validate.js | 458 + deps/npm/node_modules/ajv/lib/keyword.js | 135 + deps/npm/node_modules/ajv/lib/patternGroups.js | 36 + deps/npm/node_modules/ajv/lib/refs/$data.json | 17 + .../ajv/lib/refs/json-schema-draft-04.json | 150 + .../ajv/lib/refs/json-schema-draft-06.json | 154 + .../node_modules/ajv/lib/refs/json-schema-v5.json | 250 + deps/npm/node_modules/ajv/package.json | 132 + deps/npm/node_modules/ajv/scripts/.eslintrc.yml | 3 + deps/npm/node_modules/ajv/scripts/bundle.js | 61 + deps/npm/node_modules/ajv/scripts/compile-dots.js | 73 + deps/npm/node_modules/ajv/scripts/info | 10 + deps/npm/node_modules/ajv/scripts/prepare-tests | 9 + deps/npm/node_modules/ajv/scripts/travis-gh-pages | 23 + deps/npm/node_modules/ansi-align/CHANGELOG.md | 36 + deps/npm/node_modules/ansi-align/LICENSE | 13 + deps/npm/node_modules/ansi-align/README.md | 79 + deps/npm/node_modules/ansi-align/index.js | 61 + deps/npm/node_modules/ansi-align/package.json | 70 + deps/npm/node_modules/ansi-regex/package.json | 25 +- deps/npm/node_modules/ansi-styles/index.js | 165 + deps/npm/node_modules/ansi-styles/license | 9 + deps/npm/node_modules/ansi-styles/package.json | 88 + deps/npm/node_modules/ansi-styles/readme.md | 147 + deps/npm/node_modules/ansicolors/package.json | 30 +- deps/npm/node_modules/ansistyles/package.json | 30 +- deps/npm/node_modules/aproba/package.json | 19 +- deps/npm/node_modules/archy/package.json | 29 +- deps/npm/node_modules/are-we-there-yet/CHANGES.md | 31 + deps/npm/node_modules/are-we-there-yet/LICENSE | 5 + deps/npm/node_modules/are-we-there-yet/README.md | 195 + deps/npm/node_modules/are-we-there-yet/index.js | 4 + .../npm/node_modules/are-we-there-yet/package.json | 63 + .../node_modules/are-we-there-yet/tracker-base.js | 11 + .../node_modules/are-we-there-yet/tracker-group.js | 107 + .../are-we-there-yet/tracker-stream.js | 35 + deps/npm/node_modules/are-we-there-yet/tracker.js | 30 + deps/npm/node_modules/asap/CHANGES.md | 69 + deps/npm/node_modules/asap/LICENSE.md | 20 + deps/npm/node_modules/asap/README.md | 236 + deps/npm/node_modules/asap/asap.js | 64 + deps/npm/node_modules/asap/browser-asap.js | 66 + deps/npm/node_modules/asap/browser-raw.js | 223 + deps/npm/node_modules/asap/package.json | 88 + deps/npm/node_modules/asap/raw.js | 101 + deps/npm/node_modules/asn1/.npmignore | 2 + deps/npm/node_modules/asn1/.travis.yml | 4 + deps/npm/node_modules/asn1/LICENSE | 19 + deps/npm/node_modules/asn1/README.md | 50 + deps/npm/node_modules/asn1/lib/ber/errors.js | 13 + deps/npm/node_modules/asn1/lib/ber/index.js | 27 + deps/npm/node_modules/asn1/lib/ber/reader.js | 261 + deps/npm/node_modules/asn1/lib/ber/types.js | 36 + deps/npm/node_modules/asn1/lib/ber/writer.js | 316 + deps/npm/node_modules/asn1/lib/index.js | 20 + deps/npm/node_modules/asn1/package.json | 65 + deps/npm/node_modules/asn1/tst/ber/reader.test.js | 208 + deps/npm/node_modules/asn1/tst/ber/writer.test.js | 370 + deps/npm/node_modules/assert-plus/AUTHORS | 6 + deps/npm/node_modules/assert-plus/CHANGES.md | 14 + deps/npm/node_modules/assert-plus/README.md | 162 + deps/npm/node_modules/assert-plus/assert.js | 211 + deps/npm/node_modules/assert-plus/package.json | 87 + deps/npm/node_modules/asynckit/LICENSE | 21 + deps/npm/node_modules/asynckit/README.md | 233 + deps/npm/node_modules/asynckit/bench.js | 76 + deps/npm/node_modules/asynckit/index.js | 6 + deps/npm/node_modules/asynckit/lib/abort.js | 29 + deps/npm/node_modules/asynckit/lib/async.js | 34 + deps/npm/node_modules/asynckit/lib/defer.js | 26 + deps/npm/node_modules/asynckit/lib/iterate.js | 75 + .../node_modules/asynckit/lib/readable_asynckit.js | 91 + .../node_modules/asynckit/lib/readable_parallel.js | 25 + .../node_modules/asynckit/lib/readable_serial.js | 25 + .../asynckit/lib/readable_serial_ordered.js | 29 + deps/npm/node_modules/asynckit/lib/state.js | 37 + deps/npm/node_modules/asynckit/lib/streamify.js | 141 + deps/npm/node_modules/asynckit/lib/terminator.js | 29 + deps/npm/node_modules/asynckit/package.json | 91 + deps/npm/node_modules/asynckit/parallel.js | 43 + deps/npm/node_modules/asynckit/serial.js | 17 + deps/npm/node_modules/asynckit/serialOrdered.js | 75 + deps/npm/node_modules/asynckit/stream.js | 21 + deps/npm/node_modules/aws-sign2/LICENSE | 55 + deps/npm/node_modules/aws-sign2/README.md | 4 + deps/npm/node_modules/aws-sign2/index.js | 212 + deps/npm/node_modules/aws-sign2/package.json | 50 + deps/npm/node_modules/aws4/.travis.yml | 5 + deps/npm/node_modules/aws4/LICENSE | 19 + deps/npm/node_modules/aws4/README.md | 522 + deps/npm/node_modules/aws4/aws4.js | 332 + deps/npm/node_modules/aws4/lru.js | 96 + deps/npm/node_modules/aws4/package.json | 104 + deps/npm/node_modules/balanced-match/.npmignore | 5 + deps/npm/node_modules/balanced-match/LICENSE.md | 21 + deps/npm/node_modules/balanced-match/README.md | 91 + deps/npm/node_modules/balanced-match/index.js | 59 + deps/npm/node_modules/balanced-match/package.json | 77 + deps/npm/node_modules/bcrypt-pbkdf/README.md | 39 + deps/npm/node_modules/bcrypt-pbkdf/index.js | 556 + deps/npm/node_modules/bcrypt-pbkdf/package.json | 36 + deps/npm/node_modules/bin-links/CHANGELOG.md | 20 + deps/npm/node_modules/bin-links/index.js | 166 +- deps/npm/node_modules/bin-links/package.json | 38 +- deps/npm/node_modules/block-stream/LICENCE | 25 + deps/npm/node_modules/block-stream/LICENSE | 15 + deps/npm/node_modules/block-stream/README.md | 14 + deps/npm/node_modules/block-stream/block-stream.js | 209 + deps/npm/node_modules/block-stream/package.json | 60 + deps/npm/node_modules/bluebird/package.json | 29 +- deps/npm/node_modules/boom/LICENSE | 29 + deps/npm/node_modules/boom/README.md | 760 ++ deps/npm/node_modules/boom/lib/index.js | 433 + deps/npm/node_modules/boom/package.json | 61 + deps/npm/node_modules/boxen/index.js | 138 + deps/npm/node_modules/boxen/license | 9 + deps/npm/node_modules/boxen/package.json | 79 + deps/npm/node_modules/boxen/readme.md | 175 + deps/npm/node_modules/brace-expansion/LICENSE | 21 + deps/npm/node_modules/brace-expansion/README.md | 129 + deps/npm/node_modules/brace-expansion/index.js | 200 + deps/npm/node_modules/brace-expansion/package.json | 75 + deps/npm/node_modules/buffer-from/index.js | 69 + deps/npm/node_modules/buffer-from/package.json | 50 + deps/npm/node_modules/buffer-from/readme.md | 69 + deps/npm/node_modules/buffer-from/test.js | 12 + .../builtin-modules/builtin-modules.json | 35 + deps/npm/node_modules/builtin-modules/index.js | 10 + deps/npm/node_modules/builtin-modules/license | 21 + deps/npm/node_modules/builtin-modules/package.json | 73 + deps/npm/node_modules/builtin-modules/readme.md | 41 + deps/npm/node_modules/builtin-modules/static.js | 2 + deps/npm/node_modules/builtins/.travis.yml | 4 + deps/npm/node_modules/builtins/History.md | 39 + deps/npm/node_modules/builtins/License | 20 + deps/npm/node_modules/builtins/Readme.md | 18 + deps/npm/node_modules/builtins/builtins.json | 35 + deps/npm/node_modules/builtins/package.json | 46 + deps/npm/node_modules/builtins/test.js | 5 + deps/npm/node_modules/byline/LICENSE | 19 + deps/npm/node_modules/byline/README.md | 147 + deps/npm/node_modules/byline/lib/byline.js | 155 + deps/npm/node_modules/byline/package.json | 56 + deps/npm/node_modules/byte-size/LICENSE | 21 + deps/npm/node_modules/byte-size/README.hbs | 12 + deps/npm/node_modules/byte-size/README.md | 105 + deps/npm/node_modules/byte-size/index.js | 143 + deps/npm/node_modules/byte-size/package.json | 76 + deps/npm/node_modules/cacache/CHANGELOG.md | 60 + deps/npm/node_modules/cacache/README.md | 4 +- deps/npm/node_modules/cacache/get.js | 36 +- deps/npm/node_modules/cacache/lib/content/read.js | 43 +- deps/npm/node_modules/cacache/lib/content/write.js | 4 +- deps/npm/node_modules/cacache/lib/entry-index.js | 27 +- deps/npm/node_modules/cacache/lib/util/tmp.js | 12 +- deps/npm/node_modules/cacache/lib/verify.js | 40 +- .../cacache/node_modules/ssri/CHANGELOG.md | 190 - .../cacache/node_modules/ssri/LICENSE.md | 16 - .../cacache/node_modules/ssri/README.md | 462 - .../cacache/node_modules/ssri/index.js | 334 - .../cacache/node_modules/ssri/package.json | 89 - .../node_modules/cacache/node_modules/y18n/LICENSE | 13 - .../cacache/node_modules/y18n/README.md | 91 - .../cacache/node_modules/y18n/index.js | 172 - .../cacache/node_modules/y18n/package.json | 65 - deps/npm/node_modules/cacache/package.json | 68 +- deps/npm/node_modules/cacache/put.js | 28 +- deps/npm/node_modules/call-limit/package.json | 28 +- deps/npm/node_modules/camelcase/index.js | 64 + deps/npm/node_modules/camelcase/license | 21 + deps/npm/node_modules/camelcase/package.json | 75 + deps/npm/node_modules/camelcase/readme.md | 57 + deps/npm/node_modules/capture-stack-trace/index.js | 18 + .../node_modules/capture-stack-trace/package.json | 61 + .../npm/node_modules/capture-stack-trace/readme.md | 36 + deps/npm/node_modules/caseless/LICENSE | 28 + deps/npm/node_modules/caseless/README.md | 45 + deps/npm/node_modules/caseless/index.js | 67 + deps/npm/node_modules/caseless/package.json | 56 + deps/npm/node_modules/caseless/test.js | 67 + deps/npm/node_modules/chalk/index.js | 228 + deps/npm/node_modules/chalk/index.js.flow | 93 + deps/npm/node_modules/chalk/license | 9 + deps/npm/node_modules/chalk/package.json | 107 + deps/npm/node_modules/chalk/readme.md | 314 + deps/npm/node_modules/chalk/templates.js | 128 + deps/npm/node_modules/chalk/types/index.d.ts | 97 + deps/npm/node_modules/chownr/package.json | 33 +- deps/npm/node_modules/ci-info/LICENSE | 21 + deps/npm/node_modules/ci-info/README.md | 100 + deps/npm/node_modules/ci-info/index.js | 48 + deps/npm/node_modules/ci-info/package.json | 64 + deps/npm/node_modules/cidr-regex/LICENSE | 22 + deps/npm/node_modules/cidr-regex/README.md | 64 + deps/npm/node_modules/cidr-regex/index.js | 13 + deps/npm/node_modules/cidr-regex/package.json | 78 + deps/npm/node_modules/cli-boxes/boxes.json | 50 + deps/npm/node_modules/cli-boxes/index.js | 2 + deps/npm/node_modules/cli-boxes/license | 21 + deps/npm/node_modules/cli-boxes/package.json | 71 + deps/npm/node_modules/cli-boxes/readme.md | 94 + deps/npm/node_modules/cli-columns/LICENSE | 20 + deps/npm/node_modules/cli-columns/README.md | 69 + deps/npm/node_modules/cli-columns/color.js | 15 + deps/npm/node_modules/cli-columns/index.js | 83 + .../cli-columns/node_modules/ansi-regex/index.js | 4 + .../cli-columns/node_modules/ansi-regex/license | 21 + .../node_modules/ansi-regex/package.json | 108 + .../cli-columns/node_modules/ansi-regex/readme.md | 39 + .../cli-columns/node_modules/strip-ansi/index.js | 6 + .../cli-columns/node_modules/strip-ansi/license | 21 + .../node_modules/strip-ansi/package.json | 101 + .../cli-columns/node_modules/strip-ansi/readme.md | 33 + deps/npm/node_modules/cli-columns/package.json | 84 + deps/npm/node_modules/cli-columns/test.js | 78 + .../cli-table2/node_modules/ansi-regex/index.js | 4 + .../cli-table2/node_modules/ansi-regex/license | 21 + .../node_modules/ansi-regex/package.json | 108 + .../cli-table2/node_modules/ansi-regex/readme.md | 39 + .../cli-table2/node_modules/colors/LICENSE | 23 - .../cli-table2/node_modules/colors/ReadMe.md | 178 - .../node_modules/colors/examples/normal-usage.js | 74 - .../node_modules/colors/examples/safe-string.js | 73 - .../cli-table2/node_modules/colors/lib/colors.js | 187 - .../node_modules/colors/lib/custom/trap.js | 45 - .../node_modules/colors/lib/custom/zalgo.js | 104 - .../colors/lib/extendStringPrototype.js | 113 - .../cli-table2/node_modules/colors/lib/index.js | 12 - .../node_modules/colors/lib/maps/america.js | 12 - .../node_modules/colors/lib/maps/rainbow.js | 12 - .../node_modules/colors/lib/maps/random.js | 8 - .../node_modules/colors/lib/maps/zebra.js | 5 - .../cli-table2/node_modules/colors/lib/styles.js | 77 - .../colors/lib/system/supports-colors.js | 61 - .../cli-table2/node_modules/colors/package.json | 61 - .../cli-table2/node_modules/colors/safe.js | 9 - .../node_modules/colors/themes/generic-logging.js | 12 - .../node_modules/is-fullwidth-code-point/index.js | 46 + .../node_modules/is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 77 + .../node_modules/is-fullwidth-code-point/readme.md | 39 + .../cli-table2/node_modules/lodash/LICENSE | 22 - .../cli-table2/node_modules/lodash/README.md | 121 - .../cli-table2/node_modules/lodash/array.js | 44 - .../cli-table2/node_modules/lodash/array/chunk.js | 46 - .../node_modules/lodash/array/compact.js | 30 - .../node_modules/lodash/array/difference.js | 29 - .../cli-table2/node_modules/lodash/array/drop.js | 39 - .../node_modules/lodash/array/dropRight.js | 40 - .../node_modules/lodash/array/dropRightWhile.js | 59 - .../node_modules/lodash/array/dropWhile.js | 59 - .../cli-table2/node_modules/lodash/array/fill.js | 44 - .../node_modules/lodash/array/findIndex.js | 53 - .../node_modules/lodash/array/findLastIndex.js | 53 - .../cli-table2/node_modules/lodash/array/first.js | 22 - .../node_modules/lodash/array/flatten.js | 32 - .../node_modules/lodash/array/flattenDeep.js | 21 - .../cli-table2/node_modules/lodash/array/head.js | 1 - .../node_modules/lodash/array/indexOf.js | 53 - .../node_modules/lodash/array/initial.js | 20 - .../node_modules/lodash/array/intersection.js | 58 - .../cli-table2/node_modules/lodash/array/last.js | 19 - .../node_modules/lodash/array/lastIndexOf.js | 60 - .../cli-table2/node_modules/lodash/array/object.js | 1 - .../cli-table2/node_modules/lodash/array/pull.js | 52 - .../cli-table2/node_modules/lodash/array/pullAt.js | 40 - .../cli-table2/node_modules/lodash/array/remove.js | 64 - .../cli-table2/node_modules/lodash/array/rest.js | 21 - .../cli-table2/node_modules/lodash/array/slice.js | 30 - .../node_modules/lodash/array/sortedIndex.js | 53 - .../node_modules/lodash/array/sortedLastIndex.js | 25 - .../cli-table2/node_modules/lodash/array/tail.js | 1 - .../cli-table2/node_modules/lodash/array/take.js | 39 - .../node_modules/lodash/array/takeRight.js | 40 - .../node_modules/lodash/array/takeRightWhile.js | 59 - .../node_modules/lodash/array/takeWhile.js | 59 - .../cli-table2/node_modules/lodash/array/union.js | 24 - .../cli-table2/node_modules/lodash/array/uniq.js | 71 - .../cli-table2/node_modules/lodash/array/unique.js | 1 - .../cli-table2/node_modules/lodash/array/unzip.js | 47 - .../node_modules/lodash/array/unzipWith.js | 41 - .../node_modules/lodash/array/without.js | 27 - .../cli-table2/node_modules/lodash/array/xor.js | 35 - .../cli-table2/node_modules/lodash/array/zip.js | 21 - .../node_modules/lodash/array/zipObject.js | 43 - .../node_modules/lodash/array/zipWith.js | 36 - .../cli-table2/node_modules/lodash/chain.js | 16 - .../cli-table2/node_modules/lodash/chain/chain.js | 35 - .../cli-table2/node_modules/lodash/chain/commit.js | 1 - .../cli-table2/node_modules/lodash/chain/concat.js | 1 - .../cli-table2/node_modules/lodash/chain/lodash.js | 125 - .../cli-table2/node_modules/lodash/chain/plant.js | 1 - .../node_modules/lodash/chain/reverse.js | 1 - .../cli-table2/node_modules/lodash/chain/run.js | 1 - .../cli-table2/node_modules/lodash/chain/tap.js | 29 - .../cli-table2/node_modules/lodash/chain/thru.js | 26 - .../cli-table2/node_modules/lodash/chain/toJSON.js | 1 - .../node_modules/lodash/chain/toString.js | 1 - .../cli-table2/node_modules/lodash/chain/value.js | 1 - .../node_modules/lodash/chain/valueOf.js | 1 - .../node_modules/lodash/chain/wrapperChain.js | 32 - .../node_modules/lodash/chain/wrapperCommit.js | 32 - .../node_modules/lodash/chain/wrapperConcat.js | 34 - .../node_modules/lodash/chain/wrapperPlant.js | 45 - .../node_modules/lodash/chain/wrapperReverse.js | 43 - .../node_modules/lodash/chain/wrapperToString.js | 17 - .../node_modules/lodash/chain/wrapperValue.js | 20 - .../cli-table2/node_modules/lodash/collection.js | 44 - .../node_modules/lodash/collection/all.js | 1 - .../node_modules/lodash/collection/any.js | 1 - .../node_modules/lodash/collection/at.js | 29 - .../node_modules/lodash/collection/collect.js | 1 - .../node_modules/lodash/collection/contains.js | 1 - .../node_modules/lodash/collection/countBy.js | 54 - .../node_modules/lodash/collection/detect.js | 1 - .../node_modules/lodash/collection/each.js | 1 - .../node_modules/lodash/collection/eachRight.js | 1 - .../node_modules/lodash/collection/every.js | 66 - .../node_modules/lodash/collection/filter.js | 61 - .../node_modules/lodash/collection/find.js | 56 - .../node_modules/lodash/collection/findLast.js | 25 - .../node_modules/lodash/collection/findWhere.js | 37 - .../node_modules/lodash/collection/foldl.js | 1 - .../node_modules/lodash/collection/foldr.js | 1 - .../node_modules/lodash/collection/forEach.js | 37 - .../node_modules/lodash/collection/forEachRight.js | 26 - .../node_modules/lodash/collection/groupBy.js | 59 - .../node_modules/lodash/collection/include.js | 1 - .../node_modules/lodash/collection/includes.js | 57 - .../node_modules/lodash/collection/indexBy.js | 53 - .../node_modules/lodash/collection/inject.js | 1 - .../node_modules/lodash/collection/invoke.js | 42 - .../node_modules/lodash/collection/map.js | 68 - .../node_modules/lodash/collection/max.js | 1 - .../node_modules/lodash/collection/min.js | 1 - .../node_modules/lodash/collection/partition.js | 66 - .../node_modules/lodash/collection/pluck.js | 31 - .../node_modules/lodash/collection/reduce.js | 44 - .../node_modules/lodash/collection/reduceRight.js | 29 - .../node_modules/lodash/collection/reject.js | 50 - .../node_modules/lodash/collection/sample.js | 50 - .../node_modules/lodash/collection/select.js | 1 - .../node_modules/lodash/collection/shuffle.js | 24 - .../node_modules/lodash/collection/size.js | 30 - .../node_modules/lodash/collection/some.js | 67 - .../node_modules/lodash/collection/sortBy.js | 71 - .../node_modules/lodash/collection/sortByAll.js | 52 - .../node_modules/lodash/collection/sortByOrder.js | 55 - .../node_modules/lodash/collection/sum.js | 1 - .../node_modules/lodash/collection/where.js | 37 - .../cli-table2/node_modules/lodash/date.js | 3 - .../cli-table2/node_modules/lodash/date/now.js | 24 - .../cli-table2/node_modules/lodash/function.js | 28 - .../node_modules/lodash/function/after.js | 48 - .../cli-table2/node_modules/lodash/function/ary.js | 34 - .../node_modules/lodash/function/backflow.js | 1 - .../node_modules/lodash/function/before.js | 42 - .../node_modules/lodash/function/bind.js | 56 - .../node_modules/lodash/function/bindAll.js | 50 - .../node_modules/lodash/function/bindKey.js | 66 - .../node_modules/lodash/function/compose.js | 1 - .../node_modules/lodash/function/curry.js | 51 - .../node_modules/lodash/function/curryRight.js | 48 - .../node_modules/lodash/function/debounce.js | 181 - .../node_modules/lodash/function/defer.js | 25 - .../node_modules/lodash/function/delay.js | 26 - .../node_modules/lodash/function/flow.js | 25 - .../node_modules/lodash/function/flowRight.js | 25 - .../node_modules/lodash/function/memoize.js | 80 - .../node_modules/lodash/function/modArgs.js | 58 - .../node_modules/lodash/function/negate.js | 32 - .../node_modules/lodash/function/once.js | 24 - .../node_modules/lodash/function/partial.js | 43 - .../node_modules/lodash/function/partialRight.js | 42 - .../node_modules/lodash/function/rearg.js | 40 - .../node_modules/lodash/function/restParam.js | 58 - .../node_modules/lodash/function/spread.js | 44 - .../node_modules/lodash/function/throttle.js | 62 - .../node_modules/lodash/function/wrap.js | 33 - .../cli-table2/node_modules/lodash/index.js | 12351 ------------------- .../node_modules/lodash/internal/LazyWrapper.js | 26 - .../node_modules/lodash/internal/LodashWrapper.js | 21 - .../node_modules/lodash/internal/MapCache.js | 24 - .../node_modules/lodash/internal/SetCache.js | 29 - .../node_modules/lodash/internal/arrayConcat.js | 25 - .../node_modules/lodash/internal/arrayCopy.js | 20 - .../node_modules/lodash/internal/arrayEach.js | 22 - .../node_modules/lodash/internal/arrayEachRight.js | 21 - .../node_modules/lodash/internal/arrayEvery.js | 23 - .../node_modules/lodash/internal/arrayExtremum.js | 30 - .../node_modules/lodash/internal/arrayFilter.js | 25 - .../node_modules/lodash/internal/arrayMap.js | 21 - .../node_modules/lodash/internal/arrayPush.js | 20 - .../node_modules/lodash/internal/arrayReduce.js | 26 - .../lodash/internal/arrayReduceRight.js | 24 - .../node_modules/lodash/internal/arraySome.js | 23 - .../node_modules/lodash/internal/arraySum.js | 20 - .../node_modules/lodash/internal/assignDefaults.js | 13 - .../lodash/internal/assignOwnDefaults.js | 26 - .../node_modules/lodash/internal/assignWith.js | 32 - .../node_modules/lodash/internal/baseAssign.js | 19 - .../node_modules/lodash/internal/baseAt.js | 32 - .../node_modules/lodash/internal/baseCallback.js | 35 - .../node_modules/lodash/internal/baseClone.js | 128 - .../lodash/internal/baseCompareAscending.js | 34 - .../node_modules/lodash/internal/baseCopy.js | 23 - .../node_modules/lodash/internal/baseCreate.js | 23 - .../node_modules/lodash/internal/baseDelay.js | 21 - .../node_modules/lodash/internal/baseDifference.js | 55 - .../node_modules/lodash/internal/baseEach.js | 15 - .../node_modules/lodash/internal/baseEachRight.js | 15 - .../node_modules/lodash/internal/baseEvery.js | 22 - .../node_modules/lodash/internal/baseExtremum.js | 29 - .../node_modules/lodash/internal/baseFill.js | 31 - .../node_modules/lodash/internal/baseFilter.js | 22 - .../node_modules/lodash/internal/baseFind.js | 25 - .../node_modules/lodash/internal/baseFindIndex.js | 23 - .../node_modules/lodash/internal/baseFlatten.js | 41 - .../node_modules/lodash/internal/baseFor.js | 17 - .../node_modules/lodash/internal/baseForIn.js | 17 - .../node_modules/lodash/internal/baseForOwn.js | 17 - .../lodash/internal/baseForOwnRight.js | 17 - .../node_modules/lodash/internal/baseForRight.js | 15 - .../node_modules/lodash/internal/baseFunctions.js | 27 - .../node_modules/lodash/internal/baseGet.js | 29 - .../node_modules/lodash/internal/baseIndexOf.js | 27 - .../node_modules/lodash/internal/baseIsEqual.js | 28 - .../lodash/internal/baseIsEqualDeep.js | 102 - .../node_modules/lodash/internal/baseIsFunction.js | 15 - .../node_modules/lodash/internal/baseIsMatch.js | 52 - .../node_modules/lodash/internal/baseLodash.js | 10 - .../node_modules/lodash/internal/baseMap.js | 23 - .../node_modules/lodash/internal/baseMatches.js | 30 - .../lodash/internal/baseMatchesProperty.js | 45 - .../node_modules/lodash/internal/baseMerge.js | 56 - .../node_modules/lodash/internal/baseMergeDeep.js | 67 - .../node_modules/lodash/internal/baseProperty.js | 14 - .../lodash/internal/basePropertyDeep.js | 19 - .../node_modules/lodash/internal/basePullAt.js | 30 - .../node_modules/lodash/internal/baseRandom.js | 18 - .../node_modules/lodash/internal/baseReduce.js | 24 - .../node_modules/lodash/internal/baseSetData.js | 17 - .../node_modules/lodash/internal/baseSlice.js | 32 - .../node_modules/lodash/internal/baseSome.js | 23 - .../node_modules/lodash/internal/baseSortBy.js | 21 - .../lodash/internal/baseSortByOrder.js | 31 - .../node_modules/lodash/internal/baseSum.js | 20 - .../node_modules/lodash/internal/baseToString.js | 13 - .../node_modules/lodash/internal/baseUniq.js | 60 - .../node_modules/lodash/internal/baseValues.js | 22 - .../node_modules/lodash/internal/baseWhile.js | 24 - .../lodash/internal/baseWrapperValue.js | 29 - .../node_modules/lodash/internal/binaryIndex.js | 39 - .../node_modules/lodash/internal/binaryIndexBy.js | 57 - .../node_modules/lodash/internal/bindCallback.js | 39 - .../node_modules/lodash/internal/bufferClone.js | 20 - .../node_modules/lodash/internal/cacheIndexOf.js | 19 - .../node_modules/lodash/internal/cachePush.js | 20 - .../node_modules/lodash/internal/charsLeftIndex.js | 18 - .../lodash/internal/charsRightIndex.js | 17 - .../lodash/internal/compareAscending.js | 16 - .../lodash/internal/compareMultiple.js | 44 - .../node_modules/lodash/internal/composeArgs.js | 34 - .../lodash/internal/composeArgsRight.js | 36 - .../lodash/internal/createAggregator.js | 35 - .../node_modules/lodash/internal/createAssigner.js | 41 - .../node_modules/lodash/internal/createBaseEach.js | 31 - .../node_modules/lodash/internal/createBaseFor.js | 27 - .../lodash/internal/createBindWrapper.js | 22 - .../node_modules/lodash/internal/createCache.js | 21 - .../lodash/internal/createCompounder.js | 26 - .../lodash/internal/createCtorWrapper.js | 37 - .../node_modules/lodash/internal/createCurry.js | 23 - .../node_modules/lodash/internal/createDefaults.js | 22 - .../node_modules/lodash/internal/createExtremum.js | 33 - .../node_modules/lodash/internal/createFind.js | 25 - .../lodash/internal/createFindIndex.js | 21 - .../node_modules/lodash/internal/createFindKey.js | 18 - .../node_modules/lodash/internal/createFlow.js | 74 - .../node_modules/lodash/internal/createForEach.js | 20 - .../node_modules/lodash/internal/createForIn.js | 20 - .../node_modules/lodash/internal/createForOwn.js | 19 - .../lodash/internal/createHybridWrapper.js | 111 - .../lodash/internal/createObjectMapper.js | 26 - .../node_modules/lodash/internal/createPadDir.js | 18 - .../node_modules/lodash/internal/createPadding.js | 29 - .../node_modules/lodash/internal/createPartial.js | 20 - .../lodash/internal/createPartialWrapper.js | 43 - .../node_modules/lodash/internal/createReduce.js | 22 - .../node_modules/lodash/internal/createRound.js | 23 - .../lodash/internal/createSortedIndex.js | 20 - .../node_modules/lodash/internal/createWrapper.js | 86 - .../node_modules/lodash/internal/deburrLetter.js | 33 - .../node_modules/lodash/internal/equalArrays.js | 51 - .../node_modules/lodash/internal/equalByTag.js | 48 - .../node_modules/lodash/internal/equalObjects.js | 67 - .../node_modules/lodash/internal/escapeHtmlChar.js | 22 - .../lodash/internal/escapeRegExpChar.js | 38 - .../lodash/internal/escapeStringChar.js | 22 - .../node_modules/lodash/internal/getData.js | 15 - .../node_modules/lodash/internal/getFuncName.js | 25 - .../node_modules/lodash/internal/getLength.js | 15 - .../node_modules/lodash/internal/getMatchData.js | 21 - .../node_modules/lodash/internal/getNative.js | 16 - .../node_modules/lodash/internal/getView.js | 33 - .../node_modules/lodash/internal/indexOfNaN.js | 23 - .../node_modules/lodash/internal/initCloneArray.js | 26 - .../node_modules/lodash/internal/initCloneByTag.js | 63 - .../lodash/internal/initCloneObject.js | 16 - .../node_modules/lodash/internal/invokePath.js | 26 - .../node_modules/lodash/internal/isArrayLike.js | 15 - .../node_modules/lodash/internal/isIndex.js | 24 - .../node_modules/lodash/internal/isIterateeCall.js | 28 - .../node_modules/lodash/internal/isKey.js | 28 - .../node_modules/lodash/internal/isLaziable.js | 27 - .../node_modules/lodash/internal/isLength.js | 20 - .../node_modules/lodash/internal/isObjectLike.js | 12 - .../node_modules/lodash/internal/isSpace.js | 14 - .../lodash/internal/isStrictComparable.js | 15 - .../node_modules/lodash/internal/lazyClone.js | 23 - .../node_modules/lodash/internal/lazyReverse.js | 23 - .../node_modules/lodash/internal/lazyValue.js | 72 - .../node_modules/lodash/internal/mapDelete.js | 14 - .../node_modules/lodash/internal/mapGet.js | 14 - .../node_modules/lodash/internal/mapHas.js | 20 - .../node_modules/lodash/internal/mapSet.js | 18 - .../node_modules/lodash/internal/mergeData.js | 89 - .../node_modules/lodash/internal/mergeDefaults.js | 15 - .../node_modules/lodash/internal/metaMap.js | 9 - .../node_modules/lodash/internal/pickByArray.js | 28 - .../node_modules/lodash/internal/pickByCallback.js | 22 - .../node_modules/lodash/internal/reEscape.js | 4 - .../node_modules/lodash/internal/reEvaluate.js | 4 - .../node_modules/lodash/internal/reInterpolate.js | 4 - .../node_modules/lodash/internal/realNames.js | 4 - .../node_modules/lodash/internal/reorder.js | 29 - .../node_modules/lodash/internal/replaceHolders.js | 28 - .../node_modules/lodash/internal/setData.js | 41 - .../node_modules/lodash/internal/shimKeys.js | 41 - .../node_modules/lodash/internal/sortedUniq.js | 29 - .../node_modules/lodash/internal/toIterable.js | 22 - .../node_modules/lodash/internal/toObject.js | 14 - .../node_modules/lodash/internal/toPath.js | 28 - .../lodash/internal/trimmedLeftIndex.js | 19 - .../lodash/internal/trimmedRightIndex.js | 18 - .../lodash/internal/unescapeHtmlChar.js | 22 - .../node_modules/lodash/internal/wrapperClone.js | 18 - .../cli-table2/node_modules/lodash/lang.js | 32 - .../cli-table2/node_modules/lodash/lang/clone.js | 70 - .../node_modules/lodash/lang/cloneDeep.js | 55 - .../cli-table2/node_modules/lodash/lang/eq.js | 1 - .../cli-table2/node_modules/lodash/lang/gt.js | 25 - .../cli-table2/node_modules/lodash/lang/gte.js | 25 - .../node_modules/lodash/lang/isArguments.js | 34 - .../cli-table2/node_modules/lodash/lang/isArray.js | 40 - .../node_modules/lodash/lang/isBoolean.js | 35 - .../cli-table2/node_modules/lodash/lang/isDate.js | 35 - .../node_modules/lodash/lang/isElement.js | 24 - .../cli-table2/node_modules/lodash/lang/isEmpty.js | 47 - .../cli-table2/node_modules/lodash/lang/isEqual.js | 54 - .../cli-table2/node_modules/lodash/lang/isError.js | 36 - .../node_modules/lodash/lang/isFinite.js | 35 - .../node_modules/lodash/lang/isFunction.js | 38 - .../cli-table2/node_modules/lodash/lang/isMatch.js | 49 - .../cli-table2/node_modules/lodash/lang/isNaN.js | 34 - .../node_modules/lodash/lang/isNative.js | 48 - .../cli-table2/node_modules/lodash/lang/isNull.js | 21 - .../node_modules/lodash/lang/isNumber.js | 41 - .../node_modules/lodash/lang/isObject.js | 28 - .../node_modules/lodash/lang/isPlainObject.js | 71 - .../node_modules/lodash/lang/isRegExp.js | 35 - .../node_modules/lodash/lang/isString.js | 35 - .../node_modules/lodash/lang/isTypedArray.js | 74 - .../node_modules/lodash/lang/isUndefined.js | 21 - .../cli-table2/node_modules/lodash/lang/lt.js | 25 - .../cli-table2/node_modules/lodash/lang/lte.js | 25 - .../cli-table2/node_modules/lodash/lang/toArray.js | 32 - .../node_modules/lodash/lang/toPlainObject.js | 31 - .../cli-table2/node_modules/lodash/math.js | 9 - .../cli-table2/node_modules/lodash/math/add.js | 19 - .../cli-table2/node_modules/lodash/math/ceil.js | 25 - .../cli-table2/node_modules/lodash/math/floor.js | 25 - .../cli-table2/node_modules/lodash/math/max.js | 56 - .../cli-table2/node_modules/lodash/math/min.js | 56 - .../cli-table2/node_modules/lodash/math/round.js | 25 - .../cli-table2/node_modules/lodash/math/sum.js | 50 - .../cli-table2/node_modules/lodash/number.js | 4 - .../node_modules/lodash/number/inRange.js | 47 - .../node_modules/lodash/number/random.js | 70 - .../cli-table2/node_modules/lodash/object.js | 31 - .../node_modules/lodash/object/assign.js | 43 - .../node_modules/lodash/object/create.js | 47 - .../node_modules/lodash/object/defaults.js | 25 - .../node_modules/lodash/object/defaultsDeep.js | 25 - .../node_modules/lodash/object/extend.js | 1 - .../node_modules/lodash/object/findKey.js | 54 - .../node_modules/lodash/object/findLastKey.js | 54 - .../cli-table2/node_modules/lodash/object/forIn.js | 33 - .../node_modules/lodash/object/forInRight.js | 31 - .../node_modules/lodash/object/forOwn.js | 33 - .../node_modules/lodash/object/forOwnRight.js | 31 - .../node_modules/lodash/object/functions.js | 23 - .../cli-table2/node_modules/lodash/object/get.js | 33 - .../cli-table2/node_modules/lodash/object/has.js | 57 - .../node_modules/lodash/object/invert.js | 60 - .../cli-table2/node_modules/lodash/object/keys.js | 45 - .../node_modules/lodash/object/keysIn.js | 64 - .../node_modules/lodash/object/mapKeys.js | 25 - .../node_modules/lodash/object/mapValues.js | 46 - .../cli-table2/node_modules/lodash/object/merge.js | 54 - .../node_modules/lodash/object/methods.js | 1 - .../cli-table2/node_modules/lodash/object/omit.js | 47 - .../cli-table2/node_modules/lodash/object/pairs.js | 33 - .../cli-table2/node_modules/lodash/object/pick.js | 42 - .../node_modules/lodash/object/result.js | 49 - .../cli-table2/node_modules/lodash/object/set.js | 55 - .../node_modules/lodash/object/transform.js | 61 - .../node_modules/lodash/object/values.js | 33 - .../node_modules/lodash/object/valuesIn.js | 31 - .../cli-table2/node_modules/lodash/package.json | 81 - .../cli-table2/node_modules/lodash/string.js | 25 - .../node_modules/lodash/string/camelCase.js | 27 - .../node_modules/lodash/string/capitalize.js | 21 - .../node_modules/lodash/string/deburr.js | 29 - .../node_modules/lodash/string/endsWith.js | 40 - .../node_modules/lodash/string/escape.js | 48 - .../node_modules/lodash/string/escapeRegExp.js | 32 - .../node_modules/lodash/string/kebabCase.js | 26 - .../cli-table2/node_modules/lodash/string/pad.js | 47 - .../node_modules/lodash/string/padLeft.js | 27 - .../node_modules/lodash/string/padRight.js | 27 - .../node_modules/lodash/string/parseInt.js | 46 - .../node_modules/lodash/string/repeat.js | 47 - .../node_modules/lodash/string/snakeCase.js | 26 - .../node_modules/lodash/string/startCase.js | 26 - .../node_modules/lodash/string/startsWith.js | 36 - .../node_modules/lodash/string/template.js | 226 - .../node_modules/lodash/string/templateSettings.js | 67 - .../cli-table2/node_modules/lodash/string/trim.js | 42 - .../node_modules/lodash/string/trimLeft.js | 36 - .../node_modules/lodash/string/trimRight.js | 36 - .../cli-table2/node_modules/lodash/string/trunc.js | 105 - .../node_modules/lodash/string/unescape.js | 33 - .../cli-table2/node_modules/lodash/string/words.js | 38 - .../cli-table2/node_modules/lodash/support.js | 10 - .../cli-table2/node_modules/lodash/utility.js | 18 - .../node_modules/lodash/utility/attempt.js | 32 - .../node_modules/lodash/utility/callback.js | 53 - .../node_modules/lodash/utility/constant.js | 23 - .../node_modules/lodash/utility/identity.js | 20 - .../node_modules/lodash/utility/iteratee.js | 1 - .../node_modules/lodash/utility/matches.js | 33 - .../node_modules/lodash/utility/matchesProperty.js | 32 - .../node_modules/lodash/utility/method.js | 33 - .../node_modules/lodash/utility/methodOf.js | 32 - .../node_modules/lodash/utility/mixin.js | 82 - .../cli-table2/node_modules/lodash/utility/noop.js | 19 - .../node_modules/lodash/utility/property.js | 31 - .../node_modules/lodash/utility/propertyOf.js | 30 - .../node_modules/lodash/utility/range.js | 66 - .../node_modules/lodash/utility/times.js | 60 - .../node_modules/lodash/utility/uniqueId.js | 27 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 70 - .../node_modules/code-point-at/readme.md | 32 - .../node_modules/is-fullwidth-code-point/index.js | 46 - .../node_modules/is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 67 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 77 - .../node_modules/is-fullwidth-code-point/readme.md | 39 - .../string-width/node_modules/strip-ansi/index.js | 6 - .../string-width/node_modules/strip-ansi/license | 21 - .../strip-ansi/node_modules/ansi-regex/index.js | 4 - .../strip-ansi/node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../strip-ansi/node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 101 - .../string-width/node_modules/strip-ansi/readme.md | 33 - .../cli-table2/node_modules/strip-ansi/index.js | 6 + .../cli-table2/node_modules/strip-ansi/license | 21 + .../node_modules/strip-ansi/package.json | 101 + .../cli-table2/node_modules/strip-ansi/readme.md | 33 + deps/npm/node_modules/cli-table2/package.json | 30 +- deps/npm/node_modules/cliui/CHANGELOG.md | 51 + deps/npm/node_modules/cliui/LICENSE.txt | 14 + deps/npm/node_modules/cliui/README.md | 115 + deps/npm/node_modules/cliui/index.js | 324 + deps/npm/node_modules/cliui/package.json | 99 + deps/npm/node_modules/clone/.npmignore | 4 + deps/npm/node_modules/clone/LICENSE | 18 + deps/npm/node_modules/clone/README.md | 126 + deps/npm/node_modules/clone/clone.iml | 10 + deps/npm/node_modules/clone/clone.js | 166 + deps/npm/node_modules/clone/package.json | 137 + deps/npm/node_modules/cmd-shim/package.json | 31 +- deps/npm/node_modules/co/History.md | 172 + deps/npm/node_modules/co/LICENSE | 22 + deps/npm/node_modules/co/Readme.md | 212 + deps/npm/node_modules/co/index.js | 237 + deps/npm/node_modules/co/package.json | 66 + deps/npm/node_modules/code-point-at/index.js | 32 + deps/npm/node_modules/code-point-at/license | 21 + deps/npm/node_modules/code-point-at/package.json | 74 + deps/npm/node_modules/code-point-at/readme.md | 32 + deps/npm/node_modules/color-convert/CHANGELOG.md | 54 + deps/npm/node_modules/color-convert/LICENSE | 20 + deps/npm/node_modules/color-convert/README.md | 68 + deps/npm/node_modules/color-convert/conversions.js | 861 ++ deps/npm/node_modules/color-convert/index.js | 78 + deps/npm/node_modules/color-convert/package.json | 81 + deps/npm/node_modules/color-convert/route.js | 96 + deps/npm/node_modules/color-name/.eslintrc.json | 43 + deps/npm/node_modules/color-name/.npmignore | 107 + deps/npm/node_modules/color-name/LICENSE | 8 + deps/npm/node_modules/color-name/README.md | 11 + deps/npm/node_modules/color-name/index.js | 152 + deps/npm/node_modules/color-name/package.json | 53 + deps/npm/node_modules/color-name/test.js | 7 + deps/npm/node_modules/colors/LICENSE | 25 + deps/npm/node_modules/colors/README.md | 184 + .../node_modules/colors/examples/normal-usage.js | 80 + .../node_modules/colors/examples/safe-string.js | 75 + deps/npm/node_modules/colors/index.d.ts | 136 + deps/npm/node_modules/colors/lib/colors.js | 199 + deps/npm/node_modules/colors/lib/custom/trap.js | 46 + deps/npm/node_modules/colors/lib/custom/zalgo.js | 109 + .../colors/lib/extendStringPrototype.js | 106 + deps/npm/node_modules/colors/lib/index.js | 13 + deps/npm/node_modules/colors/lib/maps/america.js | 12 + deps/npm/node_modules/colors/lib/maps/rainbow.js | 13 + deps/npm/node_modules/colors/lib/maps/random.js | 12 + deps/npm/node_modules/colors/lib/maps/zebra.js | 5 + deps/npm/node_modules/colors/lib/styles.js | 77 + .../npm/node_modules/colors/lib/system/has-flag.js | 35 + .../colors/lib/system/supports-colors.js | 151 + deps/npm/node_modules/colors/package.json | 68 + deps/npm/node_modules/colors/safe.d.ts | 48 + deps/npm/node_modules/colors/safe.js | 10 + .../node_modules/colors/themes/generic-logging.js | 12 + .../columnify/node_modules/ansi-regex/index.js | 4 + .../columnify/node_modules/ansi-regex/license | 21 + .../columnify/node_modules/ansi-regex/package.json | 108 + .../columnify/node_modules/ansi-regex/readme.md | 39 + .../strip-ansi/node_modules/ansi-regex/index.js | 4 - .../strip-ansi/node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../strip-ansi/node_modules/ansi-regex/readme.md | 39 - .../columnify/node_modules/wcwidth/.npmignore | 1 - .../columnify/node_modules/wcwidth/LICENSE | 30 - .../columnify/node_modules/wcwidth/Readme.md | 33 - .../columnify/node_modules/wcwidth/combining.js | 50 - .../columnify/node_modules/wcwidth/docs/index.md | 65 - .../columnify/node_modules/wcwidth/index.js | 99 - .../wcwidth/node_modules/defaults/.npmignore | 1 - .../wcwidth/node_modules/defaults/LICENSE | 21 - .../wcwidth/node_modules/defaults/README.md | 43 - .../wcwidth/node_modules/defaults/index.js | 13 - .../defaults/node_modules/clone/.npmignore | 1 - .../defaults/node_modules/clone/.travis.yml | 3 - .../defaults/node_modules/clone/LICENSE | 18 - .../defaults/node_modules/clone/README.md | 126 - .../defaults/node_modules/clone/clone.js | 160 - .../defaults/node_modules/clone/package.json | 139 - .../node_modules/clone/test-apart-ctx.html | 22 - .../defaults/node_modules/clone/test.html | 148 - .../defaults/node_modules/clone/test.js | 372 - .../wcwidth/node_modules/defaults/package.json | 60 - .../wcwidth/node_modules/defaults/test.js | 34 - .../columnify/node_modules/wcwidth/package.json | 76 - .../columnify/node_modules/wcwidth/test/index.js | 64 - deps/npm/node_modules/columnify/package.json | 28 +- deps/npm/node_modules/combined-stream/License | 19 + deps/npm/node_modules/combined-stream/Readme.md | 138 + .../combined-stream/lib/combined_stream.js | 189 + deps/npm/node_modules/combined-stream/lib/defer.js | 26 + deps/npm/node_modules/combined-stream/package.json | 58 + deps/npm/node_modules/concat-map/.travis.yml | 4 + deps/npm/node_modules/concat-map/LICENSE | 18 + deps/npm/node_modules/concat-map/README.markdown | 62 + deps/npm/node_modules/concat-map/example/map.js | 6 + deps/npm/node_modules/concat-map/index.js | 13 + deps/npm/node_modules/concat-map/package.json | 88 + deps/npm/node_modules/concat-map/test/map.js | 39 + deps/npm/node_modules/concat-stream/LICENSE | 24 + deps/npm/node_modules/concat-stream/index.js | 144 + deps/npm/node_modules/concat-stream/package.json | 89 + deps/npm/node_modules/concat-stream/readme.md | 102 + .../config-chain/node_modules/proto-list/LICENSE | 15 - .../config-chain/node_modules/proto-list/README.md | 3 - .../node_modules/proto-list/package.json | 55 - .../node_modules/proto-list/proto-list.js | 88 - .../node_modules/proto-list/test/basic.js | 61 - deps/npm/node_modules/config-chain/package.json | 28 +- deps/npm/node_modules/configstore/index.js | 106 + deps/npm/node_modules/configstore/license | 9 + deps/npm/node_modules/configstore/package.json | 79 + deps/npm/node_modules/configstore/readme.md | 116 + .../node_modules/console-control-strings/LICENSE | 13 + .../node_modules/console-control-strings/README.md | 144 + .../node_modules/console-control-strings/index.js | 125 + .../console-control-strings/package.json | 62 + deps/npm/node_modules/copy-concurrently/LICENSE | 13 + deps/npm/node_modules/copy-concurrently/README.md | 128 + deps/npm/node_modules/copy-concurrently/copy.js | 225 + .../node_modules/copy-concurrently/is-windows.js | 2 + .../node_modules/iferr/.npmignore | 1 + .../copy-concurrently/node_modules/iferr/LICENSE | 21 + .../copy-concurrently/node_modules/iferr/README.md | 40 + .../node_modules/iferr/index.coffee | 24 + .../copy-concurrently/node_modules/iferr/index.js | 49 + .../node_modules/iferr/package.json | 55 + .../node_modules/iferr/test/index.coffee | 42 + .../node_modules/iferr/test/mocha.opts | 2 + .../node_modules/copy-concurrently/package.json | 72 + deps/npm/node_modules/core-util-is/LICENSE | 19 + deps/npm/node_modules/core-util-is/README.md | 3 + deps/npm/node_modules/core-util-is/float.patch | 604 + deps/npm/node_modules/core-util-is/lib/util.js | 107 + deps/npm/node_modules/core-util-is/package.json | 64 + deps/npm/node_modules/core-util-is/test.js | 68 + deps/npm/node_modules/create-error-class/index.js | 44 + deps/npm/node_modules/create-error-class/license | 21 + .../node_modules/create-error-class/package.json | 60 + deps/npm/node_modules/create-error-class/readme.md | 54 + deps/npm/node_modules/cross-spawn/CHANGELOG.md | 6 + deps/npm/node_modules/cross-spawn/LICENSE | 19 + deps/npm/node_modules/cross-spawn/README.md | 85 + deps/npm/node_modules/cross-spawn/index.js | 59 + deps/npm/node_modules/cross-spawn/lib/enoent.js | 73 + deps/npm/node_modules/cross-spawn/lib/parse.js | 113 + .../cross-spawn/lib/util/escapeArgument.js | 30 + .../cross-spawn/lib/util/escapeCommand.js | 12 + .../cross-spawn/lib/util/hasEmptyArgumentBug.js | 18 + .../cross-spawn/lib/util/readShebang.js | 37 + .../cross-spawn/lib/util/resolveCommand.js | 31 + deps/npm/node_modules/cross-spawn/package.json | 84 + deps/npm/node_modules/cryptiles/.npmignore | 3 + deps/npm/node_modules/cryptiles/LICENSE | 28 + deps/npm/node_modules/cryptiles/README.md | 19 + deps/npm/node_modules/cryptiles/lib/index.js | 88 + .../cryptiles/node_modules/boom/LICENSE | 29 + .../cryptiles/node_modules/boom/README.md | 784 ++ .../cryptiles/node_modules/boom/lib/index.js | 457 + .../cryptiles/node_modules/boom/package.json | 61 + deps/npm/node_modules/cryptiles/package.json | 61 + .../npm/node_modules/crypto-random-string/index.js | 10 + deps/npm/node_modules/crypto-random-string/license | 21 + .../node_modules/crypto-random-string/package.json | 75 + .../node_modules/crypto-random-string/readme.md | 49 + deps/npm/node_modules/cyclist/.npmignore | 1 + deps/npm/node_modules/cyclist/README.md | 39 + deps/npm/node_modules/cyclist/index.js | 33 + deps/npm/node_modules/cyclist/package.json | 50 + deps/npm/node_modules/dashdash/CHANGES.md | 364 + deps/npm/node_modules/dashdash/LICENSE.txt | 23 + deps/npm/node_modules/dashdash/README.md | 574 + .../dashdash/etc/dashdash.bash_completion.in | 389 + deps/npm/node_modules/dashdash/lib/dashdash.js | 1055 ++ deps/npm/node_modules/dashdash/package.json | 67 + deps/npm/node_modules/debug/.coveralls.yml | 1 + deps/npm/node_modules/debug/.npmignore | 9 + deps/npm/node_modules/debug/.travis.yml | 20 + deps/npm/node_modules/debug/CHANGELOG.md | 395 + deps/npm/node_modules/debug/LICENSE | 18 + deps/npm/node_modules/debug/Makefile | 58 + deps/npm/node_modules/debug/README.md | 368 + deps/npm/node_modules/debug/karma.conf.js | 70 + deps/npm/node_modules/debug/node.js | 1 + .../node_modules/debug/node_modules/ms/index.js | 152 + .../node_modules/debug/node_modules/ms/license.md | 21 + .../debug/node_modules/ms/package.json | 69 + .../node_modules/debug/node_modules/ms/readme.md | 51 + deps/npm/node_modules/debug/package.json | 85 + deps/npm/node_modules/debug/src/browser.js | 195 + deps/npm/node_modules/debug/src/debug.js | 225 + deps/npm/node_modules/debug/src/index.js | 10 + deps/npm/node_modules/debug/src/node.js | 186 + deps/npm/node_modules/debuglog/package.json | 30 +- deps/npm/node_modules/decamelize/index.js | 13 + deps/npm/node_modules/decamelize/license | 21 + deps/npm/node_modules/decamelize/package.json | 71 + deps/npm/node_modules/decamelize/readme.md | 48 + .../npm/node_modules/decode-uri-component/index.js | 94 + deps/npm/node_modules/decode-uri-component/license | 21 + .../node_modules/decode-uri-component/package.json | 69 + .../node_modules/decode-uri-component/readme.md | 70 + deps/npm/node_modules/deep-extend/CHANGELOG.md | 38 + deps/npm/node_modules/deep-extend/LICENSE | 20 + deps/npm/node_modules/deep-extend/README.md | 93 + deps/npm/node_modules/deep-extend/index.js | 1 + .../node_modules/deep-extend/lib/deep-extend.js | 150 + deps/npm/node_modules/deep-extend/package.json | 93 + deps/npm/node_modules/defaults/.npmignore | 1 + deps/npm/node_modules/defaults/LICENSE | 21 + deps/npm/node_modules/defaults/README.md | 43 + deps/npm/node_modules/defaults/index.js | 13 + deps/npm/node_modules/defaults/package.json | 57 + deps/npm/node_modules/defaults/test.js | 33 + deps/npm/node_modules/delayed-stream/.npmignore | 1 + deps/npm/node_modules/delayed-stream/License | 19 + deps/npm/node_modules/delayed-stream/Makefile | 6 + deps/npm/node_modules/delayed-stream/Readme.md | 141 + .../delayed-stream/lib/delayed_stream.js | 107 + deps/npm/node_modules/delayed-stream/package.json | 62 + deps/npm/node_modules/delegates/.npmignore | 1 + deps/npm/node_modules/delegates/History.md | 22 + deps/npm/node_modules/delegates/License | 20 + deps/npm/node_modules/delegates/Makefile | 8 + deps/npm/node_modules/delegates/Readme.md | 94 + deps/npm/node_modules/delegates/index.js | 121 + deps/npm/node_modules/delegates/package.json | 48 + deps/npm/node_modules/delegates/test/index.js | 94 + deps/npm/node_modules/detect-indent/package.json | 30 +- deps/npm/node_modules/detect-newline/index.js | 24 + deps/npm/node_modules/detect-newline/license | 21 + deps/npm/node_modules/detect-newline/package.json | 72 + deps/npm/node_modules/detect-newline/readme.md | 42 + .../dezalgo/node_modules/asap/CHANGES.md | 63 - .../dezalgo/node_modules/asap/LICENSE.md | 20 - .../dezalgo/node_modules/asap/README.md | 236 - .../node_modules/dezalgo/node_modules/asap/asap.js | 64 - .../dezalgo/node_modules/asap/browser-asap.js | 66 - .../dezalgo/node_modules/asap/browser-raw.js | 223 - .../dezalgo/node_modules/asap/package.json | 88 - .../node_modules/dezalgo/node_modules/asap/raw.js | 101 - deps/npm/node_modules/dezalgo/package.json | 28 +- deps/npm/node_modules/dot-prop/index.js | 123 + deps/npm/node_modules/dot-prop/license | 21 + deps/npm/node_modules/dot-prop/package.json | 80 + deps/npm/node_modules/dot-prop/readme.md | 103 + deps/npm/node_modules/dotenv/CHANGELOG.md | 96 + deps/npm/node_modules/dotenv/LICENSE | 23 + deps/npm/node_modules/dotenv/README.md | 257 + deps/npm/node_modules/dotenv/appveyor.yml | 13 + deps/npm/node_modules/dotenv/config.js | 11 + deps/npm/node_modules/dotenv/lib/main.js | 79 + deps/npm/node_modules/dotenv/package.json | 73 + deps/npm/node_modules/duplexer3/LICENSE.md | 26 + deps/npm/node_modules/duplexer3/README.md | 115 + deps/npm/node_modules/duplexer3/index.js | 76 + deps/npm/node_modules/duplexer3/package.json | 64 + deps/npm/node_modules/duplexify/.travis.yml | 6 + deps/npm/node_modules/duplexify/LICENSE | 21 + deps/npm/node_modules/duplexify/README.md | 97 + deps/npm/node_modules/duplexify/example.js | 21 + deps/npm/node_modules/duplexify/index.js | 235 + deps/npm/node_modules/duplexify/package.json | 70 + deps/npm/node_modules/duplexify/test.js | 291 + deps/npm/node_modules/ecc-jsbn/.npmignore | 15 + deps/npm/node_modules/ecc-jsbn/LICENSE | 21 + deps/npm/node_modules/ecc-jsbn/README.md | 8 + deps/npm/node_modules/ecc-jsbn/index.js | 56 + deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn | 40 + deps/npm/node_modules/ecc-jsbn/lib/ec.js | 561 + deps/npm/node_modules/ecc-jsbn/lib/sec.js | 170 + deps/npm/node_modules/ecc-jsbn/package.json | 64 + deps/npm/node_modules/ecc-jsbn/test.js | 14 + deps/npm/node_modules/editor/package.json | 28 +- deps/npm/node_modules/encoding/.npmignore | 1 + deps/npm/node_modules/encoding/.travis.yml | 25 + deps/npm/node_modules/encoding/LICENSE | 16 + deps/npm/node_modules/encoding/README.md | 52 + deps/npm/node_modules/encoding/lib/encoding.js | 113 + deps/npm/node_modules/encoding/lib/iconv-loader.js | 14 + deps/npm/node_modules/encoding/package.json | 54 + deps/npm/node_modules/encoding/test/test.js | 75 + deps/npm/node_modules/end-of-stream/LICENSE | 21 + deps/npm/node_modules/end-of-stream/README.md | 52 + deps/npm/node_modules/end-of-stream/index.js | 87 + deps/npm/node_modules/end-of-stream/package.json | 72 + deps/npm/node_modules/err-code/.editorconfig | 12 + deps/npm/node_modules/err-code/.eslintrc.json | 7 + deps/npm/node_modules/err-code/.npmignore | 2 + deps/npm/node_modules/err-code/.travis.yml | 5 + deps/npm/node_modules/err-code/README.md | 72 + deps/npm/node_modules/err-code/bower.json | 30 + deps/npm/node_modules/err-code/index.js | 22 + deps/npm/node_modules/err-code/index.umd.js | 26 + deps/npm/node_modules/err-code/package.json | 64 + deps/npm/node_modules/err-code/test/.eslintrc.json | 5 + deps/npm/node_modules/err-code/test/test.js | 92 + deps/npm/node_modules/errno/.travis.yml | 11 + deps/npm/node_modules/errno/README.md | 145 + deps/npm/node_modules/errno/build.js | 43 + deps/npm/node_modules/errno/cli.js | 22 + deps/npm/node_modules/errno/custom.js | 57 + deps/npm/node_modules/errno/errno.js | 313 + deps/npm/node_modules/errno/package.json | 62 + deps/npm/node_modules/errno/test.js | 88 + deps/npm/node_modules/es6-promise/CHANGELOG.md | 151 + deps/npm/node_modules/es6-promise/LICENSE | 19 + deps/npm/node_modules/es6-promise/README.md | 97 + deps/npm/node_modules/es6-promise/auto.js | 4 + .../es6-promise/dist/es6-promise.auto.js | 1181 ++ .../es6-promise/dist/es6-promise.auto.map | 1 + .../es6-promise/dist/es6-promise.auto.min.js | 1 + .../es6-promise/dist/es6-promise.auto.min.map | 1 + .../node_modules/es6-promise/dist/es6-promise.js | 1179 ++ .../node_modules/es6-promise/dist/es6-promise.map | 1 + .../es6-promise/dist/es6-promise.min.js | 1 + .../es6-promise/dist/es6-promise.min.map | 1 + deps/npm/node_modules/es6-promise/es6-promise.d.ts | 81 + .../es6-promise/lib/es6-promise.auto.js | 3 + .../node_modules/es6-promise/lib/es6-promise.js | 7 + .../es6-promise/lib/es6-promise/-internal.js | 266 + .../es6-promise/lib/es6-promise/asap.js | 119 + .../es6-promise/lib/es6-promise/enumerator.js | 113 + .../es6-promise/lib/es6-promise/polyfill.js | 35 + .../es6-promise/lib/es6-promise/promise.js | 426 + .../es6-promise/lib/es6-promise/promise/all.js | 52 + .../es6-promise/lib/es6-promise/promise/race.js | 84 + .../es6-promise/lib/es6-promise/promise/reject.js | 46 + .../es6-promise/lib/es6-promise/promise/resolve.js | 48 + .../es6-promise/lib/es6-promise/then.js | 32 + .../es6-promise/lib/es6-promise/utils.js | 21 + deps/npm/node_modules/es6-promise/package.json | 104 + deps/npm/node_modules/es6-promisify/README.md | 89 + .../npm/node_modules/es6-promisify/dist/promise.js | 73 + .../node_modules/es6-promisify/dist/promisify.js | 85 + deps/npm/node_modules/es6-promisify/package.json | 72 + .../npm/node_modules/escape-string-regexp/index.js | 11 + deps/npm/node_modules/escape-string-regexp/license | 21 + .../node_modules/escape-string-regexp/package.json | 84 + .../node_modules/escape-string-regexp/readme.md | 27 + deps/npm/node_modules/execa/index.js | 309 + deps/npm/node_modules/execa/lib/errname.js | 37 + deps/npm/node_modules/execa/lib/stdio.js | 41 + deps/npm/node_modules/execa/license | 9 + deps/npm/node_modules/execa/package.json | 109 + deps/npm/node_modules/execa/readme.md | 279 + deps/npm/node_modules/extend/.jscs.json | 174 + deps/npm/node_modules/extend/.npmignore | 1 + deps/npm/node_modules/extend/.travis.yml | 179 + deps/npm/node_modules/extend/CHANGELOG.md | 76 + deps/npm/node_modules/extend/LICENSE | 22 + deps/npm/node_modules/extend/README.md | 80 + deps/npm/node_modules/extend/component.json | 31 + deps/npm/node_modules/extend/index.js | 86 + deps/npm/node_modules/extend/package.json | 75 + deps/npm/node_modules/extsprintf/.gitmodules | 0 deps/npm/node_modules/extsprintf/.npmignore | 2 + deps/npm/node_modules/extsprintf/LICENSE | 19 + deps/npm/node_modules/extsprintf/Makefile | 24 + deps/npm/node_modules/extsprintf/Makefile.targ | 285 + deps/npm/node_modules/extsprintf/README.md | 46 + deps/npm/node_modules/extsprintf/jsl.node.conf | 136 + deps/npm/node_modules/extsprintf/lib/extsprintf.js | 183 + deps/npm/node_modules/extsprintf/package.json | 44 + deps/npm/node_modules/fast-deep-equal/LICENSE | 21 + deps/npm/node_modules/fast-deep-equal/README.md | 55 + deps/npm/node_modules/fast-deep-equal/index.d.ts | 4 + deps/npm/node_modules/fast-deep-equal/index.js | 55 + deps/npm/node_modules/fast-deep-equal/package.json | 85 + .../fast-json-stable-stringify/.eslintrc.yml | 26 + .../fast-json-stable-stringify/.npmignore | 4 + .../fast-json-stable-stringify/.travis.yml | 8 + .../fast-json-stable-stringify/LICENSE | 18 + .../fast-json-stable-stringify/README.md | 119 + .../fast-json-stable-stringify/benchmark/index.js | 31 + .../fast-json-stable-stringify/benchmark/test.json | 137 + .../fast-json-stable-stringify/example/key_cmp.js | 7 + .../fast-json-stable-stringify/example/nested.js | 3 + .../fast-json-stable-stringify/example/str.js | 3 + .../example/value_cmp.js | 7 + .../fast-json-stable-stringify/index.js | 59 + .../fast-json-stable-stringify/package.json | 78 + .../fast-json-stable-stringify/test/cmp.js | 13 + .../fast-json-stable-stringify/test/nested.js | 44 + .../fast-json-stable-stringify/test/str.js | 46 + .../fast-json-stable-stringify/test/to-json.js | 22 + deps/npm/node_modules/figgy-pudding/CHANGELOG.md | 66 + deps/npm/node_modules/figgy-pudding/LICENSE.md | 16 + deps/npm/node_modules/figgy-pudding/README.md | 149 + deps/npm/node_modules/figgy-pudding/index.js | 101 + deps/npm/node_modules/figgy-pudding/package.json | 76 + .../node_modules/find-npm-prefix/find-prefix.js | 50 +- deps/npm/node_modules/find-npm-prefix/package.json | 33 +- deps/npm/node_modules/find-up/index.js | 48 + deps/npm/node_modules/find-up/license | 21 + deps/npm/node_modules/find-up/package.json | 87 + deps/npm/node_modules/find-up/readme.md | 85 + .../node_modules/flush-write-stream/.travis.yml | 6 + deps/npm/node_modules/flush-write-stream/LICENSE | 21 + deps/npm/node_modules/flush-write-stream/README.md | 59 + .../npm/node_modules/flush-write-stream/example.js | 22 + deps/npm/node_modules/flush-write-stream/index.js | 54 + .../node_modules/flush-write-stream/package.json | 57 + deps/npm/node_modules/flush-write-stream/test.js | 85 + deps/npm/node_modules/forever-agent/LICENSE | 55 + deps/npm/node_modules/forever-agent/README.md | 4 + deps/npm/node_modules/forever-agent/index.js | 138 + deps/npm/node_modules/forever-agent/package.json | 50 + deps/npm/node_modules/form-data/License | 19 + deps/npm/node_modules/form-data/README.md | 234 + deps/npm/node_modules/form-data/README.md.bak | 234 + deps/npm/node_modules/form-data/lib/browser.js | 2 + deps/npm/node_modules/form-data/lib/form_data.js | 457 + deps/npm/node_modules/form-data/lib/populate.js | 10 + deps/npm/node_modules/form-data/package.json | 98 + deps/npm/node_modules/from2/.travis.yml | 8 + deps/npm/node_modules/from2/LICENSE.md | 21 + deps/npm/node_modules/from2/README.md | 70 + deps/npm/node_modules/from2/index.js | 103 + deps/npm/node_modules/from2/package.json | 72 + deps/npm/node_modules/from2/test.js | 121 + deps/npm/node_modules/fs-minipass/LICENSE | 15 + deps/npm/node_modules/fs-minipass/README.md | 70 + deps/npm/node_modules/fs-minipass/index.js | 386 + deps/npm/node_modules/fs-minipass/package.json | 62 + deps/npm/node_modules/fs-vacuum/package.json | 31 +- .../node_modules/iferr/.npmignore | 1 + .../node_modules/iferr/LICENSE | 21 + .../node_modules/iferr/README.md | 40 + .../node_modules/iferr/index.coffee | 24 + .../node_modules/iferr/index.js | 49 + .../node_modules/iferr/package.json | 55 + .../node_modules/iferr/test/index.coffee | 42 + .../node_modules/iferr/test/mocha.opts | 2 + .../fs-write-stream-atomic/package.json | 32 +- deps/npm/node_modules/fs.realpath/LICENSE | 43 + deps/npm/node_modules/fs.realpath/README.md | 33 + deps/npm/node_modules/fs.realpath/index.js | 66 + deps/npm/node_modules/fs.realpath/old.js | 303 + deps/npm/node_modules/fs.realpath/package.json | 59 + deps/npm/node_modules/fstream/.npmignore | 5 + deps/npm/node_modules/fstream/.travis.yml | 9 + deps/npm/node_modules/fstream/LICENSE | 15 + deps/npm/node_modules/fstream/README.md | 76 + .../node_modules/fstream/examples/filter-pipe.js | 134 + deps/npm/node_modules/fstream/examples/pipe.js | 118 + deps/npm/node_modules/fstream/examples/reader.js | 68 + .../node_modules/fstream/examples/symlink-write.js | 27 + deps/npm/node_modules/fstream/fstream.js | 35 + deps/npm/node_modules/fstream/lib/abstract.js | 85 + deps/npm/node_modules/fstream/lib/collect.js | 70 + deps/npm/node_modules/fstream/lib/dir-reader.js | 252 + deps/npm/node_modules/fstream/lib/dir-writer.js | 174 + deps/npm/node_modules/fstream/lib/file-reader.js | 150 + deps/npm/node_modules/fstream/lib/file-writer.js | 107 + deps/npm/node_modules/fstream/lib/get-type.js | 33 + deps/npm/node_modules/fstream/lib/link-reader.js | 53 + deps/npm/node_modules/fstream/lib/link-writer.js | 95 + deps/npm/node_modules/fstream/lib/proxy-reader.js | 95 + deps/npm/node_modules/fstream/lib/proxy-writer.js | 111 + deps/npm/node_modules/fstream/lib/reader.js | 255 + deps/npm/node_modules/fstream/lib/socket-reader.js | 36 + deps/npm/node_modules/fstream/lib/writer.js | 390 + deps/npm/node_modules/fstream/package.json | 62 + deps/npm/node_modules/gauge/CHANGELOG.md | 160 + deps/npm/node_modules/gauge/LICENSE | 13 + deps/npm/node_modules/gauge/README.md | 399 + deps/npm/node_modules/gauge/base-theme.js | 14 + deps/npm/node_modules/gauge/error.js | 24 + deps/npm/node_modules/gauge/has-color.js | 12 + deps/npm/node_modules/gauge/index.js | 233 + .../gauge/node_modules/ansi-regex/index.js | 4 + .../gauge/node_modules/ansi-regex/license | 21 + .../gauge/node_modules/ansi-regex/package.json | 108 + .../gauge/node_modules/ansi-regex/readme.md | 39 + .../node_modules/is-fullwidth-code-point/index.js | 46 + .../node_modules/is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 77 + .../node_modules/is-fullwidth-code-point/readme.md | 39 + .../gauge/node_modules/string-width/index.js | 37 + .../gauge/node_modules/string-width/license | 21 + .../gauge/node_modules/string-width/package.json | 88 + .../gauge/node_modules/string-width/readme.md | 42 + .../gauge/node_modules/strip-ansi/index.js | 6 + .../gauge/node_modules/strip-ansi/license | 21 + .../gauge/node_modules/strip-ansi/package.json | 102 + .../gauge/node_modules/strip-ansi/readme.md | 33 + deps/npm/node_modules/gauge/package.json | 94 + deps/npm/node_modules/gauge/plumbing.js | 48 + deps/npm/node_modules/gauge/process.js | 3 + deps/npm/node_modules/gauge/progress-bar.js | 35 + deps/npm/node_modules/gauge/render-template.js | 181 + deps/npm/node_modules/gauge/set-immediate.js | 7 + deps/npm/node_modules/gauge/set-interval.js | 3 + deps/npm/node_modules/gauge/spin.js | 5 + deps/npm/node_modules/gauge/template-item.js | 72 + deps/npm/node_modules/gauge/theme-set.js | 114 + deps/npm/node_modules/gauge/themes.js | 54 + deps/npm/node_modules/gauge/wide-truncate.js | 25 + deps/npm/node_modules/genfun/CHANGELOG.md | 36 + deps/npm/node_modules/genfun/README.md | 223 + deps/npm/node_modules/genfun/lib/genfun.js | 296 + deps/npm/node_modules/genfun/lib/method.js | 86 + deps/npm/node_modules/genfun/lib/role.js | 17 + deps/npm/node_modules/genfun/lib/util.js | 37 + deps/npm/node_modules/genfun/package.json | 79 + .../gentle-fs/node_modules/iferr/.npmignore | 1 + .../gentle-fs/node_modules/iferr/LICENSE | 21 + .../gentle-fs/node_modules/iferr/README.md | 40 + .../gentle-fs/node_modules/iferr/index.coffee | 24 + .../gentle-fs/node_modules/iferr/index.js | 49 + .../gentle-fs/node_modules/iferr/package.json | 55 + .../gentle-fs/node_modules/iferr/test/index.coffee | 42 + .../gentle-fs/node_modules/iferr/test/mocha.opts | 2 + deps/npm/node_modules/gentle-fs/package.json | 24 +- deps/npm/node_modules/get-caller-file/README.md | 4 + deps/npm/node_modules/get-caller-file/index.js | 20 + deps/npm/node_modules/get-caller-file/package.json | 58 + deps/npm/node_modules/get-stream/buffer-stream.js | 51 + deps/npm/node_modules/get-stream/index.js | 51 + deps/npm/node_modules/get-stream/license | 21 + deps/npm/node_modules/get-stream/package.json | 82 + deps/npm/node_modules/get-stream/readme.md | 117 + deps/npm/node_modules/getpass/.npmignore | 8 + deps/npm/node_modules/getpass/.travis.yml | 9 + deps/npm/node_modules/getpass/LICENSE | 18 + deps/npm/node_modules/getpass/README.md | 32 + deps/npm/node_modules/getpass/lib/index.js | 123 + deps/npm/node_modules/getpass/package.json | 50 + .../glob/node_modules/fs.realpath/LICENSE | 43 - .../glob/node_modules/fs.realpath/README.md | 33 - .../glob/node_modules/fs.realpath/index.js | 66 - .../glob/node_modules/fs.realpath/old.js | 303 - .../glob/node_modules/fs.realpath/package.json | 62 - .../glob/node_modules/minimatch/LICENSE | 15 - .../glob/node_modules/minimatch/README.md | 209 - .../glob/node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 201 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 92 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../glob/node_modules/minimatch/package.json | 63 - .../glob/node_modules/path-is-absolute/index.js | 20 - .../glob/node_modules/path-is-absolute/license | 21 - .../node_modules/path-is-absolute/package.json | 79 - .../glob/node_modules/path-is-absolute/readme.md | 59 - deps/npm/node_modules/glob/package.json | 30 +- deps/npm/node_modules/global-dirs/index.js | 90 + deps/npm/node_modules/global-dirs/license | 9 + deps/npm/node_modules/global-dirs/package.json | 84 + deps/npm/node_modules/global-dirs/readme.md | 69 + deps/npm/node_modules/got/index.js | 364 + deps/npm/node_modules/got/license | 21 + deps/npm/node_modules/got/package.json | 110 + deps/npm/node_modules/got/readme.md | 335 + deps/npm/node_modules/graceful-fs/package.json | 41 +- deps/npm/node_modules/har-schema/LICENSE | 13 + deps/npm/node_modules/har-schema/README.md | 49 + .../node_modules/har-schema/lib/afterRequest.json | 30 + .../node_modules/har-schema/lib/beforeRequest.json | 30 + deps/npm/node_modules/har-schema/lib/browser.json | 20 + deps/npm/node_modules/har-schema/lib/cache.json | 21 + deps/npm/node_modules/har-schema/lib/content.json | 29 + deps/npm/node_modules/har-schema/lib/cookie.json | 36 + deps/npm/node_modules/har-schema/lib/creator.json | 20 + deps/npm/node_modules/har-schema/lib/entry.json | 53 + deps/npm/node_modules/har-schema/lib/har.json | 13 + deps/npm/node_modules/har-schema/lib/header.json | 20 + deps/npm/node_modules/har-schema/lib/index.js | 22 + deps/npm/node_modules/har-schema/lib/log.json | 36 + deps/npm/node_modules/har-schema/lib/page.json | 32 + .../node_modules/har-schema/lib/pageTimings.json | 18 + deps/npm/node_modules/har-schema/lib/postData.json | 43 + deps/npm/node_modules/har-schema/lib/query.json | 20 + deps/npm/node_modules/har-schema/lib/request.json | 57 + deps/npm/node_modules/har-schema/lib/response.json | 54 + deps/npm/node_modules/har-schema/lib/timings.json | 42 + deps/npm/node_modules/har-schema/package.json | 86 + deps/npm/node_modules/har-validator/LICENSE | 13 + deps/npm/node_modules/har-validator/README.md | 54 + deps/npm/node_modules/har-validator/lib/async.js | 98 + deps/npm/node_modules/har-validator/lib/error.js | 17 + deps/npm/node_modules/har-validator/lib/promise.js | 95 + deps/npm/node_modules/har-validator/package.json | 75 + deps/npm/node_modules/has-flag/index.js | 8 + deps/npm/node_modules/has-flag/license | 9 + deps/npm/node_modules/has-flag/package.json | 76 + deps/npm/node_modules/has-flag/readme.md | 70 + deps/npm/node_modules/has-unicode/package.json | 31 +- deps/npm/node_modules/hawk/.npmignore | 5 + deps/npm/node_modules/hawk/LICENSE | 28 + deps/npm/node_modules/hawk/README.md | 637 + deps/npm/node_modules/hawk/client.js | 3 + deps/npm/node_modules/hawk/dist/browser.js | 793 ++ deps/npm/node_modules/hawk/lib/browser.js | 653 + deps/npm/node_modules/hawk/lib/client.js | 391 + deps/npm/node_modules/hawk/lib/crypto.js | 128 + deps/npm/node_modules/hawk/lib/index.js | 16 + deps/npm/node_modules/hawk/lib/server.js | 550 + deps/npm/node_modules/hawk/lib/utils.js | 185 + deps/npm/node_modules/hawk/package.json | 78 + deps/npm/node_modules/hoek/.npmignore | 3 + deps/npm/node_modules/hoek/LICENSE | 32 + deps/npm/node_modules/hoek/README.md | 30 + deps/npm/node_modules/hoek/lib/escape.js | 168 + deps/npm/node_modules/hoek/lib/index.js | 978 ++ deps/npm/node_modules/hoek/package.json | 58 + deps/npm/node_modules/hosted-git-info/CHANGELOG.md | 17 + deps/npm/node_modules/hosted-git-info/README.md | 6 +- .../node_modules/hosted-git-info/git-host-info.js | 14 +- deps/npm/node_modules/hosted-git-info/git-host.js | 31 +- deps/npm/node_modules/hosted-git-info/package.json | 38 +- .../node_modules/http-cache-semantics/README.md | 177 + .../http-cache-semantics/node4/index.js | 559 + .../node_modules/http-cache-semantics/package.json | 60 + deps/npm/node_modules/http-proxy-agent/.travis.yml | 22 + deps/npm/node_modules/http-proxy-agent/History.md | 101 + deps/npm/node_modules/http-proxy-agent/README.md | 74 + deps/npm/node_modules/http-proxy-agent/index.js | 111 + .../npm/node_modules/http-proxy-agent/package.json | 67 + .../http-proxy-agent/test/ssl-cert-snakeoil.key | 15 + .../http-proxy-agent/test/ssl-cert-snakeoil.pem | 12 + .../npm/node_modules/http-proxy-agent/test/test.js | 303 + .../npm/node_modules/http-signature/.dir-locals.el | 6 + deps/npm/node_modules/http-signature/.npmignore | 7 + deps/npm/node_modules/http-signature/CHANGES.md | 46 + deps/npm/node_modules/http-signature/LICENSE | 18 + deps/npm/node_modules/http-signature/README.md | 79 + .../node_modules/http-signature/http_signing.md | 363 + deps/npm/node_modules/http-signature/lib/index.js | 29 + deps/npm/node_modules/http-signature/lib/parser.js | 315 + deps/npm/node_modules/http-signature/lib/signer.js | 401 + deps/npm/node_modules/http-signature/lib/utils.js | 112 + deps/npm/node_modules/http-signature/lib/verify.js | 88 + deps/npm/node_modules/http-signature/package.json | 77 + .../npm/node_modules/https-proxy-agent/.travis.yml | 22 + deps/npm/node_modules/https-proxy-agent/History.md | 124 + deps/npm/node_modules/https-proxy-agent/README.md | 137 + deps/npm/node_modules/https-proxy-agent/index.js | 229 + .../node_modules/https-proxy-agent/package.json | 67 + .../https-proxy-agent/test/ssl-cert-snakeoil.key | 15 + .../https-proxy-agent/test/ssl-cert-snakeoil.pem | 12 + .../node_modules/https-proxy-agent/test/test.js | 342 + deps/npm/node_modules/humanize-ms/History.md | 25 + deps/npm/node_modules/humanize-ms/LICENSE | 17 + deps/npm/node_modules/humanize-ms/README.md | 40 + deps/npm/node_modules/humanize-ms/index.js | 24 + deps/npm/node_modules/humanize-ms/package.json | 66 + deps/npm/node_modules/iconv-lite/.travis.yml | 22 + deps/npm/node_modules/iconv-lite/Changelog.md | 156 + deps/npm/node_modules/iconv-lite/LICENSE | 20 + deps/npm/node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 554 + .../node_modules/iconv-lite/encodings/dbcs-data.js | 176 + .../npm/node_modules/iconv-lite/encodings/index.js | 22 + .../node_modules/iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../iconv-lite/encodings/sbcs-data-generated.js | 451 + .../node_modules/iconv-lite/encodings/sbcs-data.js | 168 + .../iconv-lite/encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../iconv-lite/encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../npm/node_modules/iconv-lite/encodings/utf16.js | 175 + deps/npm/node_modules/iconv-lite/encodings/utf7.js | 288 + .../node_modules/iconv-lite/lib/bom-handling.js | 51 + .../npm/node_modules/iconv-lite/lib/extend-node.js | 217 + deps/npm/node_modules/iconv-lite/lib/index.d.ts | 24 + deps/npm/node_modules/iconv-lite/lib/index.js | 153 + deps/npm/node_modules/iconv-lite/lib/streams.js | 120 + deps/npm/node_modules/iconv-lite/package.json | 77 + deps/npm/node_modules/iferr/.npmignore | 1 - deps/npm/node_modules/iferr/iferr.js | 23 + deps/npm/node_modules/iferr/index.coffee | 24 - deps/npm/node_modules/iferr/index.js | 49 - deps/npm/node_modules/iferr/package.json | 51 +- deps/npm/node_modules/iferr/test/index.coffee | 42 - deps/npm/node_modules/iferr/test/mocha.opts | 2 - deps/npm/node_modules/ignore-walk/LICENSE | 15 + deps/npm/node_modules/ignore-walk/README.md | 60 + deps/npm/node_modules/ignore-walk/index.js | 265 + deps/npm/node_modules/ignore-walk/package.json | 71 + deps/npm/node_modules/import-lazy/index.js | 53 + deps/npm/node_modules/import-lazy/license | 21 + deps/npm/node_modules/import-lazy/package.json | 76 + deps/npm/node_modules/import-lazy/readme.md | 64 + deps/npm/node_modules/imurmurhash/package.json | 31 +- deps/npm/node_modules/inflight/package.json | 32 +- deps/npm/node_modules/inherits/package.json | 54 +- deps/npm/node_modules/ini/ini.js | 128 +- deps/npm/node_modules/ini/package.json | 49 +- .../node_modules/init-package-json/CHANGELOG.md | 17 + .../init-package-json/default-input.js | 9 +- .../init-package-json/init-package-json.js | 2 +- .../node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 81 - .../node_modules/npm-package-arg/npa.js | 270 - .../node_modules/npm-package-arg/package.json | 64 - .../node_modules/promzard/.npmignore | 1 - .../node_modules/promzard/LICENSE | 15 - .../node_modules/promzard/README.md | 133 - .../node_modules/promzard/example/buffer.js | 12 - .../node_modules/promzard/example/index.js | 11 - .../promzard/example/npm-init/README.md | 8 - .../promzard/example/npm-init/init-input.js | 191 - .../node_modules/promzard/example/npm-init/init.js | 37 - .../promzard/example/npm-init/package.json | 10 - .../promzard/example/substack-input.js | 61 - .../node_modules/promzard/package.json | 56 - .../node_modules/promzard/promzard.js | 238 - .../node_modules/promzard/test/basic.js | 91 - .../node_modules/promzard/test/buffer.js | 84 - .../node_modules/promzard/test/exports.input | 5 - .../node_modules/promzard/test/exports.js | 48 - .../node_modules/promzard/test/fn.input | 18 - .../node_modules/promzard/test/fn.js | 56 - .../node_modules/promzard/test/simple.input | 8 - .../node_modules/promzard/test/simple.js | 30 - .../node_modules/promzard/test/validate.input | 8 - .../node_modules/promzard/test/validate.js | 20 - .../node_modules/init-package-json/package.json | 52 +- deps/npm/node_modules/invert-kv/index.js | 15 + deps/npm/node_modules/invert-kv/package.json | 65 + deps/npm/node_modules/invert-kv/readme.md | 25 + deps/npm/node_modules/ip-regex/index.js | 24 + deps/npm/node_modules/ip-regex/license | 21 + deps/npm/node_modules/ip-regex/package.json | 77 + deps/npm/node_modules/ip-regex/readme.md | 63 + deps/npm/node_modules/ip/.jscsrc | 46 + deps/npm/node_modules/ip/.npmignore | 2 + deps/npm/node_modules/ip/.travis.yml | 15 + deps/npm/node_modules/ip/README.md | 90 + deps/npm/node_modules/ip/lib/ip.js | 416 + deps/npm/node_modules/ip/package.json | 55 + deps/npm/node_modules/ip/test/api-test.js | 407 + deps/npm/node_modules/is-builtin-module/index.js | 10 + deps/npm/node_modules/is-builtin-module/license | 21 + .../node_modules/is-builtin-module/package.json | 75 + deps/npm/node_modules/is-builtin-module/readme.md | 33 + deps/npm/node_modules/is-ci/.travis.yml | 7 + deps/npm/node_modules/is-ci/LICENSE | 21 + deps/npm/node_modules/is-ci/README.md | 69 + deps/npm/node_modules/is-ci/bin.js | 4 + deps/npm/node_modules/is-ci/index.js | 3 + deps/npm/node_modules/is-ci/package.json | 69 + deps/npm/node_modules/is-ci/test.js | 19 + deps/npm/node_modules/is-cidr/.npmignore | 1 - deps/npm/node_modules/is-cidr/.travis.yml | 21 - deps/npm/node_modules/is-cidr/LICENSE | 22 + deps/npm/node_modules/is-cidr/README.md | 58 +- deps/npm/node_modules/is-cidr/example/example.js | 13 - deps/npm/node_modules/is-cidr/index.js | 6 + deps/npm/node_modules/is-cidr/lib/index.js | 18 - .../is-cidr/node_modules/cidr-regex/.npmignore | 1 - .../is-cidr/node_modules/cidr-regex/README.md | 48 - .../is-cidr/node_modules/cidr-regex/lib/index.js | 10 - .../is-cidr/node_modules/cidr-regex/package.json | 68 - .../is-cidr/node_modules/cidr-regex/test.js | 199 - deps/npm/node_modules/is-cidr/package.json | 109 +- deps/npm/node_modules/is-cidr/test/index.test.js | 199 - .../node_modules/is-fullwidth-code-point/index.js | 46 + .../node_modules/is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 78 + .../node_modules/is-fullwidth-code-point/readme.md | 39 + .../node_modules/is-installed-globally/index.js | 5 + .../npm/node_modules/is-installed-globally/license | 9 + .../is-installed-globally/package.json | 80 + .../node_modules/is-installed-globally/readme.md | 39 + deps/npm/node_modules/is-npm/index.js | 4 + deps/npm/node_modules/is-npm/package.json | 64 + deps/npm/node_modules/is-npm/readme.md | 30 + deps/npm/node_modules/is-obj/index.js | 5 + deps/npm/node_modules/is-obj/license | 21 + deps/npm/node_modules/is-obj/package.json | 65 + deps/npm/node_modules/is-obj/readme.md | 34 + deps/npm/node_modules/is-path-inside/index.js | 14 + deps/npm/node_modules/is-path-inside/license | 21 + deps/npm/node_modules/is-path-inside/package.json | 70 + deps/npm/node_modules/is-path-inside/readme.md | 34 + deps/npm/node_modules/is-redirect/index.js | 14 + deps/npm/node_modules/is-redirect/license | 21 + deps/npm/node_modules/is-redirect/package.json | 67 + deps/npm/node_modules/is-redirect/readme.md | 28 + deps/npm/node_modules/is-retry-allowed/index.js | 60 + deps/npm/node_modules/is-retry-allowed/license | 21 + .../npm/node_modules/is-retry-allowed/package.json | 59 + deps/npm/node_modules/is-retry-allowed/readme.md | 42 + deps/npm/node_modules/is-stream/index.js | 21 + deps/npm/node_modules/is-stream/license | 21 + deps/npm/node_modules/is-stream/package.json | 72 + deps/npm/node_modules/is-stream/readme.md | 42 + deps/npm/node_modules/is-typedarray/LICENSE.md | 18 + deps/npm/node_modules/is-typedarray/README.md | 16 + deps/npm/node_modules/is-typedarray/index.js | 41 + deps/npm/node_modules/is-typedarray/package.json | 59 + deps/npm/node_modules/is-typedarray/test.js | 34 + deps/npm/node_modules/isarray/.npmignore | 1 + deps/npm/node_modules/isarray/.travis.yml | 4 + deps/npm/node_modules/isarray/Makefile | 5 + deps/npm/node_modules/isarray/README.md | 60 + deps/npm/node_modules/isarray/component.json | 19 + deps/npm/node_modules/isarray/index.js | 5 + deps/npm/node_modules/isarray/package.json | 74 + deps/npm/node_modules/isarray/test.js | 19 + deps/npm/node_modules/isexe/.npmignore | 2 + deps/npm/node_modules/isexe/LICENSE | 15 + deps/npm/node_modules/isexe/README.md | 51 + deps/npm/node_modules/isexe/index.js | 57 + deps/npm/node_modules/isexe/mode.js | 41 + deps/npm/node_modules/isexe/package.json | 61 + deps/npm/node_modules/isexe/test/basic.js | 221 + deps/npm/node_modules/isexe/windows.js | 42 + deps/npm/node_modules/isstream/.npmignore | 1 + deps/npm/node_modules/isstream/.travis.yml | 12 + deps/npm/node_modules/isstream/LICENSE.md | 11 + deps/npm/node_modules/isstream/README.md | 66 + deps/npm/node_modules/isstream/isstream.js | 27 + deps/npm/node_modules/isstream/package.json | 61 + deps/npm/node_modules/isstream/test.js | 165 + deps/npm/node_modules/jsbn/.npmignore | 2 + deps/npm/node_modules/jsbn/LICENSE | 40 + deps/npm/node_modules/jsbn/README.md | 173 + deps/npm/node_modules/jsbn/example.html | 12 + deps/npm/node_modules/jsbn/example.js | 3 + deps/npm/node_modules/jsbn/index.js | 1357 ++ deps/npm/node_modules/jsbn/package.json | 53 + .../json-parse-better-errors/CHANGELOG.md | 46 + .../json-parse-better-errors/LICENSE.md | 7 + .../json-parse-better-errors/README.md | 46 + .../node_modules/json-parse-better-errors/index.js | 38 + .../json-parse-better-errors/package.json | 82 + .../json-schema-traverse/.eslintrc.yml | 27 + .../node_modules/json-schema-traverse/.npmignore | 60 + .../node_modules/json-schema-traverse/.travis.yml | 8 + deps/npm/node_modules/json-schema-traverse/LICENSE | 21 + .../node_modules/json-schema-traverse/README.md | 69 + .../npm/node_modules/json-schema-traverse/index.js | 81 + .../node_modules/json-schema-traverse/package.json | 70 + .../json-schema-traverse/spec/.eslintrc.yml | 6 + .../json-schema-traverse/spec/fixtures/schema.js | 125 + .../json-schema-traverse/spec/index.spec.js | 102 + deps/npm/node_modules/json-schema/README.md | 5 + .../node_modules/json-schema/draft-00/hyper-schema | 68 + .../npm/node_modules/json-schema/draft-00/json-ref | 26 + deps/npm/node_modules/json-schema/draft-00/links | 33 + deps/npm/node_modules/json-schema/draft-00/schema | 155 + .../node_modules/json-schema/draft-01/hyper-schema | 68 + .../npm/node_modules/json-schema/draft-01/json-ref | 26 + deps/npm/node_modules/json-schema/draft-01/links | 33 + deps/npm/node_modules/json-schema/draft-01/schema | 155 + .../node_modules/json-schema/draft-02/hyper-schema | 68 + .../npm/node_modules/json-schema/draft-02/json-ref | 26 + deps/npm/node_modules/json-schema/draft-02/links | 35 + deps/npm/node_modules/json-schema/draft-02/schema | 166 + .../json-schema/draft-03/examples/address | 20 + .../json-schema/draft-03/examples/calendar | 49 + .../json-schema/draft-03/examples/card | 105 + .../node_modules/json-schema/draft-03/examples/geo | 8 + .../json-schema/draft-03/examples/interfaces | 23 + .../node_modules/json-schema/draft-03/hyper-schema | 60 + .../npm/node_modules/json-schema/draft-03/json-ref | 26 + deps/npm/node_modules/json-schema/draft-03/links | 35 + deps/npm/node_modules/json-schema/draft-03/schema | 174 + .../node_modules/json-schema/draft-04/hyper-schema | 60 + deps/npm/node_modules/json-schema/draft-04/links | 41 + deps/npm/node_modules/json-schema/draft-04/schema | 189 + .../json-schema/draft-zyp-json-schema-03.xml | 1120 ++ .../json-schema/draft-zyp-json-schema-04.xml | 1072 ++ deps/npm/node_modules/json-schema/lib/links.js | 66 + deps/npm/node_modules/json-schema/lib/validate.js | 273 + deps/npm/node_modules/json-schema/package.json | 71 + deps/npm/node_modules/json-schema/test/tests.js | 95 + .../node_modules/json-stringify-safe/.npmignore | 1 + .../node_modules/json-stringify-safe/CHANGELOG.md | 14 + deps/npm/node_modules/json-stringify-safe/LICENSE | 15 + deps/npm/node_modules/json-stringify-safe/Makefile | 35 + .../npm/node_modules/json-stringify-safe/README.md | 52 + .../node_modules/json-stringify-safe/package.json | 66 + .../node_modules/json-stringify-safe/stringify.js | 27 + .../json-stringify-safe/test/mocha.opts | 2 + .../json-stringify-safe/test/stringify_test.js | 246 + deps/npm/node_modules/jsonparse/.npmignore | 1 + deps/npm/node_modules/jsonparse/LICENSE | 24 + deps/npm/node_modules/jsonparse/README.markdown | 10 + deps/npm/node_modules/jsonparse/bench.js | 26 + .../node_modules/jsonparse/examples/twitterfeed.js | 30 + deps/npm/node_modules/jsonparse/jsonparse.js | 413 + deps/npm/node_modules/jsonparse/package.json | 58 + .../node_modules/jsonparse/samplejson/basic.json | 167 + .../node_modules/jsonparse/samplejson/basic2.json | 180 + deps/npm/node_modules/jsonparse/test/big-token.js | 24 + deps/npm/node_modules/jsonparse/test/boundary.js | 110 + deps/npm/node_modules/jsonparse/test/offset.js | 67 + deps/npm/node_modules/jsonparse/test/primitives.js | 57 + deps/npm/node_modules/jsonparse/test/surrogate.js | 25 + deps/npm/node_modules/jsonparse/test/unvalid.js | 15 + deps/npm/node_modules/jsonparse/test/utf8.js | 38 + deps/npm/node_modules/jsprim/CHANGES.md | 49 + deps/npm/node_modules/jsprim/CONTRIBUTING.md | 19 + deps/npm/node_modules/jsprim/LICENSE | 19 + deps/npm/node_modules/jsprim/README.md | 287 + deps/npm/node_modules/jsprim/lib/jsprim.js | 735 ++ deps/npm/node_modules/jsprim/package.json | 49 + deps/npm/node_modules/latest-version/index.js | 4 + deps/npm/node_modules/latest-version/license | 21 + deps/npm/node_modules/latest-version/package.json | 71 + deps/npm/node_modules/latest-version/readme.md | 40 + deps/npm/node_modules/lazy-property/package.json | 28 +- deps/npm/node_modules/lcid/index.js | 22 + deps/npm/node_modules/lcid/lcid.json | 203 + deps/npm/node_modules/lcid/license | 21 + deps/npm/node_modules/lcid/package.json | 79 + deps/npm/node_modules/lcid/readme.md | 35 + deps/npm/node_modules/libcipm/CHANGELOG.md | 382 + deps/npm/node_modules/libcipm/LICENSE.md | 7 + deps/npm/node_modules/libcipm/README.md | 37 + deps/npm/node_modules/libcipm/index.js | 402 + .../libcipm/lib/config/lifecycle-opts.js | 29 + .../node_modules/libcipm/lib/config/npm-config.js | 72 + .../node_modules/libcipm/lib/config/pacote-opts.js | 135 + deps/npm/node_modules/libcipm/lib/extract.js | 53 + deps/npm/node_modules/libcipm/lib/silentlog.js | 13 + deps/npm/node_modules/libcipm/lib/worker.js | 16 + deps/npm/node_modules/libcipm/package.json | 101 + deps/npm/node_modules/libnpmhook/CHANGELOG.md | 66 + deps/npm/node_modules/libnpmhook/LICENSE.md | 16 + deps/npm/node_modules/libnpmhook/README.md | 23 + deps/npm/node_modules/libnpmhook/config.js | 13 + deps/npm/node_modules/libnpmhook/index.js | 41 + .../node_modules/npm-registry-fetch/CHANGELOG.md | 104 + .../node_modules/npm-registry-fetch/LICENSE.md | 16 + .../node_modules/npm-registry-fetch/README.md | 549 + .../node_modules/npm-registry-fetch/auth.js | 48 + .../npm-registry-fetch/check-response.js | 99 + .../node_modules/npm-registry-fetch/config.js | 90 + .../node_modules/npm-registry-fetch/errors.js | 58 + .../node_modules/npm-registry-fetch/index.js | 160 + .../node_modules/npm-registry-fetch/package.json | 90 + .../node_modules/npm-registry-fetch/silentlog.js | 14 + deps/npm/node_modules/libnpmhook/package.json | 84 + deps/npm/node_modules/libnpx/CHANGELOG.md | 63 + deps/npm/node_modules/libnpx/LICENSE.md | 17 +- deps/npm/node_modules/libnpx/README.md | 6 + deps/npm/node_modules/libnpx/child.js | 18 +- deps/npm/node_modules/libnpx/get-prefix.js | 32 +- deps/npm/node_modules/libnpx/index.js | 48 +- deps/npm/node_modules/libnpx/libnpx.1 | 9 +- deps/npm/node_modules/libnpx/locales/ar.json | 29 - deps/npm/node_modules/libnpx/locales/en.json | 3 +- deps/npm/node_modules/libnpx/locales/fr.json | 28 +- deps/npm/node_modules/libnpx/locales/ko.json | 18 +- deps/npm/node_modules/libnpx/locales/pt_BR.json | 38 +- deps/npm/node_modules/libnpx/locales/zh_CN.json | 3 +- .../libnpx/node_modules/dotenv/CHANGELOG.md | 76 - .../libnpx/node_modules/dotenv/LICENSE | 23 - .../libnpx/node_modules/dotenv/README.md | 208 - .../libnpx/node_modules/dotenv/config.js | 11 - .../libnpx/node_modules/dotenv/lib/main.js | 74 - .../libnpx/node_modules/dotenv/package.json | 76 - .../libnpx/node_modules/npm-package-arg/LICENSE | 15 - .../libnpx/node_modules/npm-package-arg/README.md | 81 - .../libnpx/node_modules/npm-package-arg/npa.js | 270 - .../node_modules/npm-package-arg/package.json | 64 - .../node_modules/libnpx/node_modules/y18n/LICENSE | 13 - .../libnpx/node_modules/y18n/README.md | 91 - .../node_modules/libnpx/node_modules/y18n/index.js | 172 - .../libnpx/node_modules/y18n/package.json | 69 - .../libnpx/node_modules/yargs/CHANGELOG.md | 961 -- .../node_modules/libnpx/node_modules/yargs/LICENSE | 22 - .../libnpx/node_modules/yargs/README.md | 103 - .../libnpx/node_modules/yargs/completion.sh.hbs | 28 - .../libnpx/node_modules/yargs/index.js | 31 - .../libnpx/node_modules/yargs/lib/apply-extends.js | 52 - .../libnpx/node_modules/yargs/lib/argsert.js | 72 - .../libnpx/node_modules/yargs/lib/assign.js | 15 - .../libnpx/node_modules/yargs/lib/command.js | 336 - .../libnpx/node_modules/yargs/lib/completion.js | 104 - .../libnpx/node_modules/yargs/lib/levenshtein.js | 47 - .../libnpx/node_modules/yargs/lib/obj-filter.js | 10 - .../libnpx/node_modules/yargs/lib/usage.js | 489 - .../libnpx/node_modules/yargs/lib/validation.js | 364 - .../libnpx/node_modules/yargs/lib/yerror.js | 10 - .../libnpx/node_modules/yargs/locales/be.json | 39 - .../libnpx/node_modules/yargs/locales/de.json | 39 - .../libnpx/node_modules/yargs/locales/en.json | 40 - .../libnpx/node_modules/yargs/locales/es.json | 39 - .../libnpx/node_modules/yargs/locales/fr.json | 37 - .../libnpx/node_modules/yargs/locales/hi.json | 39 - .../libnpx/node_modules/yargs/locales/hu.json | 39 - .../libnpx/node_modules/yargs/locales/id.json | 40 - .../libnpx/node_modules/yargs/locales/it.json | 39 - .../libnpx/node_modules/yargs/locales/ja.json | 39 - .../libnpx/node_modules/yargs/locales/ko.json | 39 - .../libnpx/node_modules/yargs/locales/nb.json | 37 - .../libnpx/node_modules/yargs/locales/nl.json | 39 - .../libnpx/node_modules/yargs/locales/pirate.json | 12 - .../libnpx/node_modules/yargs/locales/pl.json | 39 - .../libnpx/node_modules/yargs/locales/pt.json | 38 - .../libnpx/node_modules/yargs/locales/pt_BR.json | 40 - .../libnpx/node_modules/yargs/locales/ru.json | 39 - .../libnpx/node_modules/yargs/locales/th.json | 39 - .../libnpx/node_modules/yargs/locales/tr.json | 39 - .../libnpx/node_modules/yargs/locales/zh_CN.json | 37 - .../libnpx/node_modules/yargs/locales/zh_TW.json | 40 - .../yargs/node_modules/camelcase/index.js | 64 - .../yargs/node_modules/camelcase/license | 21 - .../yargs/node_modules/camelcase/package.json | 44 - .../yargs/node_modules/camelcase/readme.md | 57 - .../yargs/node_modules/cliui/CHANGELOG.md | 15 - .../yargs/node_modules/cliui/LICENSE.txt | 14 - .../yargs/node_modules/cliui/README.md | 110 - .../node_modules/yargs/node_modules/cliui/index.js | 316 - .../cliui/node_modules/string-width/index.js | 37 - .../cliui/node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 43 - .../node_modules/code-point-at/readme.md | 32 - .../node_modules/is-fullwidth-code-point/index.js | 46 - .../node_modules/is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 42 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 45 - .../node_modules/is-fullwidth-code-point/readme.md | 39 - .../cliui/node_modules/string-width/package.json | 48 - .../cliui/node_modules/string-width/readme.md | 42 - .../cliui/node_modules/strip-ansi/index.js | 6 - .../cliui/node_modules/strip-ansi/license | 21 - .../strip-ansi/node_modules/ansi-regex/index.js | 4 - .../strip-ansi/node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 43 - .../strip-ansi/node_modules/ansi-regex/readme.md | 39 - .../cliui/node_modules/strip-ansi/package.json | 47 - .../cliui/node_modules/strip-ansi/readme.md | 33 - .../cliui/node_modules/wrap-ansi/index.js | 168 - .../cliui/node_modules/wrap-ansi/license | 21 - .../cliui/node_modules/wrap-ansi/package.json | 51 - .../cliui/node_modules/wrap-ansi/readme.md | 73 - .../yargs/node_modules/cliui/package.json | 49 - .../yargs/node_modules/decamelize/index.js | 13 - .../yargs/node_modules/decamelize/license | 21 - .../yargs/node_modules/decamelize/package.json | 43 - .../yargs/node_modules/decamelize/readme.md | 48 - .../yargs/node_modules/get-caller-file/README.md | 4 - .../yargs/node_modules/get-caller-file/index.js | 20 - .../node_modules/get-caller-file/package.json | 41 - .../yargs/node_modules/os-locale/index.js | 101 - .../yargs/node_modules/os-locale/license | 21 - .../os-locale/node_modules/execa/index.js | 309 - .../os-locale/node_modules/execa/lib/errname.js | 37 - .../os-locale/node_modules/execa/lib/stdio.js | 41 - .../os-locale/node_modules/execa/license | 9 - .../execa/node_modules/cross-spawn/CHANGELOG.md | 6 - .../execa/node_modules/cross-spawn/LICENSE | 19 - .../execa/node_modules/cross-spawn/README.md | 85 - .../execa/node_modules/cross-spawn/index.js | 59 - .../execa/node_modules/cross-spawn/lib/enoent.js | 73 - .../execa/node_modules/cross-spawn/lib/parse.js | 113 - .../cross-spawn/lib/util/escapeArgument.js | 30 - .../cross-spawn/lib/util/escapeCommand.js | 12 - .../cross-spawn/lib/util/hasEmptyArgumentBug.js | 18 - .../cross-spawn/lib/util/readShebang.js | 37 - .../cross-spawn/lib/util/resolveCommand.js | 31 - .../node_modules/shebang-command/index.js | 19 - .../node_modules/shebang-command/license | 21 - .../node_modules/shebang-regex/index.js | 2 - .../node_modules/shebang-regex/license | 21 - .../node_modules/shebang-regex/package.json | 64 - .../node_modules/shebang-regex/readme.md | 29 - .../node_modules/shebang-command/package.json | 71 - .../node_modules/shebang-command/readme.md | 39 - .../execa/node_modules/cross-spawn/package.json | 83 - .../execa/node_modules/get-stream/buffer-stream.js | 51 - .../execa/node_modules/get-stream/index.js | 51 - .../execa/node_modules/get-stream/license | 21 - .../execa/node_modules/get-stream/package.json | 80 - .../execa/node_modules/get-stream/readme.md | 117 - .../execa/node_modules/is-stream/index.js | 21 - .../execa/node_modules/is-stream/license | 21 - .../execa/node_modules/is-stream/package.json | 44 - .../execa/node_modules/is-stream/readme.md | 42 - .../execa/node_modules/npm-run-path/index.js | 39 - .../execa/node_modules/npm-run-path/license | 21 - .../npm-run-path/node_modules/path-key/index.js | 13 - .../npm-run-path/node_modules/path-key/license | 21 - .../node_modules/path-key/package.json | 43 - .../npm-run-path/node_modules/path-key/readme.md | 51 - .../execa/node_modules/npm-run-path/package.json | 45 - .../execa/node_modules/npm-run-path/readme.md | 81 - .../execa/node_modules/p-finally/index.js | 15 - .../execa/node_modules/p-finally/license | 21 - .../execa/node_modules/p-finally/package.json | 43 - .../execa/node_modules/p-finally/readme.md | 47 - .../execa/node_modules/signal-exit/CHANGELOG.md | 27 - .../execa/node_modules/signal-exit/LICENSE.txt | 16 - .../execa/node_modules/signal-exit/README.md | 40 - .../execa/node_modules/signal-exit/index.js | 157 - .../execa/node_modules/signal-exit/package.json | 44 - .../execa/node_modules/signal-exit/signals.js | 53 - .../execa/node_modules/strip-eof/index.js | 15 - .../execa/node_modules/strip-eof/license | 21 - .../execa/node_modules/strip-eof/package.json | 43 - .../execa/node_modules/strip-eof/readme.md | 28 - .../os-locale/node_modules/execa/package.json | 111 - .../os-locale/node_modules/execa/readme.md | 279 - .../os-locale/node_modules/lcid/index.js | 22 - .../os-locale/node_modules/lcid/lcid.json | 203 - .../os-locale/node_modules/lcid/license | 21 - .../lcid/node_modules/invert-kv/index.js | 15 - .../lcid/node_modules/invert-kv/package.json | 42 - .../lcid/node_modules/invert-kv/readme.md | 25 - .../os-locale/node_modules/lcid/package.json | 44 - .../os-locale/node_modules/lcid/readme.md | 35 - .../os-locale/node_modules/mem/index.js | 55 - .../os-locale/node_modules/mem/license | 21 - .../mem/node_modules/mimic-fn/index.js | 7 - .../node_modules/mem/node_modules/mimic-fn/license | 21 - .../mem/node_modules/mimic-fn/package.json | 43 - .../mem/node_modules/mimic-fn/readme.md | 66 - .../os-locale/node_modules/mem/package.json | 46 - .../os-locale/node_modules/mem/readme.md | 147 - .../yargs/node_modules/os-locale/package.json | 80 - .../yargs/node_modules/os-locale/readme.md | 53 - .../yargs/node_modules/read-pkg-up/index.js | 26 - .../yargs/node_modules/read-pkg-up/license | 21 - .../read-pkg-up/node_modules/find-up/index.js | 48 - .../read-pkg-up/node_modules/find-up/license | 21 - .../find-up/node_modules/locate-path/index.js | 24 - .../find-up/node_modules/locate-path/license | 21 - .../locate-path/node_modules/p-locate/index.js | 31 - .../locate-path/node_modules/p-locate/license | 21 - .../p-locate/node_modules/p-limit/index.js | 40 - .../p-locate/node_modules/p-limit/license | 21 - .../p-locate/node_modules/p-limit/package.json | 47 - .../p-locate/node_modules/p-limit/readme.md | 68 - .../locate-path/node_modules/p-locate/package.json | 48 - .../locate-path/node_modules/p-locate/readme.md | 86 - .../locate-path/node_modules/path-exists/index.js | 17 - .../locate-path/node_modules/path-exists/license | 21 - .../node_modules/path-exists/package.json | 43 - .../locate-path/node_modules/path-exists/readme.md | 50 - .../find-up/node_modules/locate-path/package.json | 46 - .../find-up/node_modules/locate-path/readme.md | 99 - .../read-pkg-up/node_modules/find-up/package.json | 46 - .../read-pkg-up/node_modules/find-up/readme.md | 85 - .../read-pkg-up/node_modules/read-pkg/index.js | 47 - .../read-pkg-up/node_modules/read-pkg/license | 21 - .../read-pkg/node_modules/load-json-file/index.js | 11 - .../read-pkg/node_modules/load-json-file/license | 21 - .../node_modules/parse-json/index.js | 35 - .../load-json-file/node_modules/parse-json/license | 21 - .../parse-json/node_modules/error-ex/LICENSE | 21 - .../parse-json/node_modules/error-ex/README.md | 144 - .../parse-json/node_modules/error-ex/index.js | 133 - .../node_modules/is-arrayish/.editorconfig | 18 - .../node_modules/is-arrayish/.istanbul.yml | 4 - .../error-ex/node_modules/is-arrayish/.npmignore | 5 - .../error-ex/node_modules/is-arrayish/.travis.yml | 17 - .../error-ex/node_modules/is-arrayish/LICENSE | 21 - .../error-ex/node_modules/is-arrayish/README.md | 16 - .../error-ex/node_modules/is-arrayish/index.js | 10 - .../error-ex/node_modules/is-arrayish/package.json | 44 - .../parse-json/node_modules/error-ex/package.json | 46 - .../node_modules/parse-json/package.json | 45 - .../node_modules/parse-json/readme.md | 83 - .../node_modules/parse-json/vendor/parse.js | 751 -- .../node_modules/parse-json/vendor/unicode.js | 71 - .../load-json-file/node_modules/pify/index.js | 68 - .../load-json-file/node_modules/pify/license | 21 - .../load-json-file/node_modules/pify/package.json | 45 - .../load-json-file/node_modules/pify/readme.md | 119 - .../load-json-file/node_modules/strip-bom/index.js | 14 - .../load-json-file/node_modules/strip-bom/license | 21 - .../node_modules/strip-bom/package.json | 43 - .../node_modules/strip-bom/readme.md | 36 - .../node_modules/load-json-file/package.json | 48 - .../read-pkg/node_modules/load-json-file/readme.md | 45 - .../read-pkg/node_modules/path-type/index.js | 26 - .../read-pkg/node_modules/path-type/license | 21 - .../path-type/node_modules/pify/index.js | 68 - .../path-type/node_modules/pify/license | 21 - .../path-type/node_modules/pify/package.json | 80 - .../path-type/node_modules/pify/readme.md | 119 - .../read-pkg/node_modules/path-type/package.json | 45 - .../read-pkg/node_modules/path-type/readme.md | 42 - .../read-pkg-up/node_modules/read-pkg/package.json | 49 - .../read-pkg-up/node_modules/read-pkg/readme.md | 79 - .../yargs/node_modules/read-pkg-up/package.json | 49 - .../yargs/node_modules/read-pkg-up/readme.md | 80 - .../node_modules/require-directory/.npmignore | 1 - .../node_modules/require-directory/.travis.yml | 3 - .../yargs/node_modules/require-directory/LICENSE | 22 - .../node_modules/require-directory/README.markdown | 183 - .../yargs/node_modules/require-directory/index.js | 86 - .../node_modules/require-directory/package.json | 43 - .../node_modules/require-main-filename/.npmignore | 3 - .../node_modules/require-main-filename/.travis.yml | 8 - .../node_modules/require-main-filename/LICENSE.txt | 14 - .../node_modules/require-main-filename/README.md | 26 - .../node_modules/require-main-filename/index.js | 18 - .../require-main-filename/package.json | 41 - .../node_modules/require-main-filename/test.js | 36 - .../yargs/node_modules/set-blocking/CHANGELOG.md | 26 - .../yargs/node_modules/set-blocking/LICENSE.txt | 14 - .../yargs/node_modules/set-blocking/README.md | 31 - .../yargs/node_modules/set-blocking/index.js | 7 - .../yargs/node_modules/set-blocking/package.json | 44 - .../yargs/node_modules/string-width/index.js | 36 - .../yargs/node_modules/string-width/license | 9 - .../node_modules/is-fullwidth-code-point/index.js | 46 - .../node_modules/is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 43 - .../node_modules/is-fullwidth-code-point/readme.md | 39 - .../yargs/node_modules/string-width/package.json | 87 - .../yargs/node_modules/string-width/readme.md | 42 - .../yargs/node_modules/which-module/CHANGELOG.md | 26 - .../yargs/node_modules/which-module/LICENSE | 13 - .../yargs/node_modules/which-module/README.md | 55 - .../yargs/node_modules/which-module/index.js | 9 - .../yargs/node_modules/which-module/package.json | 43 - .../yargs/node_modules/yargs-parser/CHANGELOG.md | 223 - .../yargs/node_modules/yargs-parser/LICENSE.txt | 14 - .../yargs/node_modules/yargs-parser/README.md | 281 - .../yargs/node_modules/yargs-parser/index.js | 764 -- .../yargs-parser/lib/tokenize-arg-string.js | 34 - .../yargs/node_modules/yargs-parser/package.json | 46 - .../libnpx/node_modules/yargs/package.json | 105 - .../libnpx/node_modules/yargs/yargs.js | 1127 -- deps/npm/node_modules/libnpx/package.json | 78 +- deps/npm/node_modules/libnpx/parse-args.js | 138 +- deps/npm/node_modules/locate-path/index.js | 24 + deps/npm/node_modules/locate-path/license | 21 + deps/npm/node_modules/locate-path/package.json | 79 + deps/npm/node_modules/locate-path/readme.md | 99 + deps/npm/node_modules/lock-verify/LICENSE | 13 + deps/npm/node_modules/lock-verify/README.md | 22 + deps/npm/node_modules/lock-verify/index.js | 73 + deps/npm/node_modules/lock-verify/package.json | 63 + deps/npm/node_modules/lockfile/.npmignore | 3 - deps/npm/node_modules/lockfile/.travis.yml | 15 +- deps/npm/node_modules/lockfile/CHANGELOG.md | 8 + deps/npm/node_modules/lockfile/lockfile.js | 15 +- deps/npm/node_modules/lockfile/package.json | 44 +- deps/npm/node_modules/lockfile/sockets.md | 27 + deps/npm/node_modules/lockfile/speedtest.js | 63 + deps/npm/node_modules/lockfile/test/retry-time.js | 1 - .../node_modules/lodash._baseindexof/package.json | 30 +- .../node_modules/lodash._createset/LICENSE | 47 - .../node_modules/lodash._createset/README.md | 18 - .../node_modules/lodash._createset/index.js | 280 - .../node_modules/lodash._createset/package.json | 70 - .../node_modules/lodash._root/LICENSE | 23 - .../node_modules/lodash._root/README.md | 18 - .../node_modules/lodash._root/index.js | 59 - .../node_modules/lodash._root/package.json | 70 - .../npm/node_modules/lodash._baseuniq/package.json | 29 +- .../node_modules/lodash._bindcallback/package.json | 30 +- .../node_modules/lodash._cacheindexof/package.json | 30 +- .../node_modules/lodash._createcache/package.json | 29 +- deps/npm/node_modules/lodash._createset/LICENSE | 47 + deps/npm/node_modules/lodash._createset/README.md | 18 + deps/npm/node_modules/lodash._createset/index.js | 280 + .../node_modules/lodash._createset/package.json | 65 + .../node_modules/lodash._getnative/package.json | 30 +- deps/npm/node_modules/lodash._root/LICENSE | 23 + deps/npm/node_modules/lodash._root/README.md | 18 + deps/npm/node_modules/lodash._root/index.js | 59 + deps/npm/node_modules/lodash._root/package.json | 65 + .../npm/node_modules/lodash.clonedeep/package.json | 30 +- .../npm/node_modules/lodash.restparam/package.json | 30 +- deps/npm/node_modules/lodash.union/package.json | 30 +- deps/npm/node_modules/lodash.uniq/package.json | 30 +- deps/npm/node_modules/lodash.without/package.json | 30 +- deps/npm/node_modules/lodash/LICENSE | 22 + deps/npm/node_modules/lodash/README.md | 121 + deps/npm/node_modules/lodash/array.js | 44 + deps/npm/node_modules/lodash/array/chunk.js | 46 + deps/npm/node_modules/lodash/array/compact.js | 30 + deps/npm/node_modules/lodash/array/difference.js | 29 + deps/npm/node_modules/lodash/array/drop.js | 39 + deps/npm/node_modules/lodash/array/dropRight.js | 40 + .../node_modules/lodash/array/dropRightWhile.js | 59 + deps/npm/node_modules/lodash/array/dropWhile.js | 59 + deps/npm/node_modules/lodash/array/fill.js | 44 + deps/npm/node_modules/lodash/array/findIndex.js | 53 + .../npm/node_modules/lodash/array/findLastIndex.js | 53 + deps/npm/node_modules/lodash/array/first.js | 22 + deps/npm/node_modules/lodash/array/flatten.js | 32 + deps/npm/node_modules/lodash/array/flattenDeep.js | 21 + deps/npm/node_modules/lodash/array/head.js | 1 + deps/npm/node_modules/lodash/array/indexOf.js | 53 + deps/npm/node_modules/lodash/array/initial.js | 20 + deps/npm/node_modules/lodash/array/intersection.js | 58 + deps/npm/node_modules/lodash/array/last.js | 19 + deps/npm/node_modules/lodash/array/lastIndexOf.js | 60 + deps/npm/node_modules/lodash/array/object.js | 1 + deps/npm/node_modules/lodash/array/pull.js | 52 + deps/npm/node_modules/lodash/array/pullAt.js | 40 + deps/npm/node_modules/lodash/array/remove.js | 64 + deps/npm/node_modules/lodash/array/rest.js | 21 + deps/npm/node_modules/lodash/array/slice.js | 30 + deps/npm/node_modules/lodash/array/sortedIndex.js | 53 + .../node_modules/lodash/array/sortedLastIndex.js | 25 + deps/npm/node_modules/lodash/array/tail.js | 1 + deps/npm/node_modules/lodash/array/take.js | 39 + deps/npm/node_modules/lodash/array/takeRight.js | 40 + .../node_modules/lodash/array/takeRightWhile.js | 59 + deps/npm/node_modules/lodash/array/takeWhile.js | 59 + deps/npm/node_modules/lodash/array/union.js | 24 + deps/npm/node_modules/lodash/array/uniq.js | 71 + deps/npm/node_modules/lodash/array/unique.js | 1 + deps/npm/node_modules/lodash/array/unzip.js | 47 + deps/npm/node_modules/lodash/array/unzipWith.js | 41 + deps/npm/node_modules/lodash/array/without.js | 27 + deps/npm/node_modules/lodash/array/xor.js | 35 + deps/npm/node_modules/lodash/array/zip.js | 21 + deps/npm/node_modules/lodash/array/zipObject.js | 43 + deps/npm/node_modules/lodash/array/zipWith.js | 36 + deps/npm/node_modules/lodash/chain.js | 16 + deps/npm/node_modules/lodash/chain/chain.js | 35 + deps/npm/node_modules/lodash/chain/commit.js | 1 + deps/npm/node_modules/lodash/chain/concat.js | 1 + deps/npm/node_modules/lodash/chain/lodash.js | 125 + deps/npm/node_modules/lodash/chain/plant.js | 1 + deps/npm/node_modules/lodash/chain/reverse.js | 1 + deps/npm/node_modules/lodash/chain/run.js | 1 + deps/npm/node_modules/lodash/chain/tap.js | 29 + deps/npm/node_modules/lodash/chain/thru.js | 26 + deps/npm/node_modules/lodash/chain/toJSON.js | 1 + deps/npm/node_modules/lodash/chain/toString.js | 1 + deps/npm/node_modules/lodash/chain/value.js | 1 + deps/npm/node_modules/lodash/chain/valueOf.js | 1 + deps/npm/node_modules/lodash/chain/wrapperChain.js | 32 + .../npm/node_modules/lodash/chain/wrapperCommit.js | 32 + .../npm/node_modules/lodash/chain/wrapperConcat.js | 34 + deps/npm/node_modules/lodash/chain/wrapperPlant.js | 45 + .../node_modules/lodash/chain/wrapperReverse.js | 43 + .../node_modules/lodash/chain/wrapperToString.js | 17 + deps/npm/node_modules/lodash/chain/wrapperValue.js | 20 + deps/npm/node_modules/lodash/collection.js | 44 + deps/npm/node_modules/lodash/collection/all.js | 1 + deps/npm/node_modules/lodash/collection/any.js | 1 + deps/npm/node_modules/lodash/collection/at.js | 29 + deps/npm/node_modules/lodash/collection/collect.js | 1 + .../npm/node_modules/lodash/collection/contains.js | 1 + deps/npm/node_modules/lodash/collection/countBy.js | 54 + deps/npm/node_modules/lodash/collection/detect.js | 1 + deps/npm/node_modules/lodash/collection/each.js | 1 + .../node_modules/lodash/collection/eachRight.js | 1 + deps/npm/node_modules/lodash/collection/every.js | 66 + deps/npm/node_modules/lodash/collection/filter.js | 61 + deps/npm/node_modules/lodash/collection/find.js | 56 + .../npm/node_modules/lodash/collection/findLast.js | 25 + .../node_modules/lodash/collection/findWhere.js | 37 + deps/npm/node_modules/lodash/collection/foldl.js | 1 + deps/npm/node_modules/lodash/collection/foldr.js | 1 + deps/npm/node_modules/lodash/collection/forEach.js | 37 + .../node_modules/lodash/collection/forEachRight.js | 26 + deps/npm/node_modules/lodash/collection/groupBy.js | 59 + deps/npm/node_modules/lodash/collection/include.js | 1 + .../npm/node_modules/lodash/collection/includes.js | 57 + deps/npm/node_modules/lodash/collection/indexBy.js | 53 + deps/npm/node_modules/lodash/collection/inject.js | 1 + deps/npm/node_modules/lodash/collection/invoke.js | 42 + deps/npm/node_modules/lodash/collection/map.js | 68 + deps/npm/node_modules/lodash/collection/max.js | 1 + deps/npm/node_modules/lodash/collection/min.js | 1 + .../node_modules/lodash/collection/partition.js | 66 + deps/npm/node_modules/lodash/collection/pluck.js | 31 + deps/npm/node_modules/lodash/collection/reduce.js | 44 + .../node_modules/lodash/collection/reduceRight.js | 29 + deps/npm/node_modules/lodash/collection/reject.js | 50 + deps/npm/node_modules/lodash/collection/sample.js | 50 + deps/npm/node_modules/lodash/collection/select.js | 1 + deps/npm/node_modules/lodash/collection/shuffle.js | 24 + deps/npm/node_modules/lodash/collection/size.js | 30 + deps/npm/node_modules/lodash/collection/some.js | 67 + deps/npm/node_modules/lodash/collection/sortBy.js | 71 + .../node_modules/lodash/collection/sortByAll.js | 52 + .../node_modules/lodash/collection/sortByOrder.js | 55 + deps/npm/node_modules/lodash/collection/sum.js | 1 + deps/npm/node_modules/lodash/collection/where.js | 37 + deps/npm/node_modules/lodash/date.js | 3 + deps/npm/node_modules/lodash/date/now.js | 24 + deps/npm/node_modules/lodash/function.js | 28 + deps/npm/node_modules/lodash/function/after.js | 48 + deps/npm/node_modules/lodash/function/ary.js | 34 + deps/npm/node_modules/lodash/function/backflow.js | 1 + deps/npm/node_modules/lodash/function/before.js | 42 + deps/npm/node_modules/lodash/function/bind.js | 56 + deps/npm/node_modules/lodash/function/bindAll.js | 50 + deps/npm/node_modules/lodash/function/bindKey.js | 66 + deps/npm/node_modules/lodash/function/compose.js | 1 + deps/npm/node_modules/lodash/function/curry.js | 51 + .../npm/node_modules/lodash/function/curryRight.js | 48 + deps/npm/node_modules/lodash/function/debounce.js | 181 + deps/npm/node_modules/lodash/function/defer.js | 25 + deps/npm/node_modules/lodash/function/delay.js | 26 + deps/npm/node_modules/lodash/function/flow.js | 25 + deps/npm/node_modules/lodash/function/flowRight.js | 25 + deps/npm/node_modules/lodash/function/memoize.js | 80 + deps/npm/node_modules/lodash/function/modArgs.js | 58 + deps/npm/node_modules/lodash/function/negate.js | 32 + deps/npm/node_modules/lodash/function/once.js | 24 + deps/npm/node_modules/lodash/function/partial.js | 43 + .../node_modules/lodash/function/partialRight.js | 42 + deps/npm/node_modules/lodash/function/rearg.js | 40 + deps/npm/node_modules/lodash/function/restParam.js | 58 + deps/npm/node_modules/lodash/function/spread.js | 44 + deps/npm/node_modules/lodash/function/throttle.js | 62 + deps/npm/node_modules/lodash/function/wrap.js | 33 + deps/npm/node_modules/lodash/index.js | 12351 +++++++++++++++++++ .../node_modules/lodash/internal/LazyWrapper.js | 26 + .../node_modules/lodash/internal/LodashWrapper.js | 21 + deps/npm/node_modules/lodash/internal/MapCache.js | 24 + deps/npm/node_modules/lodash/internal/SetCache.js | 29 + .../node_modules/lodash/internal/arrayConcat.js | 25 + deps/npm/node_modules/lodash/internal/arrayCopy.js | 20 + deps/npm/node_modules/lodash/internal/arrayEach.js | 22 + .../node_modules/lodash/internal/arrayEachRight.js | 21 + .../npm/node_modules/lodash/internal/arrayEvery.js | 23 + .../node_modules/lodash/internal/arrayExtremum.js | 30 + .../node_modules/lodash/internal/arrayFilter.js | 25 + deps/npm/node_modules/lodash/internal/arrayMap.js | 21 + deps/npm/node_modules/lodash/internal/arrayPush.js | 20 + .../node_modules/lodash/internal/arrayReduce.js | 26 + .../lodash/internal/arrayReduceRight.js | 24 + deps/npm/node_modules/lodash/internal/arraySome.js | 23 + deps/npm/node_modules/lodash/internal/arraySum.js | 20 + .../node_modules/lodash/internal/assignDefaults.js | 13 + .../lodash/internal/assignOwnDefaults.js | 26 + .../npm/node_modules/lodash/internal/assignWith.js | 32 + .../npm/node_modules/lodash/internal/baseAssign.js | 19 + deps/npm/node_modules/lodash/internal/baseAt.js | 32 + .../node_modules/lodash/internal/baseCallback.js | 35 + deps/npm/node_modules/lodash/internal/baseClone.js | 128 + .../lodash/internal/baseCompareAscending.js | 34 + deps/npm/node_modules/lodash/internal/baseCopy.js | 23 + .../npm/node_modules/lodash/internal/baseCreate.js | 23 + deps/npm/node_modules/lodash/internal/baseDelay.js | 21 + .../node_modules/lodash/internal/baseDifference.js | 55 + deps/npm/node_modules/lodash/internal/baseEach.js | 15 + .../node_modules/lodash/internal/baseEachRight.js | 15 + deps/npm/node_modules/lodash/internal/baseEvery.js | 22 + .../node_modules/lodash/internal/baseExtremum.js | 29 + deps/npm/node_modules/lodash/internal/baseFill.js | 31 + .../npm/node_modules/lodash/internal/baseFilter.js | 22 + deps/npm/node_modules/lodash/internal/baseFind.js | 25 + .../node_modules/lodash/internal/baseFindIndex.js | 23 + .../node_modules/lodash/internal/baseFlatten.js | 41 + deps/npm/node_modules/lodash/internal/baseFor.js | 17 + deps/npm/node_modules/lodash/internal/baseForIn.js | 17 + .../npm/node_modules/lodash/internal/baseForOwn.js | 17 + .../lodash/internal/baseForOwnRight.js | 17 + .../node_modules/lodash/internal/baseForRight.js | 15 + .../node_modules/lodash/internal/baseFunctions.js | 27 + deps/npm/node_modules/lodash/internal/baseGet.js | 29 + .../node_modules/lodash/internal/baseIndexOf.js | 27 + .../node_modules/lodash/internal/baseIsEqual.js | 28 + .../lodash/internal/baseIsEqualDeep.js | 102 + .../node_modules/lodash/internal/baseIsFunction.js | 15 + .../node_modules/lodash/internal/baseIsMatch.js | 52 + .../npm/node_modules/lodash/internal/baseLodash.js | 10 + deps/npm/node_modules/lodash/internal/baseMap.js | 23 + .../node_modules/lodash/internal/baseMatches.js | 30 + .../lodash/internal/baseMatchesProperty.js | 45 + deps/npm/node_modules/lodash/internal/baseMerge.js | 56 + .../node_modules/lodash/internal/baseMergeDeep.js | 67 + .../node_modules/lodash/internal/baseProperty.js | 14 + .../lodash/internal/basePropertyDeep.js | 19 + .../npm/node_modules/lodash/internal/basePullAt.js | 30 + .../npm/node_modules/lodash/internal/baseRandom.js | 18 + .../npm/node_modules/lodash/internal/baseReduce.js | 24 + .../node_modules/lodash/internal/baseSetData.js | 17 + deps/npm/node_modules/lodash/internal/baseSlice.js | 32 + deps/npm/node_modules/lodash/internal/baseSome.js | 23 + .../npm/node_modules/lodash/internal/baseSortBy.js | 21 + .../lodash/internal/baseSortByOrder.js | 31 + deps/npm/node_modules/lodash/internal/baseSum.js | 20 + .../node_modules/lodash/internal/baseToString.js | 13 + deps/npm/node_modules/lodash/internal/baseUniq.js | 60 + .../npm/node_modules/lodash/internal/baseValues.js | 22 + deps/npm/node_modules/lodash/internal/baseWhile.js | 24 + .../lodash/internal/baseWrapperValue.js | 29 + .../node_modules/lodash/internal/binaryIndex.js | 39 + .../node_modules/lodash/internal/binaryIndexBy.js | 57 + .../node_modules/lodash/internal/bindCallback.js | 39 + .../node_modules/lodash/internal/bufferClone.js | 20 + .../node_modules/lodash/internal/cacheIndexOf.js | 19 + deps/npm/node_modules/lodash/internal/cachePush.js | 20 + .../node_modules/lodash/internal/charsLeftIndex.js | 18 + .../lodash/internal/charsRightIndex.js | 17 + .../lodash/internal/compareAscending.js | 16 + .../lodash/internal/compareMultiple.js | 44 + .../node_modules/lodash/internal/composeArgs.js | 34 + .../lodash/internal/composeArgsRight.js | 36 + .../lodash/internal/createAggregator.js | 35 + .../node_modules/lodash/internal/createAssigner.js | 41 + .../node_modules/lodash/internal/createBaseEach.js | 31 + .../node_modules/lodash/internal/createBaseFor.js | 27 + .../lodash/internal/createBindWrapper.js | 22 + .../node_modules/lodash/internal/createCache.js | 21 + .../lodash/internal/createCompounder.js | 26 + .../lodash/internal/createCtorWrapper.js | 37 + .../node_modules/lodash/internal/createCurry.js | 23 + .../node_modules/lodash/internal/createDefaults.js | 22 + .../node_modules/lodash/internal/createExtremum.js | 33 + .../npm/node_modules/lodash/internal/createFind.js | 25 + .../lodash/internal/createFindIndex.js | 21 + .../node_modules/lodash/internal/createFindKey.js | 18 + .../npm/node_modules/lodash/internal/createFlow.js | 74 + .../node_modules/lodash/internal/createForEach.js | 20 + .../node_modules/lodash/internal/createForIn.js | 20 + .../node_modules/lodash/internal/createForOwn.js | 19 + .../lodash/internal/createHybridWrapper.js | 111 + .../lodash/internal/createObjectMapper.js | 26 + .../node_modules/lodash/internal/createPadDir.js | 18 + .../node_modules/lodash/internal/createPadding.js | 29 + .../node_modules/lodash/internal/createPartial.js | 20 + .../lodash/internal/createPartialWrapper.js | 43 + .../node_modules/lodash/internal/createReduce.js | 22 + .../node_modules/lodash/internal/createRound.js | 23 + .../lodash/internal/createSortedIndex.js | 20 + .../node_modules/lodash/internal/createWrapper.js | 86 + .../node_modules/lodash/internal/deburrLetter.js | 33 + .../node_modules/lodash/internal/equalArrays.js | 51 + .../npm/node_modules/lodash/internal/equalByTag.js | 48 + .../node_modules/lodash/internal/equalObjects.js | 67 + .../node_modules/lodash/internal/escapeHtmlChar.js | 22 + .../lodash/internal/escapeRegExpChar.js | 38 + .../lodash/internal/escapeStringChar.js | 22 + deps/npm/node_modules/lodash/internal/getData.js | 15 + .../node_modules/lodash/internal/getFuncName.js | 25 + deps/npm/node_modules/lodash/internal/getLength.js | 15 + .../node_modules/lodash/internal/getMatchData.js | 21 + deps/npm/node_modules/lodash/internal/getNative.js | 16 + deps/npm/node_modules/lodash/internal/getView.js | 33 + .../npm/node_modules/lodash/internal/indexOfNaN.js | 23 + .../node_modules/lodash/internal/initCloneArray.js | 26 + .../node_modules/lodash/internal/initCloneByTag.js | 63 + .../lodash/internal/initCloneObject.js | 16 + .../npm/node_modules/lodash/internal/invokePath.js | 26 + .../node_modules/lodash/internal/isArrayLike.js | 15 + deps/npm/node_modules/lodash/internal/isIndex.js | 24 + .../node_modules/lodash/internal/isIterateeCall.js | 28 + deps/npm/node_modules/lodash/internal/isKey.js | 28 + .../npm/node_modules/lodash/internal/isLaziable.js | 27 + deps/npm/node_modules/lodash/internal/isLength.js | 20 + .../node_modules/lodash/internal/isObjectLike.js | 12 + deps/npm/node_modules/lodash/internal/isSpace.js | 14 + .../lodash/internal/isStrictComparable.js | 15 + deps/npm/node_modules/lodash/internal/lazyClone.js | 23 + .../node_modules/lodash/internal/lazyReverse.js | 23 + deps/npm/node_modules/lodash/internal/lazyValue.js | 72 + deps/npm/node_modules/lodash/internal/mapDelete.js | 14 + deps/npm/node_modules/lodash/internal/mapGet.js | 14 + deps/npm/node_modules/lodash/internal/mapHas.js | 20 + deps/npm/node_modules/lodash/internal/mapSet.js | 18 + deps/npm/node_modules/lodash/internal/mergeData.js | 89 + .../node_modules/lodash/internal/mergeDefaults.js | 15 + deps/npm/node_modules/lodash/internal/metaMap.js | 9 + .../node_modules/lodash/internal/pickByArray.js | 28 + .../node_modules/lodash/internal/pickByCallback.js | 22 + deps/npm/node_modules/lodash/internal/reEscape.js | 4 + .../npm/node_modules/lodash/internal/reEvaluate.js | 4 + .../node_modules/lodash/internal/reInterpolate.js | 4 + deps/npm/node_modules/lodash/internal/realNames.js | 4 + deps/npm/node_modules/lodash/internal/reorder.js | 29 + .../node_modules/lodash/internal/replaceHolders.js | 28 + deps/npm/node_modules/lodash/internal/setData.js | 41 + deps/npm/node_modules/lodash/internal/shimKeys.js | 41 + .../npm/node_modules/lodash/internal/sortedUniq.js | 29 + .../npm/node_modules/lodash/internal/toIterable.js | 22 + deps/npm/node_modules/lodash/internal/toObject.js | 14 + deps/npm/node_modules/lodash/internal/toPath.js | 28 + .../lodash/internal/trimmedLeftIndex.js | 19 + .../lodash/internal/trimmedRightIndex.js | 18 + .../lodash/internal/unescapeHtmlChar.js | 22 + .../node_modules/lodash/internal/wrapperClone.js | 18 + deps/npm/node_modules/lodash/lang.js | 32 + deps/npm/node_modules/lodash/lang/clone.js | 70 + deps/npm/node_modules/lodash/lang/cloneDeep.js | 55 + deps/npm/node_modules/lodash/lang/eq.js | 1 + deps/npm/node_modules/lodash/lang/gt.js | 25 + deps/npm/node_modules/lodash/lang/gte.js | 25 + deps/npm/node_modules/lodash/lang/isArguments.js | 34 + deps/npm/node_modules/lodash/lang/isArray.js | 40 + deps/npm/node_modules/lodash/lang/isBoolean.js | 35 + deps/npm/node_modules/lodash/lang/isDate.js | 35 + deps/npm/node_modules/lodash/lang/isElement.js | 24 + deps/npm/node_modules/lodash/lang/isEmpty.js | 47 + deps/npm/node_modules/lodash/lang/isEqual.js | 54 + deps/npm/node_modules/lodash/lang/isError.js | 36 + deps/npm/node_modules/lodash/lang/isFinite.js | 35 + deps/npm/node_modules/lodash/lang/isFunction.js | 38 + deps/npm/node_modules/lodash/lang/isMatch.js | 49 + deps/npm/node_modules/lodash/lang/isNaN.js | 34 + deps/npm/node_modules/lodash/lang/isNative.js | 48 + deps/npm/node_modules/lodash/lang/isNull.js | 21 + deps/npm/node_modules/lodash/lang/isNumber.js | 41 + deps/npm/node_modules/lodash/lang/isObject.js | 28 + deps/npm/node_modules/lodash/lang/isPlainObject.js | 71 + deps/npm/node_modules/lodash/lang/isRegExp.js | 35 + deps/npm/node_modules/lodash/lang/isString.js | 35 + deps/npm/node_modules/lodash/lang/isTypedArray.js | 74 + deps/npm/node_modules/lodash/lang/isUndefined.js | 21 + deps/npm/node_modules/lodash/lang/lt.js | 25 + deps/npm/node_modules/lodash/lang/lte.js | 25 + deps/npm/node_modules/lodash/lang/toArray.js | 32 + deps/npm/node_modules/lodash/lang/toPlainObject.js | 31 + deps/npm/node_modules/lodash/math.js | 9 + deps/npm/node_modules/lodash/math/add.js | 19 + deps/npm/node_modules/lodash/math/ceil.js | 25 + deps/npm/node_modules/lodash/math/floor.js | 25 + deps/npm/node_modules/lodash/math/max.js | 56 + deps/npm/node_modules/lodash/math/min.js | 56 + deps/npm/node_modules/lodash/math/round.js | 25 + deps/npm/node_modules/lodash/math/sum.js | 50 + deps/npm/node_modules/lodash/number.js | 4 + deps/npm/node_modules/lodash/number/inRange.js | 47 + deps/npm/node_modules/lodash/number/random.js | 70 + deps/npm/node_modules/lodash/object.js | 31 + deps/npm/node_modules/lodash/object/assign.js | 43 + deps/npm/node_modules/lodash/object/create.js | 47 + deps/npm/node_modules/lodash/object/defaults.js | 25 + .../npm/node_modules/lodash/object/defaultsDeep.js | 25 + deps/npm/node_modules/lodash/object/extend.js | 1 + deps/npm/node_modules/lodash/object/findKey.js | 54 + deps/npm/node_modules/lodash/object/findLastKey.js | 54 + deps/npm/node_modules/lodash/object/forIn.js | 33 + deps/npm/node_modules/lodash/object/forInRight.js | 31 + deps/npm/node_modules/lodash/object/forOwn.js | 33 + deps/npm/node_modules/lodash/object/forOwnRight.js | 31 + deps/npm/node_modules/lodash/object/functions.js | 23 + deps/npm/node_modules/lodash/object/get.js | 33 + deps/npm/node_modules/lodash/object/has.js | 57 + deps/npm/node_modules/lodash/object/invert.js | 60 + deps/npm/node_modules/lodash/object/keys.js | 45 + deps/npm/node_modules/lodash/object/keysIn.js | 64 + deps/npm/node_modules/lodash/object/mapKeys.js | 25 + deps/npm/node_modules/lodash/object/mapValues.js | 46 + deps/npm/node_modules/lodash/object/merge.js | 54 + deps/npm/node_modules/lodash/object/methods.js | 1 + deps/npm/node_modules/lodash/object/omit.js | 47 + deps/npm/node_modules/lodash/object/pairs.js | 33 + deps/npm/node_modules/lodash/object/pick.js | 42 + deps/npm/node_modules/lodash/object/result.js | 49 + deps/npm/node_modules/lodash/object/set.js | 55 + deps/npm/node_modules/lodash/object/transform.js | 61 + deps/npm/node_modules/lodash/object/values.js | 33 + deps/npm/node_modules/lodash/object/valuesIn.js | 31 + deps/npm/node_modules/lodash/package.json | 81 + deps/npm/node_modules/lodash/string.js | 25 + deps/npm/node_modules/lodash/string/camelCase.js | 27 + deps/npm/node_modules/lodash/string/capitalize.js | 21 + deps/npm/node_modules/lodash/string/deburr.js | 29 + deps/npm/node_modules/lodash/string/endsWith.js | 40 + deps/npm/node_modules/lodash/string/escape.js | 48 + .../npm/node_modules/lodash/string/escapeRegExp.js | 32 + deps/npm/node_modules/lodash/string/kebabCase.js | 26 + deps/npm/node_modules/lodash/string/pad.js | 47 + deps/npm/node_modules/lodash/string/padLeft.js | 27 + deps/npm/node_modules/lodash/string/padRight.js | 27 + deps/npm/node_modules/lodash/string/parseInt.js | 46 + deps/npm/node_modules/lodash/string/repeat.js | 47 + deps/npm/node_modules/lodash/string/snakeCase.js | 26 + deps/npm/node_modules/lodash/string/startCase.js | 26 + deps/npm/node_modules/lodash/string/startsWith.js | 36 + deps/npm/node_modules/lodash/string/template.js | 226 + .../node_modules/lodash/string/templateSettings.js | 67 + deps/npm/node_modules/lodash/string/trim.js | 42 + deps/npm/node_modules/lodash/string/trimLeft.js | 36 + deps/npm/node_modules/lodash/string/trimRight.js | 36 + deps/npm/node_modules/lodash/string/trunc.js | 105 + deps/npm/node_modules/lodash/string/unescape.js | 33 + deps/npm/node_modules/lodash/string/words.js | 38 + deps/npm/node_modules/lodash/support.js | 10 + deps/npm/node_modules/lodash/utility.js | 18 + deps/npm/node_modules/lodash/utility/attempt.js | 32 + deps/npm/node_modules/lodash/utility/callback.js | 53 + deps/npm/node_modules/lodash/utility/constant.js | 23 + deps/npm/node_modules/lodash/utility/identity.js | 20 + deps/npm/node_modules/lodash/utility/iteratee.js | 1 + deps/npm/node_modules/lodash/utility/matches.js | 33 + .../node_modules/lodash/utility/matchesProperty.js | 32 + deps/npm/node_modules/lodash/utility/method.js | 33 + deps/npm/node_modules/lodash/utility/methodOf.js | 32 + deps/npm/node_modules/lodash/utility/mixin.js | 82 + deps/npm/node_modules/lodash/utility/noop.js | 19 + deps/npm/node_modules/lodash/utility/property.js | 31 + deps/npm/node_modules/lodash/utility/propertyOf.js | 30 + deps/npm/node_modules/lodash/utility/range.js | 66 + deps/npm/node_modules/lodash/utility/times.js | 60 + deps/npm/node_modules/lodash/utility/uniqueId.js | 27 + deps/npm/node_modules/lowercase-keys/index.js | 11 + deps/npm/node_modules/lowercase-keys/license | 21 + deps/npm/node_modules/lowercase-keys/package.json | 67 + deps/npm/node_modules/lowercase-keys/readme.md | 33 + deps/npm/node_modules/lru-cache/README.md | 8 +- deps/npm/node_modules/lru-cache/index.js | 2 +- .../lru-cache/node_modules/pseudomap/LICENSE | 15 - .../lru-cache/node_modules/pseudomap/README.md | 60 - .../lru-cache/node_modules/pseudomap/map.js | 9 - .../lru-cache/node_modules/pseudomap/package.json | 58 - .../lru-cache/node_modules/pseudomap/pseudomap.js | 113 - .../lru-cache/node_modules/pseudomap/test/basic.js | 86 - .../lru-cache/node_modules/yallist/LICENSE | 15 - .../lru-cache/node_modules/yallist/README.md | 204 - .../lru-cache/node_modules/yallist/iterator.js | 7 - .../lru-cache/node_modules/yallist/package.json | 65 - .../lru-cache/node_modules/yallist/yallist.js | 370 - deps/npm/node_modules/lru-cache/package.json | 45 +- deps/npm/node_modules/make-dir/index.js | 85 + deps/npm/node_modules/make-dir/license | 9 + deps/npm/node_modules/make-dir/package.json | 86 + deps/npm/node_modules/make-dir/readme.md | 116 + .../node_modules/make-fetch-happen/CHANGELOG.md | 550 + deps/npm/node_modules/make-fetch-happen/LICENSE | 16 + deps/npm/node_modules/make-fetch-happen/README.md | 404 + deps/npm/node_modules/make-fetch-happen/agent.js | 171 + deps/npm/node_modules/make-fetch-happen/cache.js | 249 + deps/npm/node_modules/make-fetch-happen/index.js | 482 + .../node_modules/make-fetch-happen/package.json | 95 + deps/npm/node_modules/make-fetch-happen/warning.js | 24 + deps/npm/node_modules/meant/package.json | 12 +- deps/npm/node_modules/mem/index.js | 55 + deps/npm/node_modules/mem/license | 21 + deps/npm/node_modules/mem/package.json | 77 + deps/npm/node_modules/mem/readme.md | 147 + deps/npm/node_modules/mime-db/HISTORY.md | 368 + deps/npm/node_modules/mime-db/LICENSE | 22 + deps/npm/node_modules/mime-db/README.md | 94 + deps/npm/node_modules/mime-db/db.json | 7088 +++++++++++ deps/npm/node_modules/mime-db/index.js | 11 + deps/npm/node_modules/mime-db/package.json | 100 + deps/npm/node_modules/mime-types/HISTORY.md | 260 + deps/npm/node_modules/mime-types/LICENSE | 23 + deps/npm/node_modules/mime-types/README.md | 108 + deps/npm/node_modules/mime-types/index.js | 188 + deps/npm/node_modules/mime-types/package.json | 87 + deps/npm/node_modules/mimic-fn/index.js | 9 + deps/npm/node_modules/mimic-fn/license | 9 + deps/npm/node_modules/mimic-fn/package.json | 73 + deps/npm/node_modules/mimic-fn/readme.md | 68 + deps/npm/node_modules/minimatch/LICENSE | 15 + deps/npm/node_modules/minimatch/README.md | 209 + deps/npm/node_modules/minimatch/minimatch.js | 923 ++ deps/npm/node_modules/minimatch/package.json | 69 + deps/npm/node_modules/minimist/.travis.yml | 4 + deps/npm/node_modules/minimist/LICENSE | 18 + deps/npm/node_modules/minimist/example/parse.js | 2 + deps/npm/node_modules/minimist/index.js | 187 + deps/npm/node_modules/minimist/package.json | 71 + deps/npm/node_modules/minimist/readme.markdown | 73 + deps/npm/node_modules/minimist/test/dash.js | 24 + .../npm/node_modules/minimist/test/default_bool.js | 20 + deps/npm/node_modules/minimist/test/dotted.js | 16 + deps/npm/node_modules/minimist/test/long.js | 31 + deps/npm/node_modules/minimist/test/parse.js | 318 + .../node_modules/minimist/test/parse_modified.js | 9 + deps/npm/node_modules/minimist/test/short.js | 67 + deps/npm/node_modules/minimist/test/whitespace.js | 8 + deps/npm/node_modules/minipass/README.md | 124 + deps/npm/node_modules/minipass/index.js | 379 + .../minipass/node_modules/yallist/LICENSE | 15 + .../minipass/node_modules/yallist/README.md | 204 + .../minipass/node_modules/yallist/iterator.js | 8 + .../minipass/node_modules/yallist/package.json | 62 + .../minipass/node_modules/yallist/yallist.js | 376 + deps/npm/node_modules/minipass/package.json | 72 + deps/npm/node_modules/minizlib/LICENSE | 26 + deps/npm/node_modules/minizlib/README.md | 44 + deps/npm/node_modules/minizlib/constants.js | 46 + deps/npm/node_modules/minizlib/index.js | 364 + deps/npm/node_modules/minizlib/package.json | 71 + deps/npm/node_modules/mississippi/.npmignore | 1 - deps/npm/node_modules/mississippi/changelog.md | 10 + deps/npm/node_modules/mississippi/index.js | 1 + deps/npm/node_modules/mississippi/license | 7 + .../mississippi/node_modules/concat-stream/LICENSE | 24 - .../node_modules/concat-stream/index.js | 143 - .../node_modules/typedarray/.travis.yml | 4 - .../concat-stream/node_modules/typedarray/LICENSE | 35 - .../node_modules/typedarray/example/tarray.js | 4 - .../concat-stream/node_modules/typedarray/index.js | 630 - .../node_modules/typedarray/package.json | 87 - .../node_modules/typedarray/readme.markdown | 61 - .../typedarray/test/server/undef_globals.js | 19 - .../node_modules/typedarray/test/tarray.js | 10 - .../node_modules/concat-stream/package.json | 86 - .../node_modules/concat-stream/readme.md | 102 - .../mississippi/node_modules/duplexify/.npmignore | 1 - .../mississippi/node_modules/duplexify/.travis.yml | 6 - .../mississippi/node_modules/duplexify/LICENSE | 21 - .../mississippi/node_modules/duplexify/README.md | 97 - .../mississippi/node_modules/duplexify/example.js | 21 - .../mississippi/node_modules/duplexify/index.js | 228 - .../node_modules/end-of-stream/.npmignore | 1 - .../duplexify/node_modules/end-of-stream/README.md | 47 - .../duplexify/node_modules/end-of-stream/index.js | 72 - .../end-of-stream/node_modules/once/LICENSE | 15 - .../end-of-stream/node_modules/once/README.md | 51 - .../end-of-stream/node_modules/once/once.js | 21 - .../end-of-stream/node_modules/once/package.json | 69 - .../node_modules/end-of-stream/package.json | 65 - .../duplexify/node_modules/end-of-stream/test.js | 62 - .../duplexify/node_modules/stream-shift/.npmignore | 1 - .../node_modules/stream-shift/.travis.yml | 6 - .../duplexify/node_modules/stream-shift/LICENSE | 21 - .../duplexify/node_modules/stream-shift/README.md | 25 - .../duplexify/node_modules/stream-shift/index.js | 20 - .../node_modules/stream-shift/package.json | 56 - .../duplexify/node_modules/stream-shift/test.js | 48 - .../node_modules/duplexify/package.json | 72 - .../mississippi/node_modules/duplexify/test.js | 292 - .../mississippi/node_modules/end-of-stream/LICENSE | 21 - .../node_modules/end-of-stream/README.md | 52 - .../node_modules/end-of-stream/index.js | 83 - .../node_modules/end-of-stream/package.json | 68 - .../node_modules/flush-write-stream/.npmignore | 3 - .../node_modules/flush-write-stream/.travis.yml | 6 - .../node_modules/flush-write-stream/LICENSE | 21 - .../node_modules/flush-write-stream/README.md | 59 - .../node_modules/flush-write-stream/example.js | 22 - .../node_modules/flush-write-stream/index.js | 52 - .../node_modules/flush-write-stream/package.json | 57 - .../node_modules/flush-write-stream/test.js | 85 - .../mississippi/node_modules/from2/.travis.yml | 8 - .../mississippi/node_modules/from2/LICENSE.md | 21 - .../mississippi/node_modules/from2/README.md | 70 - .../mississippi/node_modules/from2/index.js | 103 - .../mississippi/node_modules/from2/package.json | 72 - .../mississippi/node_modules/from2/test.js | 121 - .../node_modules/parallel-transform/.npmignore | 1 - .../node_modules/parallel-transform/LICENSE | 20 - .../node_modules/parallel-transform/README.md | 54 - .../node_modules/parallel-transform/index.js | 105 - .../node_modules/cyclist/.npmignore | 1 - .../node_modules/cyclist/README.md | 39 - .../node_modules/cyclist/index.js | 33 - .../node_modules/cyclist/package.json | 54 - .../node_modules/parallel-transform/package.json | 59 - .../mississippi/node_modules/pump/.npmignore | 1 - .../mississippi/node_modules/pump/.travis.yml | 5 - .../mississippi/node_modules/pump/LICENSE | 21 - .../mississippi/node_modules/pump/README.md | 56 - .../mississippi/node_modules/pump/index.js | 80 - .../mississippi/node_modules/pump/package.json | 64 - .../mississippi/node_modules/pump/test-browser.js | 58 - .../mississippi/node_modules/pump/test.js | 46 - .../mississippi/node_modules/pumpify/.npmignore | 1 - .../mississippi/node_modules/pumpify/.travis.yml | 8 - .../mississippi/node_modules/pumpify/LICENSE | 21 - .../mississippi/node_modules/pumpify/README.md | 56 - .../mississippi/node_modules/pumpify/index.js | 55 - .../mississippi/node_modules/pumpify/package.json | 67 - .../mississippi/node_modules/pumpify/test.js | 163 - .../node_modules/stream-each/.npmignore | 1 - .../node_modules/stream-each/.travis.yml | 5 - .../mississippi/node_modules/stream-each/LICENSE | 21 - .../mississippi/node_modules/stream-each/README.md | 41 - .../node_modules/stream-each/collaborators.md | 7 - .../mississippi/node_modules/stream-each/index.js | 54 - .../node_modules/stream-shift/.npmignore | 1 - .../node_modules/stream-shift/.travis.yml | 6 - .../stream-each/node_modules/stream-shift/LICENSE | 21 - .../node_modules/stream-shift/README.md | 25 - .../stream-each/node_modules/stream-shift/index.js | 20 - .../node_modules/stream-shift/package.json | 56 - .../stream-each/node_modules/stream-shift/test.js | 48 - .../node_modules/stream-each/package.json | 59 - .../mississippi/node_modules/stream-each/test.js | 82 - .../mississippi/node_modules/through2/.npmignore | 3 - .../mississippi/node_modules/through2/LICENSE.html | 336 - .../mississippi/node_modules/through2/LICENSE.md | 9 - .../mississippi/node_modules/through2/README.md | 136 - .../through2/node_modules/xtend/.npmignore | 1 - .../through2/node_modules/xtend/LICENCE | 19 - .../through2/node_modules/xtend/Makefile | 4 - .../through2/node_modules/xtend/README.md | 32 - .../through2/node_modules/xtend/immutable.js | 19 - .../through2/node_modules/xtend/mutable.js | 17 - .../through2/node_modules/xtend/package.json | 89 - .../through2/node_modules/xtend/test.js | 83 - .../mississippi/node_modules/through2/package.json | 68 - .../mississippi/node_modules/through2/through2.js | 96 - deps/npm/node_modules/mississippi/package.json | 53 +- deps/npm/node_modules/mississippi/readme.md | 43 +- .../mkdirp/node_modules/minimist/.travis.yml | 4 - .../mkdirp/node_modules/minimist/LICENSE | 18 - .../mkdirp/node_modules/minimist/example/parse.js | 2 - .../mkdirp/node_modules/minimist/index.js | 187 - .../mkdirp/node_modules/minimist/package.json | 75 - .../mkdirp/node_modules/minimist/readme.markdown | 73 - .../mkdirp/node_modules/minimist/test/dash.js | 24 - .../node_modules/minimist/test/default_bool.js | 20 - .../mkdirp/node_modules/minimist/test/dotted.js | 16 - .../mkdirp/node_modules/minimist/test/long.js | 31 - .../mkdirp/node_modules/minimist/test/parse.js | 318 - .../node_modules/minimist/test/parse_modified.js | 9 - .../mkdirp/node_modules/minimist/test/short.js | 67 - .../node_modules/minimist/test/whitespace.js | 8 - deps/npm/node_modules/mkdirp/package.json | 41 +- .../node_modules/copy-concurrently/LICENSE | 13 - .../node_modules/copy-concurrently/README.md | 128 - .../node_modules/copy-concurrently/copy.js | 225 - .../node_modules/copy-concurrently/is-windows.js | 2 - .../node_modules/copy-concurrently/package.json | 72 - .../node_modules/run-queue/README.md | 86 - .../node_modules/run-queue/package.json | 66 - .../node_modules/run-queue/queue.js | 95 - .../node_modules/move-concurrently/package.json | 34 +- deps/npm/node_modules/ms/index.js | 162 + deps/npm/node_modules/ms/license.md | 21 + deps/npm/node_modules/ms/package.json | 69 + deps/npm/node_modules/ms/readme.md | 60 + deps/npm/node_modules/mute-stream/.travis.yml | 9 + deps/npm/node_modules/mute-stream/LICENSE | 15 + deps/npm/node_modules/mute-stream/README.md | 68 + deps/npm/node_modules/mute-stream/mute.js | 145 + deps/npm/node_modules/mute-stream/package.json | 60 + deps/npm/node_modules/mute-stream/test/basic.js | 207 + deps/npm/node_modules/node-fetch-npm/CHANGELOG.md | 252 + deps/npm/node_modules/node-fetch-npm/LICENSE.md | 21 + deps/npm/node_modules/node-fetch-npm/README.md | 398 + deps/npm/node_modules/node-fetch-npm/package.json | 102 + deps/npm/node_modules/node-fetch-npm/src/blob.js | 109 + deps/npm/node_modules/node-fetch-npm/src/body.js | 411 + deps/npm/node_modules/node-fetch-npm/src/common.js | 92 + .../node_modules/node-fetch-npm/src/fetch-error.js | 35 + .../npm/node_modules/node-fetch-npm/src/headers.js | 296 + deps/npm/node_modules/node-fetch-npm/src/index.js | 214 + .../npm/node_modules/node-fetch-npm/src/request.js | 174 + .../node_modules/node-fetch-npm/src/response.js | 71 + deps/npm/node_modules/node-gyp/.jshintrc | 7 - .../node-gyp/node_modules/fstream/.npmignore | 5 - .../node-gyp/node_modules/fstream/.travis.yml | 9 - .../node-gyp/node_modules/fstream/LICENSE | 15 - .../node-gyp/node_modules/fstream/README.md | 76 - .../node_modules/fstream/examples/filter-pipe.js | 134 - .../node-gyp/node_modules/fstream/examples/pipe.js | 118 - .../node_modules/fstream/examples/reader.js | 68 - .../node_modules/fstream/examples/symlink-write.js | 27 - .../node-gyp/node_modules/fstream/fstream.js | 35 - .../node-gyp/node_modules/fstream/lib/abstract.js | 85 - .../node-gyp/node_modules/fstream/lib/collect.js | 70 - .../node_modules/fstream/lib/dir-reader.js | 252 - .../node_modules/fstream/lib/dir-writer.js | 174 - .../node_modules/fstream/lib/file-reader.js | 150 - .../node_modules/fstream/lib/file-writer.js | 107 - .../node-gyp/node_modules/fstream/lib/get-type.js | 33 - .../node_modules/fstream/lib/link-reader.js | 53 - .../node_modules/fstream/lib/link-writer.js | 95 - .../node_modules/fstream/lib/proxy-reader.js | 95 - .../node_modules/fstream/lib/proxy-writer.js | 111 - .../node-gyp/node_modules/fstream/lib/reader.js | 255 - .../node_modules/fstream/lib/socket-reader.js | 36 - .../node-gyp/node_modules/fstream/lib/writer.js | 390 - .../node-gyp/node_modules/fstream/package.json | 62 - .../node-gyp/node_modules/minimatch/LICENSE | 15 - .../node-gyp/node_modules/minimatch/README.md | 209 - .../node-gyp/node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 200 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 92 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../node-gyp/node_modules/minimatch/package.json | 63 - .../node-gyp/node_modules/nopt/package.json | 6 +- .../node-gyp/node_modules/semver/package.json | 2 +- .../tar/node_modules/block-stream/LICENCE | 25 - .../tar/node_modules/block-stream/LICENSE | 15 - .../tar/node_modules/block-stream/README.md | 14 - .../tar/node_modules/block-stream/block-stream.js | 209 - .../tar/node_modules/block-stream/package.json | 63 - .../node-gyp/node_modules/tar/package.json | 27 +- deps/npm/node_modules/node-gyp/package.json | 30 +- deps/npm/node_modules/nopt/package.json | 27 +- .../node_modules/is-builtin-module/index.js | 10 - .../node_modules/is-builtin-module/license | 21 - .../builtin-modules/builtin-modules.json | 35 - .../node_modules/builtin-modules/index.js | 10 - .../node_modules/builtin-modules/license | 21 - .../node_modules/builtin-modules/package.json | 76 - .../node_modules/builtin-modules/readme.md | 41 - .../node_modules/builtin-modules/static.js | 2 - .../node_modules/is-builtin-module/package.json | 78 - .../node_modules/is-builtin-module/readme.md | 33 - .../normalize-package-data/package.json | 15 +- .../npm/node_modules/npm-audit-report/CHANGELOG.md | 42 + deps/npm/node_modules/npm-audit-report/LICENSE | 16 + deps/npm/node_modules/npm-audit-report/README.md | 40 + deps/npm/node_modules/npm-audit-report/index.js | 24 + .../npm/node_modules/npm-audit-report/lib/utils.js | 35 + .../npm/node_modules/npm-audit-report/package.json | 82 + .../npm-audit-report/reporters/detail.js | 206 + .../npm-audit-report/reporters/install.js | 70 + .../npm-audit-report/reporters/json.js | 17 + .../npm-audit-report/reporters/quiet.js | 18 + deps/npm/node_modules/npm-bundled/README.md | 46 + deps/npm/node_modules/npm-bundled/index.js | 227 + deps/npm/node_modules/npm-bundled/package.json | 60 + .../node_modules/npm-cache-filename/package.json | 28 +- .../node_modules/npm-install-checks/package.json | 28 +- deps/npm/node_modules/npm-lifecycle/CHANGELOG.md | 26 + deps/npm/node_modules/npm-lifecycle/README.md | 4 +- deps/npm/node_modules/npm-lifecycle/index.js | 97 +- .../npm-lifecycle/node_modules/byline/LICENSE | 19 - .../npm-lifecycle/node_modules/byline/README.md | 147 - .../node_modules/byline/lib/byline.js | 155 - .../npm-lifecycle/node_modules/byline/package.json | 56 - .../node_modules/resolve-from/index.js | 47 - .../node_modules/resolve-from/license | 9 - .../node_modules/resolve-from/package.json | 66 - .../node_modules/resolve-from/readme.md | 72 - deps/npm/node_modules/npm-lifecycle/package.json | 41 +- .../npm/node_modules/npm-logical-tree/CHANGELOG.md | 46 + deps/npm/node_modules/npm-logical-tree/LICENSE.md | 16 + deps/npm/node_modules/npm-logical-tree/README.md | 147 + deps/npm/node_modules/npm-logical-tree/index.js | 192 + .../npm/node_modules/npm-logical-tree/package.json | 83 + deps/npm/node_modules/npm-package-arg/CHANGELOG.md | 16 + deps/npm/node_modules/npm-package-arg/npa.js | 20 +- deps/npm/node_modules/npm-package-arg/package.json | 64 +- .../npm-packlist/node_modules/ignore-walk/LICENSE | 15 - .../node_modules/ignore-walk/README.md | 60 - .../npm-packlist/node_modules/ignore-walk/index.js | 265 - .../ignore-walk/node_modules/minimatch/LICENSE | 15 - .../ignore-walk/node_modules/minimatch/README.md | 209 - .../node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 200 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 88 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../node_modules/minimatch/package.json | 63 - .../node_modules/ignore-walk/package.json | 71 - .../node_modules/npm-bundled/README.md | 46 - .../npm-packlist/node_modules/npm-bundled/index.js | 227 - .../node_modules/npm-bundled/package.json | 60 - deps/npm/node_modules/npm-packlist/package.json | 14 +- .../node_modules/npm-pick-manifest/CHANGELOG.md | 93 + deps/npm/node_modules/npm-pick-manifest/LICENSE.md | 16 + deps/npm/node_modules/npm-pick-manifest/README.md | 76 + deps/npm/node_modules/npm-pick-manifest/index.js | 79 + .../node_modules/npm-pick-manifest/package.json | 85 + deps/npm/node_modules/npm-profile/CHANGELOG.md | 28 + deps/npm/node_modules/npm-profile/README.md | 156 +- deps/npm/node_modules/npm-profile/index.js | 187 +- .../npm-profile/node_modules/cacache/CHANGELOG.md | 478 + .../npm-profile/node_modules/cacache/LICENSE.md | 16 + .../npm-profile/node_modules/cacache/README.es.md | 628 + .../npm-profile/node_modules/cacache/README.md | 624 + .../npm-profile/node_modules/cacache/en.js | 3 + .../npm-profile/node_modules/cacache/es.js | 3 + .../npm-profile/node_modules/cacache/get.js | 190 + .../npm-profile/node_modules/cacache/index.js | 3 + .../node_modules/cacache/lib/content/path.js | 26 + .../node_modules/cacache/lib/content/read.js | 125 + .../node_modules/cacache/lib/content/rm.js | 21 + .../node_modules/cacache/lib/content/write.js | 162 + .../node_modules/cacache/lib/entry-index.js | 225 + .../node_modules/cacache/lib/memoization.js | 69 + .../node_modules/cacache/lib/util/fix-owner.js | 44 + .../cacache/lib/util/hash-to-segments.js | 11 + .../node_modules/cacache/lib/util/move-file.js | 51 + .../node_modules/cacache/lib/util/tmp.js | 32 + .../npm-profile/node_modules/cacache/lib/util/y.js | 25 + .../npm-profile/node_modules/cacache/lib/verify.js | 213 + .../npm-profile/node_modules/cacache/locales/en.js | 44 + .../node_modules/cacache/locales/en.json | 6 + .../npm-profile/node_modules/cacache/locales/es.js | 46 + .../node_modules/cacache/locales/es.json | 6 + .../npm-profile/node_modules/cacache/ls.js | 6 + .../cacache/node_modules/mississippi/changelog.md | 7 + .../cacache/node_modules/mississippi/index.js | 10 + .../cacache/node_modules/mississippi/license | 7 + .../cacache/node_modules/mississippi/package.json | 62 + .../cacache/node_modules/mississippi/readme.md | 411 + .../npm-profile/node_modules/cacache/package.json | 137 + .../npm-profile/node_modules/cacache/put.js | 71 + .../npm-profile/node_modules/cacache/rm.js | 28 + .../npm-profile/node_modules/cacache/verify.js | 3 + .../node_modules/make-fetch-happen/CHANGELOG.md | 15 + .../node_modules/make-fetch-happen/README.md | 22 +- .../node_modules/make-fetch-happen/index.js | 14 + .../node_modules/agentkeepalive/History.md | 130 - .../node_modules/agentkeepalive/README.md | 248 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.js | 4 - .../node_modules/agentkeepalive/lib/_http_agent.js | 399 - .../node_modules/agentkeepalive/lib/agent.js | 133 - .../node_modules/agentkeepalive/lib/https_agent.js | 42 - .../node_modules/humanize-ms/History.md | 25 - .../node_modules/humanize-ms/LICENSE | 17 - .../node_modules/humanize-ms/README.md | 40 - .../node_modules/humanize-ms/index.js | 24 - .../humanize-ms/node_modules/ms/index.js | 152 - .../humanize-ms/node_modules/ms/license.md | 21 - .../humanize-ms/node_modules/ms/package.json | 69 - .../humanize-ms/node_modules/ms/readme.md | 51 - .../node_modules/humanize-ms/package.json | 66 - .../node_modules/agentkeepalive/package.json | 82 - .../node_modules/cacache/CHANGELOG.md | 423 - .../node_modules/cacache/LICENSE.md | 3 - .../node_modules/cacache/README.es.md | 628 - .../node_modules/cacache/README.md | 624 - .../make-fetch-happen/node_modules/cacache/en.js | 3 - .../make-fetch-happen/node_modules/cacache/es.js | 3 - .../make-fetch-happen/node_modules/cacache/get.js | 190 - .../node_modules/cacache/index.js | 3 - .../node_modules/cacache/lib/content/path.js | 26 - .../node_modules/cacache/lib/content/read.js | 115 - .../node_modules/cacache/lib/content/rm.js | 21 - .../node_modules/cacache/lib/content/write.js | 162 - .../node_modules/cacache/lib/entry-index.js | 224 - .../node_modules/cacache/lib/memoization.js | 69 - .../node_modules/cacache/lib/util/fix-owner.js | 44 - .../cacache/lib/util/hash-to-segments.js | 11 - .../node_modules/cacache/lib/util/move-file.js | 55 - .../node_modules/cacache/lib/util/tmp.js | 32 - .../node_modules/cacache/lib/util/y.js | 25 - .../node_modules/cacache/lib/verify.js | 213 - .../node_modules/cacache/locales/en.js | 44 - .../node_modules/cacache/locales/en.json | 6 - .../node_modules/cacache/locales/es.js | 46 - .../node_modules/cacache/locales/es.json | 6 - .../make-fetch-happen/node_modules/cacache/ls.js | 6 - .../node_modules/cacache/node_modules/y18n/LICENSE | 13 - .../cacache/node_modules/y18n/README.md | 91 - .../cacache/node_modules/y18n/index.js | 172 - .../cacache/node_modules/y18n/package.json | 65 - .../node_modules/cacache/package.json | 126 - .../make-fetch-happen/node_modules/cacache/put.js | 71 - .../make-fetch-happen/node_modules/cacache/rm.js | 28 - .../node_modules/cacache/verify.js | 3 - .../node_modules/http-cache-semantics/README.md | 173 - .../node_modules/http-cache-semantics/index.js | 497 - .../http-cache-semantics/node4/index.js | 559 - .../node_modules/http-cache-semantics/package.json | 60 - .../http-cache-semantics/test/misctest.js | 33 - .../http-cache-semantics/test/okhttptest.js | 301 - .../http-cache-semantics/test/requesttest.js | 61 - .../http-cache-semantics/test/responsetest.js | 385 - .../http-cache-semantics/test/revalidatetest.js | 181 - .../http-cache-semantics/test/satisfytest.js | 64 - .../http-cache-semantics/test/updatetest.js | 98 - .../http-cache-semantics/test/varytest.js | 75 - .../node_modules/http-proxy-agent/.npmignore | 1 - .../node_modules/http-proxy-agent/.travis.yml | 22 - .../node_modules/http-proxy-agent/History.md | 94 - .../node_modules/http-proxy-agent/README.md | 74 - .../node_modules/http-proxy-agent/index.js | 109 - .../node_modules/agent-base/.npmignore | 2 - .../node_modules/agent-base/.travis.yml | 22 - .../node_modules/agent-base/History.md | 99 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../node_modules/es6-promisify/dist/promise.js | 73 - .../node_modules/es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../es6-promisify/node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../es6-promisify/node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../node_modules/es6-promise/dist/es6-promise.js | 1157 -- .../node_modules/es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../node_modules/es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../es6-promise/lib/es6-promise/promise/all.js | 52 - .../es6-promise/lib/es6-promise/promise/race.js | 84 - .../es6-promise/lib/es6-promise/promise/reject.js | 46 - .../es6-promise/lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 26 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../http-proxy-agent/node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../http-proxy-agent/node_modules/debug/LICENSE | 18 - .../http-proxy-agent/node_modules/debug/Makefile | 50 - .../http-proxy-agent/node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../http-proxy-agent/node_modules/debug/node.js | 1 - .../node_modules/debug/node_modules/ms/index.js | 152 - .../node_modules/debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../node_modules/debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../node_modules/http-proxy-agent/package.json | 62 - .../http-proxy-agent/test/ssl-cert-snakeoil.key | 15 - .../http-proxy-agent/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/http-proxy-agent/test/test.js | 303 - .../node_modules/https-proxy-agent/.npmignore | 2 - .../node_modules/https-proxy-agent/.travis.yml | 22 - .../node_modules/https-proxy-agent/History.md | 113 - .../node_modules/https-proxy-agent/README.md | 137 - .../node_modules/https-proxy-agent/index.js | 228 - .../node_modules/agent-base/.npmignore | 2 - .../node_modules/agent-base/.travis.yml | 22 - .../node_modules/agent-base/History.md | 99 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../node_modules/es6-promisify/dist/promise.js | 73 - .../node_modules/es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../es6-promisify/node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../es6-promisify/node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../node_modules/es6-promise/dist/es6-promise.js | 1157 -- .../node_modules/es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../node_modules/es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../es6-promise/lib/es6-promise/promise/all.js | 52 - .../es6-promise/lib/es6-promise/promise/race.js | 84 - .../es6-promise/lib/es6-promise/promise/reject.js | 46 - .../es6-promise/lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 26 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../https-proxy-agent/node_modules/debug/LICENSE | 18 - .../https-proxy-agent/node_modules/debug/Makefile | 50 - .../https-proxy-agent/node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../https-proxy-agent/node_modules/debug/node.js | 1 - .../node_modules/debug/node_modules/ms/index.js | 152 - .../node_modules/debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../node_modules/debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../node_modules/https-proxy-agent/package.json | 62 - .../https-proxy-agent/test/ssl-cert-snakeoil.key | 15 - .../https-proxy-agent/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/https-proxy-agent/test/test.js | 308 - .../node_modules/node-fetch-npm/CHANGELOG.md | 252 - .../node_modules/node-fetch-npm/LICENSE.md | 21 - .../node_modules/node-fetch-npm/README.md | 398 - .../node_modules/encoding/.npmignore | 1 - .../node_modules/encoding/.travis.yml | 25 - .../node-fetch-npm/node_modules/encoding/LICENSE | 16 - .../node-fetch-npm/node_modules/encoding/README.md | 52 - .../node_modules/encoding/lib/encoding.js | 113 - .../node_modules/encoding/lib/iconv-loader.js | 14 - .../encoding/node_modules/iconv-lite/.npmignore | 6 - .../encoding/node_modules/iconv-lite/.travis.yml | 22 - .../encoding/node_modules/iconv-lite/Changelog.md | 132 - .../encoding/node_modules/iconv-lite/LICENSE | 20 - .../encoding/node_modules/iconv-lite/README.md | 160 - .../iconv-lite/encodings/dbcs-codec.js | 554 - .../node_modules/iconv-lite/encodings/dbcs-data.js | 176 - .../node_modules/iconv-lite/encodings/index.js | 22 - .../node_modules/iconv-lite/encodings/internal.js | 188 - .../iconv-lite/encodings/sbcs-codec.js | 73 - .../iconv-lite/encodings/sbcs-data-generated.js | 451 - .../node_modules/iconv-lite/encodings/sbcs-data.js | 168 - .../iconv-lite/encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../iconv-lite/encodings/tables/gbk-added.json | 55 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../node_modules/iconv-lite/encodings/utf16.js | 175 - .../node_modules/iconv-lite/encodings/utf7.js | 288 - .../node_modules/iconv-lite/lib/bom-handling.js | 51 - .../node_modules/iconv-lite/lib/extend-node.js | 215 - .../node_modules/iconv-lite/lib/index.d.ts | 24 - .../encoding/node_modules/iconv-lite/lib/index.js | 148 - .../node_modules/iconv-lite/lib/streams.js | 120 - .../encoding/node_modules/iconv-lite/package.json | 123 - .../node_modules/encoding/package.json | 53 - .../node_modules/encoding/test/test.js | 75 - .../json-parse-better-errors/CHANGELOG.md | 36 - .../json-parse-better-errors/LICENSE.md | 7 - .../json-parse-better-errors/README.md | 53 - .../node_modules/json-parse-better-errors/index.js | 32 - .../json-parse-better-errors/package.json | 76 - .../node_modules/node-fetch-npm/package.json | 100 - .../node_modules/node-fetch-npm/src/blob.js | 109 - .../node_modules/node-fetch-npm/src/body.js | 411 - .../node_modules/node-fetch-npm/src/common.js | 92 - .../node_modules/node-fetch-npm/src/fetch-error.js | 35 - .../node_modules/node-fetch-npm/src/headers.js | 296 - .../node_modules/node-fetch-npm/src/index.js | 214 - .../node_modules/node-fetch-npm/src/request.js | 174 - .../node_modules/node-fetch-npm/src/response.js | 71 - .../node_modules/promise-retry/.editorconfig | 15 - .../node_modules/promise-retry/.npmignore | 2 - .../node_modules/promise-retry/.travis.yml | 5 - .../node_modules/promise-retry/LICENSE | 19 - .../node_modules/promise-retry/README.md | 92 - .../node_modules/promise-retry/index.js | 52 - .../node_modules/err-code/.editorconfig | 12 - .../node_modules/err-code/.eslintrc.json | 7 - .../promise-retry/node_modules/err-code/.npmignore | 2 - .../node_modules/err-code/.travis.yml | 5 - .../promise-retry/node_modules/err-code/README.md | 72 - .../promise-retry/node_modules/err-code/bower.json | 30 - .../promise-retry/node_modules/err-code/index.js | 22 - .../node_modules/err-code/index.umd.js | 26 - .../node_modules/err-code/package.json | 64 - .../node_modules/err-code/test/.eslintrc.json | 5 - .../node_modules/err-code/test/test.js | 92 - .../node_modules/promise-retry/package.json | 67 - .../node_modules/promise-retry/test/test.js | 263 - .../node_modules/socks-proxy-agent/.npmignore | 1 - .../node_modules/socks-proxy-agent/.travis.yml | 22 - .../node_modules/socks-proxy-agent/History.md | 96 - .../node_modules/socks-proxy-agent/README.md | 134 - .../node_modules/socks-proxy-agent/index.js | 141 - .../node_modules/agent-base/.npmignore | 2 - .../node_modules/agent-base/.travis.yml | 22 - .../node_modules/agent-base/History.md | 99 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../node_modules/es6-promisify/dist/promise.js | 73 - .../node_modules/es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../es6-promisify/node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../es6-promisify/node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../node_modules/es6-promise/dist/es6-promise.js | 1157 -- .../node_modules/es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../node_modules/es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../es6-promise/lib/es6-promise/promise/all.js | 52 - .../es6-promise/lib/es6-promise/promise/race.js | 84 - .../es6-promise/lib/es6-promise/promise/reject.js | 46 - .../es6-promise/lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 26 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/socks/.npmignore | 4 - .../socks-proxy-agent/node_modules/socks/LICENSE | 20 - .../socks-proxy-agent/node_modules/socks/README.md | 339 - .../node_modules/socks/examples/associate.js | 33 - .../node_modules/socks/examples/bind.js | 30 - .../node_modules/socks/examples/connect.js | 31 - .../socks-proxy-agent/node_modules/socks/index.js | 6 - .../node_modules/socks/lib/socks-agent.js | 108 - .../node_modules/socks/lib/socks-client.js | 306 - .../node_modules/socks/node_modules/ip/.jscsrc | 46 - .../node_modules/socks/node_modules/ip/.npmignore | 2 - .../node_modules/socks/node_modules/ip/.travis.yml | 15 - .../node_modules/socks/node_modules/ip/README.md | 90 - .../node_modules/socks/node_modules/ip/lib/ip.js | 416 - .../socks/node_modules/ip/package.json | 53 - .../socks/node_modules/ip/test/api-test.js | 407 - .../socks/node_modules/smart-buffer/.npmignore | 5 - .../socks/node_modules/smart-buffer/.travis.yml | 11 - .../socks/node_modules/smart-buffer/LICENSE | 20 - .../socks/node_modules/smart-buffer/README.md | 307 - .../node_modules/smart-buffer/build/smartbuffer.js | 726 -- .../smart-buffer/build/smartbuffer.js.map | 1 - .../node_modules/smart-buffer/lib/smart-buffer.js | 371 - .../socks/node_modules/smart-buffer/package.json | 70 - .../smart-buffer/test/smart-buffer.test.js | 410 - .../node_modules/smart-buffer/typings/index.d.ts | 383 - .../node_modules/socks/package.json | 68 - .../node_modules/socks-proxy-agent/package.json | 66 - .../socks-proxy-agent/test/ssl-cert-snakeoil.key | 15 - .../socks-proxy-agent/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/socks-proxy-agent/test/test.js | 144 - .../node_modules/ssri/CHANGELOG.md | 175 - .../make-fetch-happen/node_modules/ssri/LICENSE.md | 3 - .../make-fetch-happen/node_modules/ssri/README.md | 462 - .../make-fetch-happen/node_modules/ssri/index.js | 334 - .../node_modules/ssri/package.json | 90 - .../node_modules/make-fetch-happen/package.json | 27 +- .../npm-profile/node_modules/mississippi/index.js | 10 + .../mississippi/node_modules/pump/.travis.yml | 5 + .../mississippi/node_modules/pump/LICENSE | 21 + .../mississippi/node_modules/pump/README.md | 56 + .../mississippi/node_modules/pump/index.js | 80 + .../mississippi/node_modules/pump/package.json | 59 + .../mississippi/node_modules/pump/test-browser.js | 58 + .../mississippi/node_modules/pump/test.js | 46 + .../node_modules/mississippi/package.json | 62 + .../npm-profile/node_modules/mississippi/readme.md | 399 + .../npm-profile/node_modules/pump/.travis.yml | 5 + .../npm-profile/node_modules/pump/LICENSE | 21 + .../npm-profile/node_modules/pump/README.md | 56 + .../npm-profile/node_modules/pump/index.js | 82 + .../npm-profile/node_modules/pump/package.json | 59 + .../npm-profile/node_modules/pump/test-browser.js | 62 + .../npm-profile/node_modules/pump/test-node.js | 53 + .../node_modules/smart-buffer/.npmignore | 5 + .../node_modules/smart-buffer/.travis.yml | 11 + .../npm-profile/node_modules/smart-buffer/LICENSE | 20 + .../node_modules/smart-buffer/README.md | 307 + .../node_modules/smart-buffer/build/smartbuffer.js | 726 ++ .../smart-buffer/build/smartbuffer.js.map | 1 + .../node_modules/smart-buffer/lib/smart-buffer.js | 371 + .../node_modules/smart-buffer/package.json | 70 + .../smart-buffer/test/smart-buffer.test.js | 410 + .../node_modules/smart-buffer/typings/index.d.ts | 383 + .../node_modules/socks-proxy-agent/.npmignore | 1 + .../node_modules/socks-proxy-agent/.travis.yml | 22 + .../node_modules/socks-proxy-agent/History.md | 96 + .../node_modules/socks-proxy-agent/README.md | 134 + .../node_modules/socks-proxy-agent/index.js | 141 + .../node_modules/socks-proxy-agent/package.json | 66 + .../socks-proxy-agent/test/ssl-cert-snakeoil.key | 15 + .../socks-proxy-agent/test/ssl-cert-snakeoil.pem | 12 + .../node_modules/socks-proxy-agent/test/test.js | 144 + .../npm-profile/node_modules/socks/.npmignore | 4 + .../npm-profile/node_modules/socks/LICENSE | 20 + .../npm-profile/node_modules/socks/README.md | 339 + .../node_modules/socks/examples/associate.js | 33 + .../node_modules/socks/examples/bind.js | 30 + .../node_modules/socks/examples/connect.js | 31 + .../npm-profile/node_modules/socks/index.js | 6 + .../node_modules/socks/lib/socks-agent.js | 108 + .../node_modules/socks/lib/socks-client.js | 306 + .../npm-profile/node_modules/socks/package.json | 68 + .../npm-profile/node_modules/ssri/CHANGELOG.md | 256 + .../npm-profile/node_modules/ssri/LICENSE.md | 16 + .../npm-profile/node_modules/ssri/README.md | 488 + .../npm-profile/node_modules/ssri/index.js | 379 + .../npm-profile/node_modules/ssri/package.json | 90 + deps/npm/node_modules/npm-profile/package.json | 67 +- .../node_modules/npm-registry-client/CHANGELOG.md | 11 + .../node_modules/npm-registry-client/lib/access.js | 8 +- .../npm-registry-client/lib/adduser.js | 3 +- .../npm-registry-client/lib/dist-tags/fetch.js | 2 +- .../node_modules/npm-registry-client/lib/org.js | 2 +- .../npm-registry-client/lib/publish.js | 2 +- .../npm-registry-client/lib/request.js | 2 + .../node_modules/npm-registry-client/lib/team.js | 4 +- .../node_modules/concat-stream/LICENSE | 24 - .../node_modules/concat-stream/index.js | 143 - .../node_modules/typedarray/.travis.yml | 4 - .../concat-stream/node_modules/typedarray/LICENSE | 35 - .../node_modules/typedarray/example/tarray.js | 4 - .../concat-stream/node_modules/typedarray/index.js | 630 - .../node_modules/typedarray/package.json | 87 - .../node_modules/typedarray/readme.markdown | 61 - .../typedarray/test/server/undef_globals.js | 19 - .../node_modules/typedarray/test/tarray.js | 10 - .../node_modules/concat-stream/package.json | 86 - .../node_modules/concat-stream/readme.md | 102 - .../node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 81 - .../node_modules/npm-package-arg/npa.js | 270 - .../node_modules/npm-package-arg/package.json | 64 - .../node_modules/retry/.npmignore | 2 + .../npm-registry-client/node_modules/retry/License | 21 + .../node_modules/retry/Makefile | 21 + .../node_modules/retry/README.md | 215 + .../node_modules/retry/equation.gif | Bin 0 -> 1209 bytes .../node_modules/retry/example/dns.js | 31 + .../node_modules/retry/example/stop.js | 40 + .../node_modules/retry/index.js | 1 + .../node_modules/retry/lib/retry.js | 99 + .../node_modules/retry/lib/retry_operation.js | 143 + .../node_modules/retry/package.json | 56 + .../node_modules/retry/test/common.js | 10 + .../retry/test/integration/test-forever.js | 24 + .../retry/test/integration/test-retry-operation.js | 176 + .../retry/test/integration/test-retry-wrap.js | 77 + .../retry/test/integration/test-timeouts.js | 69 + .../node_modules/retry/test/runner.js | 5 + .../node_modules/ssri/CHANGELOG.md | 81 + .../node_modules/ssri/LICENSE.md | 17 +- .../node_modules/ssri/README.md | 30 +- .../npm-registry-client/node_modules/ssri/index.js | 81 +- .../node_modules/ssri/package.json | 34 +- .../node_modules/npm-registry-client/package.json | 49 +- .../node_modules/npm-registry-fetch/CHANGELOG.md | 43 + .../npm/node_modules/npm-registry-fetch/LICENSE.md | 16 + deps/npm/node_modules/npm-registry-fetch/README.md | 548 + deps/npm/node_modules/npm-registry-fetch/auth.js | 47 + .../npm-registry-fetch/check-response.js | 99 + deps/npm/node_modules/npm-registry-fetch/config.js | 94 + deps/npm/node_modules/npm-registry-fetch/errors.js | 58 + deps/npm/node_modules/npm-registry-fetch/index.js | 166 + .../node_modules/cacache/CHANGELOG.md | 478 + .../node_modules/cacache/LICENSE.md | 16 + .../node_modules/cacache/README.es.md | 628 + .../node_modules/cacache/README.md | 624 + .../npm-registry-fetch/node_modules/cacache/en.js | 3 + .../npm-registry-fetch/node_modules/cacache/es.js | 3 + .../npm-registry-fetch/node_modules/cacache/get.js | 190 + .../node_modules/cacache/index.js | 3 + .../node_modules/cacache/lib/content/path.js | 26 + .../node_modules/cacache/lib/content/read.js | 125 + .../node_modules/cacache/lib/content/rm.js | 21 + .../node_modules/cacache/lib/content/write.js | 162 + .../node_modules/cacache/lib/entry-index.js | 225 + .../node_modules/cacache/lib/memoization.js | 69 + .../node_modules/cacache/lib/util/fix-owner.js | 44 + .../cacache/lib/util/hash-to-segments.js | 11 + .../node_modules/cacache/lib/util/move-file.js | 51 + .../node_modules/cacache/lib/util/tmp.js | 32 + .../node_modules/cacache/lib/util/y.js | 25 + .../node_modules/cacache/lib/verify.js | 213 + .../node_modules/cacache/locales/en.js | 44 + .../node_modules/cacache/locales/en.json | 6 + .../node_modules/cacache/locales/es.js | 46 + .../node_modules/cacache/locales/es.json | 6 + .../npm-registry-fetch/node_modules/cacache/ls.js | 6 + .../cacache/node_modules/mississippi/changelog.md | 7 + .../cacache/node_modules/mississippi/index.js | 10 + .../cacache/node_modules/mississippi/license | 7 + .../cacache/node_modules/mississippi/package.json | 62 + .../cacache/node_modules/mississippi/readme.md | 411 + .../node_modules/cacache/package.json | 137 + .../npm-registry-fetch/node_modules/cacache/put.js | 71 + .../npm-registry-fetch/node_modules/cacache/rm.js | 28 + .../node_modules/cacache/verify.js | 3 + .../node_modules/figgy-pudding/CHANGELOG.md | 29 + .../node_modules/figgy-pudding/LICENSE.md | 16 + .../node_modules/figgy-pudding/README.md | 121 + .../node_modules/figgy-pudding/index.js | 60 + .../node_modules/figgy-pudding/package.json | 70 + .../node_modules/make-fetch-happen/CHANGELOG.md | 525 + .../node_modules/make-fetch-happen/LICENSE | 16 + .../node_modules/make-fetch-happen/README.md | 404 + .../node_modules/make-fetch-happen/agent.js | 171 + .../node_modules/make-fetch-happen/cache.js | 257 + .../node_modules/make-fetch-happen/index.js | 482 + .../node_modules/make-fetch-happen/package.json | 95 + .../node_modules/make-fetch-happen/warning.js | 24 + .../node_modules/pump/.travis.yml | 5 + .../npm-registry-fetch/node_modules/pump/LICENSE | 21 + .../npm-registry-fetch/node_modules/pump/README.md | 56 + .../npm-registry-fetch/node_modules/pump/index.js | 82 + .../node_modules/pump/package.json | 59 + .../node_modules/pump/test-browser.js | 62 + .../node_modules/pump/test-node.js | 53 + .../node_modules/smart-buffer/.npmignore | 5 + .../node_modules/smart-buffer/.travis.yml | 11 + .../node_modules/smart-buffer/LICENSE | 20 + .../node_modules/smart-buffer/README.md | 307 + .../node_modules/smart-buffer/build/smartbuffer.js | 726 ++ .../smart-buffer/build/smartbuffer.js.map | 1 + .../node_modules/smart-buffer/lib/smart-buffer.js | 371 + .../node_modules/smart-buffer/package.json | 70 + .../smart-buffer/test/smart-buffer.test.js | 410 + .../node_modules/smart-buffer/typings/index.d.ts | 383 + .../node_modules/socks-proxy-agent/.npmignore | 1 + .../node_modules/socks-proxy-agent/.travis.yml | 22 + .../node_modules/socks-proxy-agent/History.md | 96 + .../node_modules/socks-proxy-agent/README.md | 134 + .../node_modules/socks-proxy-agent/index.js | 141 + .../node_modules/socks-proxy-agent/package.json | 66 + .../socks-proxy-agent/test/ssl-cert-snakeoil.key | 15 + .../socks-proxy-agent/test/ssl-cert-snakeoil.pem | 12 + .../node_modules/socks-proxy-agent/test/test.js | 144 + .../node_modules/socks/.npmignore | 4 + .../npm-registry-fetch/node_modules/socks/LICENSE | 20 + .../node_modules/socks/README.md | 339 + .../node_modules/socks/examples/associate.js | 33 + .../node_modules/socks/examples/bind.js | 30 + .../node_modules/socks/examples/connect.js | 31 + .../npm-registry-fetch/node_modules/socks/index.js | 6 + .../node_modules/socks/lib/socks-agent.js | 108 + .../node_modules/socks/lib/socks-client.js | 306 + .../node_modules/socks/package.json | 68 + .../node_modules/ssri/CHANGELOG.md | 256 + .../node_modules/ssri/LICENSE.md | 16 + .../npm-registry-fetch/node_modules/ssri/README.md | 488 + .../npm-registry-fetch/node_modules/ssri/index.js | 379 + .../node_modules/ssri/package.json | 90 + .../node_modules/npm-registry-fetch/package.json | 126 + .../node_modules/npm-registry-fetch/silentlog.js | 14 + deps/npm/node_modules/npm-run-path/index.js | 39 + deps/npm/node_modules/npm-run-path/license | 21 + deps/npm/node_modules/npm-run-path/package.json | 77 + deps/npm/node_modules/npm-run-path/readme.md | 81 + .../node_modules/npm-user-validate/package.json | 24 +- .../node_modules/are-we-there-yet/CHANGES.md | 31 - .../npmlog/node_modules/are-we-there-yet/LICENSE | 5 - .../npmlog/node_modules/are-we-there-yet/README.md | 195 - .../npmlog/node_modules/are-we-there-yet/index.js | 4 - .../node_modules/delegates/.npmignore | 1 - .../node_modules/delegates/History.md | 22 - .../node_modules/delegates/License | 20 - .../node_modules/delegates/Makefile | 8 - .../node_modules/delegates/Readme.md | 94 - .../node_modules/delegates/index.js | 121 - .../node_modules/delegates/package.json | 51 - .../node_modules/delegates/test/index.js | 94 - .../node_modules/are-we-there-yet/package.json | 66 - .../node_modules/are-we-there-yet/tracker-base.js | 11 - .../node_modules/are-we-there-yet/tracker-group.js | 107 - .../are-we-there-yet/tracker-stream.js | 35 - .../node_modules/are-we-there-yet/tracker.js | 30 - .../node_modules/console-control-strings/LICENSE | 13 - .../node_modules/console-control-strings/README.md | 144 - .../node_modules/console-control-strings/index.js | 125 - .../console-control-strings/package.json | 65 - .../npmlog/node_modules/gauge/CHANGELOG.md | 160 - .../node_modules/npmlog/node_modules/gauge/LICENSE | 13 - .../npmlog/node_modules/gauge/README.md | 399 - .../npmlog/node_modules/gauge/base-theme.js | 14 - .../npmlog/node_modules/gauge/error.js | 24 - .../npmlog/node_modules/gauge/has-color.js | 12 - .../npmlog/node_modules/gauge/index.js | 233 - .../gauge/node_modules/object-assign/index.js | 90 - .../gauge/node_modules/object-assign/license | 21 - .../gauge/node_modules/object-assign/package.json | 78 - .../gauge/node_modules/object-assign/readme.md | 61 - .../gauge/node_modules/signal-exit/CHANGELOG.md | 27 - .../gauge/node_modules/signal-exit/LICENSE.txt | 16 - .../gauge/node_modules/signal-exit/README.md | 40 - .../gauge/node_modules/signal-exit/index.js | 157 - .../gauge/node_modules/signal-exit/package.json | 70 - .../gauge/node_modules/signal-exit/signals.js | 53 - .../gauge/node_modules/string-width/index.js | 37 - .../gauge/node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 74 - .../node_modules/code-point-at/readme.md | 32 - .../node_modules/is-fullwidth-code-point/index.js | 46 - .../node_modules/is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 71 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 80 - .../node_modules/is-fullwidth-code-point/readme.md | 39 - .../gauge/node_modules/string-width/package.json | 92 - .../gauge/node_modules/string-width/readme.md | 42 - .../gauge/node_modules/strip-ansi/index.js | 6 - .../gauge/node_modules/strip-ansi/license | 21 - .../strip-ansi/node_modules/ansi-regex/index.js | 4 - .../strip-ansi/node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../strip-ansi/node_modules/ansi-regex/readme.md | 39 - .../gauge/node_modules/strip-ansi/package.json | 102 - .../gauge/node_modules/strip-ansi/readme.md | 33 - .../gauge/node_modules/wide-align/LICENSE | 13 - .../gauge/node_modules/wide-align/README.md | 47 - .../gauge/node_modules/wide-align/align.js | 65 - .../gauge/node_modules/wide-align/package.json | 66 - .../npmlog/node_modules/gauge/package.json | 96 - .../npmlog/node_modules/gauge/plumbing.js | 48 - .../npmlog/node_modules/gauge/process.js | 3 - .../npmlog/node_modules/gauge/progress-bar.js | 35 - .../npmlog/node_modules/gauge/render-template.js | 181 - .../npmlog/node_modules/gauge/set-immediate.js | 7 - .../npmlog/node_modules/gauge/set-interval.js | 3 - .../node_modules/npmlog/node_modules/gauge/spin.js | 5 - .../npmlog/node_modules/gauge/template-item.js | 72 - .../npmlog/node_modules/gauge/theme-set.js | 114 - .../npmlog/node_modules/gauge/themes.js | 54 - .../npmlog/node_modules/gauge/wide-truncate.js | 25 - .../npmlog/node_modules/set-blocking/CHANGELOG.md | 26 - .../npmlog/node_modules/set-blocking/LICENSE.txt | 14 - .../npmlog/node_modules/set-blocking/README.md | 31 - .../npmlog/node_modules/set-blocking/index.js | 7 - .../npmlog/node_modules/set-blocking/package.json | 74 - deps/npm/node_modules/npmlog/package.json | 18 +- deps/npm/node_modules/number-is-nan/index.js | 4 + deps/npm/node_modules/number-is-nan/license | 21 + deps/npm/node_modules/number-is-nan/package.json | 71 + deps/npm/node_modules/number-is-nan/readme.md | 28 + deps/npm/node_modules/oauth-sign/LICENSE | 55 + deps/npm/node_modules/oauth-sign/README.md | 4 + deps/npm/node_modules/oauth-sign/index.js | 135 + deps/npm/node_modules/oauth-sign/package.json | 56 + deps/npm/node_modules/object-assign/index.js | 90 + deps/npm/node_modules/object-assign/license | 21 + deps/npm/node_modules/object-assign/package.json | 79 + deps/npm/node_modules/object-assign/readme.md | 61 + deps/npm/node_modules/once/package.json | 44 +- deps/npm/node_modules/opener/package.json | 28 +- deps/npm/node_modules/os-homedir/index.js | 24 + deps/npm/node_modules/os-homedir/license | 21 + deps/npm/node_modules/os-homedir/package.json | 74 + deps/npm/node_modules/os-homedir/readme.md | 31 + deps/npm/node_modules/os-locale/index.js | 101 + deps/npm/node_modules/os-locale/license | 21 + deps/npm/node_modules/os-locale/package.json | 77 + deps/npm/node_modules/os-locale/readme.md | 53 + deps/npm/node_modules/os-tmpdir/index.js | 25 + deps/npm/node_modules/os-tmpdir/license | 21 + deps/npm/node_modules/os-tmpdir/package.json | 74 + deps/npm/node_modules/os-tmpdir/readme.md | 32 + deps/npm/node_modules/osenv/.npmignore | 13 - deps/npm/node_modules/osenv/.travis.yml | 9 - .../osenv/node_modules/os-homedir/index.js | 24 - .../osenv/node_modules/os-homedir/license | 21 - .../osenv/node_modules/os-homedir/package.json | 77 - .../osenv/node_modules/os-homedir/readme.md | 31 - .../osenv/node_modules/os-tmpdir/index.js | 25 - .../osenv/node_modules/os-tmpdir/license | 21 - .../osenv/node_modules/os-tmpdir/package.json | 77 - .../osenv/node_modules/os-tmpdir/readme.md | 32 - deps/npm/node_modules/osenv/package.json | 44 +- deps/npm/node_modules/osenv/test/unix.js | 71 - deps/npm/node_modules/osenv/test/windows.js | 74 - deps/npm/node_modules/osenv/x.tap | 39 - deps/npm/node_modules/p-finally/index.js | 15 + deps/npm/node_modules/p-finally/license | 21 + deps/npm/node_modules/p-finally/package.json | 74 + deps/npm/node_modules/p-finally/readme.md | 47 + deps/npm/node_modules/p-limit/index.js | 42 + deps/npm/node_modules/p-limit/license | 9 + deps/npm/node_modules/p-limit/package.json | 81 + deps/npm/node_modules/p-limit/readme.md | 69 + deps/npm/node_modules/p-locate/index.js | 31 + deps/npm/node_modules/p-locate/license | 21 + deps/npm/node_modules/p-locate/package.json | 86 + deps/npm/node_modules/p-locate/readme.md | 86 + deps/npm/node_modules/p-try/index.js | 4 + deps/npm/node_modules/p-try/license | 21 + deps/npm/node_modules/p-try/package.json | 75 + deps/npm/node_modules/p-try/readme.md | 38 + deps/npm/node_modules/package-json/index.js | 67 + deps/npm/node_modules/package-json/license | 21 + deps/npm/node_modules/package-json/package.json | 75 + deps/npm/node_modules/package-json/readme.md | 91 + deps/npm/node_modules/pacote/CHANGELOG.md | 258 + deps/npm/node_modules/pacote/extract.js | 124 +- deps/npm/node_modules/pacote/lib/extract-stream.js | 40 +- .../node_modules/pacote/lib/fetchers/directory.js | 1 + deps/npm/node_modules/pacote/lib/fetchers/file.js | 14 +- deps/npm/node_modules/pacote/lib/fetchers/git.js | 26 +- .../pacote/lib/fetchers/registry/fetch.js | 12 +- .../pacote/lib/fetchers/registry/manifest.js | 4 +- .../pacote/lib/fetchers/registry/tarball.js | 82 +- .../node_modules/pacote/lib/finalize-manifest.js | 27 +- deps/npm/node_modules/pacote/lib/util/finished.js | 17 + deps/npm/node_modules/pacote/lib/util/git.js | 169 +- .../node_modules/pacote/lib/util/gunzip-maybe.js | 24 - deps/npm/node_modules/pacote/lib/util/opt-check.js | 5 +- deps/npm/node_modules/pacote/lib/util/pack-dir.js | 4 +- .../node_modules/pacote/lib/with-tarball-stream.js | 135 + .../node_modules/get-stream/buffer-stream.js | 51 - .../pacote/node_modules/get-stream/index.js | 51 - .../pacote/node_modules/get-stream/license | 21 - .../pacote/node_modules/get-stream/package.json | 80 - .../pacote/node_modules/get-stream/readme.md | 117 - .../node_modules/make-fetch-happen/CHANGELOG.md | 509 - .../pacote/node_modules/make-fetch-happen/LICENSE | 3 - .../node_modules/make-fetch-happen/README.md | 404 - .../pacote/node_modules/make-fetch-happen/agent.js | 171 - .../pacote/node_modules/make-fetch-happen/cache.js | 257 - .../pacote/node_modules/make-fetch-happen/index.js | 482 - .../node_modules/agentkeepalive/History.md | 130 - .../node_modules/agentkeepalive/README.md | 248 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.js | 4 - .../node_modules/agentkeepalive/lib/_http_agent.js | 399 - .../node_modules/agentkeepalive/lib/agent.js | 133 - .../node_modules/agentkeepalive/lib/https_agent.js | 42 - .../node_modules/humanize-ms/History.md | 25 - .../node_modules/humanize-ms/LICENSE | 17 - .../node_modules/humanize-ms/README.md | 40 - .../node_modules/humanize-ms/index.js | 24 - .../humanize-ms/node_modules/ms/index.js | 152 - .../humanize-ms/node_modules/ms/license.md | 21 - .../humanize-ms/node_modules/ms/package.json | 69 - .../humanize-ms/node_modules/ms/readme.md | 51 - .../node_modules/humanize-ms/package.json | 66 - .../node_modules/agentkeepalive/package.json | 82 - .../node_modules/http-cache-semantics/README.md | 173 - .../node_modules/http-cache-semantics/index.js | 497 - .../http-cache-semantics/node4/index.js | 559 - .../node_modules/http-cache-semantics/package.json | 60 - .../http-cache-semantics/test/misctest.js | 33 - .../http-cache-semantics/test/okhttptest.js | 301 - .../http-cache-semantics/test/requesttest.js | 61 - .../http-cache-semantics/test/responsetest.js | 385 - .../http-cache-semantics/test/revalidatetest.js | 181 - .../http-cache-semantics/test/satisfytest.js | 64 - .../http-cache-semantics/test/updatetest.js | 98 - .../http-cache-semantics/test/varytest.js | 75 - .../node_modules/http-proxy-agent/.npmignore | 1 - .../node_modules/http-proxy-agent/.travis.yml | 22 - .../node_modules/http-proxy-agent/History.md | 94 - .../node_modules/http-proxy-agent/README.md | 74 - .../node_modules/http-proxy-agent/index.js | 109 - .../node_modules/agent-base/.travis.yml | 23 - .../node_modules/agent-base/History.md | 105 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../node_modules/es6-promisify/dist/promise.js | 73 - .../node_modules/es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../es6-promisify/node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../es6-promisify/node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../node_modules/es6-promise/dist/es6-promise.js | 1157 -- .../node_modules/es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../node_modules/es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../es6-promise/lib/es6-promise/promise/all.js | 52 - .../es6-promise/lib/es6-promise/promise/race.js | 84 - .../es6-promise/lib/es6-promise/promise/reject.js | 46 - .../es6-promise/lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 38 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../http-proxy-agent/node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../http-proxy-agent/node_modules/debug/LICENSE | 18 - .../http-proxy-agent/node_modules/debug/Makefile | 50 - .../http-proxy-agent/node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../http-proxy-agent/node_modules/debug/node.js | 1 - .../node_modules/debug/node_modules/ms/index.js | 152 - .../node_modules/debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../node_modules/debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../node_modules/http-proxy-agent/package.json | 62 - .../http-proxy-agent/test/ssl-cert-snakeoil.key | 15 - .../http-proxy-agent/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/http-proxy-agent/test/test.js | 303 - .../node_modules/https-proxy-agent/.npmignore | 2 - .../node_modules/https-proxy-agent/.travis.yml | 22 - .../node_modules/https-proxy-agent/History.md | 113 - .../node_modules/https-proxy-agent/README.md | 137 - .../node_modules/https-proxy-agent/index.js | 228 - .../node_modules/agent-base/.travis.yml | 23 - .../node_modules/agent-base/History.md | 105 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../node_modules/es6-promisify/dist/promise.js | 73 - .../node_modules/es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../es6-promisify/node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../es6-promisify/node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../node_modules/es6-promise/dist/es6-promise.js | 1157 -- .../node_modules/es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../node_modules/es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../es6-promise/lib/es6-promise/promise/all.js | 52 - .../es6-promise/lib/es6-promise/promise/race.js | 84 - .../es6-promise/lib/es6-promise/promise/reject.js | 46 - .../es6-promise/lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 38 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 14 - .../node_modules/debug/CHANGELOG.md | 362 - .../https-proxy-agent/node_modules/debug/LICENSE | 18 - .../https-proxy-agent/node_modules/debug/Makefile | 50 - .../https-proxy-agent/node_modules/debug/README.md | 312 - .../node_modules/debug/component.json | 19 - .../node_modules/debug/karma.conf.js | 70 - .../https-proxy-agent/node_modules/debug/node.js | 1 - .../node_modules/debug/node_modules/ms/index.js | 152 - .../node_modules/debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 69 - .../node_modules/debug/node_modules/ms/readme.md | 51 - .../node_modules/debug/package.json | 88 - .../node_modules/debug/src/browser.js | 185 - .../node_modules/debug/src/debug.js | 202 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/inspector-log.js | 15 - .../node_modules/debug/src/node.js | 248 - .../node_modules/https-proxy-agent/package.json | 62 - .../https-proxy-agent/test/ssl-cert-snakeoil.key | 15 - .../https-proxy-agent/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/https-proxy-agent/test/test.js | 308 - .../node_modules/node-fetch-npm/CHANGELOG.md | 252 - .../node_modules/node-fetch-npm/LICENSE.md | 21 - .../node_modules/node-fetch-npm/README.md | 398 - .../node_modules/encoding/.npmignore | 1 - .../node_modules/encoding/.travis.yml | 25 - .../node-fetch-npm/node_modules/encoding/LICENSE | 16 - .../node-fetch-npm/node_modules/encoding/README.md | 52 - .../node_modules/encoding/lib/encoding.js | 113 - .../node_modules/encoding/lib/iconv-loader.js | 14 - .../encoding/node_modules/iconv-lite/.npmignore | 6 - .../encoding/node_modules/iconv-lite/.travis.yml | 22 - .../encoding/node_modules/iconv-lite/Changelog.md | 132 - .../encoding/node_modules/iconv-lite/LICENSE | 20 - .../encoding/node_modules/iconv-lite/README.md | 160 - .../iconv-lite/encodings/dbcs-codec.js | 554 - .../node_modules/iconv-lite/encodings/dbcs-data.js | 176 - .../node_modules/iconv-lite/encodings/index.js | 22 - .../node_modules/iconv-lite/encodings/internal.js | 188 - .../iconv-lite/encodings/sbcs-codec.js | 73 - .../iconv-lite/encodings/sbcs-data-generated.js | 451 - .../node_modules/iconv-lite/encodings/sbcs-data.js | 168 - .../iconv-lite/encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../iconv-lite/encodings/tables/gbk-added.json | 55 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../node_modules/iconv-lite/encodings/utf16.js | 175 - .../node_modules/iconv-lite/encodings/utf7.js | 288 - .../node_modules/iconv-lite/lib/bom-handling.js | 51 - .../node_modules/iconv-lite/lib/extend-node.js | 215 - .../node_modules/iconv-lite/lib/index.d.ts | 24 - .../encoding/node_modules/iconv-lite/lib/index.js | 148 - .../node_modules/iconv-lite/lib/streams.js | 120 - .../encoding/node_modules/iconv-lite/package.json | 123 - .../node_modules/encoding/package.json | 53 - .../node_modules/encoding/test/test.js | 75 - .../json-parse-better-errors/CHANGELOG.md | 36 - .../json-parse-better-errors/LICENSE.md | 7 - .../json-parse-better-errors/README.md | 53 - .../node_modules/json-parse-better-errors/index.js | 32 - .../json-parse-better-errors/package.json | 76 - .../node_modules/node-fetch-npm/package.json | 100 - .../node_modules/node-fetch-npm/src/blob.js | 109 - .../node_modules/node-fetch-npm/src/body.js | 411 - .../node_modules/node-fetch-npm/src/common.js | 92 - .../node_modules/node-fetch-npm/src/fetch-error.js | 35 - .../node_modules/node-fetch-npm/src/headers.js | 296 - .../node_modules/node-fetch-npm/src/index.js | 214 - .../node_modules/node-fetch-npm/src/request.js | 174 - .../node_modules/node-fetch-npm/src/response.js | 71 - .../node_modules/socks-proxy-agent/.npmignore | 1 - .../node_modules/socks-proxy-agent/.travis.yml | 22 - .../node_modules/socks-proxy-agent/History.md | 96 - .../node_modules/socks-proxy-agent/README.md | 134 - .../node_modules/socks-proxy-agent/index.js | 141 - .../node_modules/agent-base/.travis.yml | 23 - .../node_modules/agent-base/History.md | 105 - .../node_modules/agent-base/README.md | 136 - .../node_modules/agent-base/index.js | 158 - .../node_modules/es6-promisify/README.md | 89 - .../node_modules/es6-promisify/dist/promise.js | 73 - .../node_modules/es6-promisify/dist/promisify.js | 85 - .../node_modules/es6-promise/CHANGELOG.md | 122 - .../es6-promisify/node_modules/es6-promise/LICENSE | 19 - .../node_modules/es6-promise/README.md | 82 - .../es6-promisify/node_modules/es6-promise/auto.js | 4 - .../es6-promise/dist/es6-promise.auto.js | 1159 -- .../es6-promise/dist/es6-promise.auto.map | 1 - .../es6-promise/dist/es6-promise.auto.min.js | 1 - .../es6-promise/dist/es6-promise.auto.min.map | 1 - .../node_modules/es6-promise/dist/es6-promise.js | 1157 -- .../node_modules/es6-promise/dist/es6-promise.map | 1 - .../es6-promise/dist/es6-promise.min.js | 1 - .../es6-promise/dist/es6-promise.min.map | 1 - .../node_modules/es6-promise/es6-promise.d.ts | 74 - .../es6-promise/lib/es6-promise.auto.js | 3 - .../node_modules/es6-promise/lib/es6-promise.js | 7 - .../es6-promise/lib/es6-promise/-internal.js | 271 - .../es6-promise/lib/es6-promise/asap.js | 120 - .../es6-promise/lib/es6-promise/enumerator.js | 111 - .../es6-promise/lib/es6-promise/polyfill.js | 35 - .../es6-promise/lib/es6-promise/promise.js | 383 - .../es6-promise/lib/es6-promise/promise/all.js | 52 - .../es6-promise/lib/es6-promise/promise/race.js | 84 - .../es6-promise/lib/es6-promise/promise/reject.js | 46 - .../es6-promise/lib/es6-promise/promise/resolve.js | 48 - .../es6-promise/lib/es6-promise/then.js | 32 - .../es6-promise/lib/es6-promise/utils.js | 21 - .../node_modules/es6-promise/package.json | 96 - .../node_modules/es6-promisify/package.json | 72 - .../node_modules/agent-base/package.json | 65 - .../node_modules/agent-base/patch-core.js | 38 - .../agent-base/test/ssl-cert-snakeoil.key | 15 - .../agent-base/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/agent-base/test/test.js | 631 - .../node_modules/socks/.npmignore | 4 - .../socks-proxy-agent/node_modules/socks/LICENSE | 20 - .../socks-proxy-agent/node_modules/socks/README.md | 339 - .../node_modules/socks/examples/associate.js | 33 - .../node_modules/socks/examples/bind.js | 30 - .../node_modules/socks/examples/connect.js | 31 - .../socks-proxy-agent/node_modules/socks/index.js | 6 - .../node_modules/socks/lib/socks-agent.js | 108 - .../node_modules/socks/lib/socks-client.js | 306 - .../node_modules/socks/node_modules/ip/.jscsrc | 46 - .../node_modules/socks/node_modules/ip/.npmignore | 2 - .../node_modules/socks/node_modules/ip/.travis.yml | 15 - .../node_modules/socks/node_modules/ip/README.md | 90 - .../node_modules/socks/node_modules/ip/lib/ip.js | 416 - .../socks/node_modules/ip/package.json | 53 - .../socks/node_modules/ip/test/api-test.js | 407 - .../socks/node_modules/smart-buffer/.npmignore | 5 - .../socks/node_modules/smart-buffer/.travis.yml | 11 - .../socks/node_modules/smart-buffer/LICENSE | 20 - .../socks/node_modules/smart-buffer/README.md | 307 - .../node_modules/smart-buffer/build/smartbuffer.js | 726 -- .../smart-buffer/build/smartbuffer.js.map | 1 - .../node_modules/smart-buffer/lib/smart-buffer.js | 371 - .../socks/node_modules/smart-buffer/package.json | 70 - .../smart-buffer/test/smart-buffer.test.js | 410 - .../node_modules/smart-buffer/typings/index.d.ts | 383 - .../node_modules/socks/package.json | 68 - .../node_modules/socks-proxy-agent/package.json | 66 - .../socks-proxy-agent/test/ssl-cert-snakeoil.key | 15 - .../socks-proxy-agent/test/ssl-cert-snakeoil.pem | 12 - .../node_modules/socks-proxy-agent/test/test.js | 144 - .../node_modules/make-fetch-happen/package.json | 97 - .../node_modules/make-fetch-happen/warning.js | 24 - .../pacote/node_modules/minimatch/LICENSE | 15 - .../pacote/node_modules/minimatch/README.md | 209 - .../pacote/node_modules/minimatch/minimatch.js | 923 -- .../node_modules/brace-expansion/README.md | 123 - .../node_modules/brace-expansion/index.js | 200 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 88 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/brace-expansion/package.json | 75 - .../pacote/node_modules/minimatch/package.json | 63 - .../node_modules/npm-pick-manifest/CHANGELOG.md | 93 - .../node_modules/npm-pick-manifest/LICENSE.md | 16 - .../node_modules/npm-pick-manifest/README.md | 76 - .../pacote/node_modules/npm-pick-manifest/index.js | 79 - .../node_modules/npm-pick-manifest/package.json | 81 - .../node_modules/promise-retry/.editorconfig | 15 - .../pacote/node_modules/promise-retry/.npmignore | 2 - .../pacote/node_modules/promise-retry/.travis.yml | 5 - .../pacote/node_modules/promise-retry/LICENSE | 19 - .../pacote/node_modules/promise-retry/README.md | 92 - .../pacote/node_modules/promise-retry/index.js | 52 - .../node_modules/err-code/.editorconfig | 12 - .../node_modules/err-code/.eslintrc.json | 7 - .../promise-retry/node_modules/err-code/.npmignore | 2 - .../node_modules/err-code/.travis.yml | 5 - .../promise-retry/node_modules/err-code/README.md | 72 - .../promise-retry/node_modules/err-code/bower.json | 30 - .../promise-retry/node_modules/err-code/index.js | 22 - .../node_modules/err-code/index.umd.js | 26 - .../node_modules/err-code/package.json | 64 - .../node_modules/err-code/test/.eslintrc.json | 5 - .../node_modules/err-code/test/test.js | 92 - .../pacote/node_modules/promise-retry/package.json | 68 - .../pacote/node_modules/promise-retry/test/test.js | 263 - .../pacote/node_modules/protoduck/CHANGELOG.md | 38 - .../pacote/node_modules/protoduck/README.md | 346 - .../pacote/node_modules/protoduck/index.js | 349 - .../protoduck/node_modules/genfun/CHANGELOG.md | 36 - .../protoduck/node_modules/genfun/README.md | 223 - .../protoduck/node_modules/genfun/lib/genfun.js | 296 - .../protoduck/node_modules/genfun/lib/method.js | 86 - .../protoduck/node_modules/genfun/lib/role.js | 17 - .../protoduck/node_modules/genfun/lib/util.js | 37 - .../protoduck/node_modules/genfun/package.json | 79 - .../pacote/node_modules/protoduck/package.json | 88 - deps/npm/node_modules/pacote/package.json | 87 +- deps/npm/node_modules/pacote/tarball.js | 108 +- .../npm/node_modules/parallel-transform/.npmignore | 1 + deps/npm/node_modules/parallel-transform/LICENSE | 20 + deps/npm/node_modules/parallel-transform/README.md | 54 + deps/npm/node_modules/parallel-transform/index.js | 105 + .../node_modules/parallel-transform/package.json | 58 + deps/npm/node_modules/path-exists/index.js | 17 + deps/npm/node_modules/path-exists/license | 21 + deps/npm/node_modules/path-exists/package.json | 72 + deps/npm/node_modules/path-exists/readme.md | 50 + deps/npm/node_modules/path-is-absolute/index.js | 20 + deps/npm/node_modules/path-is-absolute/license | 21 + .../npm/node_modules/path-is-absolute/package.json | 75 + deps/npm/node_modules/path-is-absolute/readme.md | 59 + deps/npm/node_modules/path-is-inside/package.json | 34 +- deps/npm/node_modules/path-key/index.js | 13 + deps/npm/node_modules/path-key/license | 21 + deps/npm/node_modules/path-key/package.json | 71 + deps/npm/node_modules/path-key/readme.md | 51 + deps/npm/node_modules/performance-now/.npmignore | 1 + .../node_modules/performance-now/.tm_properties | 7 + deps/npm/node_modules/performance-now/.travis.yml | 6 + deps/npm/node_modules/performance-now/README.md | 30 + .../performance-now/lib/performance-now.js | 36 + .../performance-now/lib/performance-now.js.map | 10 + deps/npm/node_modules/performance-now/license.txt | 7 + deps/npm/node_modules/performance-now/package.json | 65 + .../node_modules/performance-now/src/index.d.ts | 8 + .../performance-now/src/performance-now.coffee | 17 + .../node_modules/performance-now/test/mocha.opts | 3 + .../performance-now/test/performance-now.coffee | 43 + .../performance-now/test/scripts.coffee | 27 + .../test/scripts/delayed-call.coffee | 11 + .../test/scripts/delayed-require.coffee | 12 + .../performance-now/test/scripts/difference.coffee | 6 + .../test/scripts/initial-value.coffee | 10 + deps/npm/node_modules/pify/index.js | 84 + deps/npm/node_modules/pify/license | 9 + deps/npm/node_modules/pify/package.json | 84 + deps/npm/node_modules/pify/readme.md | 131 + deps/npm/node_modules/prepend-http/index.js | 14 + deps/npm/node_modules/prepend-http/license | 21 + deps/npm/node_modules/prepend-http/package.json | 67 + deps/npm/node_modules/prepend-http/readme.md | 31 + .../npm/node_modules/process-nextick-args/index.js | 43 + .../node_modules/process-nextick-args/license.md | 19 + .../node_modules/process-nextick-args/package.json | 50 + .../node_modules/process-nextick-args/readme.md | 18 + .../npm/node_modules/promise-inflight/package.json | 31 +- deps/npm/node_modules/promise-retry/.editorconfig | 15 + deps/npm/node_modules/promise-retry/.npmignore | 2 + deps/npm/node_modules/promise-retry/.travis.yml | 5 + deps/npm/node_modules/promise-retry/LICENSE | 19 + deps/npm/node_modules/promise-retry/README.md | 92 + deps/npm/node_modules/promise-retry/index.js | 52 + .../promise-retry/node_modules/retry/.npmignore | 2 + .../promise-retry/node_modules/retry/License | 21 + .../promise-retry/node_modules/retry/Makefile | 21 + .../promise-retry/node_modules/retry/README.md | 215 + .../promise-retry/node_modules/retry/equation.gif | Bin 0 -> 1209 bytes .../node_modules/retry/example/dns.js | 31 + .../node_modules/retry/example/stop.js | 40 + .../promise-retry/node_modules/retry/index.js | 1 + .../promise-retry/node_modules/retry/lib/retry.js | 99 + .../node_modules/retry/lib/retry_operation.js | 143 + .../promise-retry/node_modules/retry/package.json | 56 + .../node_modules/retry/test/common.js | 10 + .../retry/test/integration/test-forever.js | 24 + .../retry/test/integration/test-retry-operation.js | 176 + .../retry/test/integration/test-retry-wrap.js | 77 + .../retry/test/integration/test-timeouts.js | 69 + .../node_modules/retry/test/runner.js | 5 + deps/npm/node_modules/promise-retry/package.json | 70 + deps/npm/node_modules/promise-retry/test/test.js | 263 + deps/npm/node_modules/promzard/.npmignore | 1 + deps/npm/node_modules/promzard/LICENSE | 15 + deps/npm/node_modules/promzard/README.md | 133 + deps/npm/node_modules/promzard/example/buffer.js | 12 + deps/npm/node_modules/promzard/example/index.js | 11 + .../promzard/example/npm-init/README.md | 8 + .../promzard/example/npm-init/init-input.js | 191 + .../node_modules/promzard/example/npm-init/init.js | 37 + .../promzard/example/npm-init/package.json | 10 + .../promzard/example/substack-input.js | 61 + deps/npm/node_modules/promzard/package.json | 53 + deps/npm/node_modules/promzard/promzard.js | 237 + deps/npm/node_modules/promzard/test/basic.js | 91 + deps/npm/node_modules/promzard/test/buffer.js | 84 + deps/npm/node_modules/promzard/test/exports.input | 5 + deps/npm/node_modules/promzard/test/exports.js | 48 + deps/npm/node_modules/promzard/test/fn.input | 18 + deps/npm/node_modules/promzard/test/fn.js | 56 + deps/npm/node_modules/promzard/test/simple.input | 8 + deps/npm/node_modules/promzard/test/simple.js | 30 + deps/npm/node_modules/promzard/test/validate.input | 8 + deps/npm/node_modules/promzard/test/validate.js | 20 + deps/npm/node_modules/proto-list/LICENSE | 15 + deps/npm/node_modules/proto-list/README.md | 3 + deps/npm/node_modules/proto-list/package.json | 51 + deps/npm/node_modules/proto-list/proto-list.js | 88 + deps/npm/node_modules/proto-list/test/basic.js | 61 + deps/npm/node_modules/protoduck/CHANGELOG.md | 55 + deps/npm/node_modules/protoduck/LICENSE | 20 + deps/npm/node_modules/protoduck/README.md | 346 + deps/npm/node_modules/protoduck/index.js | 349 + deps/npm/node_modules/protoduck/package.json | 89 + deps/npm/node_modules/prr/.npmignore | 1 + deps/npm/node_modules/prr/.travis.yml | 10 + deps/npm/node_modules/prr/LICENSE.md | 11 + deps/npm/node_modules/prr/README.md | 47 + deps/npm/node_modules/prr/package.json | 58 + deps/npm/node_modules/prr/prr.js | 63 + deps/npm/node_modules/prr/test.js | 169 + deps/npm/node_modules/pseudomap/LICENSE | 15 + deps/npm/node_modules/pseudomap/README.md | 60 + deps/npm/node_modules/pseudomap/map.js | 9 + deps/npm/node_modules/pseudomap/package.json | 54 + deps/npm/node_modules/pseudomap/pseudomap.js | 113 + deps/npm/node_modules/pseudomap/test/basic.js | 86 + deps/npm/node_modules/pump/.travis.yml | 5 + deps/npm/node_modules/pump/LICENSE | 21 + deps/npm/node_modules/pump/README.md | 65 + deps/npm/node_modules/pump/index.js | 82 + deps/npm/node_modules/pump/package.json | 59 + deps/npm/node_modules/pump/test-browser.js | 66 + deps/npm/node_modules/pump/test-node.js | 53 + deps/npm/node_modules/pumpify/.travis.yml | 8 + deps/npm/node_modules/pumpify/LICENSE | 21 + deps/npm/node_modules/pumpify/README.md | 56 + deps/npm/node_modules/pumpify/index.js | 60 + .../pumpify/node_modules/pump/.travis.yml | 5 + .../node_modules/pumpify/node_modules/pump/LICENSE | 21 + .../pumpify/node_modules/pump/README.md | 56 + .../pumpify/node_modules/pump/index.js | 82 + .../pumpify/node_modules/pump/package.json | 59 + .../pumpify/node_modules/pump/test-browser.js | 62 + .../pumpify/node_modules/pump/test-node.js | 53 + deps/npm/node_modules/pumpify/package.json | 70 + deps/npm/node_modules/pumpify/test.js | 235 + deps/npm/node_modules/punycode/LICENSE-MIT.txt | 20 + deps/npm/node_modules/punycode/README.md | 176 + deps/npm/node_modules/punycode/package.json | 88 + deps/npm/node_modules/punycode/punycode.js | 533 + deps/npm/node_modules/qrcode-terminal/.npmignore | 2 - deps/npm/node_modules/qrcode-terminal/README.md | 1 + .../qrcode-terminal/bin/qrcode-terminal.js | 65 +- deps/npm/node_modules/qrcode-terminal/package.json | 30 +- deps/npm/node_modules/qs/.editorconfig | 30 + deps/npm/node_modules/qs/.eslintignore | 1 + deps/npm/node_modules/qs/CHANGELOG.md | 226 + deps/npm/node_modules/qs/LICENSE | 28 + deps/npm/node_modules/qs/README.md | 475 + deps/npm/node_modules/qs/dist/qs.js | 638 + deps/npm/node_modules/qs/lib/formats.js | 18 + deps/npm/node_modules/qs/lib/index.js | 11 + deps/npm/node_modules/qs/lib/parse.js | 174 + deps/npm/node_modules/qs/lib/stringify.js | 210 + deps/npm/node_modules/qs/lib/utils.js | 213 + deps/npm/node_modules/qs/package.json | 80 + deps/npm/node_modules/qs/test/index.js | 7 + deps/npm/node_modules/qs/test/parse.js | 574 + deps/npm/node_modules/qs/test/stringify.js | 597 + deps/npm/node_modules/qs/test/utils.js | 34 + deps/npm/node_modules/query-string/index.js | 184 +- .../node_modules/decode-uri-component/index.js | 94 - .../node_modules/decode-uri-component/license | 21 - .../node_modules/decode-uri-component/package.json | 69 - .../node_modules/decode-uri-component/readme.md | 70 - .../node_modules/object-assign/index.js | 90 - .../node_modules/object-assign/license | 21 - .../node_modules/object-assign/package.json | 74 - .../node_modules/object-assign/readme.md | 61 - .../node_modules/strict-uri-encode/index.js | 6 - .../node_modules/strict-uri-encode/license | 21 - .../node_modules/strict-uri-encode/package.json | 62 - .../node_modules/strict-uri-encode/readme.md | 40 - deps/npm/node_modules/query-string/package.json | 45 +- deps/npm/node_modules/query-string/readme.md | 51 +- deps/npm/node_modules/qw/package.json | 22 +- deps/npm/node_modules/rc/LICENSE.APACHE2 | 15 + deps/npm/node_modules/rc/LICENSE.BSD | 26 + deps/npm/node_modules/rc/LICENSE.MIT | 24 + deps/npm/node_modules/rc/README.md | 227 + deps/npm/node_modules/rc/browser.js | 7 + deps/npm/node_modules/rc/cli.js | 4 + deps/npm/node_modules/rc/index.js | 53 + deps/npm/node_modules/rc/lib/utils.js | 102 + .../rc/node_modules/minimist/.travis.yml | 8 + .../node_modules/rc/node_modules/minimist/LICENSE | 18 + .../rc/node_modules/minimist/example/parse.js | 2 + .../node_modules/rc/node_modules/minimist/index.js | 235 + .../rc/node_modules/minimist/package.json | 73 + .../rc/node_modules/minimist/readme.markdown | 91 + .../rc/node_modules/minimist/test/all_bool.js | 32 + .../rc/node_modules/minimist/test/bool.js | 166 + .../rc/node_modules/minimist/test/dash.js | 31 + .../rc/node_modules/minimist/test/default_bool.js | 35 + .../rc/node_modules/minimist/test/dotted.js | 22 + .../rc/node_modules/minimist/test/kv_short.js | 16 + .../rc/node_modules/minimist/test/long.js | 31 + .../rc/node_modules/minimist/test/num.js | 36 + .../rc/node_modules/minimist/test/parse.js | 197 + .../node_modules/minimist/test/parse_modified.js | 9 + .../rc/node_modules/minimist/test/short.js | 67 + .../rc/node_modules/minimist/test/stop_early.js | 15 + .../rc/node_modules/minimist/test/unknown.js | 102 + .../rc/node_modules/minimist/test/whitespace.js | 8 + deps/npm/node_modules/rc/package.json | 65 + deps/npm/node_modules/rc/test/ini.js | 15 + deps/npm/node_modules/rc/test/nested-env-vars.js | 50 + deps/npm/node_modules/rc/test/test.js | 59 + deps/npm/node_modules/read-cmd-shim/package.json | 31 +- .../node_modules/util-extend/LICENSE | 18 - .../node_modules/util-extend/README.md | 13 - .../node_modules/util-extend/extend.js | 33 - .../node_modules/util-extend/package.json | 49 - .../node_modules/util-extend/test.js | 10 - deps/npm/node_modules/read-installed/package.json | 27 +- .../node_modules/read-package-json/CHANGELOG.md | 11 + .../json-parse-better-errors/CHANGELOG.md | 36 - .../json-parse-better-errors/LICENSE.md | 7 - .../json-parse-better-errors/README.md | 53 - .../node_modules/json-parse-better-errors/index.js | 32 - .../json-parse-better-errors/package.json | 76 - .../read-package-json/node_modules/slash/index.js | 11 - .../node_modules/slash/package.json | 65 - .../read-package-json/node_modules/slash/readme.md | 44 - .../node_modules/read-package-json/package.json | 42 +- .../node_modules/read-package-json/read-json.js | 24 +- .../node_modules/read-package-tree/package.json | 28 +- deps/npm/node_modules/read-package-tree/rpt.js | 13 + .../read/node_modules/mute-stream/.travis.yml | 9 - .../read/node_modules/mute-stream/LICENSE | 15 - .../read/node_modules/mute-stream/README.md | 68 - .../coverage/lcov-report/__root__/index.html | 93 - .../coverage/lcov-report/__root__/mute.js.html | 500 - .../mute-stream/coverage/lcov-report/base.css | 212 - .../mute-stream/coverage/lcov-report/index.html | 93 - .../mute-stream/coverage/lcov-report/prettify.css | 1 - .../mute-stream/coverage/lcov-report/prettify.js | 1 - .../coverage/lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../mute-stream/coverage/lcov-report/sorter.js | 158 - .../node_modules/mute-stream/coverage/lcov.info | 155 - .../read/node_modules/mute-stream/mute.js | 145 - .../read/node_modules/mute-stream/package.json | 63 - .../read/node_modules/mute-stream/test/basic.js | 207 - deps/npm/node_modules/read/package.json | 30 +- deps/npm/node_modules/readable-stream/.npmignore | 9 - deps/npm/node_modules/readable-stream/.travis.yml | 14 +- deps/npm/node_modules/readable-stream/README.md | 5 +- .../readable-stream/lib/_stream_duplex.js | 35 +- .../readable-stream/lib/_stream_readable.js | 78 +- .../readable-stream/lib/_stream_transform.js | 68 +- .../readable-stream/lib/_stream_writable.js | 47 +- .../lib/internal/streams/BufferList.js | 13 +- .../lib/internal/streams/destroy.js | 10 +- .../node_modules/core-util-is/LICENSE | 19 - .../node_modules/core-util-is/README.md | 3 - .../node_modules/core-util-is/float.patch | 604 - .../node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 66 - .../node_modules/core-util-is/test.js | 68 - .../node_modules/isarray/.npmignore | 1 - .../node_modules/isarray/.travis.yml | 4 - .../readable-stream/node_modules/isarray/Makefile | 6 - .../readable-stream/node_modules/isarray/README.md | 60 - .../node_modules/isarray/component.json | 19 - .../readable-stream/node_modules/isarray/index.js | 5 - .../node_modules/isarray/package.json | 76 - .../readable-stream/node_modules/isarray/test.js | 20 - .../node_modules/process-nextick-args/.travis.yml | 12 - .../node_modules/process-nextick-args/index.js | 43 - .../node_modules/process-nextick-args/license.md | 19 - .../node_modules/process-nextick-args/package.json | 51 - .../node_modules/process-nextick-args/readme.md | 18 - .../node_modules/process-nextick-args/test.js | 24 - .../node_modules/string_decoder/.npmignore | 2 - .../node_modules/string_decoder/LICENSE | 47 - .../node_modules/string_decoder/README.md | 28 - .../string_decoder/lib/string_decoder.js | 272 - .../node_modules/string_decoder/package.json | 56 - .../node_modules/util-deprecate/History.md | 16 - .../node_modules/util-deprecate/LICENSE | 24 - .../node_modules/util-deprecate/README.md | 53 - .../node_modules/util-deprecate/browser.js | 67 - .../node_modules/util-deprecate/node.js | 6 - .../node_modules/util-deprecate/package.json | 61 - deps/npm/node_modules/readable-stream/package.json | 75 +- .../readdir-scoped-modules/package.json | 28 +- .../node_modules/registry-auth-token/CHANGELOG.md | 106 + deps/npm/node_modules/registry-auth-token/LICENSE | 21 + .../npm/node_modules/registry-auth-token/README.md | 65 + .../npm/node_modules/registry-auth-token/base64.js | 14 + deps/npm/node_modules/registry-auth-token/index.js | 118 + .../node_modules/registry-auth-token/package.json | 74 + .../registry-auth-token/registry-url.js | 5 + .../registry-auth-token/test/auth-token.test.js | 419 + .../registry-auth-token/test/registry-url.test.js | 64 + .../npm/node_modules/registry-auth-token/yarn.lock | 1512 +++ deps/npm/node_modules/registry-url/index.js | 6 + deps/npm/node_modules/registry-url/license | 21 + deps/npm/node_modules/registry-url/package.json | 72 + deps/npm/node_modules/registry-url/readme.md | 50 + deps/npm/node_modules/request/CHANGELOG.md | 34 +- deps/npm/node_modules/request/README.md | 4 +- deps/npm/node_modules/request/lib/oauth.js | 2 +- .../request/node_modules/aws-sign2/LICENSE | 55 - .../request/node_modules/aws-sign2/README.md | 4 - .../request/node_modules/aws-sign2/index.js | 212 - .../request/node_modules/aws-sign2/package.json | 50 - .../request/node_modules/aws4/.npmignore | 4 - .../request/node_modules/aws4/.tern-port | 1 - .../request/node_modules/aws4/.travis.yml | 5 - .../node_modules/request/node_modules/aws4/LICENSE | 19 - .../request/node_modules/aws4/README.md | 523 - .../node_modules/request/node_modules/aws4/aws4.js | 332 - .../node_modules/request/node_modules/aws4/lru.js | 96 - .../request/node_modules/aws4/package.json | 108 - .../request/node_modules/caseless/LICENSE | 28 - .../request/node_modules/caseless/README.md | 45 - .../request/node_modules/caseless/index.js | 67 - .../request/node_modules/caseless/package.json | 60 - .../request/node_modules/caseless/test.js | 67 - .../request/node_modules/combined-stream/License | 19 - .../request/node_modules/combined-stream/Readme.md | 138 - .../combined-stream/lib/combined_stream.js | 188 - .../node_modules/delayed-stream/.npmignore | 1 - .../node_modules/delayed-stream/License | 19 - .../node_modules/delayed-stream/Makefile | 7 - .../node_modules/delayed-stream/Readme.md | 141 - .../delayed-stream/lib/delayed_stream.js | 107 - .../node_modules/delayed-stream/package.json | 65 - .../node_modules/combined-stream/package.json | 61 - .../request/node_modules/extend/.jscs.json | 175 - .../request/node_modules/extend/.npmignore | 1 - .../request/node_modules/extend/.travis.yml | 179 - .../request/node_modules/extend/CHANGELOG.md | 77 - .../request/node_modules/extend/LICENSE | 23 - .../request/node_modules/extend/README.md | 81 - .../request/node_modules/extend/component.json | 32 - .../request/node_modules/extend/index.js | 86 - .../request/node_modules/extend/package.json | 78 - .../request/node_modules/forever-agent/LICENSE | 55 - .../request/node_modules/forever-agent/README.md | 4 - .../request/node_modules/forever-agent/index.js | 138 - .../node_modules/forever-agent/package.json | 52 - .../request/node_modules/form-data/License | 19 - .../request/node_modules/form-data/README.md.bak | 234 - .../request/node_modules/form-data/Readme.md | 234 - .../request/node_modules/form-data/lib/browser.js | 2 - .../node_modules/form-data/lib/form_data.js | 457 - .../request/node_modules/form-data/lib/populate.js | 10 - .../form-data/node_modules/asynckit/LICENSE | 21 - .../form-data/node_modules/asynckit/README.md | 233 - .../form-data/node_modules/asynckit/bench.js | 76 - .../form-data/node_modules/asynckit/index.js | 6 - .../form-data/node_modules/asynckit/lib/abort.js | 29 - .../form-data/node_modules/asynckit/lib/async.js | 34 - .../form-data/node_modules/asynckit/lib/defer.js | 26 - .../form-data/node_modules/asynckit/lib/iterate.js | 75 - .../node_modules/asynckit/lib/readable_asynckit.js | 91 - .../node_modules/asynckit/lib/readable_parallel.js | 25 - .../node_modules/asynckit/lib/readable_serial.js | 25 - .../asynckit/lib/readable_serial_ordered.js | 29 - .../form-data/node_modules/asynckit/lib/state.js | 37 - .../node_modules/asynckit/lib/streamify.js | 141 - .../node_modules/asynckit/lib/terminator.js | 29 - .../form-data/node_modules/asynckit/package.json | 94 - .../form-data/node_modules/asynckit/parallel.js | 43 - .../form-data/node_modules/asynckit/serial.js | 17 - .../node_modules/asynckit/serialOrdered.js | 75 - .../form-data/node_modules/asynckit/stream.js | 21 - .../request/node_modules/form-data/package.json | 98 - .../request/node_modules/har-validator/LICENSE | 13 - .../request/node_modules/har-validator/README.md | 54 - .../node_modules/har-validator/lib/async.js | 98 - .../node_modules/har-validator/lib/error.js | 17 - .../node_modules/har-validator/lib/promise.js | 95 - .../node_modules/ajv/.tonic_example.js | 20 - .../har-validator/node_modules/ajv/LICENSE | 21 - .../har-validator/node_modules/ajv/README.md | 1303 -- .../node_modules/ajv/dist/ajv.bundle.js | 7770 ------------ .../har-validator/node_modules/ajv/dist/ajv.min.js | 3 - .../node_modules/ajv/dist/ajv.min.js.map | 1 - .../node_modules/ajv/dist/nodent.min.js | 2 - .../node_modules/ajv/dist/regenerator.min.js | 2 - .../har-validator/node_modules/ajv/lib/$data.js | 49 - .../har-validator/node_modules/ajv/lib/ajv.d.ts | 296 - .../har-validator/node_modules/ajv/lib/ajv.js | 477 - .../har-validator/node_modules/ajv/lib/cache.js | 26 - .../node_modules/ajv/lib/compile/_rules.js | 31 - .../node_modules/ajv/lib/compile/async.js | 90 - .../node_modules/ajv/lib/compile/equal.js | 3 - .../node_modules/ajv/lib/compile/error_classes.js | 34 - .../node_modules/ajv/lib/compile/formats.js | 135 - .../node_modules/ajv/lib/compile/index.js | 379 - .../node_modules/ajv/lib/compile/resolve.js | 271 - .../node_modules/ajv/lib/compile/rules.js | 58 - .../node_modules/ajv/lib/compile/schema_obj.js | 9 - .../node_modules/ajv/lib/compile/ucs2length.js | 20 - .../node_modules/ajv/lib/compile/util.js | 267 - .../node_modules/ajv/lib/dot/_limit.jst | 96 - .../node_modules/ajv/lib/dot/_limitItems.jst | 10 - .../node_modules/ajv/lib/dot/_limitLength.jst | 10 - .../node_modules/ajv/lib/dot/_limitProperties.jst | 10 - .../node_modules/ajv/lib/dot/allOf.jst | 34 - .../node_modules/ajv/lib/dot/anyOf.jst | 48 - .../node_modules/ajv/lib/dot/coerce.def | 61 - .../node_modules/ajv/lib/dot/const.jst | 11 - .../node_modules/ajv/lib/dot/contains.jst | 57 - .../node_modules/ajv/lib/dot/custom.jst | 191 - .../node_modules/ajv/lib/dot/defaults.def | 32 - .../node_modules/ajv/lib/dot/definitions.def | 199 - .../node_modules/ajv/lib/dot/dependencies.jst | 80 - .../node_modules/ajv/lib/dot/enum.jst | 30 - .../node_modules/ajv/lib/dot/errors.def | 194 - .../node_modules/ajv/lib/dot/format.jst | 106 - .../node_modules/ajv/lib/dot/items.jst | 100 - .../node_modules/ajv/lib/dot/missing.def | 39 - .../node_modules/ajv/lib/dot/multipleOf.jst | 20 - .../har-validator/node_modules/ajv/lib/dot/not.jst | 43 - .../node_modules/ajv/lib/dot/oneOf.jst | 44 - .../node_modules/ajv/lib/dot/pattern.jst | 14 - .../node_modules/ajv/lib/dot/properties.jst | 327 - .../node_modules/ajv/lib/dot/propertyNames.jst | 54 - .../har-validator/node_modules/ajv/lib/dot/ref.jst | 85 - .../node_modules/ajv/lib/dot/required.jst | 108 - .../node_modules/ajv/lib/dot/uniqueItems.jst | 38 - .../node_modules/ajv/lib/dot/validate.jst | 272 - .../node_modules/ajv/lib/dotjs/README.md | 3 - .../node_modules/ajv/lib/dotjs/_limit.js | 149 - .../node_modules/ajv/lib/dotjs/_limitItems.js | 76 - .../node_modules/ajv/lib/dotjs/_limitLength.js | 81 - .../node_modules/ajv/lib/dotjs/_limitProperties.js | 76 - .../node_modules/ajv/lib/dotjs/allOf.js | 43 - .../node_modules/ajv/lib/dotjs/anyOf.js | 73 - .../node_modules/ajv/lib/dotjs/const.js | 55 - .../node_modules/ajv/lib/dotjs/contains.js | 81 - .../node_modules/ajv/lib/dotjs/custom.js | 226 - .../node_modules/ajv/lib/dotjs/dependencies.js | 167 - .../node_modules/ajv/lib/dotjs/enum.js | 65 - .../node_modules/ajv/lib/dotjs/format.js | 149 - .../node_modules/ajv/lib/dotjs/items.js | 140 - .../node_modules/ajv/lib/dotjs/multipleOf.js | 76 - .../node_modules/ajv/lib/dotjs/not.js | 83 - .../node_modules/ajv/lib/dotjs/oneOf.js | 70 - .../node_modules/ajv/lib/dotjs/pattern.js | 74 - .../node_modules/ajv/lib/dotjs/properties.js | 468 - .../node_modules/ajv/lib/dotjs/propertyNames.js | 81 - .../node_modules/ajv/lib/dotjs/ref.js | 123 - .../node_modules/ajv/lib/dotjs/required.js | 268 - .../node_modules/ajv/lib/dotjs/uniqueItems.js | 71 - .../node_modules/ajv/lib/dotjs/validate.js | 458 - .../har-validator/node_modules/ajv/lib/keyword.js | 130 - .../node_modules/ajv/lib/patternGroups.js | 36 - .../node_modules/ajv/lib/refs/$data.json | 17 - .../ajv/lib/refs/json-schema-draft-04.json | 150 - .../ajv/lib/refs/json-schema-draft-06.json | 150 - .../node_modules/ajv/lib/refs/json-schema-v5.json | 250 - .../node_modules/ajv/node_modules/co/History.md | 172 - .../node_modules/ajv/node_modules/co/LICENSE | 22 - .../node_modules/ajv/node_modules/co/Readme.md | 212 - .../node_modules/ajv/node_modules/co/index.js | 237 - .../node_modules/ajv/node_modules/co/package.json | 70 - .../ajv/node_modules/fast-deep-equal/.eslintrc.yml | 25 - .../ajv/node_modules/fast-deep-equal/.npmignore | 60 - .../ajv/node_modules/fast-deep-equal/.travis.yml | 8 - .../ajv/node_modules/fast-deep-equal/LICENSE | 21 - .../ajv/node_modules/fast-deep-equal/README.md | 55 - .../fast-deep-equal/benchmark/.eslintrc.yml | 5 - .../fast-deep-equal/benchmark/index.js | 56 - .../ajv/node_modules/fast-deep-equal/index.js | 43 - .../ajv/node_modules/fast-deep-equal/package.json | 78 - .../fast-deep-equal/spec/.eslintrc.yml | 5 - .../fast-deep-equal/spec/index.spec.js | 18 - .../ajv/node_modules/fast-deep-equal/spec/tests.js | 320 - .../json-schema-traverse/.eslintrc.yml | 27 - .../node_modules/json-schema-traverse/.npmignore | 60 - .../node_modules/json-schema-traverse/.travis.yml | 8 - .../ajv/node_modules/json-schema-traverse/LICENSE | 21 - .../node_modules/json-schema-traverse/README.md | 69 - .../ajv/node_modules/json-schema-traverse/index.js | 81 - .../node_modules/json-schema-traverse/package.json | 70 - .../json-schema-traverse/spec/.eslintrc.yml | 6 - .../json-schema-traverse/spec/fixtures/schema.js | 125 - .../json-schema-traverse/spec/index.spec.js | 102 - .../node_modules/json-stable-stringify/.npmignore | 1 - .../node_modules/json-stable-stringify/.travis.yml | 4 - .../ajv/node_modules/json-stable-stringify/LICENSE | 18 - .../json-stable-stringify/example/key_cmp.js | 7 - .../json-stable-stringify/example/nested.js | 3 - .../json-stable-stringify/example/str.js | 3 - .../json-stable-stringify/example/value_cmp.js | 7 - .../node_modules/json-stable-stringify/index.js | 84 - .../node_modules/jsonify/README.markdown | 34 - .../node_modules/jsonify/index.js | 2 - .../node_modules/jsonify/lib/parse.js | 273 - .../node_modules/jsonify/lib/stringify.js | 154 - .../node_modules/jsonify/package.json | 66 - .../node_modules/jsonify/test/parse.js | 16 - .../node_modules/jsonify/test/stringify.js | 15 - .../json-stable-stringify/package.json | 77 - .../json-stable-stringify/readme.markdown | 130 - .../node_modules/json-stable-stringify/test/cmp.js | 11 - .../json-stable-stringify/test/nested.js | 35 - .../json-stable-stringify/test/replacer.js | 74 - .../json-stable-stringify/test/space.js | 59 - .../node_modules/json-stable-stringify/test/str.js | 32 - .../json-stable-stringify/test/to-json.js | 20 - .../har-validator/node_modules/ajv/package.json | 130 - .../node_modules/ajv/scripts/.eslintrc.yml | 3 - .../node_modules/ajv/scripts/bundle.js | 61 - .../node_modules/ajv/scripts/compile-dots.js | 73 - .../har-validator/node_modules/ajv/scripts/info | 10 - .../node_modules/ajv/scripts/prepare-tests | 9 - .../node_modules/ajv/scripts/travis-gh-pages | 23 - .../har-validator/node_modules/har-schema/LICENSE | 13 - .../node_modules/har-schema/README.md | 49 - .../node_modules/har-schema/lib/afterRequest.json | 30 - .../node_modules/har-schema/lib/beforeRequest.json | 30 - .../node_modules/har-schema/lib/browser.json | 20 - .../node_modules/har-schema/lib/cache.json | 21 - .../node_modules/har-schema/lib/content.json | 29 - .../node_modules/har-schema/lib/cookie.json | 36 - .../node_modules/har-schema/lib/creator.json | 20 - .../node_modules/har-schema/lib/entry.json | 53 - .../node_modules/har-schema/lib/har.json | 13 - .../node_modules/har-schema/lib/header.json | 20 - .../node_modules/har-schema/lib/index.js | 22 - .../node_modules/har-schema/lib/log.json | 36 - .../node_modules/har-schema/lib/page.json | 32 - .../node_modules/har-schema/lib/pageTimings.json | 18 - .../node_modules/har-schema/lib/postData.json | 43 - .../node_modules/har-schema/lib/query.json | 20 - .../node_modules/har-schema/lib/request.json | 57 - .../node_modules/har-schema/lib/response.json | 54 - .../node_modules/har-schema/lib/timings.json | 42 - .../node_modules/har-schema/package.json | 86 - .../node_modules/har-validator/package.json | 75 - .../request/node_modules/hawk/.npmignore | 5 - .../node_modules/request/node_modules/hawk/LICENSE | 28 - .../request/node_modules/hawk/README.md | 637 - .../request/node_modules/hawk/client.js | 3 - .../request/node_modules/hawk/dist/browser.js | 793 -- .../request/node_modules/hawk/lib/browser.js | 653 - .../request/node_modules/hawk/lib/client.js | 391 - .../request/node_modules/hawk/lib/crypto.js | 128 - .../request/node_modules/hawk/lib/index.js | 16 - .../request/node_modules/hawk/lib/server.js | 550 - .../request/node_modules/hawk/lib/utils.js | 185 - .../node_modules/hawk/node_modules/boom/LICENSE | 29 - .../node_modules/hawk/node_modules/boom/README.md | 760 -- .../hawk/node_modules/boom/lib/index.js | 433 - .../hawk/node_modules/boom/package.json | 61 - .../hawk/node_modules/cryptiles/.npmignore | 3 - .../hawk/node_modules/cryptiles/LICENSE | 28 - .../hawk/node_modules/cryptiles/README.md | 19 - .../hawk/node_modules/cryptiles/lib/index.js | 88 - .../cryptiles/node_modules/boom/LICENSE | 29 - .../cryptiles/node_modules/boom/README.md | 784 -- .../cryptiles/node_modules/boom/lib/index.js | 457 - .../cryptiles/node_modules/boom/package.json | 61 - .../hawk/node_modules/cryptiles/package.json | 61 - .../node_modules/hawk/node_modules/hoek/.npmignore | 3 - .../node_modules/hawk/node_modules/hoek/LICENSE | 32 - .../node_modules/hawk/node_modules/hoek/README.md | 30 - .../hawk/node_modules/hoek/lib/escape.js | 168 - .../hawk/node_modules/hoek/lib/index.js | 974 -- .../hawk/node_modules/hoek/package.json | 58 - .../node_modules/hawk/node_modules/sntp/.npmignore | 3 - .../node_modules/hawk/node_modules/sntp/LICENSE | 28 - .../node_modules/hawk/node_modules/sntp/README.md | 68 - .../hawk/node_modules/sntp/lib/index.js | 396 - .../hawk/node_modules/sntp/package.json | 64 - .../request/node_modules/hawk/package.json | 78 - .../node_modules/http-signature/.dir-locals.el | 6 - .../request/node_modules/http-signature/.npmignore | 7 - .../request/node_modules/http-signature/CHANGES.md | 46 - .../request/node_modules/http-signature/LICENSE | 18 - .../request/node_modules/http-signature/README.md | 79 - .../node_modules/http-signature/http_signing.md | 363 - .../node_modules/http-signature/lib/index.js | 29 - .../node_modules/http-signature/lib/parser.js | 315 - .../node_modules/http-signature/lib/signer.js | 401 - .../node_modules/http-signature/lib/utils.js | 112 - .../node_modules/http-signature/lib/verify.js | 88 - .../node_modules/assert-plus/AUTHORS | 6 - .../node_modules/assert-plus/CHANGES.md | 14 - .../node_modules/assert-plus/README.md | 162 - .../node_modules/assert-plus/assert.js | 211 - .../node_modules/assert-plus/package.json | 87 - .../http-signature/node_modules/jsprim/CHANGES.md | 49 - .../node_modules/jsprim/CONTRIBUTING.md | 19 - .../http-signature/node_modules/jsprim/LICENSE | 19 - .../http-signature/node_modules/jsprim/README.md | 287 - .../node_modules/jsprim/lib/jsprim.js | 735 -- .../jsprim/node_modules/extsprintf/.gitmodules | 0 .../jsprim/node_modules/extsprintf/.npmignore | 2 - .../jsprim/node_modules/extsprintf/LICENSE | 19 - .../jsprim/node_modules/extsprintf/Makefile | 24 - .../jsprim/node_modules/extsprintf/Makefile.targ | 285 - .../jsprim/node_modules/extsprintf/README.md | 46 - .../jsprim/node_modules/extsprintf/jsl.node.conf | 137 - .../node_modules/extsprintf/lib/extsprintf.js | 183 - .../jsprim/node_modules/extsprintf/package.json | 44 - .../jsprim/node_modules/json-schema/README.md | 5 - .../node_modules/json-schema/draft-00/hyper-schema | 68 - .../node_modules/json-schema/draft-00/json-ref | 26 - .../jsprim/node_modules/json-schema/draft-00/links | 33 - .../node_modules/json-schema/draft-00/schema | 155 - .../node_modules/json-schema/draft-01/hyper-schema | 68 - .../node_modules/json-schema/draft-01/json-ref | 26 - .../jsprim/node_modules/json-schema/draft-01/links | 33 - .../node_modules/json-schema/draft-01/schema | 155 - .../node_modules/json-schema/draft-02/hyper-schema | 68 - .../node_modules/json-schema/draft-02/json-ref | 26 - .../jsprim/node_modules/json-schema/draft-02/links | 35 - .../node_modules/json-schema/draft-02/schema | 166 - .../json-schema/draft-03/examples/address | 20 - .../json-schema/draft-03/examples/calendar | 49 - .../json-schema/draft-03/examples/card | 105 - .../node_modules/json-schema/draft-03/examples/geo | 8 - .../json-schema/draft-03/examples/interfaces | 23 - .../node_modules/json-schema/draft-03/hyper-schema | 60 - .../node_modules/json-schema/draft-03/json-ref | 26 - .../jsprim/node_modules/json-schema/draft-03/links | 35 - .../node_modules/json-schema/draft-03/schema | 174 - .../node_modules/json-schema/draft-04/hyper-schema | 60 - .../jsprim/node_modules/json-schema/draft-04/links | 41 - .../node_modules/json-schema/draft-04/schema | 189 - .../json-schema/draft-zyp-json-schema-03.xml | 1120 -- .../json-schema/draft-zyp-json-schema-04.xml | 1072 -- .../jsprim/node_modules/json-schema/lib/links.js | 66 - .../node_modules/json-schema/lib/validate.js | 273 - .../jsprim/node_modules/json-schema/package.json | 75 - .../jsprim/node_modules/json-schema/test/tests.js | 95 - .../jsprim/node_modules/verror/.npmignore | 9 - .../jsprim/node_modules/verror/CHANGES.md | 28 - .../jsprim/node_modules/verror/CONTRIBUTING.md | 19 - .../jsprim/node_modules/verror/LICENSE | 19 - .../jsprim/node_modules/verror/README.md | 528 - .../jsprim/node_modules/verror/lib/verror.js | 451 - .../verror/node_modules/core-util-is/LICENSE | 19 - .../verror/node_modules/core-util-is/README.md | 3 - .../verror/node_modules/core-util-is/float.patch | 604 - .../verror/node_modules/core-util-is/lib/util.js | 107 - .../verror/node_modules/core-util-is/package.json | 62 - .../verror/node_modules/core-util-is/test.js | 68 - .../jsprim/node_modules/verror/package.json | 51 - .../node_modules/jsprim/package.json | 51 - .../http-signature/node_modules/sshpk/.npmignore | 9 - .../http-signature/node_modules/sshpk/.travis.yml | 11 - .../http-signature/node_modules/sshpk/LICENSE | 18 - .../http-signature/node_modules/sshpk/README.md | 698 -- .../node_modules/sshpk/bin/sshpk-conv | 201 - .../node_modules/sshpk/bin/sshpk-sign | 191 - .../node_modules/sshpk/bin/sshpk-verify | 166 - .../http-signature/node_modules/sshpk/lib/algs.js | 168 - .../node_modules/sshpk/lib/certificate.js | 377 - .../http-signature/node_modules/sshpk/lib/dhe.js | 411 - .../node_modules/sshpk/lib/ed-compat.js | 96 - .../node_modules/sshpk/lib/errors.js | 84 - .../node_modules/sshpk/lib/fingerprint.js | 161 - .../node_modules/sshpk/lib/formats/auto.js | 73 - .../node_modules/sshpk/lib/formats/openssh-cert.js | 322 - .../node_modules/sshpk/lib/formats/pem.js | 186 - .../node_modules/sshpk/lib/formats/pkcs1.js | 320 - .../node_modules/sshpk/lib/formats/pkcs8.js | 505 - .../node_modules/sshpk/lib/formats/rfc4253.js | 146 - .../node_modules/sshpk/lib/formats/ssh-private.js | 261 - .../node_modules/sshpk/lib/formats/ssh.js | 114 - .../node_modules/sshpk/lib/formats/x509-pem.js | 77 - .../node_modules/sshpk/lib/formats/x509.js | 726 -- .../node_modules/sshpk/lib/identity.js | 277 - .../http-signature/node_modules/sshpk/lib/index.js | 39 - .../http-signature/node_modules/sshpk/lib/key.js | 274 - .../node_modules/sshpk/lib/private-key.js | 254 - .../node_modules/sshpk/lib/signature.js | 313 - .../node_modules/sshpk/lib/ssh-buffer.js | 148 - .../http-signature/node_modules/sshpk/lib/utils.js | 288 - .../node_modules/sshpk/man/man1/sshpk-conv.1 | 135 - .../node_modules/sshpk/man/man1/sshpk-sign.1 | 81 - .../node_modules/sshpk/man/man1/sshpk-verify.1 | 68 - .../sshpk/node_modules/asn1/.npmignore | 2 - .../sshpk/node_modules/asn1/.travis.yml | 4 - .../node_modules/sshpk/node_modules/asn1/LICENSE | 19 - .../node_modules/sshpk/node_modules/asn1/README.md | 50 - .../sshpk/node_modules/asn1/lib/ber/errors.js | 13 - .../sshpk/node_modules/asn1/lib/ber/index.js | 27 - .../sshpk/node_modules/asn1/lib/ber/reader.js | 261 - .../sshpk/node_modules/asn1/lib/ber/types.js | 36 - .../sshpk/node_modules/asn1/lib/ber/writer.js | 316 - .../sshpk/node_modules/asn1/lib/index.js | 20 - .../sshpk/node_modules/asn1/package.json | 68 - .../sshpk/node_modules/asn1/tst/ber/reader.test.js | 208 - .../sshpk/node_modules/asn1/tst/ber/writer.test.js | 370 - .../sshpk/node_modules/bcrypt-pbkdf/README.md | 39 - .../sshpk/node_modules/bcrypt-pbkdf/index.js | 556 - .../sshpk/node_modules/bcrypt-pbkdf/package.json | 39 - .../sshpk/node_modules/dashdash/CHANGES.md | 364 - .../sshpk/node_modules/dashdash/LICENSE.txt | 23 - .../sshpk/node_modules/dashdash/README.md | 574 - .../dashdash/etc/dashdash.bash_completion.in | 389 - .../sshpk/node_modules/dashdash/lib/dashdash.js | 1055 -- .../sshpk/node_modules/dashdash/package.json | 70 - .../sshpk/node_modules/ecc-jsbn/.npmignore | 15 - .../sshpk/node_modules/ecc-jsbn/LICENSE | 21 - .../sshpk/node_modules/ecc-jsbn/README.md | 8 - .../sshpk/node_modules/ecc-jsbn/index.js | 57 - .../sshpk/node_modules/ecc-jsbn/lib/LICENSE-jsbn | 40 - .../sshpk/node_modules/ecc-jsbn/lib/ec.js | 561 - .../sshpk/node_modules/ecc-jsbn/lib/sec.js | 170 - .../sshpk/node_modules/ecc-jsbn/package.json | 68 - .../sshpk/node_modules/ecc-jsbn/test.js | 14 - .../sshpk/node_modules/getpass/.npmignore | 8 - .../sshpk/node_modules/getpass/.travis.yml | 9 - .../sshpk/node_modules/getpass/LICENSE | 18 - .../sshpk/node_modules/getpass/README.md | 32 - .../sshpk/node_modules/getpass/lib/index.js | 123 - .../sshpk/node_modules/getpass/package.json | 54 - .../sshpk/node_modules/jsbn/.npmignore | 2 - .../node_modules/sshpk/node_modules/jsbn/LICENSE | 40 - .../node_modules/sshpk/node_modules/jsbn/README.md | 175 - .../sshpk/node_modules/jsbn/example.html | 12 - .../sshpk/node_modules/jsbn/example.js | 3 - .../node_modules/sshpk/node_modules/jsbn/index.js | 1357 -- .../sshpk/node_modules/jsbn/package.json | 59 - .../sshpk/node_modules/tweetnacl/.npmignore | 4 - .../sshpk/node_modules/tweetnacl/AUTHORS.md | 28 - .../sshpk/node_modules/tweetnacl/CHANGELOG.md | 221 - .../sshpk/node_modules/tweetnacl/LICENSE | 24 - .../tweetnacl/PULL_REQUEST_TEMPLATE.md | 20 - .../sshpk/node_modules/tweetnacl/README.md | 459 - .../sshpk/node_modules/tweetnacl/nacl-fast.js | 2388 ---- .../sshpk/node_modules/tweetnacl/nacl-fast.min.js | 2 - .../sshpk/node_modules/tweetnacl/nacl.d.ts | 98 - .../sshpk/node_modules/tweetnacl/nacl.js | 1175 -- .../sshpk/node_modules/tweetnacl/nacl.min.js | 1 - .../sshpk/node_modules/tweetnacl/package.json | 90 - .../http-signature/node_modules/sshpk/package.json | 100 - .../node_modules/http-signature/package.json | 77 - .../request/node_modules/is-typedarray/LICENSE.md | 18 - .../request/node_modules/is-typedarray/README.md | 16 - .../request/node_modules/is-typedarray/index.js | 41 - .../node_modules/is-typedarray/package.json | 62 - .../request/node_modules/is-typedarray/test.js | 34 - .../request/node_modules/isstream/.npmignore | 1 - .../request/node_modules/isstream/.travis.yml | 12 - .../request/node_modules/isstream/LICENSE.md | 11 - .../request/node_modules/isstream/README.md | 66 - .../request/node_modules/isstream/isstream.js | 27 - .../request/node_modules/isstream/package.json | 65 - .../request/node_modules/isstream/test.js | 168 - .../node_modules/json-stringify-safe/.npmignore | 1 - .../node_modules/json-stringify-safe/CHANGELOG.md | 14 - .../node_modules/json-stringify-safe/LICENSE | 15 - .../node_modules/json-stringify-safe/Makefile | 35 - .../node_modules/json-stringify-safe/README.md | 52 - .../node_modules/json-stringify-safe/package.json | 70 - .../node_modules/json-stringify-safe/stringify.js | 27 - .../json-stringify-safe/test/mocha.opts | 2 - .../json-stringify-safe/test/stringify_test.js | 246 - .../request/node_modules/mime-types/HISTORY.md | 247 - .../request/node_modules/mime-types/LICENSE | 23 - .../request/node_modules/mime-types/README.md | 108 - .../request/node_modules/mime-types/index.js | 188 - .../mime-types/node_modules/mime-db/HISTORY.md | 343 - .../mime-types/node_modules/mime-db/LICENSE | 22 - .../mime-types/node_modules/mime-db/README.md | 94 - .../mime-types/node_modules/mime-db/db.json | 6966 ----------- .../mime-types/node_modules/mime-db/index.js | 11 - .../mime-types/node_modules/mime-db/package.json | 100 - .../request/node_modules/mime-types/package.json | 87 - .../request/node_modules/oauth-sign/LICENSE | 55 - .../request/node_modules/oauth-sign/README.md | 4 - .../request/node_modules/oauth-sign/index.js | 136 - .../request/node_modules/oauth-sign/package.json | 58 - .../node_modules/performance-now/.npmignore | 1 - .../node_modules/performance-now/.tm_properties | 7 - .../node_modules/performance-now/.travis.yml | 6 - .../request/node_modules/performance-now/README.md | 30 - .../performance-now/lib/performance-now.js | 36 - .../performance-now/lib/performance-now.js.map | 10 - .../node_modules/performance-now/license.txt | 7 - .../node_modules/performance-now/package.json | 65 - .../node_modules/performance-now/src/index.d.ts | 8 - .../performance-now/src/performance-now.coffee | 17 - .../node_modules/performance-now/test/mocha.opts | 3 - .../performance-now/test/performance-now.coffee | 43 - .../performance-now/test/scripts.coffee | 27 - .../test/scripts/delayed-call.coffee | 11 - .../test/scripts/delayed-require.coffee | 12 - .../performance-now/test/scripts/difference.coffee | 6 - .../test/scripts/initial-value.coffee | 10 - .../request/node_modules/qs/.editorconfig | 30 - .../request/node_modules/qs/.eslintignore | 1 - .../request/node_modules/qs/CHANGELOG.md | 221 - .../node_modules/request/node_modules/qs/LICENSE | 28 - .../node_modules/request/node_modules/qs/README.md | 475 - .../request/node_modules/qs/dist/qs.js | 627 - .../request/node_modules/qs/lib/formats.js | 18 - .../request/node_modules/qs/lib/index.js | 11 - .../request/node_modules/qs/lib/parse.js | 174 - .../request/node_modules/qs/lib/stringify.js | 210 - .../request/node_modules/qs/lib/utils.js | 202 - .../request/node_modules/qs/package.json | 79 - .../request/node_modules/qs/test/index.js | 7 - .../request/node_modules/qs/test/parse.js | 573 - .../request/node_modules/qs/test/stringify.js | 596 - .../request/node_modules/qs/test/utils.js | 34 - .../request/node_modules/stringstream/.npmignore | 15 - .../request/node_modules/stringstream/.travis.yml | 4 - .../request/node_modules/stringstream/LICENSE.txt | 22 - .../request/node_modules/stringstream/README.md | 38 - .../request/node_modules/stringstream/example.js | 27 - .../request/node_modules/stringstream/package.json | 56 - .../node_modules/stringstream/stringstream.js | 102 - .../request/node_modules/tough-cookie/LICENSE | 27 - .../request/node_modules/tough-cookie/README.md | 509 - .../node_modules/tough-cookie/lib/cookie.js | 1341 -- .../node_modules/tough-cookie/lib/memstore.js | 170 - .../node_modules/tough-cookie/lib/pathMatch.js | 61 - .../node_modules/tough-cookie/lib/permuteDomain.js | 56 - .../node_modules/tough-cookie/lib/pubsuffix.js | 98 - .../request/node_modules/tough-cookie/lib/store.js | 71 - .../node_modules/punycode/LICENSE-MIT.txt | 20 - .../tough-cookie/node_modules/punycode/README.md | 176 - .../node_modules/punycode/package.json | 91 - .../tough-cookie/node_modules/punycode/punycode.js | 533 - .../request/node_modules/tough-cookie/package.json | 92 - .../request/node_modules/tunnel-agent/LICENSE | 55 - .../request/node_modules/tunnel-agent/README.md | 4 - .../request/node_modules/tunnel-agent/index.js | 244 - .../request/node_modules/tunnel-agent/package.json | 57 - deps/npm/node_modules/request/package.json | 41 +- deps/npm/node_modules/request/request.js | 8 +- deps/npm/node_modules/require-directory/.npmignore | 1 + .../npm/node_modules/require-directory/.travis.yml | 3 + deps/npm/node_modules/require-directory/LICENSE | 22 + .../node_modules/require-directory/README.markdown | 183 + deps/npm/node_modules/require-directory/index.js | 86 + .../node_modules/require-directory/package.json | 69 + .../node_modules/require-main-filename/.npmignore | 3 + .../node_modules/require-main-filename/.travis.yml | 8 + .../node_modules/require-main-filename/LICENSE.txt | 14 + .../node_modules/require-main-filename/README.md | 26 + .../node_modules/require-main-filename/index.js | 18 + .../require-main-filename/package.json | 58 + .../npm/node_modules/require-main-filename/test.js | 36 + deps/npm/node_modules/resolve-from/index.js | 47 + deps/npm/node_modules/resolve-from/license | 9 + deps/npm/node_modules/resolve-from/package.json | 66 + deps/npm/node_modules/resolve-from/readme.md | 72 + deps/npm/node_modules/retry/.npmignore | 1 + deps/npm/node_modules/retry/.travis.yml | 15 + deps/npm/node_modules/retry/Makefile | 6 +- deps/npm/node_modules/retry/Readme.md | 20 +- deps/npm/node_modules/retry/lib/retry.js | 9 +- deps/npm/node_modules/retry/lib/retry_operation.js | 17 +- deps/npm/node_modules/retry/package.json | 52 +- .../retry/test/integration/test-retry-operation.js | 86 +- .../retry/test/integration/test-retry-wrap.js | 48 +- deps/npm/node_modules/retry/test/runner.js | 5 - deps/npm/node_modules/rimraf/package.json | 25 +- deps/npm/node_modules/run-queue/README.md | 86 + deps/npm/node_modules/run-queue/package.json | 63 + deps/npm/node_modules/run-queue/queue.js | 95 + deps/npm/node_modules/safe-buffer/.travis.yml | 7 - deps/npm/node_modules/safe-buffer/index.d.ts | 187 + deps/npm/node_modules/safe-buffer/package.json | 51 +- deps/npm/node_modules/safe-buffer/test.js | 101 - deps/npm/node_modules/safer-buffer/LICENSE | 21 + .../node_modules/safer-buffer/Porting-Buffer.md | 268 + deps/npm/node_modules/safer-buffer/Readme.md | 156 + deps/npm/node_modules/safer-buffer/dangerous.js | 58 + deps/npm/node_modules/safer-buffer/package.json | 60 + deps/npm/node_modules/safer-buffer/safer.js | 77 + deps/npm/node_modules/safer-buffer/tests.js | 406 + deps/npm/node_modules/semver-diff/index.js | 27 + deps/npm/node_modules/semver-diff/license | 21 + deps/npm/node_modules/semver-diff/package.json | 66 + deps/npm/node_modules/semver-diff/readme.md | 52 + deps/npm/node_modules/semver/README.md | 22 + deps/npm/node_modules/semver/bin/semver | 14 +- deps/npm/node_modules/semver/package.json | 41 +- deps/npm/node_modules/semver/range.bnf | 4 +- deps/npm/node_modules/semver/semver.js | 28 + deps/npm/node_modules/set-blocking/CHANGELOG.md | 26 + deps/npm/node_modules/set-blocking/LICENSE.txt | 14 + deps/npm/node_modules/set-blocking/README.md | 31 + deps/npm/node_modules/set-blocking/index.js | 7 + deps/npm/node_modules/set-blocking/package.json | 71 + deps/npm/node_modules/sha/package.json | 28 +- deps/npm/node_modules/shebang-command/index.js | 19 + deps/npm/node_modules/shebang-command/license | 21 + deps/npm/node_modules/shebang-command/package.json | 71 + deps/npm/node_modules/shebang-command/readme.md | 39 + deps/npm/node_modules/shebang-regex/index.js | 2 + deps/npm/node_modules/shebang-regex/license | 21 + deps/npm/node_modules/shebang-regex/package.json | 64 + deps/npm/node_modules/shebang-regex/readme.md | 29 + deps/npm/node_modules/signal-exit/CHANGELOG.md | 27 + deps/npm/node_modules/signal-exit/LICENSE.txt | 16 + deps/npm/node_modules/signal-exit/README.md | 40 + deps/npm/node_modules/signal-exit/index.js | 157 + deps/npm/node_modules/signal-exit/package.json | 72 + deps/npm/node_modules/signal-exit/signals.js | 53 + deps/npm/node_modules/slash/index.js | 11 + deps/npm/node_modules/slash/package.json | 65 + deps/npm/node_modules/slash/readme.md | 44 + deps/npm/node_modules/slide/package.json | 33 +- deps/npm/node_modules/smart-buffer/.travis.yml | 12 + deps/npm/node_modules/smart-buffer/LICENSE | 20 + deps/npm/node_modules/smart-buffer/README.md | 632 + .../node_modules/smart-buffer/build/smartbuffer.js | 1095 ++ .../smart-buffer/build/smartbuffer.js.map | 1 + deps/npm/node_modules/smart-buffer/build/utils.js | 95 + .../node_modules/smart-buffer/build/utils.js.map | 1 + .../node_modules/smart-buffer/docs/CHANGELOG.md | 65 + .../node_modules/smart-buffer/docs/README_v3.md | 359 + deps/npm/node_modules/smart-buffer/docs/ROADMAP.md | 0 deps/npm/node_modules/smart-buffer/package.json | 104 + .../smart-buffer/typings/smartbuffer.d.ts | 654 + .../node_modules/smart-buffer/typings/utils.d.ts | 51 + deps/npm/node_modules/smart-buffer/yarn.lock | 1849 +++ deps/npm/node_modules/sntp/.npmignore | 3 + deps/npm/node_modules/sntp/LICENSE | 28 + deps/npm/node_modules/sntp/README.md | 67 + deps/npm/node_modules/sntp/lib/index.js | 412 + deps/npm/node_modules/sntp/package.json | 64 + .../npm/node_modules/socks-proxy-agent/.travis.yml | 21 + deps/npm/node_modules/socks-proxy-agent/History.md | 96 + deps/npm/node_modules/socks-proxy-agent/README.md | 134 + deps/npm/node_modules/socks-proxy-agent/index.js | 145 + .../node_modules/socks-proxy-agent/package.json | 69 + .../socks-proxy-agent/test/ssl-cert-snakeoil.key | 15 + .../socks-proxy-agent/test/ssl-cert-snakeoil.pem | 12 + .../node_modules/socks-proxy-agent/test/test.js | 144 + deps/npm/node_modules/socks/.prettierrc.yaml | 5 + deps/npm/node_modules/socks/.travis.yml | 10 + deps/npm/node_modules/socks/LICENSE | 20 + deps/npm/node_modules/socks/README.md | 668 + .../node_modules/socks/build/client/socksclient.js | 702 ++ .../socks/build/client/socksclient.js.map | 1 + .../node_modules/socks/build/common/constants.js | 105 + .../socks/build/common/constants.js.map | 1 + .../npm/node_modules/socks/build/common/helpers.js | 101 + .../node_modules/socks/build/common/helpers.js.map | 1 + .../socks/build/common/receivebuffer.js | 42 + .../socks/build/common/receivebuffer.js.map | 1 + deps/npm/node_modules/socks/build/common/util.js | 24 + .../node_modules/socks/build/common/util.js.map | 1 + deps/npm/node_modules/socks/build/index.js | 7 + deps/npm/node_modules/socks/build/index.js.map | 1 + deps/npm/node_modules/socks/docs/examples/index.md | 17 + .../docs/examples/javascript/associateExample.md | 90 + .../socks/docs/examples/javascript/bindExample.md | 83 + .../docs/examples/javascript/connectExample.md | 258 + .../docs/examples/typescript/associateExample.md | 93 + .../socks/docs/examples/typescript/bindExample.md | 86 + .../docs/examples/typescript/connectExample.md | 265 + deps/npm/node_modules/socks/docs/index.md | 5 + .../npm/node_modules/socks/docs/migratingFromV1.md | 86 + deps/npm/node_modules/socks/package.json | 108 + .../socks/typings/client/socksclient.d.ts | 157 + .../socks/typings/common/constants.d.ts | 137 + .../node_modules/socks/typings/common/helpers.d.ts | 13 + .../socks/typings/common/receiveBuffer.d.ts | 12 + .../node_modules/socks/typings/common/util.d.ts | 14 + deps/npm/node_modules/socks/typings/index.d.ts | 1 + deps/npm/node_modules/socks/yarn-error.log | 2416 ++++ deps/npm/node_modules/socks/yarn.lock | 2300 ++++ deps/npm/node_modules/sorted-object/package.json | 29 +- .../from2/node_modules/readable-stream/.npmignore | 5 - .../from2/node_modules/readable-stream/LICENSE | 18 - .../from2/node_modules/readable-stream/README.md | 14 - .../from2/node_modules/readable-stream/duplex.js | 1 - .../from2/node_modules/readable-stream/float.patch | 922 -- .../readable-stream/lib/_stream_duplex.js | 89 - .../readable-stream/lib/_stream_passthrough.js | 46 - .../readable-stream/lib/_stream_readable.js | 951 -- .../readable-stream/lib/_stream_transform.js | 209 - .../readable-stream/lib/_stream_writable.js | 477 - .../node_modules/core-util-is/LICENSE | 19 - .../node_modules/core-util-is/README.md | 3 - .../node_modules/core-util-is/float.patch | 604 - .../node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 66 - .../node_modules/core-util-is/test.js | 68 - .../readable-stream/node_modules/isarray/README.md | 54 - .../node_modules/isarray/build/build.js | 208 - .../node_modules/isarray/component.json | 19 - .../readable-stream/node_modules/isarray/index.js | 3 - .../node_modules/isarray/package.json | 60 - .../node_modules/string_decoder/.npmignore | 2 - .../node_modules/string_decoder/LICENSE | 20 - .../node_modules/string_decoder/README.md | 7 - .../node_modules/string_decoder/index.js | 221 - .../node_modules/string_decoder/package.json | 56 - .../node_modules/readable-stream/package.json | 68 - .../node_modules/readable-stream/passthrough.js | 1 - .../from2/node_modules/readable-stream/readable.js | 10 - .../node_modules/readable-stream/transform.js | 1 - .../from2/node_modules/readable-stream/writable.js | 1 - .../node_modules/from2/package.json | 11 +- .../node_modules/isarray/README.md | 54 + .../node_modules/isarray/build/build.js | 208 + .../node_modules/isarray/component.json | 19 + .../node_modules/isarray/index.js | 3 + .../node_modules/isarray/package.json | 57 + .../node_modules/readable-stream/.npmignore | 5 + .../node_modules/readable-stream/LICENSE | 18 + .../node_modules/readable-stream/README.md | 14 + .../node_modules/readable-stream/duplex.js | 1 + .../node_modules/readable-stream/float.patch | 922 ++ .../readable-stream/lib/_stream_duplex.js | 89 + .../readable-stream/lib/_stream_passthrough.js | 46 + .../readable-stream/lib/_stream_readable.js | 951 ++ .../readable-stream/lib/_stream_transform.js | 209 + .../readable-stream/lib/_stream_writable.js | 477 + .../node_modules/readable-stream/package.json | 65 + .../node_modules/readable-stream/passthrough.js | 1 + .../node_modules/readable-stream/readable.js | 10 + .../node_modules/readable-stream/transform.js | 1 + .../node_modules/readable-stream/writable.js | 1 + .../node_modules/stream-iterate/.npmignore | 1 - .../node_modules/stream-iterate/.travis.yml | 5 - .../node_modules/stream-iterate/LICENSE | 21 - .../node_modules/stream-iterate/README.md | 39 - .../node_modules/stream-iterate/index.js | 70 - .../node_modules/stream-shift/.npmignore | 1 - .../node_modules/stream-shift/.travis.yml | 6 - .../node_modules/stream-shift/LICENSE | 21 - .../node_modules/stream-shift/README.md | 25 - .../node_modules/stream-shift/index.js | 20 - .../node_modules/stream-shift/package.json | 56 - .../node_modules/stream-shift/test.js | 48 - .../node_modules/stream-iterate/package.json | 59 - .../node_modules/stream-iterate/test.js | 60 - .../node_modules/string_decoder/.npmignore | 2 + .../node_modules/string_decoder/LICENSE | 20 + .../node_modules/string_decoder/README.md | 7 + .../node_modules/string_decoder/index.js | 221 + .../node_modules/string_decoder/package.json | 53 + .../node_modules/sorted-union-stream/package.json | 32 +- deps/npm/node_modules/spdx-correct/LICENSE | 202 + deps/npm/node_modules/spdx-correct/README.md | 10 + deps/npm/node_modules/spdx-correct/index.js | 326 + deps/npm/node_modules/spdx-correct/package.json | 80 + deps/npm/node_modules/spdx-exceptions/README.md | 36 + deps/npm/node_modules/spdx-exceptions/index.json | 29 + deps/npm/node_modules/spdx-exceptions/package.json | 49 + .../npm/node_modules/spdx-expression-parse/AUTHORS | 4 + .../npm/node_modules/spdx-expression-parse/LICENSE | 22 + .../node_modules/spdx-expression-parse/README.md | 91 + .../node_modules/spdx-expression-parse/index.js | 8 + .../spdx-expression-parse/package.json | 97 + .../node_modules/spdx-expression-parse/parse.js | 138 + .../npm/node_modules/spdx-expression-parse/scan.js | 131 + deps/npm/node_modules/spdx-license-ids/README.md | 52 + .../node_modules/spdx-license-ids/deprecated.json | 23 + deps/npm/node_modules/spdx-license-ids/index.json | 344 + .../npm/node_modules/spdx-license-ids/package.json | 78 + deps/npm/node_modules/sshpk/.npmignore | 9 + deps/npm/node_modules/sshpk/.travis.yml | 11 + deps/npm/node_modules/sshpk/LICENSE | 18 + deps/npm/node_modules/sshpk/README.md | 698 ++ deps/npm/node_modules/sshpk/bin/sshpk-conv | 202 + deps/npm/node_modules/sshpk/bin/sshpk-sign | 191 + deps/npm/node_modules/sshpk/bin/sshpk-verify | 166 + deps/npm/node_modules/sshpk/lib/algs.js | 166 + deps/npm/node_modules/sshpk/lib/certificate.js | 377 + deps/npm/node_modules/sshpk/lib/dhe.js | 413 + deps/npm/node_modules/sshpk/lib/ed-compat.js | 97 + deps/npm/node_modules/sshpk/lib/errors.js | 84 + deps/npm/node_modules/sshpk/lib/fingerprint.js | 161 + deps/npm/node_modules/sshpk/lib/formats/auto.js | 106 + deps/npm/node_modules/sshpk/lib/formats/dnssec.js | 286 + .../node_modules/sshpk/lib/formats/openssh-cert.js | 322 + deps/npm/node_modules/sshpk/lib/formats/pem.js | 191 + deps/npm/node_modules/sshpk/lib/formats/pkcs1.js | 376 + deps/npm/node_modules/sshpk/lib/formats/pkcs8.js | 616 + deps/npm/node_modules/sshpk/lib/formats/rfc4253.js | 165 + .../node_modules/sshpk/lib/formats/ssh-private.js | 261 + deps/npm/node_modules/sshpk/lib/formats/ssh.js | 114 + .../npm/node_modules/sshpk/lib/formats/x509-pem.js | 77 + deps/npm/node_modules/sshpk/lib/formats/x509.js | 729 ++ deps/npm/node_modules/sshpk/lib/identity.js | 288 + deps/npm/node_modules/sshpk/lib/index.js | 39 + deps/npm/node_modules/sshpk/lib/key.js | 275 + deps/npm/node_modules/sshpk/lib/private-key.js | 252 + deps/npm/node_modules/sshpk/lib/signature.js | 313 + deps/npm/node_modules/sshpk/lib/ssh-buffer.js | 148 + deps/npm/node_modules/sshpk/lib/utils.js | 388 + deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1 | 135 + deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1 | 81 + .../npm/node_modules/sshpk/man/man1/sshpk-verify.1 | 68 + deps/npm/node_modules/sshpk/package.json | 100 + deps/npm/node_modules/ssri/CHANGELOG.md | 86 + deps/npm/node_modules/ssri/README.md | 32 +- deps/npm/node_modules/ssri/index.js | 83 +- deps/npm/node_modules/ssri/package.json | 47 +- deps/npm/node_modules/stream-each/.npmignore | 1 + deps/npm/node_modules/stream-each/.travis.yml | 5 + deps/npm/node_modules/stream-each/LICENSE | 21 + deps/npm/node_modules/stream-each/README.md | 41 + deps/npm/node_modules/stream-each/collaborators.md | 7 + deps/npm/node_modules/stream-each/index.js | 58 + deps/npm/node_modules/stream-each/package.json | 59 + deps/npm/node_modules/stream-each/test.js | 122 + deps/npm/node_modules/stream-iterate/.npmignore | 1 + deps/npm/node_modules/stream-iterate/.travis.yml | 5 + deps/npm/node_modules/stream-iterate/LICENSE | 21 + deps/npm/node_modules/stream-iterate/README.md | 39 + deps/npm/node_modules/stream-iterate/index.js | 70 + deps/npm/node_modules/stream-iterate/package.json | 56 + deps/npm/node_modules/stream-iterate/test.js | 60 + deps/npm/node_modules/stream-shift/.npmignore | 1 + deps/npm/node_modules/stream-shift/.travis.yml | 6 + deps/npm/node_modules/stream-shift/LICENSE | 21 + deps/npm/node_modules/stream-shift/README.md | 25 + deps/npm/node_modules/stream-shift/index.js | 20 + deps/npm/node_modules/stream-shift/package.json | 55 + deps/npm/node_modules/stream-shift/test.js | 48 + deps/npm/node_modules/strict-uri-encode/index.js | 2 + deps/npm/node_modules/strict-uri-encode/license | 21 + .../node_modules/strict-uri-encode/package.json | 63 + deps/npm/node_modules/strict-uri-encode/readme.md | 39 + deps/npm/node_modules/string-width/index.js | 36 + deps/npm/node_modules/string-width/license | 9 + deps/npm/node_modules/string-width/package.json | 94 + deps/npm/node_modules/string-width/readme.md | 42 + deps/npm/node_modules/string_decoder/.travis.yml | 50 + deps/npm/node_modules/string_decoder/LICENSE | 47 + deps/npm/node_modules/string_decoder/README.md | 47 + .../string_decoder/lib/string_decoder.js | 296 + deps/npm/node_modules/string_decoder/package.json | 59 + .../strip-ansi/node_modules/ansi-regex/index.js | 10 - .../strip-ansi/node_modules/ansi-regex/license | 9 - .../node_modules/ansi-regex/package.json | 85 - .../strip-ansi/node_modules/ansi-regex/readme.md | 46 - deps/npm/node_modules/strip-ansi/package.json | 18 +- deps/npm/node_modules/strip-eof/index.js | 15 + deps/npm/node_modules/strip-eof/license | 21 + deps/npm/node_modules/strip-eof/package.json | 71 + deps/npm/node_modules/strip-eof/readme.md | 28 + deps/npm/node_modules/strip-json-comments/index.js | 70 + deps/npm/node_modules/strip-json-comments/license | 21 + .../node_modules/strip-json-comments/package.json | 75 + .../npm/node_modules/strip-json-comments/readme.md | 64 + deps/npm/node_modules/supports-color/browser.js | 5 + deps/npm/node_modules/supports-color/index.js | 131 + deps/npm/node_modules/supports-color/license | 9 + deps/npm/node_modules/supports-color/package.json | 85 + deps/npm/node_modules/supports-color/readme.md | 66 + deps/npm/node_modules/tar/README.md | 66 + deps/npm/node_modules/tar/lib/buffer.js | 11 + deps/npm/node_modules/tar/lib/create.js | 23 +- deps/npm/node_modules/tar/lib/extract.js | 45 +- deps/npm/node_modules/tar/lib/header.js | 5 +- deps/npm/node_modules/tar/lib/list.js | 14 +- deps/npm/node_modules/tar/lib/mkdir.js | 1 - deps/npm/node_modules/tar/lib/pack.js | 16 +- deps/npm/node_modules/tar/lib/parse.js | 17 +- deps/npm/node_modules/tar/lib/pax.js | 1 + deps/npm/node_modules/tar/lib/replace.js | 41 +- deps/npm/node_modules/tar/lib/unpack.js | 236 +- deps/npm/node_modules/tar/lib/write-entry.js | 46 +- .../tar/node_modules/minipass/.npmignore | 4 - .../tar/node_modules/minipass/.travis.yml | 7 - .../tar/node_modules/minipass/README.md | 46 - .../node_modules/tar/node_modules/minipass/b.js | 12 - .../minipass/bench/lib/extend-minipass.js | 11 - .../minipass/bench/lib/extend-through2.js | 12 - .../minipass/bench/lib/extend-transform.js | 11 - .../node_modules/minipass/bench/lib/nullsink.js | 12 - .../tar/node_modules/minipass/bench/lib/numbers.js | 41 - .../tar/node_modules/minipass/bench/lib/timer.js | 15 - .../tar/node_modules/minipass/bench/test.js | 160 - .../node_modules/tar/node_modules/minipass/d.js | 7 - .../node_modules/tar/node_modules/minipass/e.js | 17 - .../node_modules/tar/node_modules/minipass/eos.js | 12 - .../npm/node_modules/tar/node_modules/minipass/foo | 0 .../tar/node_modules/minipass/index.js | 295 - .../node_modules/minipass/minipass-benchmarks.xlsx | Bin 54935 -> 0 bytes .../tar/node_modules/minipass/package.json | 64 - .../tar/node_modules/minipass/test/basic.js | 438 - .../tar/node_modules/minipass/test/empty-end.js | 38 - .../node_modules/tar/node_modules/minizlib/LICENSE | 26 - .../tar/node_modules/minizlib/README.md | 44 - .../tar/node_modules/minizlib/constants.js | 46 - .../tar/node_modules/minizlib/index.js | 354 - .../tar/node_modules/minizlib/package.json | 71 - .../tar/node_modules/yallist/package.json | 3 +- deps/npm/node_modules/tar/package.json | 48 +- deps/npm/node_modules/term-size/index.js | 70 + deps/npm/node_modules/term-size/license | 21 + deps/npm/node_modules/term-size/package.json | 75 + deps/npm/node_modules/term-size/readme.md | 41 + .../node_modules/term-size/vendor/macos/term-size | Bin 0 -> 8760 bytes .../term-size/vendor/windows/term-size.exe | Bin 0 -> 17408 bytes deps/npm/node_modules/text-table/package.json | 31 +- deps/npm/node_modules/through/.travis.yml | 5 + deps/npm/node_modules/through/LICENSE.APACHE2 | 15 + deps/npm/node_modules/through/LICENSE.MIT | 24 + deps/npm/node_modules/through/index.js | 107 + deps/npm/node_modules/through/package.json | 69 + deps/npm/node_modules/through/readme.markdown | 64 + deps/npm/node_modules/through/test/async.js | 28 + deps/npm/node_modules/through/test/auto-destroy.js | 29 + deps/npm/node_modules/through/test/buffering.js | 71 + deps/npm/node_modules/through/test/end.js | 45 + deps/npm/node_modules/through/test/index.js | 133 + deps/npm/node_modules/through2/.npmignore | 3 + deps/npm/node_modules/through2/LICENSE.html | 336 + deps/npm/node_modules/through2/LICENSE.md | 9 + deps/npm/node_modules/through2/README.md | 136 + deps/npm/node_modules/through2/package.json | 68 + deps/npm/node_modules/through2/through2.js | 96 + deps/npm/node_modules/timed-out/index.js | 55 + deps/npm/node_modules/timed-out/license | 21 + deps/npm/node_modules/timed-out/package.json | 68 + deps/npm/node_modules/timed-out/readme.md | 42 + .../npm/node_modules/tiny-relative-date/LICENSE.md | 21 + deps/npm/node_modules/tiny-relative-date/README.md | 120 + .../node_modules/tiny-relative-date/lib/factory.js | 100 + .../node_modules/tiny-relative-date/lib/index.js | 18 + .../node_modules/tiny-relative-date/package.json | 75 + .../node_modules/tiny-relative-date/src/factory.js | 89 + .../node_modules/tiny-relative-date/src/index.js | 4 + .../tiny-relative-date/translations/da.js | 31 + .../tiny-relative-date/translations/de.js | 31 + .../tiny-relative-date/translations/en-short.js | 31 + .../tiny-relative-date/translations/en.js | 31 + .../tiny-relative-date/translations/es.js | 31 + deps/npm/node_modules/tough-cookie/LICENSE | 27 + deps/npm/node_modules/tough-cookie/README.md | 509 + deps/npm/node_modules/tough-cookie/lib/cookie.js | 1426 +++ deps/npm/node_modules/tough-cookie/lib/memstore.js | 170 + .../npm/node_modules/tough-cookie/lib/pathMatch.js | 61 + .../node_modules/tough-cookie/lib/permuteDomain.js | 56 + .../npm/node_modules/tough-cookie/lib/pubsuffix.js | 98 + deps/npm/node_modules/tough-cookie/lib/store.js | 71 + deps/npm/node_modules/tough-cookie/package.json | 92 + deps/npm/node_modules/tunnel-agent/LICENSE | 55 + deps/npm/node_modules/tunnel-agent/README.md | 4 + deps/npm/node_modules/tunnel-agent/index.js | 244 + deps/npm/node_modules/tunnel-agent/package.json | 55 + deps/npm/node_modules/tweetnacl/.npmignore | 4 + deps/npm/node_modules/tweetnacl/AUTHORS.md | 28 + deps/npm/node_modules/tweetnacl/CHANGELOG.md | 221 + deps/npm/node_modules/tweetnacl/LICENSE | 24 + .../tweetnacl/PULL_REQUEST_TEMPLATE.md | 20 + deps/npm/node_modules/tweetnacl/README.md | 459 + deps/npm/node_modules/tweetnacl/nacl-fast.js | 2388 ++++ deps/npm/node_modules/tweetnacl/nacl-fast.min.js | 2 + deps/npm/node_modules/tweetnacl/nacl.d.ts | 98 + deps/npm/node_modules/tweetnacl/nacl.js | 1175 ++ deps/npm/node_modules/tweetnacl/nacl.min.js | 1 + deps/npm/node_modules/tweetnacl/package.json | 86 + deps/npm/node_modules/typedarray/.travis.yml | 4 + deps/npm/node_modules/typedarray/LICENSE | 35 + deps/npm/node_modules/typedarray/example/tarray.js | 4 + deps/npm/node_modules/typedarray/index.js | 630 + deps/npm/node_modules/typedarray/package.json | 83 + deps/npm/node_modules/typedarray/readme.markdown | 61 + .../typedarray/test/server/undef_globals.js | 19 + deps/npm/node_modules/typedarray/test/tarray.js | 10 + deps/npm/node_modules/uid-number/package.json | 20 +- deps/npm/node_modules/umask/package.json | 32 +- .../node_modules/unique-slug/.npmignore | 6 - .../node_modules/unique-slug/.travis.yml | 11 - .../node_modules/unique-slug/README.md | 20 - .../node_modules/unique-slug/index.js | 19 - .../node_modules/unique-slug/package.json | 59 - .../node_modules/unique-slug/test/index.js | 13 - deps/npm/node_modules/unique-filename/package.json | 34 +- deps/npm/node_modules/unique-slug/.npmignore | 6 + deps/npm/node_modules/unique-slug/.travis.yml | 11 + deps/npm/node_modules/unique-slug/README.md | 19 + deps/npm/node_modules/unique-slug/index.js | 19 + deps/npm/node_modules/unique-slug/package.json | 56 + deps/npm/node_modules/unique-slug/test/index.js | 13 + deps/npm/node_modules/unique-string/index.js | 4 + deps/npm/node_modules/unique-string/license | 21 + deps/npm/node_modules/unique-string/package.json | 76 + deps/npm/node_modules/unique-string/readme.md | 32 + deps/npm/node_modules/unpipe/package.json | 31 +- deps/npm/node_modules/unzip-response/index.js | 36 + deps/npm/node_modules/unzip-response/license | 21 + deps/npm/node_modules/unzip-response/package.json | 81 + deps/npm/node_modules/unzip-response/readme.md | 29 + deps/npm/node_modules/update-notifier/index.js | 8 +- deps/npm/node_modules/update-notifier/license | 9 + .../update-notifier/node_modules/boxen/index.js | 138 - .../update-notifier/node_modules/boxen/license | 9 - .../boxen/node_modules/ansi-align/CHANGELOG.md | 36 - .../boxen/node_modules/ansi-align/LICENSE | 13 - .../boxen/node_modules/ansi-align/README.md | 79 - .../boxen/node_modules/ansi-align/index.js | 61 - .../boxen/node_modules/ansi-align/package.json | 70 - .../boxen/node_modules/camelcase/index.js | 64 - .../boxen/node_modules/camelcase/license | 21 - .../boxen/node_modules/camelcase/package.json | 78 - .../boxen/node_modules/camelcase/readme.md | 57 - .../boxen/node_modules/cli-boxes/boxes.json | 50 - .../boxen/node_modules/cli-boxes/index.js | 2 - .../boxen/node_modules/cli-boxes/license | 21 - .../boxen/node_modules/cli-boxes/package.json | 75 - .../boxen/node_modules/cli-boxes/readme.md | 94 - .../boxen/node_modules/string-width/index.js | 36 - .../boxen/node_modules/string-width/license | 9 - .../node_modules/is-fullwidth-code-point/index.js | 46 - .../node_modules/is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 81 - .../node_modules/is-fullwidth-code-point/readme.md | 39 - .../boxen/node_modules/string-width/package.json | 88 - .../boxen/node_modules/string-width/readme.md | 42 - .../boxen/node_modules/term-size/index.js | 70 - .../boxen/node_modules/term-size/license | 21 - .../term-size/node_modules/execa/index.js | 309 - .../term-size/node_modules/execa/lib/errname.js | 37 - .../term-size/node_modules/execa/lib/stdio.js | 41 - .../term-size/node_modules/execa/license | 9 - .../execa/node_modules/cross-spawn/CHANGELOG.md | 6 - .../execa/node_modules/cross-spawn/LICENSE | 19 - .../execa/node_modules/cross-spawn/README.md | 85 - .../execa/node_modules/cross-spawn/index.js | 59 - .../execa/node_modules/cross-spawn/lib/enoent.js | 73 - .../execa/node_modules/cross-spawn/lib/parse.js | 113 - .../cross-spawn/lib/util/escapeArgument.js | 30 - .../cross-spawn/lib/util/escapeCommand.js | 12 - .../cross-spawn/lib/util/hasEmptyArgumentBug.js | 18 - .../cross-spawn/lib/util/readShebang.js | 37 - .../cross-spawn/lib/util/resolveCommand.js | 31 - .../node_modules/shebang-command/index.js | 19 - .../node_modules/shebang-command/license | 21 - .../node_modules/shebang-regex/index.js | 2 - .../node_modules/shebang-regex/license | 21 - .../node_modules/shebang-regex/package.json | 64 - .../node_modules/shebang-regex/readme.md | 29 - .../node_modules/shebang-command/package.json | 71 - .../node_modules/shebang-command/readme.md | 39 - .../execa/node_modules/cross-spawn/package.json | 83 - .../execa/node_modules/get-stream/buffer-stream.js | 51 - .../execa/node_modules/get-stream/index.js | 51 - .../execa/node_modules/get-stream/license | 21 - .../execa/node_modules/get-stream/package.json | 80 - .../execa/node_modules/get-stream/readme.md | 117 - .../execa/node_modules/is-stream/index.js | 21 - .../execa/node_modules/is-stream/license | 21 - .../execa/node_modules/is-stream/package.json | 74 - .../execa/node_modules/is-stream/readme.md | 42 - .../execa/node_modules/npm-run-path/index.js | 39 - .../execa/node_modules/npm-run-path/license | 21 - .../npm-run-path/node_modules/path-key/index.js | 13 - .../npm-run-path/node_modules/path-key/license | 21 - .../node_modules/path-key/package.json | 71 - .../npm-run-path/node_modules/path-key/readme.md | 51 - .../execa/node_modules/npm-run-path/package.json | 77 - .../execa/node_modules/npm-run-path/readme.md | 81 - .../execa/node_modules/p-finally/index.js | 15 - .../execa/node_modules/p-finally/license | 21 - .../execa/node_modules/p-finally/package.json | 74 - .../execa/node_modules/p-finally/readme.md | 47 - .../execa/node_modules/signal-exit/CHANGELOG.md | 27 - .../execa/node_modules/signal-exit/LICENSE.txt | 16 - .../execa/node_modules/signal-exit/README.md | 40 - .../execa/node_modules/signal-exit/index.js | 157 - .../execa/node_modules/signal-exit/package.json | 66 - .../execa/node_modules/signal-exit/signals.js | 53 - .../execa/node_modules/strip-eof/index.js | 15 - .../execa/node_modules/strip-eof/license | 21 - .../execa/node_modules/strip-eof/package.json | 75 - .../execa/node_modules/strip-eof/readme.md | 28 - .../term-size/node_modules/execa/package.json | 111 - .../term-size/node_modules/execa/readme.md | 279 - .../boxen/node_modules/term-size/package.json | 78 - .../boxen/node_modules/term-size/readme.md | 41 - .../node_modules/term-size/vendor/macos/term-size | Bin 8760 -> 0 bytes .../term-size/vendor/windows/term-size.exe | Bin 17408 -> 0 bytes .../boxen/node_modules/widest-line/index.js | 8 - .../boxen/node_modules/widest-line/license | 21 - .../widest-line/node_modules/string-width/index.js | 37 - .../widest-line/node_modules/string-width/license | 21 - .../node_modules/code-point-at/index.js | 32 - .../node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 74 - .../node_modules/code-point-at/readme.md | 32 - .../node_modules/is-fullwidth-code-point/index.js | 46 - .../node_modules/is-fullwidth-code-point/license | 21 - .../node_modules/number-is-nan/index.js | 4 - .../node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 71 - .../node_modules/number-is-nan/readme.md | 28 - .../is-fullwidth-code-point/package.json | 80 - .../node_modules/is-fullwidth-code-point/readme.md | 39 - .../string-width/node_modules/strip-ansi/index.js | 6 - .../string-width/node_modules/strip-ansi/license | 21 - .../strip-ansi/node_modules/ansi-regex/index.js | 4 - .../strip-ansi/node_modules/ansi-regex/license | 21 - .../node_modules/ansi-regex/package.json | 108 - .../strip-ansi/node_modules/ansi-regex/readme.md | 39 - .../node_modules/strip-ansi/package.json | 101 - .../string-width/node_modules/strip-ansi/readme.md | 33 - .../node_modules/string-width/package.json | 91 - .../node_modules/string-width/readme.md | 42 - .../boxen/node_modules/widest-line/package.json | 91 - .../boxen/node_modules/widest-line/readme.md | 34 - .../node_modules/boxen/package.json | 83 - .../update-notifier/node_modules/boxen/readme.md | 175 - .../update-notifier/node_modules/chalk/index.js | 220 - .../update-notifier/node_modules/chalk/license | 9 - .../chalk/node_modules/ansi-styles/index.js | 152 - .../chalk/node_modules/ansi-styles/license | 9 - .../node_modules/color-convert/CHANGELOG.md | 54 - .../ansi-styles/node_modules/color-convert/LICENSE | 20 - .../node_modules/color-convert/README.md | 68 - .../node_modules/color-convert/conversions.js | 861 -- .../node_modules/color-convert/index.js | 78 - .../node_modules/color-name/.eslintrc.json | 43 - .../node_modules/color-name/.npmignore | 107 - .../color-convert/node_modules/color-name/LICENSE | 8 - .../node_modules/color-name/README.md | 11 - .../color-convert/node_modules/color-name/index.js | 152 - .../node_modules/color-name/package.json | 53 - .../color-convert/node_modules/color-name/test.js | 7 - .../node_modules/color-convert/package.json | 81 - .../node_modules/color-convert/route.js | 97 - .../chalk/node_modules/ansi-styles/package.json | 86 - .../chalk/node_modules/ansi-styles/readme.md | 147 - .../node_modules/escape-string-regexp/index.js | 11 - .../node_modules/escape-string-regexp/license | 21 - .../node_modules/escape-string-regexp/package.json | 85 - .../node_modules/escape-string-regexp/readme.md | 27 - .../chalk/node_modules/supports-color/browser.js | 2 - .../chalk/node_modules/supports-color/index.js | 115 - .../chalk/node_modules/supports-color/license | 9 - .../supports-color/node_modules/has-flag/index.js | 10 - .../supports-color/node_modules/has-flag/license | 21 - .../node_modules/has-flag/package.json | 93 - .../supports-color/node_modules/has-flag/readme.md | 67 - .../chalk/node_modules/supports-color/package.json | 85 - .../chalk/node_modules/supports-color/readme.md | 66 - .../node_modules/chalk/package.json | 96 - .../update-notifier/node_modules/chalk/readme.md | 306 - .../node_modules/chalk/templates.js | 128 - .../node_modules/configstore/index.js | 98 - .../configstore/node_modules/dot-prop/index.js | 123 - .../configstore/node_modules/dot-prop/license | 21 - .../dot-prop/node_modules/is-obj/index.js | 5 - .../dot-prop/node_modules/is-obj/license | 21 - .../dot-prop/node_modules/is-obj/package.json | 69 - .../dot-prop/node_modules/is-obj/readme.md | 34 - .../configstore/node_modules/dot-prop/package.json | 80 - .../configstore/node_modules/dot-prop/readme.md | 103 - .../configstore/node_modules/make-dir/index.js | 83 - .../configstore/node_modules/make-dir/license | 21 - .../make-dir/node_modules/pify/index.js | 68 - .../make-dir/node_modules/pify/license | 21 - .../make-dir/node_modules/pify/package.json | 80 - .../make-dir/node_modules/pify/readme.md | 119 - .../configstore/node_modules/make-dir/package.json | 86 - .../configstore/node_modules/make-dir/readme.md | 113 - .../node_modules/unique-string/index.js | 4 - .../configstore/node_modules/unique-string/license | 21 - .../node_modules/crypto-random-string/index.js | 10 - .../node_modules/crypto-random-string/license | 21 - .../node_modules/crypto-random-string/package.json | 79 - .../node_modules/crypto-random-string/readme.md | 49 - .../node_modules/unique-string/package.json | 79 - .../node_modules/unique-string/readme.md | 32 - .../node_modules/configstore/package.json | 79 - .../node_modules/configstore/readme.md | 116 - .../node_modules/import-lazy/index.js | 53 - .../node_modules/import-lazy/license | 21 - .../node_modules/import-lazy/package.json | 76 - .../node_modules/import-lazy/readme.md | 64 - .../node_modules/is-installed-globally/index.js | 5 - .../node_modules/is-installed-globally/license | 9 - .../node_modules/global-dirs/index.js | 89 - .../node_modules/global-dirs/license | 9 - .../node_modules/global-dirs/package.json | 84 - .../node_modules/global-dirs/readme.md | 69 - .../node_modules/is-path-inside/index.js | 14 - .../node_modules/is-path-inside/package.json | 68 - .../node_modules/is-path-inside/readme.md | 31 - .../is-installed-globally/package.json | 83 - .../node_modules/is-installed-globally/readme.md | 39 - .../update-notifier/node_modules/is-npm/index.js | 4 - .../node_modules/is-npm/package.json | 68 - .../update-notifier/node_modules/is-npm/readme.md | 30 - .../node_modules/latest-version/index.js | 4 - .../node_modules/latest-version/license | 21 - .../node_modules/package-json/index.js | 67 - .../node_modules/package-json/license | 21 - .../package-json/node_modules/got/index.js | 364 - .../package-json/node_modules/got/license | 21 - .../got/node_modules/create-error-class/index.js | 44 - .../got/node_modules/create-error-class/license | 21 - .../node_modules/capture-stack-trace/index.js | 18 - .../node_modules/capture-stack-trace/package.json | 64 - .../node_modules/capture-stack-trace/readme.md | 36 - .../node_modules/create-error-class/package.json | 63 - .../got/node_modules/create-error-class/readme.md | 54 - .../got/node_modules/duplexer3/LICENSE.md | 26 - .../got/node_modules/duplexer3/README.md | 115 - .../got/node_modules/duplexer3/index.js | 76 - .../got/node_modules/duplexer3/package.json | 68 - .../got/node_modules/get-stream/buffer-stream.js | 51 - .../got/node_modules/get-stream/index.js | 51 - .../got/node_modules/get-stream/license | 21 - .../got/node_modules/get-stream/package.json | 84 - .../got/node_modules/get-stream/readme.md | 117 - .../got/node_modules/is-redirect/index.js | 14 - .../got/node_modules/is-redirect/license | 21 - .../got/node_modules/is-redirect/package.json | 71 - .../got/node_modules/is-redirect/readme.md | 28 - .../got/node_modules/is-retry-allowed/index.js | 60 - .../got/node_modules/is-retry-allowed/license | 21 - .../got/node_modules/is-retry-allowed/package.json | 62 - .../got/node_modules/is-retry-allowed/readme.md | 42 - .../got/node_modules/is-stream/index.js | 21 - .../got/node_modules/is-stream/license | 21 - .../got/node_modules/is-stream/package.json | 74 - .../got/node_modules/is-stream/readme.md | 42 - .../got/node_modules/lowercase-keys/index.js | 11 - .../got/node_modules/lowercase-keys/package.json | 71 - .../got/node_modules/lowercase-keys/readme.md | 33 - .../got/node_modules/timed-out/index.js | 55 - .../got/node_modules/timed-out/license | 21 - .../got/node_modules/timed-out/package.json | 72 - .../got/node_modules/timed-out/readme.md | 42 - .../got/node_modules/unzip-response/index.js | 36 - .../got/node_modules/unzip-response/license | 21 - .../got/node_modules/unzip-response/package.json | 85 - .../got/node_modules/unzip-response/readme.md | 29 - .../got/node_modules/url-parse-lax/index.js | 14 - .../got/node_modules/url-parse-lax/license | 21 - .../node_modules/prepend-http/index.js | 14 - .../node_modules/prepend-http/license | 21 - .../node_modules/prepend-http/package.json | 71 - .../node_modules/prepend-http/readme.md | 31 - .../got/node_modules/url-parse-lax/package.json | 76 - .../got/node_modules/url-parse-lax/readme.md | 100 - .../package-json/node_modules/got/package.json | 113 - .../package-json/node_modules/got/readme.md | 335 - .../node_modules/registry-auth-token/.npmignore | 6 - .../node_modules/registry-auth-token/CHANGELOG.md | 94 - .../node_modules/registry-auth-token/LICENSE | 21 - .../node_modules/registry-auth-token/README.md | 65 - .../node_modules/registry-auth-token/base64.js | 14 - .../node_modules/registry-auth-token/index.js | 116 - .../registry-auth-token/node_modules/rc/.npmignore | 3 - .../node_modules/rc/LICENSE.APACHE2 | 15 - .../node_modules/rc/LICENSE.BSD | 26 - .../node_modules/rc/LICENSE.MIT | 24 - .../registry-auth-token/node_modules/rc/README.md | 149 - .../registry-auth-token/node_modules/rc/browser.js | 7 - .../registry-auth-token/node_modules/rc/index.js | 60 - .../node_modules/rc/lib/utils.js | 102 - .../rc/node_modules/deep-extend/CHANGELOG.md | 21 - .../rc/node_modules/deep-extend/LICENSE | 20 - .../rc/node_modules/deep-extend/README.md | 90 - .../rc/node_modules/deep-extend/index.js | 1 - .../rc/node_modules/deep-extend/lib/deep-extend.js | 144 - .../rc/node_modules/deep-extend/package.json | 93 - .../rc/node_modules/minimist/.travis.yml | 8 - .../node_modules/rc/node_modules/minimist/LICENSE | 18 - .../rc/node_modules/minimist/example/parse.js | 2 - .../node_modules/rc/node_modules/minimist/index.js | 235 - .../rc/node_modules/minimist/package.json | 77 - .../rc/node_modules/minimist/readme.markdown | 91 - .../rc/node_modules/minimist/test/all_bool.js | 32 - .../rc/node_modules/minimist/test/bool.js | 166 - .../rc/node_modules/minimist/test/dash.js | 31 - .../rc/node_modules/minimist/test/default_bool.js | 35 - .../rc/node_modules/minimist/test/dotted.js | 22 - .../rc/node_modules/minimist/test/kv_short.js | 16 - .../rc/node_modules/minimist/test/long.js | 31 - .../rc/node_modules/minimist/test/num.js | 36 - .../rc/node_modules/minimist/test/parse.js | 197 - .../node_modules/minimist/test/parse_modified.js | 9 - .../rc/node_modules/minimist/test/short.js | 67 - .../rc/node_modules/minimist/test/stop_early.js | 15 - .../rc/node_modules/minimist/test/unknown.js | 102 - .../rc/node_modules/minimist/test/whitespace.js | 8 - .../rc/node_modules/strip-json-comments/index.js | 70 - .../rc/node_modules/strip-json-comments/license | 21 - .../node_modules/strip-json-comments/package.json | 78 - .../rc/node_modules/strip-json-comments/readme.md | 64 - .../node_modules/rc/package.json | 67 - .../node_modules/rc/test/ini.js | 15 - .../node_modules/rc/test/nested-env-vars.js | 50 - .../node_modules/rc/test/test.js | 59 - .../node_modules/registry-auth-token/package.json | 76 - .../registry-auth-token/registry-url.js | 5 - .../registry-auth-token/test/auth-token.test.js | 369 - .../registry-auth-token/test/registry-url.test.js | 64 - .../node_modules/registry-auth-token/yarn.lock | 1466 --- .../node_modules/registry-url/index.js | 6 - .../package-json/node_modules/registry-url/license | 21 - .../registry-url/node_modules/rc/.npmignore | 3 - .../registry-url/node_modules/rc/LICENSE.APACHE2 | 15 - .../registry-url/node_modules/rc/LICENSE.BSD | 26 - .../registry-url/node_modules/rc/LICENSE.MIT | 24 - .../registry-url/node_modules/rc/README.md | 149 - .../registry-url/node_modules/rc/browser.js | 7 - .../registry-url/node_modules/rc/index.js | 60 - .../registry-url/node_modules/rc/lib/utils.js | 102 - .../rc/node_modules/deep-extend/CHANGELOG.md | 21 - .../rc/node_modules/deep-extend/LICENSE | 20 - .../rc/node_modules/deep-extend/README.md | 90 - .../rc/node_modules/deep-extend/index.js | 1 - .../rc/node_modules/deep-extend/lib/deep-extend.js | 144 - .../rc/node_modules/deep-extend/package.json | 93 - .../rc/node_modules/minimist/.travis.yml | 8 - .../node_modules/rc/node_modules/minimist/LICENSE | 18 - .../rc/node_modules/minimist/example/parse.js | 2 - .../node_modules/rc/node_modules/minimist/index.js | 235 - .../rc/node_modules/minimist/package.json | 77 - .../rc/node_modules/minimist/readme.markdown | 91 - .../rc/node_modules/minimist/test/all_bool.js | 32 - .../rc/node_modules/minimist/test/bool.js | 166 - .../rc/node_modules/minimist/test/dash.js | 31 - .../rc/node_modules/minimist/test/default_bool.js | 35 - .../rc/node_modules/minimist/test/dotted.js | 22 - .../rc/node_modules/minimist/test/kv_short.js | 16 - .../rc/node_modules/minimist/test/long.js | 31 - .../rc/node_modules/minimist/test/num.js | 36 - .../rc/node_modules/minimist/test/parse.js | 197 - .../node_modules/minimist/test/parse_modified.js | 9 - .../rc/node_modules/minimist/test/short.js | 67 - .../rc/node_modules/minimist/test/stop_early.js | 15 - .../rc/node_modules/minimist/test/unknown.js | 102 - .../rc/node_modules/minimist/test/whitespace.js | 8 - .../rc/node_modules/strip-json-comments/index.js | 70 - .../rc/node_modules/strip-json-comments/license | 21 - .../node_modules/strip-json-comments/package.json | 78 - .../rc/node_modules/strip-json-comments/readme.md | 64 - .../registry-url/node_modules/rc/package.json | 67 - .../registry-url/node_modules/rc/test/ini.js | 15 - .../node_modules/rc/test/nested-env-vars.js | 50 - .../registry-url/node_modules/rc/test/test.js | 59 - .../node_modules/registry-url/package.json | 77 - .../node_modules/registry-url/readme.md | 50 - .../node_modules/package-json/package.json | 80 - .../node_modules/package-json/readme.md | 91 - .../node_modules/latest-version/package.json | 77 - .../node_modules/latest-version/readme.md | 40 - .../node_modules/semver-diff/index.js | 27 - .../node_modules/semver-diff/license | 21 - .../node_modules/semver-diff/package.json | 69 - .../node_modules/semver-diff/readme.md | 52 - .../node_modules/xdg-basedir/index.js | 28 - .../node_modules/xdg-basedir/license | 21 - .../node_modules/xdg-basedir/package.json | 77 - .../node_modules/xdg-basedir/readme.md | 60 - deps/npm/node_modules/update-notifier/package.json | 48 +- deps/npm/node_modules/update-notifier/readme.md | 15 +- deps/npm/node_modules/url-parse-lax/index.js | 14 + deps/npm/node_modules/url-parse-lax/license | 21 + deps/npm/node_modules/url-parse-lax/package.json | 73 + deps/npm/node_modules/url-parse-lax/readme.md | 100 + deps/npm/node_modules/util-deprecate/History.md | 16 + deps/npm/node_modules/util-deprecate/LICENSE | 24 + deps/npm/node_modules/util-deprecate/README.md | 53 + deps/npm/node_modules/util-deprecate/browser.js | 67 + deps/npm/node_modules/util-deprecate/node.js | 6 + deps/npm/node_modules/util-deprecate/package.json | 56 + deps/npm/node_modules/util-extend/LICENSE | 18 + deps/npm/node_modules/util-extend/README.md | 13 + deps/npm/node_modules/util-extend/extend.js | 33 + deps/npm/node_modules/util-extend/package.json | 45 + deps/npm/node_modules/util-extend/test.js | 10 + deps/npm/node_modules/uuid/.eslintrc.json | 5 +- deps/npm/node_modules/uuid/CHANGELOG.md | 57 + deps/npm/node_modules/uuid/HISTORY.md | 27 - deps/npm/node_modules/uuid/README.md | 162 +- deps/npm/node_modules/uuid/README_js.md | 280 + deps/npm/node_modules/uuid/bin/uuid | 15 + deps/npm/node_modules/uuid/lib/md5-browser.js | 216 + deps/npm/node_modules/uuid/lib/md5.js | 25 + deps/npm/node_modules/uuid/lib/rng-browser.js | 21 +- deps/npm/node_modules/uuid/lib/rng.js | 10 +- deps/npm/node_modules/uuid/lib/sha1-browser.js | 6 +- deps/npm/node_modules/uuid/lib/sha1.js | 28 +- deps/npm/node_modules/uuid/lib/v35.js | 53 + deps/npm/node_modules/uuid/package.json | 43 +- deps/npm/node_modules/uuid/v1.js | 37 +- deps/npm/node_modules/uuid/v3.js | 4 + deps/npm/node_modules/uuid/v4.js | 2 +- deps/npm/node_modules/uuid/v5.js | 45 +- .../validate-npm-package-license/LICENSE | 376 +- .../validate-npm-package-license/README.md | 2 +- .../node_modules/spdx-correct/LICENSE | 57 - .../node_modules/spdx-correct/README.md | 10 - .../node_modules/spdx-correct/index.js | 237 - .../node_modules/spdx-license-ids/LICENSE | 24 - .../node_modules/spdx-license-ids/README.md | 55 - .../node_modules/spdx-license-ids/package.json | 84 - .../spdx-license-ids/spdx-license-ids.json | 334 - .../node_modules/spdx-correct/package.json | 66 - .../node_modules/spdx-expression-parse/AUTHORS | 3 - .../node_modules/spdx-expression-parse/LICENSE | 22 - .../node_modules/spdx-expression-parse/README.md | 83 - .../node_modules/spdx-expression-parse/index.js | 5 - .../spdx-expression-parse/package.json | 93 - .../node_modules/spdx-expression-parse/parser.js | 1357 -- .../validate-npm-package-license/package.json | 42 +- .../validate-npm-package-license/test.log | 3 + .../node_modules/builtins/.travis.yml | 4 - .../node_modules/builtins/History.md | 39 - .../node_modules/builtins/License | 20 - .../node_modules/builtins/Readme.md | 18 - .../node_modules/builtins/builtins.json | 35 - .../node_modules/builtins/package.json | 51 - .../node_modules/builtins/test.js | 5 - .../validate-npm-package-name/package.json | 28 +- deps/npm/node_modules/verror/.npmignore | 9 + deps/npm/node_modules/verror/CHANGES.md | 28 + deps/npm/node_modules/verror/CONTRIBUTING.md | 19 + deps/npm/node_modules/verror/LICENSE | 19 + deps/npm/node_modules/verror/README.md | 528 + deps/npm/node_modules/verror/lib/verror.js | 451 + deps/npm/node_modules/verror/package.json | 51 + deps/npm/node_modules/wcwidth/.npmignore | 1 + deps/npm/node_modules/wcwidth/LICENSE | 29 + deps/npm/node_modules/wcwidth/Readme.md | 33 + deps/npm/node_modules/wcwidth/combining.js | 50 + deps/npm/node_modules/wcwidth/docs/index.md | 62 + deps/npm/node_modules/wcwidth/index.js | 99 + deps/npm/node_modules/wcwidth/package.json | 73 + deps/npm/node_modules/wcwidth/test/index.js | 64 + deps/npm/node_modules/which-module/CHANGELOG.md | 26 + deps/npm/node_modules/which-module/LICENSE | 13 + deps/npm/node_modules/which-module/README.md | 55 + deps/npm/node_modules/which-module/index.js | 9 + deps/npm/node_modules/which-module/package.json | 68 + .../which/node_modules/isexe/.npmignore | 2 - .../node_modules/which/node_modules/isexe/LICENSE | 15 - .../which/node_modules/isexe/README.md | 51 - .../node_modules/which/node_modules/isexe/index.js | 57 - .../node_modules/which/node_modules/isexe/mode.js | 41 - .../which/node_modules/isexe/package.json | 64 - .../which/node_modules/isexe/test/basic.js | 221 - .../which/node_modules/isexe/windows.js | 42 - deps/npm/node_modules/which/package.json | 20 +- deps/npm/node_modules/wide-align/LICENSE | 13 + deps/npm/node_modules/wide-align/README.md | 47 + deps/npm/node_modules/wide-align/align.js | 65 + .../wide-align/node_modules/ansi-regex/index.js | 4 + .../wide-align/node_modules/ansi-regex/license | 21 + .../node_modules/ansi-regex/package.json | 108 + .../wide-align/node_modules/ansi-regex/readme.md | 39 + .../node_modules/is-fullwidth-code-point/index.js | 46 + .../node_modules/is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 77 + .../node_modules/is-fullwidth-code-point/readme.md | 39 + .../wide-align/node_modules/string-width/index.js | 37 + .../wide-align/node_modules/string-width/license | 21 + .../node_modules/string-width/package.json | 88 + .../wide-align/node_modules/string-width/readme.md | 42 + .../wide-align/node_modules/strip-ansi/index.js | 6 + .../wide-align/node_modules/strip-ansi/license | 21 + .../node_modules/strip-ansi/package.json | 101 + .../wide-align/node_modules/strip-ansi/readme.md | 33 + deps/npm/node_modules/wide-align/package.json | 69 + deps/npm/node_modules/widest-line/index.js | 4 + deps/npm/node_modules/widest-line/license | 9 + deps/npm/node_modules/widest-line/package.json | 86 + deps/npm/node_modules/widest-line/readme.md | 34 + deps/npm/node_modules/worker-farm/.editorconfig | 16 + deps/npm/node_modules/worker-farm/.travis.yml | 1 + deps/npm/node_modules/worker-farm/README.md | 5 +- .../worker-farm/examples/basic/child.js | 2 +- .../worker-farm/examples/basic/index.js | 2 +- .../node_modules/worker-farm/examples/pi/calc.js | 2 +- deps/npm/node_modules/worker-farm/lib/farm.js | 14 +- deps/npm/node_modules/worker-farm/lib/fork.js | 13 +- deps/npm/node_modules/worker-farm/lib/index.js | 2 +- .../worker-farm/node_modules/errno/.npmignore | 1 - .../worker-farm/node_modules/errno/README.md | 141 - .../worker-farm/node_modules/errno/build.js | 43 - .../worker-farm/node_modules/errno/cli.js | 20 - .../worker-farm/node_modules/errno/custom.js | 55 - .../worker-farm/node_modules/errno/errno.js | 313 - .../node_modules/errno/node_modules/prr/.npmignore | 1 - .../errno/node_modules/prr/.travis.yml | 10 - .../node_modules/errno/node_modules/prr/LICENSE | 39 - .../node_modules/errno/node_modules/prr/README.md | 45 - .../errno/node_modules/prr/package.json | 56 - .../node_modules/errno/node_modules/prr/prr.js | 63 - .../node_modules/errno/node_modules/prr/test.js | 169 - .../worker-farm/node_modules/errno/package.json | 60 - .../worker-farm/node_modules/errno/test.js | 31 - .../worker-farm/node_modules/xtend/.npmignore | 1 - .../worker-farm/node_modules/xtend/LICENCE | 19 - .../worker-farm/node_modules/xtend/Makefile | 4 - .../worker-farm/node_modules/xtend/README.md | 32 - .../worker-farm/node_modules/xtend/immutable.js | 19 - .../worker-farm/node_modules/xtend/mutable.js | 17 - .../worker-farm/node_modules/xtend/package.json | 43 - .../worker-farm/node_modules/xtend/test.js | 83 - deps/npm/node_modules/worker-farm/package.json | 38 +- deps/npm/node_modules/worker-farm/tests/child.js | 87 + deps/npm/node_modules/worker-farm/tests/debug.js | 12 + deps/npm/node_modules/worker-farm/tests/index.js | 564 + deps/npm/node_modules/wrap-ansi/index.js | 168 + deps/npm/node_modules/wrap-ansi/license | 21 + .../wrap-ansi/node_modules/ansi-regex/index.js | 4 + .../wrap-ansi/node_modules/ansi-regex/license | 21 + .../wrap-ansi/node_modules/ansi-regex/package.json | 108 + .../wrap-ansi/node_modules/ansi-regex/readme.md | 39 + .../node_modules/is-fullwidth-code-point/index.js | 46 + .../node_modules/is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 77 + .../node_modules/is-fullwidth-code-point/readme.md | 39 + .../wrap-ansi/node_modules/string-width/index.js | 37 + .../wrap-ansi/node_modules/string-width/license | 21 + .../node_modules/string-width/package.json | 88 + .../wrap-ansi/node_modules/string-width/readme.md | 42 + .../wrap-ansi/node_modules/strip-ansi/index.js | 6 + .../wrap-ansi/node_modules/strip-ansi/license | 21 + .../wrap-ansi/node_modules/strip-ansi/package.json | 102 + .../wrap-ansi/node_modules/strip-ansi/readme.md | 33 + deps/npm/node_modules/wrap-ansi/package.json | 120 + deps/npm/node_modules/wrap-ansi/readme.md | 73 + deps/npm/node_modules/wrappy/package.json | 29 +- deps/npm/node_modules/write-file-atomic/README.md | 2 + deps/npm/node_modules/write-file-atomic/index.js | 177 +- .../node_modules/write-file-atomic/package.json | 34 +- deps/npm/node_modules/xdg-basedir/index.js | 28 + deps/npm/node_modules/xdg-basedir/license | 21 + deps/npm/node_modules/xdg-basedir/package.json | 73 + deps/npm/node_modules/xdg-basedir/readme.md | 60 + deps/npm/node_modules/xtend/.npmignore | 1 + deps/npm/node_modules/xtend/LICENCE | 19 + deps/npm/node_modules/xtend/Makefile | 4 + deps/npm/node_modules/xtend/README.md | 32 + deps/npm/node_modules/xtend/immutable.js | 19 + deps/npm/node_modules/xtend/mutable.js | 17 + deps/npm/node_modules/xtend/package.json | 87 + deps/npm/node_modules/xtend/test.js | 83 + deps/npm/node_modules/y18n/CHANGELOG.md | 21 + deps/npm/node_modules/y18n/LICENSE | 13 + deps/npm/node_modules/y18n/README.md | 109 + deps/npm/node_modules/y18n/index.js | 188 + deps/npm/node_modules/y18n/package.json | 70 + deps/npm/node_modules/yallist/LICENSE | 15 + deps/npm/node_modules/yallist/README.md | 204 + deps/npm/node_modules/yallist/iterator.js | 7 + deps/npm/node_modules/yallist/package.json | 62 + deps/npm/node_modules/yallist/yallist.js | 370 + deps/npm/node_modules/yargs-parser/CHANGELOG.md | 300 + deps/npm/node_modules/yargs-parser/LICENSE.txt | 14 + deps/npm/node_modules/yargs-parser/README.md | 308 + deps/npm/node_modules/yargs-parser/index.js | 811 ++ .../yargs-parser/lib/tokenize-arg-string.js | 40 + deps/npm/node_modules/yargs-parser/package.json | 75 + deps/npm/node_modules/yargs/CHANGELOG.md | 1131 ++ deps/npm/node_modules/yargs/LICENSE | 22 + deps/npm/node_modules/yargs/README.md | 107 + deps/npm/node_modules/yargs/completion.sh.hbs | 28 + deps/npm/node_modules/yargs/index.js | 32 + deps/npm/node_modules/yargs/lib/apply-extends.js | 53 + deps/npm/node_modules/yargs/lib/argsert.js | 66 + deps/npm/node_modules/yargs/lib/command.js | 426 + deps/npm/node_modules/yargs/lib/completion.js | 105 + deps/npm/node_modules/yargs/lib/levenshtein.js | 47 + deps/npm/node_modules/yargs/lib/obj-filter.js | 11 + deps/npm/node_modules/yargs/lib/usage.js | 524 + deps/npm/node_modules/yargs/lib/validation.js | 341 + deps/npm/node_modules/yargs/lib/yerror.js | 11 + deps/npm/node_modules/yargs/locales/be.json | 39 + deps/npm/node_modules/yargs/locales/de.json | 39 + deps/npm/node_modules/yargs/locales/en.json | 42 + deps/npm/node_modules/yargs/locales/es.json | 39 + deps/npm/node_modules/yargs/locales/fr.json | 37 + deps/npm/node_modules/yargs/locales/hi.json | 42 + deps/npm/node_modules/yargs/locales/hu.json | 39 + deps/npm/node_modules/yargs/locales/id.json | 43 + deps/npm/node_modules/yargs/locales/it.json | 39 + deps/npm/node_modules/yargs/locales/ja.json | 42 + deps/npm/node_modules/yargs/locales/ko.json | 42 + deps/npm/node_modules/yargs/locales/nb.json | 37 + deps/npm/node_modules/yargs/locales/nl.json | 42 + deps/npm/node_modules/yargs/locales/nn.json | 39 + deps/npm/node_modules/yargs/locales/pirate.json | 12 + deps/npm/node_modules/yargs/locales/pl.json | 42 + deps/npm/node_modules/yargs/locales/pt.json | 38 + deps/npm/node_modules/yargs/locales/pt_BR.json | 42 + deps/npm/node_modules/yargs/locales/ru.json | 39 + deps/npm/node_modules/yargs/locales/th.json | 39 + deps/npm/node_modules/yargs/locales/tr.json | 41 + deps/npm/node_modules/yargs/locales/zh_CN.json | 41 + deps/npm/node_modules/yargs/locales/zh_TW.json | 40 + .../node_modules/yargs/node_modules/y18n/LICENSE | 13 + .../node_modules/yargs/node_modules/y18n/README.md | 91 + .../node_modules/yargs/node_modules/y18n/index.js | 172 + .../yargs/node_modules/y18n/package.json | 65 + deps/npm/node_modules/yargs/package.json | 101 + deps/npm/node_modules/yargs/yargs.js | 1153 ++ deps/npm/package.json | 115 +- deps/npm/scripts/changelog.js | 10 +- deps/npm/scripts/index-build.js | 8 +- deps/npm/scripts/maketest | 41 +- deps/npm/scripts/release.sh | 3 + .../broken-under-nyc-and-travis/lifecycle-path.js | 4 +- deps/npm/test/common-tap.js | 26 +- deps/npm/test/fixtures/config/.npmrc | 1 + .../add-remote-git-get-resolved.js | 2 +- .../belongs-in-pacote/git-races.js | 1 + .../need-npm5-update/legacy-npm-self-install.js | 3 +- deps/npm/test/need-npm5-update/lifecycle-signal.js | 2 +- .../move-no-clobber-dest-node-modules.js | 6 +- .../need-npm5-update/outdated-depth-integer.js | 6 +- deps/npm/test/need-npm5-update/outdated-symlink.js | 3 +- .../test/need-npm5-update/peer-deps-toplevel.js | 3 +- deps/npm/test/need-npm5-update/rm-linked.js | 6 +- .../shrinkwrap-complete-except-dev.js | 3 +- deps/npm/test/network/git-cache-locking.js | 3 +- deps/npm/test/network/registry.js | 4 +- deps/npm/test/tap/00-verify-ls-ok.js | 13 +- deps/npm/test/tap/adduser-always-auth.js | 235 +- deps/npm/test/tap/adduser-legacy-auth.js | 7 +- deps/npm/test/tap/adduser-oauth.js | 19 +- deps/npm/test/tap/adduser-saml.js | 19 +- deps/npm/test/tap/anon-cli-metrics.js | 3 +- deps/npm/test/tap/audit-fix.js | 669 + deps/npm/test/tap/auto-prune.js | 147 + deps/npm/test/tap/bugs.js | 2 +- deps/npm/test/tap/builtin-config.js | 94 +- .../test/tap/bundled-dependencies-no-pkgjson.js | 55 - deps/npm/test/tap/cache-add-unpublished.js | 2 +- deps/npm/test/tap/ci.js | 304 + deps/npm/test/tap/config-basic.js | 1 - deps/npm/test/tap/config-builtin.js | 1 - deps/npm/test/tap/config-envReplace.js | 57 + deps/npm/test/tap/config-list.js | 2 +- deps/npm/test/tap/config-meta.js | 6 +- deps/npm/test/tap/correct-mkdir.js | 5 +- deps/npm/test/tap/debug-logs.js | 3 +- deps/npm/test/tap/dist-tag.js | 2 +- deps/npm/test/tap/doctor.js | 2 +- deps/npm/test/tap/files-and-ignores.js | 697 -- deps/npm/test/tap/gently-rm-cmdshims.js | 37 +- deps/npm/test/tap/gently-rm-linked-module.js | 3 +- deps/npm/test/tap/git-npmignore.js | 1 + deps/npm/test/tap/help.js | 2 +- deps/npm/test/tap/hook.js | 243 + deps/npm/test/tap/init-create.js | 171 + deps/npm/test/tap/init-interrupt.js | 1 + deps/npm/test/tap/install-bad-dep-format.js | 2 +- deps/npm/test/tap/install-cli-only-production.js | 10 +- deps/npm/test/tap/install-cli-only-shrinkwrap.js | 9 +- deps/npm/test/tap/install-contributors-count.js | 70 + .../npm/test/tap/install-duplicate-deps-warning.js | 2 +- deps/npm/test/tap/install-order.js | 1 + deps/npm/test/tap/install-package-lock-only.js | 3 +- deps/npm/test/tap/install-parse-error.js | 3 +- .../test/tap/install-save-consistent-newlines.js | 122 + .../tap/install-scoped-with-bundled-dependency.js | 3 +- deps/npm/test/tap/install-shrinkwrapped-git.js | 23 +- .../tap/install-test-cli-without-package-lock.js | 83 + deps/npm/test/tap/install-windows-newlines.js | 2 +- .../npm/test/tap/install-with-dev-dep-duplicate.js | 2 +- deps/npm/test/tap/invalid-dep-version-filtering.js | 4 +- deps/npm/test/tap/is-fs-access-available.js | 5 +- deps/npm/test/tap/link.js | 8 +- deps/npm/test/tap/lockfile-http-deps.js | 3 +- deps/npm/test/tap/map-to-registry.js | 2 +- deps/npm/test/tap/nerf-dart.js | 6 +- deps/npm/test/tap/no-global-warns.js | 2 +- .../tap/optional-metadep-rollback-collision.js | 11 +- deps/npm/test/tap/outdated-color.js | 16 +- deps/npm/test/tap/outdated-latest.js | 109 + deps/npm/test/tap/override-bundled.js | 10 +- deps/npm/test/tap/pack-files-and-ignores.js | 697 ++ deps/npm/test/tap/pack.js | 167 + deps/npm/test/tap/peer-deps.js | 2 +- deps/npm/test/tap/prepublish-only.js | 9 +- deps/npm/test/tap/prune-dev-dep-with-bins.js | 2 +- deps/npm/test/tap/publish-config.js | 2 +- deps/npm/test/tap/publish-scoped.js | 6 +- deps/npm/test/tap/publish.js | 174 + deps/npm/test/tap/repo.js | 2 +- deps/npm/test/tap/retry-on-stale-cache.js | 9 +- deps/npm/test/tap/save-optional.js | 81 + deps/npm/test/tap/scripts-whitespace-windows.js | 6 +- deps/npm/test/tap/search.js | 6 +- deps/npm/test/tap/shared-linked.js | 3 +- deps/npm/test/tap/shrinkwrap-default-dev.js | 3 +- deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js | 3 +- .../npm/test/tap/shrinkwrap-optional-dependency.js | 2 +- deps/npm/test/tap/shrinkwrap-optional-platform.js | 3 +- deps/npm/test/tap/shrinkwrap-optional-property.js | 2 +- deps/npm/test/tap/shrinkwrap-prod-dependency.js | 2 +- deps/npm/test/tap/shrinkwrap-resolve-conflict.js | 117 + .../tap/shrinkwrap-save-dev-with-existing-deps.js | 1 + .../tap/shrinkwrap-save-with-existing-dev-deps.js | 1 + deps/npm/test/tap/spec-local-specifiers.js | 4 +- deps/npm/test/tap/startstop.js | 4 +- deps/npm/test/tap/symlink-cycle.js | 2 +- deps/npm/test/tap/tagged-version-matching.js | 33 +- deps/npm/test/tap/team.js | 24 + deps/npm/test/tap/test-run-ls.js | 2 +- deps/npm/test/tap/unit-deps-earliestInstallable.js | 5 +- deps/npm/test/tap/unit-token-validate-cidr.js | 19 + deps/npm/test/tap/unsupported.js | 11 +- deps/npm/test/tap/update-examples.js | 2 +- deps/npm/test/tap/upgrade-lifecycles.js | 3 +- deps/npm/test/tap/version-consistent-newlines.js | 91 + deps/npm/test/tap/view.js | 11 +- 6303 files changed, 270311 insertions(+), 297837 deletions(-) create mode 100644 deps/npm/changelogs/CHANGELOG-5.md create mode 100644 deps/npm/doc/cli/npm-audit.md create mode 100644 deps/npm/doc/cli/npm-ci.md create mode 100644 deps/npm/doc/cli/npm-hook.md create mode 100644 deps/npm/doc/cli/npm-install-ci-test.md create mode 100644 deps/npm/html/doc/cli/npm-audit.html create mode 100644 deps/npm/html/doc/cli/npm-ci.html create mode 100644 deps/npm/html/doc/cli/npm-hook.html create mode 100644 deps/npm/html/doc/cli/npm-install-ci-test.html create mode 100644 deps/npm/lib/audit.js create mode 100644 deps/npm/lib/ci.js create mode 100644 deps/npm/lib/hook.js create mode 100644 deps/npm/lib/install-ci-test.js create mode 100644 deps/npm/lib/install/audit.js create mode 100644 deps/npm/lib/install/has-modern-meta.js create mode 100644 deps/npm/lib/utils/open-url.js create mode 100644 deps/npm/lib/utils/stringify-package.js create mode 100644 deps/npm/man/man1/npm-audit.1 create mode 100644 deps/npm/man/man1/npm-ci.1 create mode 100644 deps/npm/man/man1/npm-hook.1 create mode 100644 deps/npm/man/man1/npm-install-ci-test.1 create mode 100755 deps/npm/node_modules/JSONStream/bin.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/index.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/package.json delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/async.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/end.js delete mode 100644 deps/npm/node_modules/JSONStream/node_modules/through/test/index.js create mode 100644 deps/npm/node_modules/agent-base/.travis.yml create mode 100644 deps/npm/node_modules/agent-base/History.md create mode 100644 deps/npm/node_modules/agent-base/README.md create mode 100644 deps/npm/node_modules/agent-base/index.js create mode 100644 deps/npm/node_modules/agent-base/package.json create mode 100644 deps/npm/node_modules/agent-base/patch-core.js create mode 100644 deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key create mode 100644 deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem create mode 100644 deps/npm/node_modules/agent-base/test/test.js create mode 100644 deps/npm/node_modules/agentkeepalive/History.md create mode 100644 deps/npm/node_modules/agentkeepalive/README.md create mode 100644 deps/npm/node_modules/agentkeepalive/browser.js create mode 100644 deps/npm/node_modules/agentkeepalive/index.js create mode 100644 deps/npm/node_modules/agentkeepalive/lib/_http_agent.js create mode 100644 deps/npm/node_modules/agentkeepalive/lib/agent.js create mode 100644 deps/npm/node_modules/agentkeepalive/lib/https_agent.js create mode 100644 deps/npm/node_modules/agentkeepalive/package.json create mode 100644 deps/npm/node_modules/ajv/.tonic_example.js create mode 100644 deps/npm/node_modules/ajv/LICENSE create mode 100644 deps/npm/node_modules/ajv/README.md create mode 100644 deps/npm/node_modules/ajv/dist/ajv.bundle.js create mode 100644 deps/npm/node_modules/ajv/dist/ajv.min.js create mode 100644 deps/npm/node_modules/ajv/dist/ajv.min.js.map create mode 100644 deps/npm/node_modules/ajv/dist/nodent.min.js create mode 100644 deps/npm/node_modules/ajv/dist/regenerator.min.js create mode 100644 deps/npm/node_modules/ajv/lib/$data.js create mode 100644 deps/npm/node_modules/ajv/lib/ajv.d.ts create mode 100644 deps/npm/node_modules/ajv/lib/ajv.js create mode 100644 deps/npm/node_modules/ajv/lib/cache.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/_rules.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/async.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/equal.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/error_classes.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/formats.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/index.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/resolve.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/rules.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/schema_obj.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/ucs2length.js create mode 100644 deps/npm/node_modules/ajv/lib/compile/util.js create mode 100644 deps/npm/node_modules/ajv/lib/dot/_limit.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/_limitItems.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/_limitLength.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/allOf.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/anyOf.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/coerce.def create mode 100644 deps/npm/node_modules/ajv/lib/dot/const.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/contains.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/custom.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/defaults.def create mode 100644 deps/npm/node_modules/ajv/lib/dot/definitions.def create mode 100644 deps/npm/node_modules/ajv/lib/dot/dependencies.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/enum.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/errors.def create mode 100644 deps/npm/node_modules/ajv/lib/dot/format.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/items.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/missing.def create mode 100644 deps/npm/node_modules/ajv/lib/dot/multipleOf.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/not.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/oneOf.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/pattern.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/properties.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/propertyNames.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/ref.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/required.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst create mode 100644 deps/npm/node_modules/ajv/lib/dot/validate.jst create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/README.md create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limit.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/allOf.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/anyOf.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/const.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/contains.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/custom.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/dependencies.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/enum.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/format.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/items.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/not.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/oneOf.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/pattern.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/properties.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/ref.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/required.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js create mode 100644 deps/npm/node_modules/ajv/lib/dotjs/validate.js create mode 100644 deps/npm/node_modules/ajv/lib/keyword.js create mode 100644 deps/npm/node_modules/ajv/lib/patternGroups.js create mode 100644 deps/npm/node_modules/ajv/lib/refs/$data.json create mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json create mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json create mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-v5.json create mode 100644 deps/npm/node_modules/ajv/package.json create mode 100644 deps/npm/node_modules/ajv/scripts/.eslintrc.yml create mode 100644 deps/npm/node_modules/ajv/scripts/bundle.js create mode 100644 deps/npm/node_modules/ajv/scripts/compile-dots.js create mode 100755 deps/npm/node_modules/ajv/scripts/info create mode 100755 deps/npm/node_modules/ajv/scripts/prepare-tests create mode 100755 deps/npm/node_modules/ajv/scripts/travis-gh-pages create mode 100644 deps/npm/node_modules/ansi-align/CHANGELOG.md create mode 100644 deps/npm/node_modules/ansi-align/LICENSE create mode 100644 deps/npm/node_modules/ansi-align/README.md create mode 100644 deps/npm/node_modules/ansi-align/index.js create mode 100644 deps/npm/node_modules/ansi-align/package.json create mode 100644 deps/npm/node_modules/ansi-styles/index.js create mode 100644 deps/npm/node_modules/ansi-styles/license create mode 100644 deps/npm/node_modules/ansi-styles/package.json create mode 100644 deps/npm/node_modules/ansi-styles/readme.md create mode 100644 deps/npm/node_modules/are-we-there-yet/CHANGES.md create mode 100644 deps/npm/node_modules/are-we-there-yet/LICENSE create mode 100644 deps/npm/node_modules/are-we-there-yet/README.md create mode 100644 deps/npm/node_modules/are-we-there-yet/index.js create mode 100644 deps/npm/node_modules/are-we-there-yet/package.json create mode 100644 deps/npm/node_modules/are-we-there-yet/tracker-base.js create mode 100644 deps/npm/node_modules/are-we-there-yet/tracker-group.js create mode 100644 deps/npm/node_modules/are-we-there-yet/tracker-stream.js create mode 100644 deps/npm/node_modules/are-we-there-yet/tracker.js create mode 100644 deps/npm/node_modules/asap/CHANGES.md create mode 100644 deps/npm/node_modules/asap/LICENSE.md create mode 100644 deps/npm/node_modules/asap/README.md create mode 100644 deps/npm/node_modules/asap/asap.js create mode 100644 deps/npm/node_modules/asap/browser-asap.js create mode 100644 deps/npm/node_modules/asap/browser-raw.js create mode 100644 deps/npm/node_modules/asap/package.json create mode 100644 deps/npm/node_modules/asap/raw.js create mode 100644 deps/npm/node_modules/asn1/.npmignore create mode 100644 deps/npm/node_modules/asn1/.travis.yml create mode 100644 deps/npm/node_modules/asn1/LICENSE create mode 100644 deps/npm/node_modules/asn1/README.md create mode 100644 deps/npm/node_modules/asn1/lib/ber/errors.js create mode 100644 deps/npm/node_modules/asn1/lib/ber/index.js create mode 100644 deps/npm/node_modules/asn1/lib/ber/reader.js create mode 100644 deps/npm/node_modules/asn1/lib/ber/types.js create mode 100644 deps/npm/node_modules/asn1/lib/ber/writer.js create mode 100644 deps/npm/node_modules/asn1/lib/index.js create mode 100644 deps/npm/node_modules/asn1/package.json create mode 100644 deps/npm/node_modules/asn1/tst/ber/reader.test.js create mode 100644 deps/npm/node_modules/asn1/tst/ber/writer.test.js create mode 100644 deps/npm/node_modules/assert-plus/AUTHORS create mode 100644 deps/npm/node_modules/assert-plus/CHANGES.md create mode 100644 deps/npm/node_modules/assert-plus/README.md create mode 100644 deps/npm/node_modules/assert-plus/assert.js create mode 100644 deps/npm/node_modules/assert-plus/package.json create mode 100644 deps/npm/node_modules/asynckit/LICENSE create mode 100644 deps/npm/node_modules/asynckit/README.md create mode 100644 deps/npm/node_modules/asynckit/bench.js create mode 100644 deps/npm/node_modules/asynckit/index.js create mode 100644 deps/npm/node_modules/asynckit/lib/abort.js create mode 100644 deps/npm/node_modules/asynckit/lib/async.js create mode 100644 deps/npm/node_modules/asynckit/lib/defer.js create mode 100644 deps/npm/node_modules/asynckit/lib/iterate.js create mode 100644 deps/npm/node_modules/asynckit/lib/readable_asynckit.js create mode 100644 deps/npm/node_modules/asynckit/lib/readable_parallel.js create mode 100644 deps/npm/node_modules/asynckit/lib/readable_serial.js create mode 100644 deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js create mode 100644 deps/npm/node_modules/asynckit/lib/state.js create mode 100644 deps/npm/node_modules/asynckit/lib/streamify.js create mode 100644 deps/npm/node_modules/asynckit/lib/terminator.js create mode 100644 deps/npm/node_modules/asynckit/package.json create mode 100644 deps/npm/node_modules/asynckit/parallel.js create mode 100644 deps/npm/node_modules/asynckit/serial.js create mode 100644 deps/npm/node_modules/asynckit/serialOrdered.js create mode 100644 deps/npm/node_modules/asynckit/stream.js create mode 100644 deps/npm/node_modules/aws-sign2/LICENSE create mode 100644 deps/npm/node_modules/aws-sign2/README.md create mode 100644 deps/npm/node_modules/aws-sign2/index.js create mode 100644 deps/npm/node_modules/aws-sign2/package.json create mode 100644 deps/npm/node_modules/aws4/.travis.yml create mode 100644 deps/npm/node_modules/aws4/LICENSE create mode 100644 deps/npm/node_modules/aws4/README.md create mode 100644 deps/npm/node_modules/aws4/aws4.js create mode 100644 deps/npm/node_modules/aws4/lru.js create mode 100644 deps/npm/node_modules/aws4/package.json create mode 100644 deps/npm/node_modules/balanced-match/.npmignore create mode 100644 deps/npm/node_modules/balanced-match/LICENSE.md create mode 100644 deps/npm/node_modules/balanced-match/README.md create mode 100644 deps/npm/node_modules/balanced-match/index.js create mode 100644 deps/npm/node_modules/balanced-match/package.json create mode 100644 deps/npm/node_modules/bcrypt-pbkdf/README.md create mode 100644 deps/npm/node_modules/bcrypt-pbkdf/index.js create mode 100644 deps/npm/node_modules/bcrypt-pbkdf/package.json create mode 100644 deps/npm/node_modules/block-stream/LICENCE create mode 100644 deps/npm/node_modules/block-stream/LICENSE create mode 100644 deps/npm/node_modules/block-stream/README.md create mode 100644 deps/npm/node_modules/block-stream/block-stream.js create mode 100644 deps/npm/node_modules/block-stream/package.json create mode 100755 deps/npm/node_modules/boom/LICENSE create mode 100755 deps/npm/node_modules/boom/README.md create mode 100755 deps/npm/node_modules/boom/lib/index.js create mode 100644 deps/npm/node_modules/boom/package.json create mode 100644 deps/npm/node_modules/boxen/index.js create mode 100644 deps/npm/node_modules/boxen/license create mode 100644 deps/npm/node_modules/boxen/package.json create mode 100644 deps/npm/node_modules/boxen/readme.md create mode 100644 deps/npm/node_modules/brace-expansion/LICENSE create mode 100644 deps/npm/node_modules/brace-expansion/README.md create mode 100644 deps/npm/node_modules/brace-expansion/index.js create mode 100644 deps/npm/node_modules/brace-expansion/package.json create mode 100644 deps/npm/node_modules/buffer-from/index.js create mode 100644 deps/npm/node_modules/buffer-from/package.json create mode 100644 deps/npm/node_modules/buffer-from/readme.md create mode 100644 deps/npm/node_modules/buffer-from/test.js create mode 100644 deps/npm/node_modules/builtin-modules/builtin-modules.json create mode 100644 deps/npm/node_modules/builtin-modules/index.js create mode 100644 deps/npm/node_modules/builtin-modules/license create mode 100644 deps/npm/node_modules/builtin-modules/package.json create mode 100644 deps/npm/node_modules/builtin-modules/readme.md create mode 100644 deps/npm/node_modules/builtin-modules/static.js create mode 100644 deps/npm/node_modules/builtins/.travis.yml create mode 100644 deps/npm/node_modules/builtins/History.md create mode 100644 deps/npm/node_modules/builtins/License create mode 100644 deps/npm/node_modules/builtins/Readme.md create mode 100644 deps/npm/node_modules/builtins/builtins.json create mode 100644 deps/npm/node_modules/builtins/package.json create mode 100644 deps/npm/node_modules/builtins/test.js create mode 100644 deps/npm/node_modules/byline/LICENSE create mode 100644 deps/npm/node_modules/byline/README.md create mode 100644 deps/npm/node_modules/byline/lib/byline.js create mode 100644 deps/npm/node_modules/byline/package.json create mode 100644 deps/npm/node_modules/byte-size/LICENSE create mode 100644 deps/npm/node_modules/byte-size/README.hbs create mode 100644 deps/npm/node_modules/byte-size/README.md create mode 100644 deps/npm/node_modules/byte-size/index.js create mode 100644 deps/npm/node_modules/byte-size/package.json delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/cacache/node_modules/ssri/package.json delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/LICENSE delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/README.md delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/index.js delete mode 100644 deps/npm/node_modules/cacache/node_modules/y18n/package.json create mode 100644 deps/npm/node_modules/camelcase/index.js create mode 100644 deps/npm/node_modules/camelcase/license create mode 100644 deps/npm/node_modules/camelcase/package.json create mode 100644 deps/npm/node_modules/camelcase/readme.md create mode 100644 deps/npm/node_modules/capture-stack-trace/index.js create mode 100644 deps/npm/node_modules/capture-stack-trace/package.json create mode 100644 deps/npm/node_modules/capture-stack-trace/readme.md create mode 100644 deps/npm/node_modules/caseless/LICENSE create mode 100644 deps/npm/node_modules/caseless/README.md create mode 100644 deps/npm/node_modules/caseless/index.js create mode 100644 deps/npm/node_modules/caseless/package.json create mode 100644 deps/npm/node_modules/caseless/test.js create mode 100644 deps/npm/node_modules/chalk/index.js create mode 100644 deps/npm/node_modules/chalk/index.js.flow create mode 100644 deps/npm/node_modules/chalk/license create mode 100644 deps/npm/node_modules/chalk/package.json create mode 100644 deps/npm/node_modules/chalk/readme.md create mode 100644 deps/npm/node_modules/chalk/templates.js create mode 100644 deps/npm/node_modules/chalk/types/index.d.ts create mode 100644 deps/npm/node_modules/ci-info/LICENSE create mode 100644 deps/npm/node_modules/ci-info/README.md create mode 100644 deps/npm/node_modules/ci-info/index.js create mode 100644 deps/npm/node_modules/ci-info/package.json create mode 100644 deps/npm/node_modules/cidr-regex/LICENSE create mode 100644 deps/npm/node_modules/cidr-regex/README.md create mode 100644 deps/npm/node_modules/cidr-regex/index.js create mode 100644 deps/npm/node_modules/cidr-regex/package.json create mode 100644 deps/npm/node_modules/cli-boxes/boxes.json create mode 100644 deps/npm/node_modules/cli-boxes/index.js create mode 100644 deps/npm/node_modules/cli-boxes/license create mode 100644 deps/npm/node_modules/cli-boxes/package.json create mode 100644 deps/npm/node_modules/cli-boxes/readme.md create mode 100644 deps/npm/node_modules/cli-columns/LICENSE create mode 100644 deps/npm/node_modules/cli-columns/README.md create mode 100644 deps/npm/node_modules/cli-columns/color.js create mode 100644 deps/npm/node_modules/cli-columns/index.js create mode 100644 deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js create mode 100644 deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license create mode 100644 deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json create mode 100644 deps/npm/node_modules/cli-columns/node_modules/ansi-regex/readme.md create mode 100644 deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js create mode 100644 deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license create mode 100644 deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json create mode 100644 deps/npm/node_modules/cli-columns/node_modules/strip-ansi/readme.md create mode 100644 deps/npm/node_modules/cli-columns/package.json create mode 100644 deps/npm/node_modules/cli-columns/test.js create mode 100644 deps/npm/node_modules/cli-table2/node_modules/ansi-regex/index.js create mode 100644 deps/npm/node_modules/cli-table2/node_modules/ansi-regex/license create mode 100644 deps/npm/node_modules/cli-table2/node_modules/ansi-regex/package.json create mode 100644 deps/npm/node_modules/cli-table2/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/LICENSE delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/ReadMe.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/examples/normal-usage.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/examples/safe-string.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/colors.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/trap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/zalgo.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/extendStringPrototype.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/america.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/rainbow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/random.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/zebra.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/styles.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/lib/system/supports-colors.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/safe.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/colors/themes/generic-logging.js create mode 100644 deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/index.js create mode 100644 deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/license create mode 100644 deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/package.json create mode 100644 deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/LICENSE delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/README.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/chunk.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/compact.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/difference.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/drop.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRightWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/fill.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/findIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/findLastIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/first.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/flatten.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/flattenDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/head.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/indexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/initial.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/intersection.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/last.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/lastIndexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/object.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/pull.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/pullAt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/remove.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/rest.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/slice.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedLastIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/tail.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/take.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRightWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/union.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/uniq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/unique.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzip.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzipWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/without.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/xor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/zip.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/chain.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/commit.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/concat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/lodash.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/plant.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/reverse.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/run.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/tap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/thru.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toJSON.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/value.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/valueOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperChain.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperCommit.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperConcat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperPlant.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperReverse.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperToString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperValue.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/all.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/any.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/at.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/collect.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/contains.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/countBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/detect.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/each.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/eachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/every.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/filter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/find.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findLast.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findWhere.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldl.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldr.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/groupBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/include.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/includes.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/indexBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/inject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/invoke.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/map.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/max.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/min.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/partition.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/pluck.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduceRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sample.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/select.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/shuffle.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/size.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/some.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByAll.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByOrder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/collection/where.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/date.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/date/now.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/after.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/ary.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/backflow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/before.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/bind.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindAll.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/compose.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/curry.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/curryRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/debounce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/defer.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/delay.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/flow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/flowRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/memoize.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/modArgs.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/negate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/once.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/partial.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/partialRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/rearg.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/restParam.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/spread.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/throttle.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/function/wrap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LazyWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LodashWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/MapCache.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/SetCache.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayConcat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayCopy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEvery.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayExtremum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayFilter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayMap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayPush.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduceRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySome.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignOwnDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAssign.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCallback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCompareAscending.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCopy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCreate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDelay.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDifference.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEachRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEvery.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseExtremum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFill.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFilter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFind.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFindIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFlatten.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwnRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFunctions.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseGet.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIndexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqual.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqualDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsFunction.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsMatch.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseLodash.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatches.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatchesProperty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMerge.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMergeDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseProperty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePropertyDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePullAt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseRandom.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseReduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSetData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSlice.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSome.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortByOrder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseToString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseUniq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseValues.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWhile.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWrapperValue.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndexBy.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bindCallback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bufferClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cacheIndexOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cachePush.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsLeftIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsRightIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareAscending.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareMultiple.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgs.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgsRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAggregator.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAssigner.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseFor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBindWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCache.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCompounder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCtorWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCurry.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createExtremum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFind.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFlow.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForEach.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForOwn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createHybridWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createObjectMapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadDir.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadding.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartial.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartialWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createReduce.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createRound.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createSortedIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createWrapper.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/deburrLetter.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalArrays.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalByTag.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalObjects.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeHtmlChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeRegExpChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeStringChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getFuncName.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getLength.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getMatchData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getNative.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getView.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/indexOfNaN.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneByTag.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/invokePath.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isArrayLike.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIterateeCall.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLaziable.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLength.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isObjectLike.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isSpace.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isStrictComparable.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyReverse.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyValue.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapDelete.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapGet.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapHas.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapSet.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeDefaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/metaMap.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByCallback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEscape.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEvaluate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reInterpolate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/realNames.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reorder.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/replaceHolders.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/setData.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/shimKeys.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/sortedUniq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toIterable.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toPath.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedLeftIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedRightIndex.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/unescapeHtmlChar.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/internal/wrapperClone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/clone.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/cloneDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/eq.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gte.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArguments.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isBoolean.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isDate.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isElement.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEmpty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEqual.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isError.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFinite.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFunction.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isMatch.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNaN.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNative.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNull.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNumber.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isPlainObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isRegExp.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isString.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isTypedArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isUndefined.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lte.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toArray.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toPlainObject.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/add.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/ceil.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/floor.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/max.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/min.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/round.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/math/sum.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/number.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/number/inRange.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/number/random.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/assign.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/create.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaults.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaultsDeep.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/extend.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/findKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/findLastKey.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forInRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwnRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/functions.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/get.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/has.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/invert.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/keys.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/keysIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapKeys.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapValues.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/merge.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/methods.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/omit.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/pairs.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/pick.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/result.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/set.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/transform.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/values.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/object/valuesIn.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/camelCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/capitalize.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/deburr.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/endsWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/escape.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/escapeRegExp.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/kebabCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/pad.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/padLeft.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/padRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/parseInt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/repeat.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/snakeCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/startCase.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/startsWith.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/template.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/templateSettings.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trim.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimLeft.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimRight.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/trunc.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/unescape.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/string/words.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/support.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/attempt.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/callback.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/constant.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/identity.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/iteratee.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matches.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matchesProperty.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/method.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/methodOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/mixin.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/noop.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/property.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/propertyOf.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/range.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/times.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/lodash/utility/uniqueId.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/readme.md create mode 100644 deps/npm/node_modules/cli-table2/node_modules/strip-ansi/index.js create mode 100644 deps/npm/node_modules/cli-table2/node_modules/strip-ansi/license create mode 100644 deps/npm/node_modules/cli-table2/node_modules/strip-ansi/package.json create mode 100644 deps/npm/node_modules/cli-table2/node_modules/strip-ansi/readme.md create mode 100644 deps/npm/node_modules/cliui/CHANGELOG.md create mode 100644 deps/npm/node_modules/cliui/LICENSE.txt create mode 100644 deps/npm/node_modules/cliui/README.md create mode 100644 deps/npm/node_modules/cliui/index.js create mode 100644 deps/npm/node_modules/cliui/package.json create mode 100644 deps/npm/node_modules/clone/.npmignore create mode 100644 deps/npm/node_modules/clone/LICENSE create mode 100644 deps/npm/node_modules/clone/README.md create mode 100644 deps/npm/node_modules/clone/clone.iml create mode 100644 deps/npm/node_modules/clone/clone.js create mode 100644 deps/npm/node_modules/clone/package.json create mode 100644 deps/npm/node_modules/co/History.md create mode 100644 deps/npm/node_modules/co/LICENSE create mode 100644 deps/npm/node_modules/co/Readme.md create mode 100644 deps/npm/node_modules/co/index.js create mode 100644 deps/npm/node_modules/co/package.json create mode 100644 deps/npm/node_modules/code-point-at/index.js create mode 100644 deps/npm/node_modules/code-point-at/license create mode 100644 deps/npm/node_modules/code-point-at/package.json create mode 100644 deps/npm/node_modules/code-point-at/readme.md create mode 100644 deps/npm/node_modules/color-convert/CHANGELOG.md create mode 100644 deps/npm/node_modules/color-convert/LICENSE create mode 100644 deps/npm/node_modules/color-convert/README.md create mode 100644 deps/npm/node_modules/color-convert/conversions.js create mode 100644 deps/npm/node_modules/color-convert/index.js create mode 100644 deps/npm/node_modules/color-convert/package.json create mode 100644 deps/npm/node_modules/color-convert/route.js create mode 100644 deps/npm/node_modules/color-name/.eslintrc.json create mode 100644 deps/npm/node_modules/color-name/.npmignore create mode 100644 deps/npm/node_modules/color-name/LICENSE create mode 100644 deps/npm/node_modules/color-name/README.md create mode 100644 deps/npm/node_modules/color-name/index.js create mode 100644 deps/npm/node_modules/color-name/package.json create mode 100644 deps/npm/node_modules/color-name/test.js create mode 100644 deps/npm/node_modules/colors/LICENSE create mode 100644 deps/npm/node_modules/colors/README.md create mode 100644 deps/npm/node_modules/colors/examples/normal-usage.js create mode 100644 deps/npm/node_modules/colors/examples/safe-string.js create mode 100644 deps/npm/node_modules/colors/index.d.ts create mode 100644 deps/npm/node_modules/colors/lib/colors.js create mode 100644 deps/npm/node_modules/colors/lib/custom/trap.js create mode 100644 deps/npm/node_modules/colors/lib/custom/zalgo.js create mode 100644 deps/npm/node_modules/colors/lib/extendStringPrototype.js create mode 100644 deps/npm/node_modules/colors/lib/index.js create mode 100644 deps/npm/node_modules/colors/lib/maps/america.js create mode 100644 deps/npm/node_modules/colors/lib/maps/rainbow.js create mode 100644 deps/npm/node_modules/colors/lib/maps/random.js create mode 100644 deps/npm/node_modules/colors/lib/maps/zebra.js create mode 100644 deps/npm/node_modules/colors/lib/styles.js create mode 100644 deps/npm/node_modules/colors/lib/system/has-flag.js create mode 100644 deps/npm/node_modules/colors/lib/system/supports-colors.js create mode 100644 deps/npm/node_modules/colors/package.json create mode 100644 deps/npm/node_modules/colors/safe.d.ts create mode 100644 deps/npm/node_modules/colors/safe.js create mode 100644 deps/npm/node_modules/colors/themes/generic-logging.js create mode 100644 deps/npm/node_modules/columnify/node_modules/ansi-regex/index.js create mode 100644 deps/npm/node_modules/columnify/node_modules/ansi-regex/license create mode 100644 deps/npm/node_modules/columnify/node_modules/ansi-regex/package.json create mode 100644 deps/npm/node_modules/columnify/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/Readme.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/package.json delete mode 100644 deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js create mode 100644 deps/npm/node_modules/combined-stream/License create mode 100644 deps/npm/node_modules/combined-stream/Readme.md create mode 100644 deps/npm/node_modules/combined-stream/lib/combined_stream.js create mode 100644 deps/npm/node_modules/combined-stream/lib/defer.js create mode 100644 deps/npm/node_modules/combined-stream/package.json create mode 100644 deps/npm/node_modules/concat-map/.travis.yml create mode 100644 deps/npm/node_modules/concat-map/LICENSE create mode 100644 deps/npm/node_modules/concat-map/README.markdown create mode 100644 deps/npm/node_modules/concat-map/example/map.js create mode 100644 deps/npm/node_modules/concat-map/index.js create mode 100644 deps/npm/node_modules/concat-map/package.json create mode 100644 deps/npm/node_modules/concat-map/test/map.js create mode 100644 deps/npm/node_modules/concat-stream/LICENSE create mode 100644 deps/npm/node_modules/concat-stream/index.js create mode 100644 deps/npm/node_modules/concat-stream/package.json create mode 100644 deps/npm/node_modules/concat-stream/readme.md delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/README.md delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/package.json delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js delete mode 100644 deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js create mode 100644 deps/npm/node_modules/configstore/index.js create mode 100644 deps/npm/node_modules/configstore/license create mode 100644 deps/npm/node_modules/configstore/package.json create mode 100644 deps/npm/node_modules/configstore/readme.md create mode 100644 deps/npm/node_modules/console-control-strings/LICENSE create mode 100644 deps/npm/node_modules/console-control-strings/README.md create mode 100644 deps/npm/node_modules/console-control-strings/index.js create mode 100644 deps/npm/node_modules/console-control-strings/package.json create mode 100644 deps/npm/node_modules/copy-concurrently/LICENSE create mode 100644 deps/npm/node_modules/copy-concurrently/README.md create mode 100644 deps/npm/node_modules/copy-concurrently/copy.js create mode 100644 deps/npm/node_modules/copy-concurrently/is-windows.js create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/LICENSE create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/README.md create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/package.json create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee create mode 100644 deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts create mode 100644 deps/npm/node_modules/copy-concurrently/package.json create mode 100644 deps/npm/node_modules/core-util-is/LICENSE create mode 100644 deps/npm/node_modules/core-util-is/README.md create mode 100644 deps/npm/node_modules/core-util-is/float.patch create mode 100644 deps/npm/node_modules/core-util-is/lib/util.js create mode 100644 deps/npm/node_modules/core-util-is/package.json create mode 100644 deps/npm/node_modules/core-util-is/test.js create mode 100644 deps/npm/node_modules/create-error-class/index.js create mode 100644 deps/npm/node_modules/create-error-class/license create mode 100644 deps/npm/node_modules/create-error-class/package.json create mode 100644 deps/npm/node_modules/create-error-class/readme.md create mode 100644 deps/npm/node_modules/cross-spawn/CHANGELOG.md create mode 100644 deps/npm/node_modules/cross-spawn/LICENSE create mode 100644 deps/npm/node_modules/cross-spawn/README.md create mode 100644 deps/npm/node_modules/cross-spawn/index.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/enoent.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/parse.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/util/readShebang.js create mode 100644 deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js create mode 100644 deps/npm/node_modules/cross-spawn/package.json create mode 100644 deps/npm/node_modules/cryptiles/.npmignore create mode 100755 deps/npm/node_modules/cryptiles/LICENSE create mode 100755 deps/npm/node_modules/cryptiles/README.md create mode 100755 deps/npm/node_modules/cryptiles/lib/index.js create mode 100755 deps/npm/node_modules/cryptiles/node_modules/boom/LICENSE create mode 100755 deps/npm/node_modules/cryptiles/node_modules/boom/README.md create mode 100755 deps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js create mode 100644 deps/npm/node_modules/cryptiles/node_modules/boom/package.json create mode 100755 deps/npm/node_modules/cryptiles/package.json create mode 100644 deps/npm/node_modules/crypto-random-string/index.js create mode 100644 deps/npm/node_modules/crypto-random-string/license create mode 100644 deps/npm/node_modules/crypto-random-string/package.json create mode 100644 deps/npm/node_modules/crypto-random-string/readme.md create mode 100644 deps/npm/node_modules/cyclist/.npmignore create mode 100644 deps/npm/node_modules/cyclist/README.md create mode 100644 deps/npm/node_modules/cyclist/index.js create mode 100644 deps/npm/node_modules/cyclist/package.json create mode 100644 deps/npm/node_modules/dashdash/CHANGES.md create mode 100644 deps/npm/node_modules/dashdash/LICENSE.txt create mode 100644 deps/npm/node_modules/dashdash/README.md create mode 100644 deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in create mode 100644 deps/npm/node_modules/dashdash/lib/dashdash.js create mode 100644 deps/npm/node_modules/dashdash/package.json create mode 100644 deps/npm/node_modules/debug/.coveralls.yml create mode 100644 deps/npm/node_modules/debug/.npmignore create mode 100644 deps/npm/node_modules/debug/.travis.yml create mode 100644 deps/npm/node_modules/debug/CHANGELOG.md create mode 100644 deps/npm/node_modules/debug/LICENSE create mode 100644 deps/npm/node_modules/debug/Makefile create mode 100644 deps/npm/node_modules/debug/README.md create mode 100644 deps/npm/node_modules/debug/karma.conf.js create mode 100644 deps/npm/node_modules/debug/node.js create mode 100644 deps/npm/node_modules/debug/node_modules/ms/index.js create mode 100644 deps/npm/node_modules/debug/node_modules/ms/license.md create mode 100644 deps/npm/node_modules/debug/node_modules/ms/package.json create mode 100644 deps/npm/node_modules/debug/node_modules/ms/readme.md create mode 100644 deps/npm/node_modules/debug/package.json create mode 100644 deps/npm/node_modules/debug/src/browser.js create mode 100644 deps/npm/node_modules/debug/src/debug.js create mode 100644 deps/npm/node_modules/debug/src/index.js create mode 100644 deps/npm/node_modules/debug/src/node.js create mode 100644 deps/npm/node_modules/decamelize/index.js create mode 100644 deps/npm/node_modules/decamelize/license create mode 100644 deps/npm/node_modules/decamelize/package.json create mode 100644 deps/npm/node_modules/decamelize/readme.md create mode 100644 deps/npm/node_modules/decode-uri-component/index.js create mode 100644 deps/npm/node_modules/decode-uri-component/license create mode 100644 deps/npm/node_modules/decode-uri-component/package.json create mode 100644 deps/npm/node_modules/decode-uri-component/readme.md create mode 100644 deps/npm/node_modules/deep-extend/CHANGELOG.md create mode 100644 deps/npm/node_modules/deep-extend/LICENSE create mode 100644 deps/npm/node_modules/deep-extend/README.md create mode 100644 deps/npm/node_modules/deep-extend/index.js create mode 100644 deps/npm/node_modules/deep-extend/lib/deep-extend.js create mode 100644 deps/npm/node_modules/deep-extend/package.json create mode 100644 deps/npm/node_modules/defaults/.npmignore create mode 100644 deps/npm/node_modules/defaults/LICENSE create mode 100644 deps/npm/node_modules/defaults/README.md create mode 100644 deps/npm/node_modules/defaults/index.js create mode 100644 deps/npm/node_modules/defaults/package.json create mode 100644 deps/npm/node_modules/defaults/test.js create mode 100644 deps/npm/node_modules/delayed-stream/.npmignore create mode 100644 deps/npm/node_modules/delayed-stream/License create mode 100644 deps/npm/node_modules/delayed-stream/Makefile create mode 100644 deps/npm/node_modules/delayed-stream/Readme.md create mode 100644 deps/npm/node_modules/delayed-stream/lib/delayed_stream.js create mode 100644 deps/npm/node_modules/delayed-stream/package.json create mode 100644 deps/npm/node_modules/delegates/.npmignore create mode 100644 deps/npm/node_modules/delegates/History.md create mode 100644 deps/npm/node_modules/delegates/License create mode 100644 deps/npm/node_modules/delegates/Makefile create mode 100644 deps/npm/node_modules/delegates/Readme.md create mode 100644 deps/npm/node_modules/delegates/index.js create mode 100644 deps/npm/node_modules/delegates/package.json create mode 100644 deps/npm/node_modules/delegates/test/index.js create mode 100644 deps/npm/node_modules/detect-newline/index.js create mode 100644 deps/npm/node_modules/detect-newline/license create mode 100644 deps/npm/node_modules/detect-newline/package.json create mode 100644 deps/npm/node_modules/detect-newline/readme.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/README.md delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/asap.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/package.json delete mode 100644 deps/npm/node_modules/dezalgo/node_modules/asap/raw.js create mode 100644 deps/npm/node_modules/dot-prop/index.js create mode 100644 deps/npm/node_modules/dot-prop/license create mode 100644 deps/npm/node_modules/dot-prop/package.json create mode 100644 deps/npm/node_modules/dot-prop/readme.md create mode 100644 deps/npm/node_modules/dotenv/CHANGELOG.md create mode 100644 deps/npm/node_modules/dotenv/LICENSE create mode 100644 deps/npm/node_modules/dotenv/README.md create mode 100644 deps/npm/node_modules/dotenv/appveyor.yml create mode 100644 deps/npm/node_modules/dotenv/config.js create mode 100644 deps/npm/node_modules/dotenv/lib/main.js create mode 100644 deps/npm/node_modules/dotenv/package.json create mode 100644 deps/npm/node_modules/duplexer3/LICENSE.md create mode 100644 deps/npm/node_modules/duplexer3/README.md create mode 100644 deps/npm/node_modules/duplexer3/index.js create mode 100644 deps/npm/node_modules/duplexer3/package.json create mode 100644 deps/npm/node_modules/duplexify/.travis.yml create mode 100644 deps/npm/node_modules/duplexify/LICENSE create mode 100644 deps/npm/node_modules/duplexify/README.md create mode 100644 deps/npm/node_modules/duplexify/example.js create mode 100644 deps/npm/node_modules/duplexify/index.js create mode 100644 deps/npm/node_modules/duplexify/package.json create mode 100644 deps/npm/node_modules/duplexify/test.js create mode 100644 deps/npm/node_modules/ecc-jsbn/.npmignore create mode 100644 deps/npm/node_modules/ecc-jsbn/LICENSE create mode 100644 deps/npm/node_modules/ecc-jsbn/README.md create mode 100644 deps/npm/node_modules/ecc-jsbn/index.js create mode 100644 deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn create mode 100644 deps/npm/node_modules/ecc-jsbn/lib/ec.js create mode 100644 deps/npm/node_modules/ecc-jsbn/lib/sec.js create mode 100644 deps/npm/node_modules/ecc-jsbn/package.json create mode 100644 deps/npm/node_modules/ecc-jsbn/test.js create mode 100644 deps/npm/node_modules/encoding/.npmignore create mode 100644 deps/npm/node_modules/encoding/.travis.yml create mode 100644 deps/npm/node_modules/encoding/LICENSE create mode 100644 deps/npm/node_modules/encoding/README.md create mode 100644 deps/npm/node_modules/encoding/lib/encoding.js create mode 100644 deps/npm/node_modules/encoding/lib/iconv-loader.js create mode 100644 deps/npm/node_modules/encoding/package.json create mode 100644 deps/npm/node_modules/encoding/test/test.js create mode 100644 deps/npm/node_modules/end-of-stream/LICENSE create mode 100644 deps/npm/node_modules/end-of-stream/README.md create mode 100644 deps/npm/node_modules/end-of-stream/index.js create mode 100644 deps/npm/node_modules/end-of-stream/package.json create mode 100644 deps/npm/node_modules/err-code/.editorconfig create mode 100644 deps/npm/node_modules/err-code/.eslintrc.json create mode 100644 deps/npm/node_modules/err-code/.npmignore create mode 100644 deps/npm/node_modules/err-code/.travis.yml create mode 100644 deps/npm/node_modules/err-code/README.md create mode 100644 deps/npm/node_modules/err-code/bower.json create mode 100644 deps/npm/node_modules/err-code/index.js create mode 100644 deps/npm/node_modules/err-code/index.umd.js create mode 100644 deps/npm/node_modules/err-code/package.json create mode 100644 deps/npm/node_modules/err-code/test/.eslintrc.json create mode 100644 deps/npm/node_modules/err-code/test/test.js create mode 100644 deps/npm/node_modules/errno/.travis.yml create mode 100644 deps/npm/node_modules/errno/README.md create mode 100755 deps/npm/node_modules/errno/build.js create mode 100755 deps/npm/node_modules/errno/cli.js create mode 100644 deps/npm/node_modules/errno/custom.js create mode 100644 deps/npm/node_modules/errno/errno.js create mode 100644 deps/npm/node_modules/errno/package.json create mode 100644 deps/npm/node_modules/errno/test.js create mode 100644 deps/npm/node_modules/es6-promise/CHANGELOG.md create mode 100644 deps/npm/node_modules/es6-promise/LICENSE create mode 100644 deps/npm/node_modules/es6-promise/README.md create mode 100644 deps/npm/node_modules/es6-promise/auto.js create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.auto.js create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.auto.map create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.js create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.map create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.js create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.map create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.min.js create mode 100644 deps/npm/node_modules/es6-promise/dist/es6-promise.min.map create mode 100644 deps/npm/node_modules/es6-promise/es6-promise.d.ts create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise.auto.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/-internal.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/asap.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/enumerator.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/polyfill.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/promise.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/promise/all.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/promise/race.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/promise/reject.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/promise/resolve.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/then.js create mode 100644 deps/npm/node_modules/es6-promise/lib/es6-promise/utils.js create mode 100644 deps/npm/node_modules/es6-promise/package.json create mode 100644 deps/npm/node_modules/es6-promisify/README.md create mode 100644 deps/npm/node_modules/es6-promisify/dist/promise.js create mode 100644 deps/npm/node_modules/es6-promisify/dist/promisify.js create mode 100644 deps/npm/node_modules/es6-promisify/package.json create mode 100644 deps/npm/node_modules/escape-string-regexp/index.js create mode 100644 deps/npm/node_modules/escape-string-regexp/license create mode 100644 deps/npm/node_modules/escape-string-regexp/package.json create mode 100644 deps/npm/node_modules/escape-string-regexp/readme.md create mode 100644 deps/npm/node_modules/execa/index.js create mode 100644 deps/npm/node_modules/execa/lib/errname.js create mode 100644 deps/npm/node_modules/execa/lib/stdio.js create mode 100644 deps/npm/node_modules/execa/license create mode 100644 deps/npm/node_modules/execa/package.json create mode 100644 deps/npm/node_modules/execa/readme.md create mode 100644 deps/npm/node_modules/extend/.jscs.json create mode 100644 deps/npm/node_modules/extend/.npmignore create mode 100644 deps/npm/node_modules/extend/.travis.yml create mode 100644 deps/npm/node_modules/extend/CHANGELOG.md create mode 100644 deps/npm/node_modules/extend/LICENSE create mode 100644 deps/npm/node_modules/extend/README.md create mode 100644 deps/npm/node_modules/extend/component.json create mode 100644 deps/npm/node_modules/extend/index.js create mode 100644 deps/npm/node_modules/extend/package.json create mode 100644 deps/npm/node_modules/extsprintf/.gitmodules create mode 100644 deps/npm/node_modules/extsprintf/.npmignore create mode 100644 deps/npm/node_modules/extsprintf/LICENSE create mode 100644 deps/npm/node_modules/extsprintf/Makefile create mode 100644 deps/npm/node_modules/extsprintf/Makefile.targ create mode 100644 deps/npm/node_modules/extsprintf/README.md create mode 100644 deps/npm/node_modules/extsprintf/jsl.node.conf create mode 100644 deps/npm/node_modules/extsprintf/lib/extsprintf.js create mode 100644 deps/npm/node_modules/extsprintf/package.json create mode 100644 deps/npm/node_modules/fast-deep-equal/LICENSE create mode 100644 deps/npm/node_modules/fast-deep-equal/README.md create mode 100644 deps/npm/node_modules/fast-deep-equal/index.d.ts create mode 100644 deps/npm/node_modules/fast-deep-equal/index.js create mode 100644 deps/npm/node_modules/fast-deep-equal/package.json create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/.eslintrc.yml create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/.npmignore create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/.travis.yml create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/LICENSE create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/README.md create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/nested.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/str.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/index.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/package.json create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/nested.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/str.js create mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js create mode 100644 deps/npm/node_modules/figgy-pudding/CHANGELOG.md create mode 100644 deps/npm/node_modules/figgy-pudding/LICENSE.md create mode 100644 deps/npm/node_modules/figgy-pudding/README.md create mode 100644 deps/npm/node_modules/figgy-pudding/index.js create mode 100644 deps/npm/node_modules/figgy-pudding/package.json create mode 100644 deps/npm/node_modules/find-up/index.js create mode 100644 deps/npm/node_modules/find-up/license create mode 100644 deps/npm/node_modules/find-up/package.json create mode 100644 deps/npm/node_modules/find-up/readme.md create mode 100644 deps/npm/node_modules/flush-write-stream/.travis.yml create mode 100644 deps/npm/node_modules/flush-write-stream/LICENSE create mode 100644 deps/npm/node_modules/flush-write-stream/README.md create mode 100644 deps/npm/node_modules/flush-write-stream/example.js create mode 100644 deps/npm/node_modules/flush-write-stream/index.js create mode 100644 deps/npm/node_modules/flush-write-stream/package.json create mode 100644 deps/npm/node_modules/flush-write-stream/test.js create mode 100644 deps/npm/node_modules/forever-agent/LICENSE create mode 100644 deps/npm/node_modules/forever-agent/README.md create mode 100644 deps/npm/node_modules/forever-agent/index.js create mode 100644 deps/npm/node_modules/forever-agent/package.json create mode 100644 deps/npm/node_modules/form-data/License create mode 100644 deps/npm/node_modules/form-data/README.md create mode 100644 deps/npm/node_modules/form-data/README.md.bak create mode 100644 deps/npm/node_modules/form-data/lib/browser.js create mode 100644 deps/npm/node_modules/form-data/lib/form_data.js create mode 100644 deps/npm/node_modules/form-data/lib/populate.js create mode 100644 deps/npm/node_modules/form-data/package.json create mode 100644 deps/npm/node_modules/from2/.travis.yml create mode 100644 deps/npm/node_modules/from2/LICENSE.md create mode 100644 deps/npm/node_modules/from2/README.md create mode 100644 deps/npm/node_modules/from2/index.js create mode 100644 deps/npm/node_modules/from2/package.json create mode 100644 deps/npm/node_modules/from2/test.js create mode 100644 deps/npm/node_modules/fs-minipass/LICENSE create mode 100644 deps/npm/node_modules/fs-minipass/README.md create mode 100644 deps/npm/node_modules/fs-minipass/index.js create mode 100644 deps/npm/node_modules/fs-minipass/package.json create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/.npmignore create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/LICENSE create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/README.md create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/index.coffee create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/index.js create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/package.json create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/index.coffee create mode 100644 deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/mocha.opts create mode 100644 deps/npm/node_modules/fs.realpath/LICENSE create mode 100644 deps/npm/node_modules/fs.realpath/README.md create mode 100644 deps/npm/node_modules/fs.realpath/index.js create mode 100644 deps/npm/node_modules/fs.realpath/old.js create mode 100644 deps/npm/node_modules/fs.realpath/package.json create mode 100644 deps/npm/node_modules/fstream/.npmignore create mode 100644 deps/npm/node_modules/fstream/.travis.yml create mode 100644 deps/npm/node_modules/fstream/LICENSE create mode 100644 deps/npm/node_modules/fstream/README.md create mode 100644 deps/npm/node_modules/fstream/examples/filter-pipe.js create mode 100644 deps/npm/node_modules/fstream/examples/pipe.js create mode 100644 deps/npm/node_modules/fstream/examples/reader.js create mode 100644 deps/npm/node_modules/fstream/examples/symlink-write.js create mode 100644 deps/npm/node_modules/fstream/fstream.js create mode 100644 deps/npm/node_modules/fstream/lib/abstract.js create mode 100644 deps/npm/node_modules/fstream/lib/collect.js create mode 100644 deps/npm/node_modules/fstream/lib/dir-reader.js create mode 100644 deps/npm/node_modules/fstream/lib/dir-writer.js create mode 100644 deps/npm/node_modules/fstream/lib/file-reader.js create mode 100644 deps/npm/node_modules/fstream/lib/file-writer.js create mode 100644 deps/npm/node_modules/fstream/lib/get-type.js create mode 100644 deps/npm/node_modules/fstream/lib/link-reader.js create mode 100644 deps/npm/node_modules/fstream/lib/link-writer.js create mode 100644 deps/npm/node_modules/fstream/lib/proxy-reader.js create mode 100644 deps/npm/node_modules/fstream/lib/proxy-writer.js create mode 100644 deps/npm/node_modules/fstream/lib/reader.js create mode 100644 deps/npm/node_modules/fstream/lib/socket-reader.js create mode 100644 deps/npm/node_modules/fstream/lib/writer.js create mode 100644 deps/npm/node_modules/fstream/package.json create mode 100644 deps/npm/node_modules/gauge/CHANGELOG.md create mode 100644 deps/npm/node_modules/gauge/LICENSE create mode 100644 deps/npm/node_modules/gauge/README.md create mode 100644 deps/npm/node_modules/gauge/base-theme.js create mode 100644 deps/npm/node_modules/gauge/error.js create mode 100644 deps/npm/node_modules/gauge/has-color.js create mode 100644 deps/npm/node_modules/gauge/index.js create mode 100644 deps/npm/node_modules/gauge/node_modules/ansi-regex/index.js create mode 100644 deps/npm/node_modules/gauge/node_modules/ansi-regex/license create mode 100644 deps/npm/node_modules/gauge/node_modules/ansi-regex/package.json create mode 100644 deps/npm/node_modules/gauge/node_modules/ansi-regex/readme.md create mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/index.js create mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/license create mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json create mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/readme.md create mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/index.js create mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/license create mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/package.json create mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/readme.md create mode 100644 deps/npm/node_modules/gauge/node_modules/strip-ansi/index.js create mode 100644 deps/npm/node_modules/gauge/node_modules/strip-ansi/license create mode 100644 deps/npm/node_modules/gauge/node_modules/strip-ansi/package.json create mode 100644 deps/npm/node_modules/gauge/node_modules/strip-ansi/readme.md create mode 100644 deps/npm/node_modules/gauge/package.json create mode 100644 deps/npm/node_modules/gauge/plumbing.js create mode 100644 deps/npm/node_modules/gauge/process.js create mode 100644 deps/npm/node_modules/gauge/progress-bar.js create mode 100644 deps/npm/node_modules/gauge/render-template.js create mode 100644 deps/npm/node_modules/gauge/set-immediate.js create mode 100644 deps/npm/node_modules/gauge/set-interval.js create mode 100644 deps/npm/node_modules/gauge/spin.js create mode 100644 deps/npm/node_modules/gauge/template-item.js create mode 100644 deps/npm/node_modules/gauge/theme-set.js create mode 100644 deps/npm/node_modules/gauge/themes.js create mode 100644 deps/npm/node_modules/gauge/wide-truncate.js create mode 100644 deps/npm/node_modules/genfun/CHANGELOG.md create mode 100644 deps/npm/node_modules/genfun/README.md create mode 100644 deps/npm/node_modules/genfun/lib/genfun.js create mode 100644 deps/npm/node_modules/genfun/lib/method.js create mode 100644 deps/npm/node_modules/genfun/lib/role.js create mode 100644 deps/npm/node_modules/genfun/lib/util.js create mode 100644 deps/npm/node_modules/genfun/package.json create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/.npmignore create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/LICENSE create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/README.md create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/index.coffee create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/index.js create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/package.json create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/test/index.coffee create mode 100644 deps/npm/node_modules/gentle-fs/node_modules/iferr/test/mocha.opts create mode 100644 deps/npm/node_modules/get-caller-file/README.md create mode 100644 deps/npm/node_modules/get-caller-file/index.js create mode 100644 deps/npm/node_modules/get-caller-file/package.json create mode 100644 deps/npm/node_modules/get-stream/buffer-stream.js create mode 100644 deps/npm/node_modules/get-stream/index.js create mode 100644 deps/npm/node_modules/get-stream/license create mode 100644 deps/npm/node_modules/get-stream/package.json create mode 100644 deps/npm/node_modules/get-stream/readme.md create mode 100644 deps/npm/node_modules/getpass/.npmignore create mode 100644 deps/npm/node_modules/getpass/.travis.yml create mode 100644 deps/npm/node_modules/getpass/LICENSE create mode 100644 deps/npm/node_modules/getpass/README.md create mode 100644 deps/npm/node_modules/getpass/lib/index.js create mode 100644 deps/npm/node_modules/getpass/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/old.js delete mode 100644 deps/npm/node_modules/glob/node_modules/fs.realpath/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/license delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json delete mode 100644 deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md create mode 100644 deps/npm/node_modules/global-dirs/index.js create mode 100644 deps/npm/node_modules/global-dirs/license create mode 100644 deps/npm/node_modules/global-dirs/package.json create mode 100644 deps/npm/node_modules/global-dirs/readme.md create mode 100644 deps/npm/node_modules/got/index.js create mode 100644 deps/npm/node_modules/got/license create mode 100644 deps/npm/node_modules/got/package.json create mode 100644 deps/npm/node_modules/got/readme.md create mode 100644 deps/npm/node_modules/har-schema/LICENSE create mode 100644 deps/npm/node_modules/har-schema/README.md create mode 100644 deps/npm/node_modules/har-schema/lib/afterRequest.json create mode 100644 deps/npm/node_modules/har-schema/lib/beforeRequest.json create mode 100644 deps/npm/node_modules/har-schema/lib/browser.json create mode 100644 deps/npm/node_modules/har-schema/lib/cache.json create mode 100644 deps/npm/node_modules/har-schema/lib/content.json create mode 100644 deps/npm/node_modules/har-schema/lib/cookie.json create mode 100644 deps/npm/node_modules/har-schema/lib/creator.json create mode 100644 deps/npm/node_modules/har-schema/lib/entry.json create mode 100644 deps/npm/node_modules/har-schema/lib/har.json create mode 100644 deps/npm/node_modules/har-schema/lib/header.json create mode 100644 deps/npm/node_modules/har-schema/lib/index.js create mode 100644 deps/npm/node_modules/har-schema/lib/log.json create mode 100644 deps/npm/node_modules/har-schema/lib/page.json create mode 100644 deps/npm/node_modules/har-schema/lib/pageTimings.json create mode 100644 deps/npm/node_modules/har-schema/lib/postData.json create mode 100644 deps/npm/node_modules/har-schema/lib/query.json create mode 100644 deps/npm/node_modules/har-schema/lib/request.json create mode 100644 deps/npm/node_modules/har-schema/lib/response.json create mode 100644 deps/npm/node_modules/har-schema/lib/timings.json create mode 100644 deps/npm/node_modules/har-schema/package.json create mode 100644 deps/npm/node_modules/har-validator/LICENSE create mode 100644 deps/npm/node_modules/har-validator/README.md create mode 100644 deps/npm/node_modules/har-validator/lib/async.js create mode 100644 deps/npm/node_modules/har-validator/lib/error.js create mode 100644 deps/npm/node_modules/har-validator/lib/promise.js create mode 100644 deps/npm/node_modules/har-validator/package.json create mode 100644 deps/npm/node_modules/has-flag/index.js create mode 100644 deps/npm/node_modules/has-flag/license create mode 100644 deps/npm/node_modules/has-flag/package.json create mode 100644 deps/npm/node_modules/has-flag/readme.md create mode 100755 deps/npm/node_modules/hawk/.npmignore create mode 100755 deps/npm/node_modules/hawk/LICENSE create mode 100755 deps/npm/node_modules/hawk/README.md create mode 100755 deps/npm/node_modules/hawk/client.js create mode 100644 deps/npm/node_modules/hawk/dist/browser.js create mode 100755 deps/npm/node_modules/hawk/lib/browser.js create mode 100755 deps/npm/node_modules/hawk/lib/client.js create mode 100755 deps/npm/node_modules/hawk/lib/crypto.js create mode 100755 deps/npm/node_modules/hawk/lib/index.js create mode 100755 deps/npm/node_modules/hawk/lib/server.js create mode 100755 deps/npm/node_modules/hawk/lib/utils.js create mode 100755 deps/npm/node_modules/hawk/package.json create mode 100644 deps/npm/node_modules/hoek/.npmignore create mode 100644 deps/npm/node_modules/hoek/LICENSE create mode 100644 deps/npm/node_modules/hoek/README.md create mode 100755 deps/npm/node_modules/hoek/lib/escape.js create mode 100755 deps/npm/node_modules/hoek/lib/index.js create mode 100644 deps/npm/node_modules/hoek/package.json create mode 100644 deps/npm/node_modules/hosted-git-info/CHANGELOG.md create mode 100644 deps/npm/node_modules/http-cache-semantics/README.md create mode 100644 deps/npm/node_modules/http-cache-semantics/node4/index.js create mode 100644 deps/npm/node_modules/http-cache-semantics/package.json create mode 100644 deps/npm/node_modules/http-proxy-agent/.travis.yml create mode 100644 deps/npm/node_modules/http-proxy-agent/History.md create mode 100644 deps/npm/node_modules/http-proxy-agent/README.md create mode 100644 deps/npm/node_modules/http-proxy-agent/index.js create mode 100644 deps/npm/node_modules/http-proxy-agent/package.json create mode 100644 deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key create mode 100644 deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem create mode 100644 deps/npm/node_modules/http-proxy-agent/test/test.js create mode 100644 deps/npm/node_modules/http-signature/.dir-locals.el create mode 100644 deps/npm/node_modules/http-signature/.npmignore create mode 100644 deps/npm/node_modules/http-signature/CHANGES.md create mode 100644 deps/npm/node_modules/http-signature/LICENSE create mode 100644 deps/npm/node_modules/http-signature/README.md create mode 100644 deps/npm/node_modules/http-signature/http_signing.md create mode 100644 deps/npm/node_modules/http-signature/lib/index.js create mode 100644 deps/npm/node_modules/http-signature/lib/parser.js create mode 100644 deps/npm/node_modules/http-signature/lib/signer.js create mode 100644 deps/npm/node_modules/http-signature/lib/utils.js create mode 100644 deps/npm/node_modules/http-signature/lib/verify.js create mode 100644 deps/npm/node_modules/http-signature/package.json create mode 100644 deps/npm/node_modules/https-proxy-agent/.travis.yml create mode 100644 deps/npm/node_modules/https-proxy-agent/History.md create mode 100644 deps/npm/node_modules/https-proxy-agent/README.md create mode 100644 deps/npm/node_modules/https-proxy-agent/index.js create mode 100644 deps/npm/node_modules/https-proxy-agent/package.json create mode 100644 deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key create mode 100644 deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem create mode 100644 deps/npm/node_modules/https-proxy-agent/test/test.js create mode 100644 deps/npm/node_modules/humanize-ms/History.md create mode 100644 deps/npm/node_modules/humanize-ms/LICENSE create mode 100644 deps/npm/node_modules/humanize-ms/README.md create mode 100644 deps/npm/node_modules/humanize-ms/index.js create mode 100644 deps/npm/node_modules/humanize-ms/package.json create mode 100644 deps/npm/node_modules/iconv-lite/.travis.yml create mode 100644 deps/npm/node_modules/iconv-lite/Changelog.md create mode 100644 deps/npm/node_modules/iconv-lite/LICENSE create mode 100644 deps/npm/node_modules/iconv-lite/README.md create mode 100644 deps/npm/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/index.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/internal.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 deps/npm/node_modules/iconv-lite/encodings/utf16.js create mode 100644 deps/npm/node_modules/iconv-lite/encodings/utf7.js create mode 100644 deps/npm/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 deps/npm/node_modules/iconv-lite/lib/extend-node.js create mode 100644 deps/npm/node_modules/iconv-lite/lib/index.d.ts create mode 100644 deps/npm/node_modules/iconv-lite/lib/index.js create mode 100644 deps/npm/node_modules/iconv-lite/lib/streams.js create mode 100644 deps/npm/node_modules/iconv-lite/package.json delete mode 100644 deps/npm/node_modules/iferr/.npmignore create mode 100644 deps/npm/node_modules/iferr/iferr.js delete mode 100644 deps/npm/node_modules/iferr/index.coffee delete mode 100644 deps/npm/node_modules/iferr/index.js delete mode 100644 deps/npm/node_modules/iferr/test/index.coffee delete mode 100644 deps/npm/node_modules/iferr/test/mocha.opts create mode 100644 deps/npm/node_modules/ignore-walk/LICENSE create mode 100644 deps/npm/node_modules/ignore-walk/README.md create mode 100644 deps/npm/node_modules/ignore-walk/index.js create mode 100644 deps/npm/node_modules/ignore-walk/package.json create mode 100644 deps/npm/node_modules/import-lazy/index.js create mode 100644 deps/npm/node_modules/import-lazy/license create mode 100644 deps/npm/node_modules/import-lazy/package.json create mode 100644 deps/npm/node_modules/import-lazy/readme.md create mode 100644 deps/npm/node_modules/init-package-json/CHANGELOG.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/README.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/package.json delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input delete mode 100644 deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js create mode 100644 deps/npm/node_modules/invert-kv/index.js create mode 100644 deps/npm/node_modules/invert-kv/package.json create mode 100644 deps/npm/node_modules/invert-kv/readme.md create mode 100644 deps/npm/node_modules/ip-regex/index.js create mode 100644 deps/npm/node_modules/ip-regex/license create mode 100644 deps/npm/node_modules/ip-regex/package.json create mode 100644 deps/npm/node_modules/ip-regex/readme.md create mode 100644 deps/npm/node_modules/ip/.jscsrc create mode 100644 deps/npm/node_modules/ip/.npmignore create mode 100644 deps/npm/node_modules/ip/.travis.yml create mode 100644 deps/npm/node_modules/ip/README.md create mode 100644 deps/npm/node_modules/ip/lib/ip.js create mode 100644 deps/npm/node_modules/ip/package.json create mode 100644 deps/npm/node_modules/ip/test/api-test.js create mode 100644 deps/npm/node_modules/is-builtin-module/index.js create mode 100644 deps/npm/node_modules/is-builtin-module/license create mode 100644 deps/npm/node_modules/is-builtin-module/package.json create mode 100644 deps/npm/node_modules/is-builtin-module/readme.md create mode 100644 deps/npm/node_modules/is-ci/.travis.yml create mode 100644 deps/npm/node_modules/is-ci/LICENSE create mode 100644 deps/npm/node_modules/is-ci/README.md create mode 100755 deps/npm/node_modules/is-ci/bin.js create mode 100644 deps/npm/node_modules/is-ci/index.js create mode 100644 deps/npm/node_modules/is-ci/package.json create mode 100644 deps/npm/node_modules/is-ci/test.js delete mode 100644 deps/npm/node_modules/is-cidr/.npmignore delete mode 100644 deps/npm/node_modules/is-cidr/.travis.yml create mode 100644 deps/npm/node_modules/is-cidr/LICENSE delete mode 100644 deps/npm/node_modules/is-cidr/example/example.js create mode 100644 deps/npm/node_modules/is-cidr/index.js delete mode 100644 deps/npm/node_modules/is-cidr/lib/index.js delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/.npmignore delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/README.md delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/lib/index.js delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/package.json delete mode 100644 deps/npm/node_modules/is-cidr/node_modules/cidr-regex/test.js delete mode 100644 deps/npm/node_modules/is-cidr/test/index.test.js create mode 100644 deps/npm/node_modules/is-fullwidth-code-point/index.js create mode 100644 deps/npm/node_modules/is-fullwidth-code-point/license create mode 100644 deps/npm/node_modules/is-fullwidth-code-point/package.json create mode 100644 deps/npm/node_modules/is-fullwidth-code-point/readme.md create mode 100644 deps/npm/node_modules/is-installed-globally/index.js create mode 100644 deps/npm/node_modules/is-installed-globally/license create mode 100644 deps/npm/node_modules/is-installed-globally/package.json create mode 100644 deps/npm/node_modules/is-installed-globally/readme.md create mode 100644 deps/npm/node_modules/is-npm/index.js create mode 100644 deps/npm/node_modules/is-npm/package.json create mode 100644 deps/npm/node_modules/is-npm/readme.md create mode 100644 deps/npm/node_modules/is-obj/index.js create mode 100644 deps/npm/node_modules/is-obj/license create mode 100644 deps/npm/node_modules/is-obj/package.json create mode 100644 deps/npm/node_modules/is-obj/readme.md create mode 100644 deps/npm/node_modules/is-path-inside/index.js create mode 100644 deps/npm/node_modules/is-path-inside/license create mode 100644 deps/npm/node_modules/is-path-inside/package.json create mode 100644 deps/npm/node_modules/is-path-inside/readme.md create mode 100644 deps/npm/node_modules/is-redirect/index.js create mode 100644 deps/npm/node_modules/is-redirect/license create mode 100644 deps/npm/node_modules/is-redirect/package.json create mode 100644 deps/npm/node_modules/is-redirect/readme.md create mode 100644 deps/npm/node_modules/is-retry-allowed/index.js create mode 100644 deps/npm/node_modules/is-retry-allowed/license create mode 100644 deps/npm/node_modules/is-retry-allowed/package.json create mode 100644 deps/npm/node_modules/is-retry-allowed/readme.md create mode 100644 deps/npm/node_modules/is-stream/index.js create mode 100644 deps/npm/node_modules/is-stream/license create mode 100644 deps/npm/node_modules/is-stream/package.json create mode 100644 deps/npm/node_modules/is-stream/readme.md create mode 100644 deps/npm/node_modules/is-typedarray/LICENSE.md create mode 100644 deps/npm/node_modules/is-typedarray/README.md create mode 100644 deps/npm/node_modules/is-typedarray/index.js create mode 100644 deps/npm/node_modules/is-typedarray/package.json create mode 100644 deps/npm/node_modules/is-typedarray/test.js create mode 100644 deps/npm/node_modules/isarray/.npmignore create mode 100644 deps/npm/node_modules/isarray/.travis.yml create mode 100644 deps/npm/node_modules/isarray/Makefile create mode 100644 deps/npm/node_modules/isarray/README.md create mode 100644 deps/npm/node_modules/isarray/component.json create mode 100644 deps/npm/node_modules/isarray/index.js create mode 100644 deps/npm/node_modules/isarray/package.json create mode 100644 deps/npm/node_modules/isarray/test.js create mode 100644 deps/npm/node_modules/isexe/.npmignore create mode 100644 deps/npm/node_modules/isexe/LICENSE create mode 100644 deps/npm/node_modules/isexe/README.md create mode 100644 deps/npm/node_modules/isexe/index.js create mode 100644 deps/npm/node_modules/isexe/mode.js create mode 100644 deps/npm/node_modules/isexe/package.json create mode 100644 deps/npm/node_modules/isexe/test/basic.js create mode 100644 deps/npm/node_modules/isexe/windows.js create mode 100644 deps/npm/node_modules/isstream/.npmignore create mode 100644 deps/npm/node_modules/isstream/.travis.yml create mode 100644 deps/npm/node_modules/isstream/LICENSE.md create mode 100644 deps/npm/node_modules/isstream/README.md create mode 100644 deps/npm/node_modules/isstream/isstream.js create mode 100644 deps/npm/node_modules/isstream/package.json create mode 100644 deps/npm/node_modules/isstream/test.js create mode 100644 deps/npm/node_modules/jsbn/.npmignore create mode 100644 deps/npm/node_modules/jsbn/LICENSE create mode 100644 deps/npm/node_modules/jsbn/README.md create mode 100644 deps/npm/node_modules/jsbn/example.html create mode 100644 deps/npm/node_modules/jsbn/example.js create mode 100644 deps/npm/node_modules/jsbn/index.js create mode 100644 deps/npm/node_modules/jsbn/package.json create mode 100644 deps/npm/node_modules/json-parse-better-errors/CHANGELOG.md create mode 100644 deps/npm/node_modules/json-parse-better-errors/LICENSE.md create mode 100644 deps/npm/node_modules/json-parse-better-errors/README.md create mode 100644 deps/npm/node_modules/json-parse-better-errors/index.js create mode 100644 deps/npm/node_modules/json-parse-better-errors/package.json create mode 100644 deps/npm/node_modules/json-schema-traverse/.eslintrc.yml create mode 100644 deps/npm/node_modules/json-schema-traverse/.npmignore create mode 100644 deps/npm/node_modules/json-schema-traverse/.travis.yml create mode 100644 deps/npm/node_modules/json-schema-traverse/LICENSE create mode 100644 deps/npm/node_modules/json-schema-traverse/README.md create mode 100644 deps/npm/node_modules/json-schema-traverse/index.js create mode 100644 deps/npm/node_modules/json-schema-traverse/package.json create mode 100644 deps/npm/node_modules/json-schema-traverse/spec/.eslintrc.yml create mode 100644 deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js create mode 100644 deps/npm/node_modules/json-schema-traverse/spec/index.spec.js create mode 100644 deps/npm/node_modules/json-schema/README.md create mode 100644 deps/npm/node_modules/json-schema/draft-00/hyper-schema create mode 100644 deps/npm/node_modules/json-schema/draft-00/json-ref create mode 100644 deps/npm/node_modules/json-schema/draft-00/links create mode 100644 deps/npm/node_modules/json-schema/draft-00/schema create mode 100644 deps/npm/node_modules/json-schema/draft-01/hyper-schema create mode 100644 deps/npm/node_modules/json-schema/draft-01/json-ref create mode 100644 deps/npm/node_modules/json-schema/draft-01/links create mode 100644 deps/npm/node_modules/json-schema/draft-01/schema create mode 100644 deps/npm/node_modules/json-schema/draft-02/hyper-schema create mode 100644 deps/npm/node_modules/json-schema/draft-02/json-ref create mode 100644 deps/npm/node_modules/json-schema/draft-02/links create mode 100644 deps/npm/node_modules/json-schema/draft-02/schema create mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/address create mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/calendar create mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/card create mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/geo create mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/interfaces create mode 100644 deps/npm/node_modules/json-schema/draft-03/hyper-schema create mode 100644 deps/npm/node_modules/json-schema/draft-03/json-ref create mode 100644 deps/npm/node_modules/json-schema/draft-03/links create mode 100644 deps/npm/node_modules/json-schema/draft-03/schema create mode 100644 deps/npm/node_modules/json-schema/draft-04/hyper-schema create mode 100644 deps/npm/node_modules/json-schema/draft-04/links create mode 100644 deps/npm/node_modules/json-schema/draft-04/schema create mode 100644 deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml create mode 100644 deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml create mode 100644 deps/npm/node_modules/json-schema/lib/links.js create mode 100644 deps/npm/node_modules/json-schema/lib/validate.js create mode 100644 deps/npm/node_modules/json-schema/package.json create mode 100644 deps/npm/node_modules/json-schema/test/tests.js create mode 100644 deps/npm/node_modules/json-stringify-safe/.npmignore create mode 100644 deps/npm/node_modules/json-stringify-safe/CHANGELOG.md create mode 100644 deps/npm/node_modules/json-stringify-safe/LICENSE create mode 100644 deps/npm/node_modules/json-stringify-safe/Makefile create mode 100644 deps/npm/node_modules/json-stringify-safe/README.md create mode 100644 deps/npm/node_modules/json-stringify-safe/package.json create mode 100644 deps/npm/node_modules/json-stringify-safe/stringify.js create mode 100644 deps/npm/node_modules/json-stringify-safe/test/mocha.opts create mode 100644 deps/npm/node_modules/json-stringify-safe/test/stringify_test.js create mode 100644 deps/npm/node_modules/jsonparse/.npmignore create mode 100644 deps/npm/node_modules/jsonparse/LICENSE create mode 100644 deps/npm/node_modules/jsonparse/README.markdown create mode 100644 deps/npm/node_modules/jsonparse/bench.js create mode 100644 deps/npm/node_modules/jsonparse/examples/twitterfeed.js create mode 100644 deps/npm/node_modules/jsonparse/jsonparse.js create mode 100644 deps/npm/node_modules/jsonparse/package.json create mode 100644 deps/npm/node_modules/jsonparse/samplejson/basic.json create mode 100644 deps/npm/node_modules/jsonparse/samplejson/basic2.json create mode 100644 deps/npm/node_modules/jsonparse/test/big-token.js create mode 100644 deps/npm/node_modules/jsonparse/test/boundary.js create mode 100644 deps/npm/node_modules/jsonparse/test/offset.js create mode 100644 deps/npm/node_modules/jsonparse/test/primitives.js create mode 100644 deps/npm/node_modules/jsonparse/test/surrogate.js create mode 100644 deps/npm/node_modules/jsonparse/test/unvalid.js create mode 100644 deps/npm/node_modules/jsonparse/test/utf8.js create mode 100644 deps/npm/node_modules/jsprim/CHANGES.md create mode 100644 deps/npm/node_modules/jsprim/CONTRIBUTING.md create mode 100644 deps/npm/node_modules/jsprim/LICENSE create mode 100644 deps/npm/node_modules/jsprim/README.md create mode 100644 deps/npm/node_modules/jsprim/lib/jsprim.js create mode 100644 deps/npm/node_modules/jsprim/package.json create mode 100644 deps/npm/node_modules/latest-version/index.js create mode 100644 deps/npm/node_modules/latest-version/license create mode 100644 deps/npm/node_modules/latest-version/package.json create mode 100644 deps/npm/node_modules/latest-version/readme.md create mode 100644 deps/npm/node_modules/lcid/index.js create mode 100644 deps/npm/node_modules/lcid/lcid.json create mode 100644 deps/npm/node_modules/lcid/license create mode 100644 deps/npm/node_modules/lcid/package.json create mode 100644 deps/npm/node_modules/lcid/readme.md create mode 100644 deps/npm/node_modules/libcipm/CHANGELOG.md create mode 100644 deps/npm/node_modules/libcipm/LICENSE.md create mode 100644 deps/npm/node_modules/libcipm/README.md create mode 100644 deps/npm/node_modules/libcipm/index.js create mode 100644 deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js create mode 100644 deps/npm/node_modules/libcipm/lib/config/npm-config.js create mode 100644 deps/npm/node_modules/libcipm/lib/config/pacote-opts.js create mode 100644 deps/npm/node_modules/libcipm/lib/extract.js create mode 100644 deps/npm/node_modules/libcipm/lib/silentlog.js create mode 100644 deps/npm/node_modules/libcipm/lib/worker.js create mode 100644 deps/npm/node_modules/libcipm/package.json create mode 100644 deps/npm/node_modules/libnpmhook/CHANGELOG.md create mode 100644 deps/npm/node_modules/libnpmhook/LICENSE.md create mode 100644 deps/npm/node_modules/libnpmhook/README.md create mode 100644 deps/npm/node_modules/libnpmhook/config.js create mode 100644 deps/npm/node_modules/libnpmhook/index.js create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json create mode 100644 deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js create mode 100644 deps/npm/node_modules/libnpmhook/package.json delete mode 100644 deps/npm/node_modules/libnpx/locales/ar.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/config.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/lib/main.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/dotenv/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/y18n/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/completion.sh.hbs delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/apply-extends.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/argsert.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/assign.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/command.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/completion.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/levenshtein.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/obj-filter.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/usage.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/validation.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/lib/yerror.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/be.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/de.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/en.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/es.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/fr.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/hi.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/hu.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/id.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/it.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/ja.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/ko.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/nb.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/nl.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pirate.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pl.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt_BR.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/ru.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/th.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/tr.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_CN.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_TW.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/readme.md delete mode 100755 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/errname.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/stdio.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/enoent.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/parse.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/lcid.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/path-exists/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.editorconfig delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.istanbul.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.npmignore delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/.travis.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/vendor/parse.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/vendor/unicode.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/pify/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/strip-bom/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/node_modules/pify/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.npmignore delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.travis.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/README.markdown delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.npmignore delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.travis.yml delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/test.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/LICENSE delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/README.md delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/index.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/package.json delete mode 100644 deps/npm/node_modules/libnpx/node_modules/yargs/yargs.js create mode 100644 deps/npm/node_modules/locate-path/index.js create mode 100644 deps/npm/node_modules/locate-path/license create mode 100644 deps/npm/node_modules/locate-path/package.json create mode 100644 deps/npm/node_modules/locate-path/readme.md create mode 100644 deps/npm/node_modules/lock-verify/LICENSE create mode 100644 deps/npm/node_modules/lock-verify/README.md create mode 100644 deps/npm/node_modules/lock-verify/index.js create mode 100644 deps/npm/node_modules/lock-verify/package.json delete mode 100644 deps/npm/node_modules/lockfile/.npmignore create mode 100644 deps/npm/node_modules/lockfile/sockets.md create mode 100644 deps/npm/node_modules/lockfile/speedtest.js delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js delete mode 100644 deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json create mode 100644 deps/npm/node_modules/lodash._createset/LICENSE create mode 100644 deps/npm/node_modules/lodash._createset/README.md create mode 100644 deps/npm/node_modules/lodash._createset/index.js create mode 100644 deps/npm/node_modules/lodash._createset/package.json create mode 100644 deps/npm/node_modules/lodash._root/LICENSE create mode 100644 deps/npm/node_modules/lodash._root/README.md create mode 100644 deps/npm/node_modules/lodash._root/index.js create mode 100644 deps/npm/node_modules/lodash._root/package.json create mode 100644 deps/npm/node_modules/lodash/LICENSE create mode 100644 deps/npm/node_modules/lodash/README.md create mode 100644 deps/npm/node_modules/lodash/array.js create mode 100644 deps/npm/node_modules/lodash/array/chunk.js create mode 100644 deps/npm/node_modules/lodash/array/compact.js create mode 100644 deps/npm/node_modules/lodash/array/difference.js create mode 100644 deps/npm/node_modules/lodash/array/drop.js create mode 100644 deps/npm/node_modules/lodash/array/dropRight.js create mode 100644 deps/npm/node_modules/lodash/array/dropRightWhile.js create mode 100644 deps/npm/node_modules/lodash/array/dropWhile.js create mode 100644 deps/npm/node_modules/lodash/array/fill.js create mode 100644 deps/npm/node_modules/lodash/array/findIndex.js create mode 100644 deps/npm/node_modules/lodash/array/findLastIndex.js create mode 100644 deps/npm/node_modules/lodash/array/first.js create mode 100644 deps/npm/node_modules/lodash/array/flatten.js create mode 100644 deps/npm/node_modules/lodash/array/flattenDeep.js create mode 100644 deps/npm/node_modules/lodash/array/head.js create mode 100644 deps/npm/node_modules/lodash/array/indexOf.js create mode 100644 deps/npm/node_modules/lodash/array/initial.js create mode 100644 deps/npm/node_modules/lodash/array/intersection.js create mode 100644 deps/npm/node_modules/lodash/array/last.js create mode 100644 deps/npm/node_modules/lodash/array/lastIndexOf.js create mode 100644 deps/npm/node_modules/lodash/array/object.js create mode 100644 deps/npm/node_modules/lodash/array/pull.js create mode 100644 deps/npm/node_modules/lodash/array/pullAt.js create mode 100644 deps/npm/node_modules/lodash/array/remove.js create mode 100644 deps/npm/node_modules/lodash/array/rest.js create mode 100644 deps/npm/node_modules/lodash/array/slice.js create mode 100644 deps/npm/node_modules/lodash/array/sortedIndex.js create mode 100644 deps/npm/node_modules/lodash/array/sortedLastIndex.js create mode 100644 deps/npm/node_modules/lodash/array/tail.js create mode 100644 deps/npm/node_modules/lodash/array/take.js create mode 100644 deps/npm/node_modules/lodash/array/takeRight.js create mode 100644 deps/npm/node_modules/lodash/array/takeRightWhile.js create mode 100644 deps/npm/node_modules/lodash/array/takeWhile.js create mode 100644 deps/npm/node_modules/lodash/array/union.js create mode 100644 deps/npm/node_modules/lodash/array/uniq.js create mode 100644 deps/npm/node_modules/lodash/array/unique.js create mode 100644 deps/npm/node_modules/lodash/array/unzip.js create mode 100644 deps/npm/node_modules/lodash/array/unzipWith.js create mode 100644 deps/npm/node_modules/lodash/array/without.js create mode 100644 deps/npm/node_modules/lodash/array/xor.js create mode 100644 deps/npm/node_modules/lodash/array/zip.js create mode 100644 deps/npm/node_modules/lodash/array/zipObject.js create mode 100644 deps/npm/node_modules/lodash/array/zipWith.js create mode 100644 deps/npm/node_modules/lodash/chain.js create mode 100644 deps/npm/node_modules/lodash/chain/chain.js create mode 100644 deps/npm/node_modules/lodash/chain/commit.js create mode 100644 deps/npm/node_modules/lodash/chain/concat.js create mode 100644 deps/npm/node_modules/lodash/chain/lodash.js create mode 100644 deps/npm/node_modules/lodash/chain/plant.js create mode 100644 deps/npm/node_modules/lodash/chain/reverse.js create mode 100644 deps/npm/node_modules/lodash/chain/run.js create mode 100644 deps/npm/node_modules/lodash/chain/tap.js create mode 100644 deps/npm/node_modules/lodash/chain/thru.js create mode 100644 deps/npm/node_modules/lodash/chain/toJSON.js create mode 100644 deps/npm/node_modules/lodash/chain/toString.js create mode 100644 deps/npm/node_modules/lodash/chain/value.js create mode 100644 deps/npm/node_modules/lodash/chain/valueOf.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperChain.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperCommit.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperConcat.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperPlant.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperReverse.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperToString.js create mode 100644 deps/npm/node_modules/lodash/chain/wrapperValue.js create mode 100644 deps/npm/node_modules/lodash/collection.js create mode 100644 deps/npm/node_modules/lodash/collection/all.js create mode 100644 deps/npm/node_modules/lodash/collection/any.js create mode 100644 deps/npm/node_modules/lodash/collection/at.js create mode 100644 deps/npm/node_modules/lodash/collection/collect.js create mode 100644 deps/npm/node_modules/lodash/collection/contains.js create mode 100644 deps/npm/node_modules/lodash/collection/countBy.js create mode 100644 deps/npm/node_modules/lodash/collection/detect.js create mode 100644 deps/npm/node_modules/lodash/collection/each.js create mode 100644 deps/npm/node_modules/lodash/collection/eachRight.js create mode 100644 deps/npm/node_modules/lodash/collection/every.js create mode 100644 deps/npm/node_modules/lodash/collection/filter.js create mode 100644 deps/npm/node_modules/lodash/collection/find.js create mode 100644 deps/npm/node_modules/lodash/collection/findLast.js create mode 100644 deps/npm/node_modules/lodash/collection/findWhere.js create mode 100644 deps/npm/node_modules/lodash/collection/foldl.js create mode 100644 deps/npm/node_modules/lodash/collection/foldr.js create mode 100644 deps/npm/node_modules/lodash/collection/forEach.js create mode 100644 deps/npm/node_modules/lodash/collection/forEachRight.js create mode 100644 deps/npm/node_modules/lodash/collection/groupBy.js create mode 100644 deps/npm/node_modules/lodash/collection/include.js create mode 100644 deps/npm/node_modules/lodash/collection/includes.js create mode 100644 deps/npm/node_modules/lodash/collection/indexBy.js create mode 100644 deps/npm/node_modules/lodash/collection/inject.js create mode 100644 deps/npm/node_modules/lodash/collection/invoke.js create mode 100644 deps/npm/node_modules/lodash/collection/map.js create mode 100644 deps/npm/node_modules/lodash/collection/max.js create mode 100644 deps/npm/node_modules/lodash/collection/min.js create mode 100644 deps/npm/node_modules/lodash/collection/partition.js create mode 100644 deps/npm/node_modules/lodash/collection/pluck.js create mode 100644 deps/npm/node_modules/lodash/collection/reduce.js create mode 100644 deps/npm/node_modules/lodash/collection/reduceRight.js create mode 100644 deps/npm/node_modules/lodash/collection/reject.js create mode 100644 deps/npm/node_modules/lodash/collection/sample.js create mode 100644 deps/npm/node_modules/lodash/collection/select.js create mode 100644 deps/npm/node_modules/lodash/collection/shuffle.js create mode 100644 deps/npm/node_modules/lodash/collection/size.js create mode 100644 deps/npm/node_modules/lodash/collection/some.js create mode 100644 deps/npm/node_modules/lodash/collection/sortBy.js create mode 100644 deps/npm/node_modules/lodash/collection/sortByAll.js create mode 100644 deps/npm/node_modules/lodash/collection/sortByOrder.js create mode 100644 deps/npm/node_modules/lodash/collection/sum.js create mode 100644 deps/npm/node_modules/lodash/collection/where.js create mode 100644 deps/npm/node_modules/lodash/date.js create mode 100644 deps/npm/node_modules/lodash/date/now.js create mode 100644 deps/npm/node_modules/lodash/function.js create mode 100644 deps/npm/node_modules/lodash/function/after.js create mode 100644 deps/npm/node_modules/lodash/function/ary.js create mode 100644 deps/npm/node_modules/lodash/function/backflow.js create mode 100644 deps/npm/node_modules/lodash/function/before.js create mode 100644 deps/npm/node_modules/lodash/function/bind.js create mode 100644 deps/npm/node_modules/lodash/function/bindAll.js create mode 100644 deps/npm/node_modules/lodash/function/bindKey.js create mode 100644 deps/npm/node_modules/lodash/function/compose.js create mode 100644 deps/npm/node_modules/lodash/function/curry.js create mode 100644 deps/npm/node_modules/lodash/function/curryRight.js create mode 100644 deps/npm/node_modules/lodash/function/debounce.js create mode 100644 deps/npm/node_modules/lodash/function/defer.js create mode 100644 deps/npm/node_modules/lodash/function/delay.js create mode 100644 deps/npm/node_modules/lodash/function/flow.js create mode 100644 deps/npm/node_modules/lodash/function/flowRight.js create mode 100644 deps/npm/node_modules/lodash/function/memoize.js create mode 100644 deps/npm/node_modules/lodash/function/modArgs.js create mode 100644 deps/npm/node_modules/lodash/function/negate.js create mode 100644 deps/npm/node_modules/lodash/function/once.js create mode 100644 deps/npm/node_modules/lodash/function/partial.js create mode 100644 deps/npm/node_modules/lodash/function/partialRight.js create mode 100644 deps/npm/node_modules/lodash/function/rearg.js create mode 100644 deps/npm/node_modules/lodash/function/restParam.js create mode 100644 deps/npm/node_modules/lodash/function/spread.js create mode 100644 deps/npm/node_modules/lodash/function/throttle.js create mode 100644 deps/npm/node_modules/lodash/function/wrap.js create mode 100644 deps/npm/node_modules/lodash/index.js create mode 100644 deps/npm/node_modules/lodash/internal/LazyWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/LodashWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/MapCache.js create mode 100644 deps/npm/node_modules/lodash/internal/SetCache.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayConcat.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayCopy.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayEach.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayEachRight.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayEvery.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayExtremum.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayFilter.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayMap.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayPush.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayReduce.js create mode 100644 deps/npm/node_modules/lodash/internal/arrayReduceRight.js create mode 100644 deps/npm/node_modules/lodash/internal/arraySome.js create mode 100644 deps/npm/node_modules/lodash/internal/arraySum.js create mode 100644 deps/npm/node_modules/lodash/internal/assignDefaults.js create mode 100644 deps/npm/node_modules/lodash/internal/assignOwnDefaults.js create mode 100644 deps/npm/node_modules/lodash/internal/assignWith.js create mode 100644 deps/npm/node_modules/lodash/internal/baseAssign.js create mode 100644 deps/npm/node_modules/lodash/internal/baseAt.js create mode 100644 deps/npm/node_modules/lodash/internal/baseCallback.js create mode 100644 deps/npm/node_modules/lodash/internal/baseClone.js create mode 100644 deps/npm/node_modules/lodash/internal/baseCompareAscending.js create mode 100644 deps/npm/node_modules/lodash/internal/baseCopy.js create mode 100644 deps/npm/node_modules/lodash/internal/baseCreate.js create mode 100644 deps/npm/node_modules/lodash/internal/baseDelay.js create mode 100644 deps/npm/node_modules/lodash/internal/baseDifference.js create mode 100644 deps/npm/node_modules/lodash/internal/baseEach.js create mode 100644 deps/npm/node_modules/lodash/internal/baseEachRight.js create mode 100644 deps/npm/node_modules/lodash/internal/baseEvery.js create mode 100644 deps/npm/node_modules/lodash/internal/baseExtremum.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFill.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFilter.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFind.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFindIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFlatten.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFor.js create mode 100644 deps/npm/node_modules/lodash/internal/baseForIn.js create mode 100644 deps/npm/node_modules/lodash/internal/baseForOwn.js create mode 100644 deps/npm/node_modules/lodash/internal/baseForOwnRight.js create mode 100644 deps/npm/node_modules/lodash/internal/baseForRight.js create mode 100644 deps/npm/node_modules/lodash/internal/baseFunctions.js create mode 100644 deps/npm/node_modules/lodash/internal/baseGet.js create mode 100644 deps/npm/node_modules/lodash/internal/baseIndexOf.js create mode 100644 deps/npm/node_modules/lodash/internal/baseIsEqual.js create mode 100644 deps/npm/node_modules/lodash/internal/baseIsEqualDeep.js create mode 100644 deps/npm/node_modules/lodash/internal/baseIsFunction.js create mode 100644 deps/npm/node_modules/lodash/internal/baseIsMatch.js create mode 100644 deps/npm/node_modules/lodash/internal/baseLodash.js create mode 100644 deps/npm/node_modules/lodash/internal/baseMap.js create mode 100644 deps/npm/node_modules/lodash/internal/baseMatches.js create mode 100644 deps/npm/node_modules/lodash/internal/baseMatchesProperty.js create mode 100644 deps/npm/node_modules/lodash/internal/baseMerge.js create mode 100644 deps/npm/node_modules/lodash/internal/baseMergeDeep.js create mode 100644 deps/npm/node_modules/lodash/internal/baseProperty.js create mode 100644 deps/npm/node_modules/lodash/internal/basePropertyDeep.js create mode 100644 deps/npm/node_modules/lodash/internal/basePullAt.js create mode 100644 deps/npm/node_modules/lodash/internal/baseRandom.js create mode 100644 deps/npm/node_modules/lodash/internal/baseReduce.js create mode 100644 deps/npm/node_modules/lodash/internal/baseSetData.js create mode 100644 deps/npm/node_modules/lodash/internal/baseSlice.js create mode 100644 deps/npm/node_modules/lodash/internal/baseSome.js create mode 100644 deps/npm/node_modules/lodash/internal/baseSortBy.js create mode 100644 deps/npm/node_modules/lodash/internal/baseSortByOrder.js create mode 100644 deps/npm/node_modules/lodash/internal/baseSum.js create mode 100644 deps/npm/node_modules/lodash/internal/baseToString.js create mode 100644 deps/npm/node_modules/lodash/internal/baseUniq.js create mode 100644 deps/npm/node_modules/lodash/internal/baseValues.js create mode 100644 deps/npm/node_modules/lodash/internal/baseWhile.js create mode 100644 deps/npm/node_modules/lodash/internal/baseWrapperValue.js create mode 100644 deps/npm/node_modules/lodash/internal/binaryIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/binaryIndexBy.js create mode 100644 deps/npm/node_modules/lodash/internal/bindCallback.js create mode 100644 deps/npm/node_modules/lodash/internal/bufferClone.js create mode 100644 deps/npm/node_modules/lodash/internal/cacheIndexOf.js create mode 100644 deps/npm/node_modules/lodash/internal/cachePush.js create mode 100644 deps/npm/node_modules/lodash/internal/charsLeftIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/charsRightIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/compareAscending.js create mode 100644 deps/npm/node_modules/lodash/internal/compareMultiple.js create mode 100644 deps/npm/node_modules/lodash/internal/composeArgs.js create mode 100644 deps/npm/node_modules/lodash/internal/composeArgsRight.js create mode 100644 deps/npm/node_modules/lodash/internal/createAggregator.js create mode 100644 deps/npm/node_modules/lodash/internal/createAssigner.js create mode 100644 deps/npm/node_modules/lodash/internal/createBaseEach.js create mode 100644 deps/npm/node_modules/lodash/internal/createBaseFor.js create mode 100644 deps/npm/node_modules/lodash/internal/createBindWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/createCache.js create mode 100644 deps/npm/node_modules/lodash/internal/createCompounder.js create mode 100644 deps/npm/node_modules/lodash/internal/createCtorWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/createCurry.js create mode 100644 deps/npm/node_modules/lodash/internal/createDefaults.js create mode 100644 deps/npm/node_modules/lodash/internal/createExtremum.js create mode 100644 deps/npm/node_modules/lodash/internal/createFind.js create mode 100644 deps/npm/node_modules/lodash/internal/createFindIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/createFindKey.js create mode 100644 deps/npm/node_modules/lodash/internal/createFlow.js create mode 100644 deps/npm/node_modules/lodash/internal/createForEach.js create mode 100644 deps/npm/node_modules/lodash/internal/createForIn.js create mode 100644 deps/npm/node_modules/lodash/internal/createForOwn.js create mode 100644 deps/npm/node_modules/lodash/internal/createHybridWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/createObjectMapper.js create mode 100644 deps/npm/node_modules/lodash/internal/createPadDir.js create mode 100644 deps/npm/node_modules/lodash/internal/createPadding.js create mode 100644 deps/npm/node_modules/lodash/internal/createPartial.js create mode 100644 deps/npm/node_modules/lodash/internal/createPartialWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/createReduce.js create mode 100644 deps/npm/node_modules/lodash/internal/createRound.js create mode 100644 deps/npm/node_modules/lodash/internal/createSortedIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/createWrapper.js create mode 100644 deps/npm/node_modules/lodash/internal/deburrLetter.js create mode 100644 deps/npm/node_modules/lodash/internal/equalArrays.js create mode 100644 deps/npm/node_modules/lodash/internal/equalByTag.js create mode 100644 deps/npm/node_modules/lodash/internal/equalObjects.js create mode 100644 deps/npm/node_modules/lodash/internal/escapeHtmlChar.js create mode 100644 deps/npm/node_modules/lodash/internal/escapeRegExpChar.js create mode 100644 deps/npm/node_modules/lodash/internal/escapeStringChar.js create mode 100644 deps/npm/node_modules/lodash/internal/getData.js create mode 100644 deps/npm/node_modules/lodash/internal/getFuncName.js create mode 100644 deps/npm/node_modules/lodash/internal/getLength.js create mode 100644 deps/npm/node_modules/lodash/internal/getMatchData.js create mode 100644 deps/npm/node_modules/lodash/internal/getNative.js create mode 100644 deps/npm/node_modules/lodash/internal/getView.js create mode 100644 deps/npm/node_modules/lodash/internal/indexOfNaN.js create mode 100644 deps/npm/node_modules/lodash/internal/initCloneArray.js create mode 100644 deps/npm/node_modules/lodash/internal/initCloneByTag.js create mode 100644 deps/npm/node_modules/lodash/internal/initCloneObject.js create mode 100644 deps/npm/node_modules/lodash/internal/invokePath.js create mode 100644 deps/npm/node_modules/lodash/internal/isArrayLike.js create mode 100644 deps/npm/node_modules/lodash/internal/isIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/isIterateeCall.js create mode 100644 deps/npm/node_modules/lodash/internal/isKey.js create mode 100644 deps/npm/node_modules/lodash/internal/isLaziable.js create mode 100644 deps/npm/node_modules/lodash/internal/isLength.js create mode 100644 deps/npm/node_modules/lodash/internal/isObjectLike.js create mode 100644 deps/npm/node_modules/lodash/internal/isSpace.js create mode 100644 deps/npm/node_modules/lodash/internal/isStrictComparable.js create mode 100644 deps/npm/node_modules/lodash/internal/lazyClone.js create mode 100644 deps/npm/node_modules/lodash/internal/lazyReverse.js create mode 100644 deps/npm/node_modules/lodash/internal/lazyValue.js create mode 100644 deps/npm/node_modules/lodash/internal/mapDelete.js create mode 100644 deps/npm/node_modules/lodash/internal/mapGet.js create mode 100644 deps/npm/node_modules/lodash/internal/mapHas.js create mode 100644 deps/npm/node_modules/lodash/internal/mapSet.js create mode 100644 deps/npm/node_modules/lodash/internal/mergeData.js create mode 100644 deps/npm/node_modules/lodash/internal/mergeDefaults.js create mode 100644 deps/npm/node_modules/lodash/internal/metaMap.js create mode 100644 deps/npm/node_modules/lodash/internal/pickByArray.js create mode 100644 deps/npm/node_modules/lodash/internal/pickByCallback.js create mode 100644 deps/npm/node_modules/lodash/internal/reEscape.js create mode 100644 deps/npm/node_modules/lodash/internal/reEvaluate.js create mode 100644 deps/npm/node_modules/lodash/internal/reInterpolate.js create mode 100644 deps/npm/node_modules/lodash/internal/realNames.js create mode 100644 deps/npm/node_modules/lodash/internal/reorder.js create mode 100644 deps/npm/node_modules/lodash/internal/replaceHolders.js create mode 100644 deps/npm/node_modules/lodash/internal/setData.js create mode 100644 deps/npm/node_modules/lodash/internal/shimKeys.js create mode 100644 deps/npm/node_modules/lodash/internal/sortedUniq.js create mode 100644 deps/npm/node_modules/lodash/internal/toIterable.js create mode 100644 deps/npm/node_modules/lodash/internal/toObject.js create mode 100644 deps/npm/node_modules/lodash/internal/toPath.js create mode 100644 deps/npm/node_modules/lodash/internal/trimmedLeftIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/trimmedRightIndex.js create mode 100644 deps/npm/node_modules/lodash/internal/unescapeHtmlChar.js create mode 100644 deps/npm/node_modules/lodash/internal/wrapperClone.js create mode 100644 deps/npm/node_modules/lodash/lang.js create mode 100644 deps/npm/node_modules/lodash/lang/clone.js create mode 100644 deps/npm/node_modules/lodash/lang/cloneDeep.js create mode 100644 deps/npm/node_modules/lodash/lang/eq.js create mode 100644 deps/npm/node_modules/lodash/lang/gt.js create mode 100644 deps/npm/node_modules/lodash/lang/gte.js create mode 100644 deps/npm/node_modules/lodash/lang/isArguments.js create mode 100644 deps/npm/node_modules/lodash/lang/isArray.js create mode 100644 deps/npm/node_modules/lodash/lang/isBoolean.js create mode 100644 deps/npm/node_modules/lodash/lang/isDate.js create mode 100644 deps/npm/node_modules/lodash/lang/isElement.js create mode 100644 deps/npm/node_modules/lodash/lang/isEmpty.js create mode 100644 deps/npm/node_modules/lodash/lang/isEqual.js create mode 100644 deps/npm/node_modules/lodash/lang/isError.js create mode 100644 deps/npm/node_modules/lodash/lang/isFinite.js create mode 100644 deps/npm/node_modules/lodash/lang/isFunction.js create mode 100644 deps/npm/node_modules/lodash/lang/isMatch.js create mode 100644 deps/npm/node_modules/lodash/lang/isNaN.js create mode 100644 deps/npm/node_modules/lodash/lang/isNative.js create mode 100644 deps/npm/node_modules/lodash/lang/isNull.js create mode 100644 deps/npm/node_modules/lodash/lang/isNumber.js create mode 100644 deps/npm/node_modules/lodash/lang/isObject.js create mode 100644 deps/npm/node_modules/lodash/lang/isPlainObject.js create mode 100644 deps/npm/node_modules/lodash/lang/isRegExp.js create mode 100644 deps/npm/node_modules/lodash/lang/isString.js create mode 100644 deps/npm/node_modules/lodash/lang/isTypedArray.js create mode 100644 deps/npm/node_modules/lodash/lang/isUndefined.js create mode 100644 deps/npm/node_modules/lodash/lang/lt.js create mode 100644 deps/npm/node_modules/lodash/lang/lte.js create mode 100644 deps/npm/node_modules/lodash/lang/toArray.js create mode 100644 deps/npm/node_modules/lodash/lang/toPlainObject.js create mode 100644 deps/npm/node_modules/lodash/math.js create mode 100644 deps/npm/node_modules/lodash/math/add.js create mode 100644 deps/npm/node_modules/lodash/math/ceil.js create mode 100644 deps/npm/node_modules/lodash/math/floor.js create mode 100644 deps/npm/node_modules/lodash/math/max.js create mode 100644 deps/npm/node_modules/lodash/math/min.js create mode 100644 deps/npm/node_modules/lodash/math/round.js create mode 100644 deps/npm/node_modules/lodash/math/sum.js create mode 100644 deps/npm/node_modules/lodash/number.js create mode 100644 deps/npm/node_modules/lodash/number/inRange.js create mode 100644 deps/npm/node_modules/lodash/number/random.js create mode 100644 deps/npm/node_modules/lodash/object.js create mode 100644 deps/npm/node_modules/lodash/object/assign.js create mode 100644 deps/npm/node_modules/lodash/object/create.js create mode 100644 deps/npm/node_modules/lodash/object/defaults.js create mode 100644 deps/npm/node_modules/lodash/object/defaultsDeep.js create mode 100644 deps/npm/node_modules/lodash/object/extend.js create mode 100644 deps/npm/node_modules/lodash/object/findKey.js create mode 100644 deps/npm/node_modules/lodash/object/findLastKey.js create mode 100644 deps/npm/node_modules/lodash/object/forIn.js create mode 100644 deps/npm/node_modules/lodash/object/forInRight.js create mode 100644 deps/npm/node_modules/lodash/object/forOwn.js create mode 100644 deps/npm/node_modules/lodash/object/forOwnRight.js create mode 100644 deps/npm/node_modules/lodash/object/functions.js create mode 100644 deps/npm/node_modules/lodash/object/get.js create mode 100644 deps/npm/node_modules/lodash/object/has.js create mode 100644 deps/npm/node_modules/lodash/object/invert.js create mode 100644 deps/npm/node_modules/lodash/object/keys.js create mode 100644 deps/npm/node_modules/lodash/object/keysIn.js create mode 100644 deps/npm/node_modules/lodash/object/mapKeys.js create mode 100644 deps/npm/node_modules/lodash/object/mapValues.js create mode 100644 deps/npm/node_modules/lodash/object/merge.js create mode 100644 deps/npm/node_modules/lodash/object/methods.js create mode 100644 deps/npm/node_modules/lodash/object/omit.js create mode 100644 deps/npm/node_modules/lodash/object/pairs.js create mode 100644 deps/npm/node_modules/lodash/object/pick.js create mode 100644 deps/npm/node_modules/lodash/object/result.js create mode 100644 deps/npm/node_modules/lodash/object/set.js create mode 100644 deps/npm/node_modules/lodash/object/transform.js create mode 100644 deps/npm/node_modules/lodash/object/values.js create mode 100644 deps/npm/node_modules/lodash/object/valuesIn.js create mode 100644 deps/npm/node_modules/lodash/package.json create mode 100644 deps/npm/node_modules/lodash/string.js create mode 100644 deps/npm/node_modules/lodash/string/camelCase.js create mode 100644 deps/npm/node_modules/lodash/string/capitalize.js create mode 100644 deps/npm/node_modules/lodash/string/deburr.js create mode 100644 deps/npm/node_modules/lodash/string/endsWith.js create mode 100644 deps/npm/node_modules/lodash/string/escape.js create mode 100644 deps/npm/node_modules/lodash/string/escapeRegExp.js create mode 100644 deps/npm/node_modules/lodash/string/kebabCase.js create mode 100644 deps/npm/node_modules/lodash/string/pad.js create mode 100644 deps/npm/node_modules/lodash/string/padLeft.js create mode 100644 deps/npm/node_modules/lodash/string/padRight.js create mode 100644 deps/npm/node_modules/lodash/string/parseInt.js create mode 100644 deps/npm/node_modules/lodash/string/repeat.js create mode 100644 deps/npm/node_modules/lodash/string/snakeCase.js create mode 100644 deps/npm/node_modules/lodash/string/startCase.js create mode 100644 deps/npm/node_modules/lodash/string/startsWith.js create mode 100644 deps/npm/node_modules/lodash/string/template.js create mode 100644 deps/npm/node_modules/lodash/string/templateSettings.js create mode 100644 deps/npm/node_modules/lodash/string/trim.js create mode 100644 deps/npm/node_modules/lodash/string/trimLeft.js create mode 100644 deps/npm/node_modules/lodash/string/trimRight.js create mode 100644 deps/npm/node_modules/lodash/string/trunc.js create mode 100644 deps/npm/node_modules/lodash/string/unescape.js create mode 100644 deps/npm/node_modules/lodash/string/words.js create mode 100644 deps/npm/node_modules/lodash/support.js create mode 100644 deps/npm/node_modules/lodash/utility.js create mode 100644 deps/npm/node_modules/lodash/utility/attempt.js create mode 100644 deps/npm/node_modules/lodash/utility/callback.js create mode 100644 deps/npm/node_modules/lodash/utility/constant.js create mode 100644 deps/npm/node_modules/lodash/utility/identity.js create mode 100644 deps/npm/node_modules/lodash/utility/iteratee.js create mode 100644 deps/npm/node_modules/lodash/utility/matches.js create mode 100644 deps/npm/node_modules/lodash/utility/matchesProperty.js create mode 100644 deps/npm/node_modules/lodash/utility/method.js create mode 100644 deps/npm/node_modules/lodash/utility/methodOf.js create mode 100644 deps/npm/node_modules/lodash/utility/mixin.js create mode 100644 deps/npm/node_modules/lodash/utility/noop.js create mode 100644 deps/npm/node_modules/lodash/utility/property.js create mode 100644 deps/npm/node_modules/lodash/utility/propertyOf.js create mode 100644 deps/npm/node_modules/lodash/utility/range.js create mode 100644 deps/npm/node_modules/lodash/utility/times.js create mode 100644 deps/npm/node_modules/lodash/utility/uniqueId.js create mode 100644 deps/npm/node_modules/lowercase-keys/index.js create mode 100644 deps/npm/node_modules/lowercase-keys/license create mode 100644 deps/npm/node_modules/lowercase-keys/package.json create mode 100644 deps/npm/node_modules/lowercase-keys/readme.md delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/LICENSE delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/README.md delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/map.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/package.json delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/pseudomap/test/basic.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/LICENSE delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/README.md delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/iterator.js delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/package.json delete mode 100644 deps/npm/node_modules/lru-cache/node_modules/yallist/yallist.js create mode 100644 deps/npm/node_modules/make-dir/index.js create mode 100644 deps/npm/node_modules/make-dir/license create mode 100644 deps/npm/node_modules/make-dir/package.json create mode 100644 deps/npm/node_modules/make-dir/readme.md create mode 100644 deps/npm/node_modules/make-fetch-happen/CHANGELOG.md create mode 100644 deps/npm/node_modules/make-fetch-happen/LICENSE create mode 100644 deps/npm/node_modules/make-fetch-happen/README.md create mode 100644 deps/npm/node_modules/make-fetch-happen/agent.js create mode 100644 deps/npm/node_modules/make-fetch-happen/cache.js create mode 100644 deps/npm/node_modules/make-fetch-happen/index.js create mode 100644 deps/npm/node_modules/make-fetch-happen/package.json create mode 100644 deps/npm/node_modules/make-fetch-happen/warning.js create mode 100644 deps/npm/node_modules/mem/index.js create mode 100644 deps/npm/node_modules/mem/license create mode 100644 deps/npm/node_modules/mem/package.json create mode 100644 deps/npm/node_modules/mem/readme.md create mode 100644 deps/npm/node_modules/mime-db/HISTORY.md create mode 100644 deps/npm/node_modules/mime-db/LICENSE create mode 100644 deps/npm/node_modules/mime-db/README.md create mode 100644 deps/npm/node_modules/mime-db/db.json create mode 100644 deps/npm/node_modules/mime-db/index.js create mode 100644 deps/npm/node_modules/mime-db/package.json create mode 100644 deps/npm/node_modules/mime-types/HISTORY.md create mode 100644 deps/npm/node_modules/mime-types/LICENSE create mode 100644 deps/npm/node_modules/mime-types/README.md create mode 100644 deps/npm/node_modules/mime-types/index.js create mode 100644 deps/npm/node_modules/mime-types/package.json create mode 100644 deps/npm/node_modules/mimic-fn/index.js create mode 100644 deps/npm/node_modules/mimic-fn/license create mode 100644 deps/npm/node_modules/mimic-fn/package.json create mode 100644 deps/npm/node_modules/mimic-fn/readme.md create mode 100644 deps/npm/node_modules/minimatch/LICENSE create mode 100644 deps/npm/node_modules/minimatch/README.md create mode 100644 deps/npm/node_modules/minimatch/minimatch.js create mode 100644 deps/npm/node_modules/minimatch/package.json create mode 100644 deps/npm/node_modules/minimist/.travis.yml create mode 100644 deps/npm/node_modules/minimist/LICENSE create mode 100644 deps/npm/node_modules/minimist/example/parse.js create mode 100644 deps/npm/node_modules/minimist/index.js create mode 100644 deps/npm/node_modules/minimist/package.json create mode 100644 deps/npm/node_modules/minimist/readme.markdown create mode 100644 deps/npm/node_modules/minimist/test/dash.js create mode 100644 deps/npm/node_modules/minimist/test/default_bool.js create mode 100644 deps/npm/node_modules/minimist/test/dotted.js create mode 100644 deps/npm/node_modules/minimist/test/long.js create mode 100644 deps/npm/node_modules/minimist/test/parse.js create mode 100644 deps/npm/node_modules/minimist/test/parse_modified.js create mode 100644 deps/npm/node_modules/minimist/test/short.js create mode 100644 deps/npm/node_modules/minimist/test/whitespace.js create mode 100644 deps/npm/node_modules/minipass/README.md create mode 100644 deps/npm/node_modules/minipass/index.js create mode 100644 deps/npm/node_modules/minipass/node_modules/yallist/LICENSE create mode 100644 deps/npm/node_modules/minipass/node_modules/yallist/README.md create mode 100644 deps/npm/node_modules/minipass/node_modules/yallist/iterator.js create mode 100644 deps/npm/node_modules/minipass/node_modules/yallist/package.json create mode 100644 deps/npm/node_modules/minipass/node_modules/yallist/yallist.js create mode 100644 deps/npm/node_modules/minipass/package.json create mode 100644 deps/npm/node_modules/minizlib/LICENSE create mode 100644 deps/npm/node_modules/minizlib/README.md create mode 100644 deps/npm/node_modules/minizlib/constants.js create mode 100644 deps/npm/node_modules/minizlib/index.js create mode 100644 deps/npm/node_modules/minizlib/package.json delete mode 100644 deps/npm/node_modules/mississippi/.npmignore create mode 100644 deps/npm/node_modules/mississippi/changelog.md create mode 100644 deps/npm/node_modules/mississippi/license delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/example/tarray.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/readme.markdown delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/tarray.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/concat-stream/readme.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/example.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/once.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/duplexify/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/end-of-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/example.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/flush-write-stream/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/LICENSE.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/from2/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/parallel-transform/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/test-browser.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pump/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/pumpify/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/collaborators.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.travis.yml delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/LICENSE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/index.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/stream-each/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.html delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/.npmignore delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/LICENCE delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/Makefile delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/README.md delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/immutable.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/mutable.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/test.js delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/package.json delete mode 100644 deps/npm/node_modules/mississippi/node_modules/through2/through2.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/index.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/package.json delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js delete mode 100644 deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/LICENSE delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/README.md delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/is-windows.js delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/package.json delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/run-queue/README.md delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/run-queue/package.json delete mode 100644 deps/npm/node_modules/move-concurrently/node_modules/run-queue/queue.js create mode 100644 deps/npm/node_modules/ms/index.js create mode 100644 deps/npm/node_modules/ms/license.md create mode 100644 deps/npm/node_modules/ms/package.json create mode 100644 deps/npm/node_modules/ms/readme.md create mode 100644 deps/npm/node_modules/mute-stream/.travis.yml create mode 100644 deps/npm/node_modules/mute-stream/LICENSE create mode 100644 deps/npm/node_modules/mute-stream/README.md create mode 100644 deps/npm/node_modules/mute-stream/mute.js create mode 100644 deps/npm/node_modules/mute-stream/package.json create mode 100644 deps/npm/node_modules/mute-stream/test/basic.js create mode 100644 deps/npm/node_modules/node-fetch-npm/CHANGELOG.md create mode 100644 deps/npm/node_modules/node-fetch-npm/LICENSE.md create mode 100644 deps/npm/node_modules/node-fetch-npm/README.md create mode 100644 deps/npm/node_modules/node-fetch-npm/package.json create mode 100644 deps/npm/node_modules/node-fetch-npm/src/blob.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/body.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/common.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/fetch-error.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/headers.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/index.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/request.js create mode 100644 deps/npm/node_modules/node-fetch-npm/src/response.js delete mode 100644 deps/npm/node_modules/node-gyp/.jshintrc delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/.travis.yml delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/filter-pipe.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/pipe.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/examples/symlink-write.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/fstream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/abstract.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/collect.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/get-type.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/socket-reader.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/lib/writer.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/fstream/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENCE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/block-stream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/package.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json delete mode 100644 deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md create mode 100644 deps/npm/node_modules/npm-audit-report/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-audit-report/LICENSE create mode 100644 deps/npm/node_modules/npm-audit-report/README.md create mode 100644 deps/npm/node_modules/npm-audit-report/index.js create mode 100644 deps/npm/node_modules/npm-audit-report/lib/utils.js create mode 100644 deps/npm/node_modules/npm-audit-report/package.json create mode 100644 deps/npm/node_modules/npm-audit-report/reporters/detail.js create mode 100644 deps/npm/node_modules/npm-audit-report/reporters/install.js create mode 100644 deps/npm/node_modules/npm-audit-report/reporters/json.js create mode 100644 deps/npm/node_modules/npm-audit-report/reporters/quiet.js create mode 100644 deps/npm/node_modules/npm-bundled/README.md create mode 100644 deps/npm/node_modules/npm-bundled/index.js create mode 100644 deps/npm/node_modules/npm-bundled/package.json delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/LICENSE delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/README.md delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/lib/byline.js delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/byline/package.json delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/index.js delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/license delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/package.json delete mode 100644 deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/readme.md create mode 100644 deps/npm/node_modules/npm-logical-tree/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-logical-tree/LICENSE.md create mode 100644 deps/npm/node_modules/npm-logical-tree/README.md create mode 100644 deps/npm/node_modules/npm-logical-tree/index.js create mode 100644 deps/npm/node_modules/npm-logical-tree/package.json create mode 100644 deps/npm/node_modules/npm-package-arg/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/README.md delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/package.json create mode 100644 deps/npm/node_modules/npm-pick-manifest/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-pick-manifest/LICENSE.md create mode 100644 deps/npm/node_modules/npm-pick-manifest/README.md create mode 100644 deps/npm/node_modules/npm-pick-manifest/index.js create mode 100644 deps/npm/node_modules/npm-pick-manifest/package.json create mode 100644 deps/npm/node_modules/npm-profile/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/LICENSE.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/README.es.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/en.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/es.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/get.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/path.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/read.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/rm.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/write.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/entry-index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/memoization.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/hash-to-segments.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/move-file.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/tmp.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/y.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/lib/verify.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/ls.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/changelog.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/license create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/readme.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/put.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/rm.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/cacache/verify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.es.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/en.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/es.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/get.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/path.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/read.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/rm.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/write.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/entry-index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/memoization.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/move-file.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/tmp.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/y.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/verify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/ls.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/put.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/rm.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/verify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/extend-node.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/streams.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.editorconfig delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.editorconfig delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.eslintrc.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/bower.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.umd.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/test/api-test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/lib/smart-buffer.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/test/smart-buffer.test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/typings/index.d.ts delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/.travis.yml create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/LICENSE create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test-browser.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/mississippi/readme.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/.travis.yml create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/LICENSE create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/test-browser.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/pump/test-node.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.npmignore create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.travis.yml create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/LICENSE create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js.map create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/lib/smart-buffer.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/test/smart-buffer.test.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/smart-buffer/typings/index.d.ts create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.npmignore create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.travis.yml create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/History.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/test.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/.npmignore create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/LICENSE create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/examples/associate.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/examples/bind.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/examples/connect.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-agent.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-client.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/socks/package.json create mode 100644 deps/npm/node_modules/npm-profile/node_modules/ssri/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/ssri/LICENSE.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/ssri/README.md create mode 100644 deps/npm/node_modules/npm-profile/node_modules/ssri/index.js create mode 100644 deps/npm/node_modules/npm-profile/node_modules/ssri/package.json create mode 100644 deps/npm/node_modules/npm-registry-client/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/package.json create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/License create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/Makefile create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/README.md create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/example/stop.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/index.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-forever.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js create mode 100644 deps/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/LICENSE.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/auth.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/check-response.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/config.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/errors.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/en.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/es.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/get.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/ls.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/put.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/rm.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/verify.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/LICENSE create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-node.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/.npmignore create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/LICENSE create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/socks/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/README.md create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/index.js create mode 100644 deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/package.json create mode 100644 deps/npm/node_modules/npm-registry-fetch/silentlog.js create mode 100644 deps/npm/node_modules/npm-run-path/index.js create mode 100644 deps/npm/node_modules/npm-run-path/license create mode 100644 deps/npm/node_modules/npm-run-path/package.json create mode 100644 deps/npm/node_modules/npm-run-path/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/console-control-strings/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/base-theme.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/error.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/has-color.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/align.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/package.json delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/plumbing.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/process.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/render-template.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/set-immediate.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/set-interval.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/spin.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/template-item.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/theme-set.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/themes.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/gauge/wide-truncate.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/LICENSE.txt delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/README.md delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/index.js delete mode 100644 deps/npm/node_modules/npmlog/node_modules/set-blocking/package.json create mode 100644 deps/npm/node_modules/number-is-nan/index.js create mode 100644 deps/npm/node_modules/number-is-nan/license create mode 100644 deps/npm/node_modules/number-is-nan/package.json create mode 100644 deps/npm/node_modules/number-is-nan/readme.md create mode 100644 deps/npm/node_modules/oauth-sign/LICENSE create mode 100644 deps/npm/node_modules/oauth-sign/README.md create mode 100644 deps/npm/node_modules/oauth-sign/index.js create mode 100644 deps/npm/node_modules/oauth-sign/package.json create mode 100644 deps/npm/node_modules/object-assign/index.js create mode 100644 deps/npm/node_modules/object-assign/license create mode 100644 deps/npm/node_modules/object-assign/package.json create mode 100644 deps/npm/node_modules/object-assign/readme.md create mode 100644 deps/npm/node_modules/os-homedir/index.js create mode 100644 deps/npm/node_modules/os-homedir/license create mode 100644 deps/npm/node_modules/os-homedir/package.json create mode 100644 deps/npm/node_modules/os-homedir/readme.md create mode 100644 deps/npm/node_modules/os-locale/index.js create mode 100644 deps/npm/node_modules/os-locale/license create mode 100644 deps/npm/node_modules/os-locale/package.json create mode 100644 deps/npm/node_modules/os-locale/readme.md create mode 100644 deps/npm/node_modules/os-tmpdir/index.js create mode 100644 deps/npm/node_modules/os-tmpdir/license create mode 100644 deps/npm/node_modules/os-tmpdir/package.json create mode 100644 deps/npm/node_modules/os-tmpdir/readme.md delete mode 100644 deps/npm/node_modules/osenv/.npmignore delete mode 100644 deps/npm/node_modules/osenv/.travis.yml delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/index.js delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/license delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/package.json delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/license delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json delete mode 100644 deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md delete mode 100644 deps/npm/node_modules/osenv/test/unix.js delete mode 100644 deps/npm/node_modules/osenv/test/windows.js delete mode 100644 deps/npm/node_modules/osenv/x.tap create mode 100644 deps/npm/node_modules/p-finally/index.js create mode 100644 deps/npm/node_modules/p-finally/license create mode 100644 deps/npm/node_modules/p-finally/package.json create mode 100644 deps/npm/node_modules/p-finally/readme.md create mode 100644 deps/npm/node_modules/p-limit/index.js create mode 100644 deps/npm/node_modules/p-limit/license create mode 100644 deps/npm/node_modules/p-limit/package.json create mode 100644 deps/npm/node_modules/p-limit/readme.md create mode 100644 deps/npm/node_modules/p-locate/index.js create mode 100644 deps/npm/node_modules/p-locate/license create mode 100644 deps/npm/node_modules/p-locate/package.json create mode 100644 deps/npm/node_modules/p-locate/readme.md create mode 100644 deps/npm/node_modules/p-try/index.js create mode 100644 deps/npm/node_modules/p-try/license create mode 100644 deps/npm/node_modules/p-try/package.json create mode 100644 deps/npm/node_modules/p-try/readme.md create mode 100644 deps/npm/node_modules/package-json/index.js create mode 100644 deps/npm/node_modules/package-json/license create mode 100644 deps/npm/node_modules/package-json/package.json create mode 100644 deps/npm/node_modules/package-json/readme.md create mode 100644 deps/npm/node_modules/pacote/lib/util/finished.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js create mode 100644 deps/npm/node_modules/pacote/lib/with-tarball-stream.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/extend-node.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/streams.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/dist/promisify.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.auto.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/dist/es6-promise.min.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/es6-promise.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.auto.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/-internal.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/asap.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/enumerator.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/polyfill.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/all.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/race.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/reject.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/promise/resolve.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/then.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/lib/es6-promise/utils.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/test/api-test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/lib/smart-buffer.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/test/smart-buffer.test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/typings/index.d.ts delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/make-fetch-happen/warning.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/LICENSE.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/.editorconfig delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/LICENSE delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.editorconfig delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.eslintrc.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.npmignore delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.travis.yml delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/bower.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.umd.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/promise-retry/test/test.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/index.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/CHANGELOG.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/README.md delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/genfun.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/method.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/role.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/util.js delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/package.json delete mode 100644 deps/npm/node_modules/pacote/node_modules/protoduck/package.json create mode 100644 deps/npm/node_modules/parallel-transform/.npmignore create mode 100644 deps/npm/node_modules/parallel-transform/LICENSE create mode 100644 deps/npm/node_modules/parallel-transform/README.md create mode 100644 deps/npm/node_modules/parallel-transform/index.js create mode 100644 deps/npm/node_modules/parallel-transform/package.json create mode 100644 deps/npm/node_modules/path-exists/index.js create mode 100644 deps/npm/node_modules/path-exists/license create mode 100644 deps/npm/node_modules/path-exists/package.json create mode 100644 deps/npm/node_modules/path-exists/readme.md create mode 100644 deps/npm/node_modules/path-is-absolute/index.js create mode 100644 deps/npm/node_modules/path-is-absolute/license create mode 100644 deps/npm/node_modules/path-is-absolute/package.json create mode 100644 deps/npm/node_modules/path-is-absolute/readme.md create mode 100644 deps/npm/node_modules/path-key/index.js create mode 100644 deps/npm/node_modules/path-key/license create mode 100644 deps/npm/node_modules/path-key/package.json create mode 100644 deps/npm/node_modules/path-key/readme.md create mode 100644 deps/npm/node_modules/performance-now/.npmignore create mode 100644 deps/npm/node_modules/performance-now/.tm_properties create mode 100644 deps/npm/node_modules/performance-now/.travis.yml create mode 100644 deps/npm/node_modules/performance-now/README.md create mode 100644 deps/npm/node_modules/performance-now/lib/performance-now.js create mode 100644 deps/npm/node_modules/performance-now/lib/performance-now.js.map create mode 100644 deps/npm/node_modules/performance-now/license.txt create mode 100644 deps/npm/node_modules/performance-now/package.json create mode 100644 deps/npm/node_modules/performance-now/src/index.d.ts create mode 100644 deps/npm/node_modules/performance-now/src/performance-now.coffee create mode 100644 deps/npm/node_modules/performance-now/test/mocha.opts create mode 100644 deps/npm/node_modules/performance-now/test/performance-now.coffee create mode 100644 deps/npm/node_modules/performance-now/test/scripts.coffee create mode 100755 deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee create mode 100755 deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee create mode 100755 deps/npm/node_modules/performance-now/test/scripts/difference.coffee create mode 100755 deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee create mode 100644 deps/npm/node_modules/pify/index.js create mode 100644 deps/npm/node_modules/pify/license create mode 100644 deps/npm/node_modules/pify/package.json create mode 100644 deps/npm/node_modules/pify/readme.md create mode 100644 deps/npm/node_modules/prepend-http/index.js create mode 100644 deps/npm/node_modules/prepend-http/license create mode 100644 deps/npm/node_modules/prepend-http/package.json create mode 100644 deps/npm/node_modules/prepend-http/readme.md create mode 100644 deps/npm/node_modules/process-nextick-args/index.js create mode 100644 deps/npm/node_modules/process-nextick-args/license.md create mode 100644 deps/npm/node_modules/process-nextick-args/package.json create mode 100644 deps/npm/node_modules/process-nextick-args/readme.md create mode 100644 deps/npm/node_modules/promise-retry/.editorconfig create mode 100644 deps/npm/node_modules/promise-retry/.npmignore create mode 100644 deps/npm/node_modules/promise-retry/.travis.yml create mode 100644 deps/npm/node_modules/promise-retry/LICENSE create mode 100644 deps/npm/node_modules/promise-retry/README.md create mode 100644 deps/npm/node_modules/promise-retry/index.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/.npmignore create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/License create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/Makefile create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/README.md create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/equation.gif create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/example/dns.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/example/stop.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/index.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry_operation.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/package.json create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/test/common.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-forever.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-operation.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-wrap.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-timeouts.js create mode 100644 deps/npm/node_modules/promise-retry/node_modules/retry/test/runner.js create mode 100644 deps/npm/node_modules/promise-retry/package.json create mode 100644 deps/npm/node_modules/promise-retry/test/test.js create mode 100644 deps/npm/node_modules/promzard/.npmignore create mode 100644 deps/npm/node_modules/promzard/LICENSE create mode 100644 deps/npm/node_modules/promzard/README.md create mode 100644 deps/npm/node_modules/promzard/example/buffer.js create mode 100644 deps/npm/node_modules/promzard/example/index.js create mode 100644 deps/npm/node_modules/promzard/example/npm-init/README.md create mode 100644 deps/npm/node_modules/promzard/example/npm-init/init-input.js create mode 100644 deps/npm/node_modules/promzard/example/npm-init/init.js create mode 100644 deps/npm/node_modules/promzard/example/npm-init/package.json create mode 100644 deps/npm/node_modules/promzard/example/substack-input.js create mode 100644 deps/npm/node_modules/promzard/package.json create mode 100644 deps/npm/node_modules/promzard/promzard.js create mode 100644 deps/npm/node_modules/promzard/test/basic.js create mode 100644 deps/npm/node_modules/promzard/test/buffer.js create mode 100644 deps/npm/node_modules/promzard/test/exports.input create mode 100644 deps/npm/node_modules/promzard/test/exports.js create mode 100644 deps/npm/node_modules/promzard/test/fn.input create mode 100644 deps/npm/node_modules/promzard/test/fn.js create mode 100644 deps/npm/node_modules/promzard/test/simple.input create mode 100644 deps/npm/node_modules/promzard/test/simple.js create mode 100644 deps/npm/node_modules/promzard/test/validate.input create mode 100644 deps/npm/node_modules/promzard/test/validate.js create mode 100644 deps/npm/node_modules/proto-list/LICENSE create mode 100644 deps/npm/node_modules/proto-list/README.md create mode 100644 deps/npm/node_modules/proto-list/package.json create mode 100644 deps/npm/node_modules/proto-list/proto-list.js create mode 100644 deps/npm/node_modules/proto-list/test/basic.js create mode 100644 deps/npm/node_modules/protoduck/CHANGELOG.md create mode 100644 deps/npm/node_modules/protoduck/LICENSE create mode 100644 deps/npm/node_modules/protoduck/README.md create mode 100644 deps/npm/node_modules/protoduck/index.js create mode 100644 deps/npm/node_modules/protoduck/package.json create mode 100644 deps/npm/node_modules/prr/.npmignore create mode 100644 deps/npm/node_modules/prr/.travis.yml create mode 100644 deps/npm/node_modules/prr/LICENSE.md create mode 100644 deps/npm/node_modules/prr/README.md create mode 100644 deps/npm/node_modules/prr/package.json create mode 100644 deps/npm/node_modules/prr/prr.js create mode 100644 deps/npm/node_modules/prr/test.js create mode 100644 deps/npm/node_modules/pseudomap/LICENSE create mode 100644 deps/npm/node_modules/pseudomap/README.md create mode 100644 deps/npm/node_modules/pseudomap/map.js create mode 100644 deps/npm/node_modules/pseudomap/package.json create mode 100644 deps/npm/node_modules/pseudomap/pseudomap.js create mode 100644 deps/npm/node_modules/pseudomap/test/basic.js create mode 100644 deps/npm/node_modules/pump/.travis.yml create mode 100644 deps/npm/node_modules/pump/LICENSE create mode 100644 deps/npm/node_modules/pump/README.md create mode 100644 deps/npm/node_modules/pump/index.js create mode 100644 deps/npm/node_modules/pump/package.json create mode 100644 deps/npm/node_modules/pump/test-browser.js create mode 100644 deps/npm/node_modules/pump/test-node.js create mode 100644 deps/npm/node_modules/pumpify/.travis.yml create mode 100644 deps/npm/node_modules/pumpify/LICENSE create mode 100644 deps/npm/node_modules/pumpify/README.md create mode 100644 deps/npm/node_modules/pumpify/index.js create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/.travis.yml create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/LICENSE create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/README.md create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/index.js create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/package.json create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/test-browser.js create mode 100644 deps/npm/node_modules/pumpify/node_modules/pump/test-node.js create mode 100644 deps/npm/node_modules/pumpify/package.json create mode 100644 deps/npm/node_modules/pumpify/test.js create mode 100644 deps/npm/node_modules/punycode/LICENSE-MIT.txt create mode 100644 deps/npm/node_modules/punycode/README.md create mode 100644 deps/npm/node_modules/punycode/package.json create mode 100644 deps/npm/node_modules/punycode/punycode.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/.npmignore create mode 100644 deps/npm/node_modules/qs/.editorconfig create mode 100644 deps/npm/node_modules/qs/.eslintignore create mode 100644 deps/npm/node_modules/qs/CHANGELOG.md create mode 100644 deps/npm/node_modules/qs/LICENSE create mode 100644 deps/npm/node_modules/qs/README.md create mode 100644 deps/npm/node_modules/qs/dist/qs.js create mode 100644 deps/npm/node_modules/qs/lib/formats.js create mode 100644 deps/npm/node_modules/qs/lib/index.js create mode 100644 deps/npm/node_modules/qs/lib/parse.js create mode 100644 deps/npm/node_modules/qs/lib/stringify.js create mode 100644 deps/npm/node_modules/qs/lib/utils.js create mode 100644 deps/npm/node_modules/qs/package.json create mode 100644 deps/npm/node_modules/qs/test/index.js create mode 100644 deps/npm/node_modules/qs/test/parse.js create mode 100644 deps/npm/node_modules/qs/test/stringify.js create mode 100644 deps/npm/node_modules/qs/test/utils.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/index.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/package.json delete mode 100644 deps/npm/node_modules/query-string/node_modules/decode-uri-component/readme.md delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/index.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/package.json delete mode 100644 deps/npm/node_modules/query-string/node_modules/object-assign/readme.md delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/index.js delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/license delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/package.json delete mode 100644 deps/npm/node_modules/query-string/node_modules/strict-uri-encode/readme.md create mode 100644 deps/npm/node_modules/rc/LICENSE.APACHE2 create mode 100644 deps/npm/node_modules/rc/LICENSE.BSD create mode 100644 deps/npm/node_modules/rc/LICENSE.MIT create mode 100644 deps/npm/node_modules/rc/README.md create mode 100644 deps/npm/node_modules/rc/browser.js create mode 100755 deps/npm/node_modules/rc/cli.js create mode 100755 deps/npm/node_modules/rc/index.js create mode 100644 deps/npm/node_modules/rc/lib/utils.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/.travis.yml create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/LICENSE create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/example/parse.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/index.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/package.json create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/readme.markdown create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/all_bool.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/bool.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/dash.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/default_bool.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/dotted.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/kv_short.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/long.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/num.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/parse.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/parse_modified.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/short.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/stop_early.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/unknown.js create mode 100644 deps/npm/node_modules/rc/node_modules/minimist/test/whitespace.js create mode 100644 deps/npm/node_modules/rc/package.json create mode 100644 deps/npm/node_modules/rc/test/ini.js create mode 100644 deps/npm/node_modules/rc/test/nested-env-vars.js create mode 100644 deps/npm/node_modules/rc/test/test.js delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/LICENSE delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/README.md delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/package.json delete mode 100644 deps/npm/node_modules/read-installed/node_modules/util-extend/test.js create mode 100644 deps/npm/node_modules/read-package-json/CHANGELOG.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/README.md delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/index.js delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/package.json delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/slash/index.js delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/slash/package.json delete mode 100644 deps/npm/node_modules/read-package-json/node_modules/slash/readme.md delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/.travis.yml delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/LICENSE delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/README.md delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/index.html delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/base.css delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/index.html delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.css delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sorter.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov.info delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/mute.js delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/package.json delete mode 100644 deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js delete mode 100644 deps/npm/node_modules/readable-stream/.npmignore delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/component.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/index.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/isarray/test.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js delete mode 100644 deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json create mode 100644 deps/npm/node_modules/registry-auth-token/CHANGELOG.md create mode 100644 deps/npm/node_modules/registry-auth-token/LICENSE create mode 100644 deps/npm/node_modules/registry-auth-token/README.md create mode 100644 deps/npm/node_modules/registry-auth-token/base64.js create mode 100644 deps/npm/node_modules/registry-auth-token/index.js create mode 100644 deps/npm/node_modules/registry-auth-token/package.json create mode 100644 deps/npm/node_modules/registry-auth-token/registry-url.js create mode 100644 deps/npm/node_modules/registry-auth-token/test/auth-token.test.js create mode 100644 deps/npm/node_modules/registry-auth-token/test/registry-url.test.js create mode 100644 deps/npm/node_modules/registry-auth-token/yarn.lock create mode 100644 deps/npm/node_modules/registry-url/index.js create mode 100644 deps/npm/node_modules/registry-url/license create mode 100644 deps/npm/node_modules/registry-url/package.json create mode 100644 deps/npm/node_modules/registry-url/readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws-sign2/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/.tern-port delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/aws4.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/lru.js delete mode 100644 deps/npm/node_modules/request/node_modules/aws4/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/caseless/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/License delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/combined-stream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/extend/.jscs.json delete mode 100644 deps/npm/node_modules/request/node_modules/extend/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/extend/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/extend/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/extend/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/extend/component.json delete mode 100644 deps/npm/node_modules/request/node_modules/extend/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/extend/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/forever-agent/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/License delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/README.md.bak delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/lib/browser.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/lib/populate.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/bench.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/abort.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/async.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/defer.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/iterate.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_asynckit.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_parallel.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial_ordered.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/state.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/streamify.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/terminator.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/parallel.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serial.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serialOrdered.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/stream.js delete mode 100644 deps/npm/node_modules/request/node_modules/form-data/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/lib/async.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/lib/error.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/lib/promise.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/.tonic_example.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.bundle.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js.map delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/nodent.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/$data.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.d.ts delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/cache.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/_rules.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/async.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/equal.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/error_classes.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/formats.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/resolve.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/rules.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/schema_obj.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/ucs2length.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/util.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limit.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitItems.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitLength.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitProperties.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/allOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/anyOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/coerce.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/const.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/contains.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/custom.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/defaults.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/definitions.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/dependencies.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/enum.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/errors.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/format.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/items.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/missing.def delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/multipleOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/not.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/oneOf.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/pattern.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/properties.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/propertyNames.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/ref.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/required.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/uniqueItems.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/validate.jst delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limit.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitItems.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitLength.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitProperties.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/allOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/anyOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/const.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/contains.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/custom.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/dependencies.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/enum.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/format.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/items.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/multipleOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/not.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/oneOf.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/pattern.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/properties.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/propertyNames.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/ref.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/required.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/uniqueItems.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/validate.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/keyword.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/patternGroups.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/$data.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-04.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-06.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-v5.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/History.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/Readme.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/index.spec.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/tests.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/fixtures/schema.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/index.spec.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/key_cmp.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/nested.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/str.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/value_cmp.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/README.markdown delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/readme.markdown delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/cmp.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/nested.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/replacer.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/space.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/str.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/to-json.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/.eslintrc.yml delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/bundle.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/compile-dots.js delete mode 100755 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/info delete mode 100755 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/prepare-tests delete mode 100755 deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/travis-gh-pages delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/afterRequest.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/beforeRequest.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/browser.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cache.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/content.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cookie.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/creator.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/entry.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/har.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/header.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/log.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/page.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/pageTimings.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/postData.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/query.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/request.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/response.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/timings.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/har-validator/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/.npmignore delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/client.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/dist/browser.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/browser.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/client.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/index.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/server.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/lib/utils.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json delete mode 100755 deps/npm/node_modules/request/node_modules/hawk/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/http_signing.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/AUTHORS delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/lib/jsprim.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.gitmodules delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile.targ delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/jsl.node.conf delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/lib/extsprintf.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/address delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/calendar delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/card delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/geo delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/interfaces delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/json-ref delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/hyper-schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/links delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/schema delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-03.xml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-04.xml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/links.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/validate.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/test/tests.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/lib/verror.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv delete mode 100755 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-sign delete mode 100755 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-verify delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/algs.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/certificate.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/dhe.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ed-compat.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/errors.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/fingerprint.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/openssh-cert.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pem.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs1.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs8.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/rfc4253.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh-private.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509-pem.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/identity.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/key.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ssh-buffer.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-conv.1 delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-sign.1 delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-verify.1 delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/errors.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/reader.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/types.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/writer.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/reader.test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/writer.test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/CHANGES.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/LICENSE.txt delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/etc/dashdash.bash_completion.in delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/LICENSE-jsbn delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/ec.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/sec.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.html delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/AUTHORS.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.d.ts delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/http-signature/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/is-typedarray/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/LICENSE.md delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/isstream.js delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/isstream/test.js delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts delete mode 100644 deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/mime-types/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/oauth-sign/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/.tm_properties delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js.map delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/license.txt delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/src/index.d.ts delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/src/performance-now.coffee delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/test/mocha.opts delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/test/performance-now.coffee delete mode 100644 deps/npm/node_modules/request/node_modules/performance-now/test/scripts.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-call.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-require.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/difference.coffee delete mode 100755 deps/npm/node_modules/request/node_modules/performance-now/test/scripts/initial-value.coffee delete mode 100644 deps/npm/node_modules/request/node_modules/qs/.editorconfig delete mode 100644 deps/npm/node_modules/request/node_modules/qs/.eslintignore delete mode 100644 deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/qs/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/qs/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/qs/dist/qs.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/formats.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/lib/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/parse.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/stringify.js delete mode 100644 deps/npm/node_modules/request/node_modules/qs/test/utils.js delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/.npmignore delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/.travis.yml delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/example.js delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/stringstream/stringstream.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/tunnel-agent/package.json create mode 100644 deps/npm/node_modules/require-directory/.npmignore create mode 100644 deps/npm/node_modules/require-directory/.travis.yml create mode 100644 deps/npm/node_modules/require-directory/LICENSE create mode 100644 deps/npm/node_modules/require-directory/README.markdown create mode 100644 deps/npm/node_modules/require-directory/index.js create mode 100644 deps/npm/node_modules/require-directory/package.json create mode 100644 deps/npm/node_modules/require-main-filename/.npmignore create mode 100644 deps/npm/node_modules/require-main-filename/.travis.yml create mode 100644 deps/npm/node_modules/require-main-filename/LICENSE.txt create mode 100644 deps/npm/node_modules/require-main-filename/README.md create mode 100644 deps/npm/node_modules/require-main-filename/index.js create mode 100644 deps/npm/node_modules/require-main-filename/package.json create mode 100644 deps/npm/node_modules/require-main-filename/test.js create mode 100644 deps/npm/node_modules/resolve-from/index.js create mode 100644 deps/npm/node_modules/resolve-from/license create mode 100644 deps/npm/node_modules/resolve-from/package.json create mode 100644 deps/npm/node_modules/resolve-from/readme.md create mode 100644 deps/npm/node_modules/retry/.travis.yml delete mode 100644 deps/npm/node_modules/retry/test/runner.js create mode 100644 deps/npm/node_modules/run-queue/README.md create mode 100644 deps/npm/node_modules/run-queue/package.json create mode 100644 deps/npm/node_modules/run-queue/queue.js delete mode 100644 deps/npm/node_modules/safe-buffer/.travis.yml create mode 100644 deps/npm/node_modules/safe-buffer/index.d.ts delete mode 100644 deps/npm/node_modules/safe-buffer/test.js create mode 100644 deps/npm/node_modules/safer-buffer/LICENSE create mode 100644 deps/npm/node_modules/safer-buffer/Porting-Buffer.md create mode 100644 deps/npm/node_modules/safer-buffer/Readme.md create mode 100644 deps/npm/node_modules/safer-buffer/dangerous.js create mode 100644 deps/npm/node_modules/safer-buffer/package.json create mode 100644 deps/npm/node_modules/safer-buffer/safer.js create mode 100644 deps/npm/node_modules/safer-buffer/tests.js create mode 100644 deps/npm/node_modules/semver-diff/index.js create mode 100644 deps/npm/node_modules/semver-diff/license create mode 100644 deps/npm/node_modules/semver-diff/package.json create mode 100644 deps/npm/node_modules/semver-diff/readme.md create mode 100644 deps/npm/node_modules/set-blocking/CHANGELOG.md create mode 100644 deps/npm/node_modules/set-blocking/LICENSE.txt create mode 100644 deps/npm/node_modules/set-blocking/README.md create mode 100644 deps/npm/node_modules/set-blocking/index.js create mode 100644 deps/npm/node_modules/set-blocking/package.json create mode 100644 deps/npm/node_modules/shebang-command/index.js create mode 100644 deps/npm/node_modules/shebang-command/license create mode 100644 deps/npm/node_modules/shebang-command/package.json create mode 100644 deps/npm/node_modules/shebang-command/readme.md create mode 100644 deps/npm/node_modules/shebang-regex/index.js create mode 100644 deps/npm/node_modules/shebang-regex/license create mode 100644 deps/npm/node_modules/shebang-regex/package.json create mode 100644 deps/npm/node_modules/shebang-regex/readme.md create mode 100644 deps/npm/node_modules/signal-exit/CHANGELOG.md create mode 100644 deps/npm/node_modules/signal-exit/LICENSE.txt create mode 100644 deps/npm/node_modules/signal-exit/README.md create mode 100644 deps/npm/node_modules/signal-exit/index.js create mode 100644 deps/npm/node_modules/signal-exit/package.json create mode 100644 deps/npm/node_modules/signal-exit/signals.js create mode 100644 deps/npm/node_modules/slash/index.js create mode 100644 deps/npm/node_modules/slash/package.json create mode 100644 deps/npm/node_modules/slash/readme.md create mode 100644 deps/npm/node_modules/smart-buffer/.travis.yml create mode 100644 deps/npm/node_modules/smart-buffer/LICENSE create mode 100644 deps/npm/node_modules/smart-buffer/README.md create mode 100644 deps/npm/node_modules/smart-buffer/build/smartbuffer.js create mode 100644 deps/npm/node_modules/smart-buffer/build/smartbuffer.js.map create mode 100644 deps/npm/node_modules/smart-buffer/build/utils.js create mode 100644 deps/npm/node_modules/smart-buffer/build/utils.js.map create mode 100644 deps/npm/node_modules/smart-buffer/docs/CHANGELOG.md create mode 100644 deps/npm/node_modules/smart-buffer/docs/README_v3.md create mode 100644 deps/npm/node_modules/smart-buffer/docs/ROADMAP.md create mode 100644 deps/npm/node_modules/smart-buffer/package.json create mode 100644 deps/npm/node_modules/smart-buffer/typings/smartbuffer.d.ts create mode 100644 deps/npm/node_modules/smart-buffer/typings/utils.d.ts create mode 100644 deps/npm/node_modules/smart-buffer/yarn.lock create mode 100755 deps/npm/node_modules/sntp/.npmignore create mode 100755 deps/npm/node_modules/sntp/LICENSE create mode 100755 deps/npm/node_modules/sntp/README.md create mode 100755 deps/npm/node_modules/sntp/lib/index.js create mode 100755 deps/npm/node_modules/sntp/package.json create mode 100644 deps/npm/node_modules/socks-proxy-agent/.travis.yml create mode 100644 deps/npm/node_modules/socks-proxy-agent/History.md create mode 100644 deps/npm/node_modules/socks-proxy-agent/README.md create mode 100644 deps/npm/node_modules/socks-proxy-agent/index.js create mode 100644 deps/npm/node_modules/socks-proxy-agent/package.json create mode 100644 deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key create mode 100644 deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem create mode 100644 deps/npm/node_modules/socks-proxy-agent/test/test.js create mode 100644 deps/npm/node_modules/socks/.prettierrc.yaml create mode 100644 deps/npm/node_modules/socks/.travis.yml create mode 100644 deps/npm/node_modules/socks/LICENSE create mode 100644 deps/npm/node_modules/socks/README.md create mode 100644 deps/npm/node_modules/socks/build/client/socksclient.js create mode 100644 deps/npm/node_modules/socks/build/client/socksclient.js.map create mode 100644 deps/npm/node_modules/socks/build/common/constants.js create mode 100644 deps/npm/node_modules/socks/build/common/constants.js.map create mode 100644 deps/npm/node_modules/socks/build/common/helpers.js create mode 100644 deps/npm/node_modules/socks/build/common/helpers.js.map create mode 100644 deps/npm/node_modules/socks/build/common/receivebuffer.js create mode 100644 deps/npm/node_modules/socks/build/common/receivebuffer.js.map create mode 100644 deps/npm/node_modules/socks/build/common/util.js create mode 100644 deps/npm/node_modules/socks/build/common/util.js.map create mode 100644 deps/npm/node_modules/socks/build/index.js create mode 100644 deps/npm/node_modules/socks/build/index.js.map create mode 100644 deps/npm/node_modules/socks/docs/examples/index.md create mode 100644 deps/npm/node_modules/socks/docs/examples/javascript/associateExample.md create mode 100644 deps/npm/node_modules/socks/docs/examples/javascript/bindExample.md create mode 100644 deps/npm/node_modules/socks/docs/examples/javascript/connectExample.md create mode 100644 deps/npm/node_modules/socks/docs/examples/typescript/associateExample.md create mode 100644 deps/npm/node_modules/socks/docs/examples/typescript/bindExample.md create mode 100644 deps/npm/node_modules/socks/docs/examples/typescript/connectExample.md create mode 100644 deps/npm/node_modules/socks/docs/index.md create mode 100644 deps/npm/node_modules/socks/docs/migratingFromV1.md create mode 100644 deps/npm/node_modules/socks/package.json create mode 100644 deps/npm/node_modules/socks/typings/client/socksclient.d.ts create mode 100644 deps/npm/node_modules/socks/typings/common/constants.d.ts create mode 100644 deps/npm/node_modules/socks/typings/common/helpers.d.ts create mode 100644 deps/npm/node_modules/socks/typings/common/receiveBuffer.d.ts create mode 100644 deps/npm/node_modules/socks/typings/common/util.d.ts create mode 100644 deps/npm/node_modules/socks/typings/index.d.ts create mode 100644 deps/npm/node_modules/socks/yarn-error.log create mode 100644 deps/npm/node_modules/socks/yarn.lock delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/duplex.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/float.patch delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/build/build.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/component.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/passthrough.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/readable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/transform.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/writable.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/isarray/README.md create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/isarray/build/build.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/isarray/component.json create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/isarray/index.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/isarray/package.json create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/.npmignore create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/LICENSE create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/README.md create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/duplex.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/float.patch create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_readable.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_transform.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_writable.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/package.json create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/passthrough.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/readable.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/transform.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/writable.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.travis.yml delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.npmignore delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.travis.yml delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/LICENSE delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/README.md delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/index.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/test.js delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/package.json delete mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/test.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/.npmignore create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/LICENSE create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/README.md create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/index.js create mode 100644 deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/package.json create mode 100644 deps/npm/node_modules/spdx-correct/LICENSE create mode 100644 deps/npm/node_modules/spdx-correct/README.md create mode 100644 deps/npm/node_modules/spdx-correct/index.js create mode 100644 deps/npm/node_modules/spdx-correct/package.json create mode 100644 deps/npm/node_modules/spdx-exceptions/README.md create mode 100644 deps/npm/node_modules/spdx-exceptions/index.json create mode 100644 deps/npm/node_modules/spdx-exceptions/package.json create mode 100644 deps/npm/node_modules/spdx-expression-parse/AUTHORS create mode 100644 deps/npm/node_modules/spdx-expression-parse/LICENSE create mode 100644 deps/npm/node_modules/spdx-expression-parse/README.md create mode 100644 deps/npm/node_modules/spdx-expression-parse/index.js create mode 100644 deps/npm/node_modules/spdx-expression-parse/package.json create mode 100644 deps/npm/node_modules/spdx-expression-parse/parse.js create mode 100644 deps/npm/node_modules/spdx-expression-parse/scan.js create mode 100644 deps/npm/node_modules/spdx-license-ids/README.md create mode 100644 deps/npm/node_modules/spdx-license-ids/deprecated.json create mode 100644 deps/npm/node_modules/spdx-license-ids/index.json create mode 100644 deps/npm/node_modules/spdx-license-ids/package.json create mode 100644 deps/npm/node_modules/sshpk/.npmignore create mode 100644 deps/npm/node_modules/sshpk/.travis.yml create mode 100644 deps/npm/node_modules/sshpk/LICENSE create mode 100644 deps/npm/node_modules/sshpk/README.md create mode 100755 deps/npm/node_modules/sshpk/bin/sshpk-conv create mode 100755 deps/npm/node_modules/sshpk/bin/sshpk-sign create mode 100755 deps/npm/node_modules/sshpk/bin/sshpk-verify create mode 100644 deps/npm/node_modules/sshpk/lib/algs.js create mode 100644 deps/npm/node_modules/sshpk/lib/certificate.js create mode 100644 deps/npm/node_modules/sshpk/lib/dhe.js create mode 100644 deps/npm/node_modules/sshpk/lib/ed-compat.js create mode 100644 deps/npm/node_modules/sshpk/lib/errors.js create mode 100644 deps/npm/node_modules/sshpk/lib/fingerprint.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/auto.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/dnssec.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/pem.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/pkcs1.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/pkcs8.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/rfc4253.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/ssh-private.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/ssh.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/x509-pem.js create mode 100644 deps/npm/node_modules/sshpk/lib/formats/x509.js create mode 100644 deps/npm/node_modules/sshpk/lib/identity.js create mode 100644 deps/npm/node_modules/sshpk/lib/index.js create mode 100644 deps/npm/node_modules/sshpk/lib/key.js create mode 100644 deps/npm/node_modules/sshpk/lib/private-key.js create mode 100644 deps/npm/node_modules/sshpk/lib/signature.js create mode 100644 deps/npm/node_modules/sshpk/lib/ssh-buffer.js create mode 100644 deps/npm/node_modules/sshpk/lib/utils.js create mode 100644 deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1 create mode 100644 deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1 create mode 100644 deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1 create mode 100644 deps/npm/node_modules/sshpk/package.json create mode 100644 deps/npm/node_modules/stream-each/.npmignore create mode 100644 deps/npm/node_modules/stream-each/.travis.yml create mode 100644 deps/npm/node_modules/stream-each/LICENSE create mode 100644 deps/npm/node_modules/stream-each/README.md create mode 100644 deps/npm/node_modules/stream-each/collaborators.md create mode 100644 deps/npm/node_modules/stream-each/index.js create mode 100644 deps/npm/node_modules/stream-each/package.json create mode 100644 deps/npm/node_modules/stream-each/test.js create mode 100644 deps/npm/node_modules/stream-iterate/.npmignore create mode 100644 deps/npm/node_modules/stream-iterate/.travis.yml create mode 100644 deps/npm/node_modules/stream-iterate/LICENSE create mode 100644 deps/npm/node_modules/stream-iterate/README.md create mode 100644 deps/npm/node_modules/stream-iterate/index.js create mode 100644 deps/npm/node_modules/stream-iterate/package.json create mode 100644 deps/npm/node_modules/stream-iterate/test.js create mode 100644 deps/npm/node_modules/stream-shift/.npmignore create mode 100644 deps/npm/node_modules/stream-shift/.travis.yml create mode 100644 deps/npm/node_modules/stream-shift/LICENSE create mode 100644 deps/npm/node_modules/stream-shift/README.md create mode 100644 deps/npm/node_modules/stream-shift/index.js create mode 100644 deps/npm/node_modules/stream-shift/package.json create mode 100644 deps/npm/node_modules/stream-shift/test.js create mode 100644 deps/npm/node_modules/strict-uri-encode/index.js create mode 100644 deps/npm/node_modules/strict-uri-encode/license create mode 100644 deps/npm/node_modules/strict-uri-encode/package.json create mode 100644 deps/npm/node_modules/strict-uri-encode/readme.md create mode 100644 deps/npm/node_modules/string-width/index.js create mode 100644 deps/npm/node_modules/string-width/license create mode 100644 deps/npm/node_modules/string-width/package.json create mode 100644 deps/npm/node_modules/string-width/readme.md create mode 100644 deps/npm/node_modules/string_decoder/.travis.yml create mode 100644 deps/npm/node_modules/string_decoder/LICENSE create mode 100644 deps/npm/node_modules/string_decoder/README.md create mode 100644 deps/npm/node_modules/string_decoder/lib/string_decoder.js create mode 100644 deps/npm/node_modules/string_decoder/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/readme.md create mode 100644 deps/npm/node_modules/strip-eof/index.js create mode 100644 deps/npm/node_modules/strip-eof/license create mode 100644 deps/npm/node_modules/strip-eof/package.json create mode 100644 deps/npm/node_modules/strip-eof/readme.md create mode 100644 deps/npm/node_modules/strip-json-comments/index.js create mode 100644 deps/npm/node_modules/strip-json-comments/license create mode 100644 deps/npm/node_modules/strip-json-comments/package.json create mode 100644 deps/npm/node_modules/strip-json-comments/readme.md create mode 100644 deps/npm/node_modules/supports-color/browser.js create mode 100644 deps/npm/node_modules/supports-color/index.js create mode 100644 deps/npm/node_modules/supports-color/license create mode 100644 deps/npm/node_modules/supports-color/package.json create mode 100644 deps/npm/node_modules/supports-color/readme.md create mode 100644 deps/npm/node_modules/tar/lib/buffer.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/.npmignore delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/.travis.yml delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/README.md delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/b.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-minipass.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-through2.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-transform.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/nullsink.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/numbers.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/lib/timer.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/bench/test.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/d.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/e.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/eos.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/foo delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/index.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/minipass-benchmarks.xlsx delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/package.json delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/test/basic.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minipass/test/empty-end.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/LICENSE delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/README.md delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/constants.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/index.js delete mode 100644 deps/npm/node_modules/tar/node_modules/minizlib/package.json create mode 100644 deps/npm/node_modules/term-size/index.js create mode 100644 deps/npm/node_modules/term-size/license create mode 100644 deps/npm/node_modules/term-size/package.json create mode 100644 deps/npm/node_modules/term-size/readme.md create mode 100755 deps/npm/node_modules/term-size/vendor/macos/term-size create mode 100644 deps/npm/node_modules/term-size/vendor/windows/term-size.exe create mode 100644 deps/npm/node_modules/through/.travis.yml create mode 100644 deps/npm/node_modules/through/LICENSE.APACHE2 create mode 100644 deps/npm/node_modules/through/LICENSE.MIT create mode 100644 deps/npm/node_modules/through/index.js create mode 100644 deps/npm/node_modules/through/package.json create mode 100644 deps/npm/node_modules/through/readme.markdown create mode 100644 deps/npm/node_modules/through/test/async.js create mode 100644 deps/npm/node_modules/through/test/auto-destroy.js create mode 100644 deps/npm/node_modules/through/test/buffering.js create mode 100644 deps/npm/node_modules/through/test/end.js create mode 100644 deps/npm/node_modules/through/test/index.js create mode 100644 deps/npm/node_modules/through2/.npmignore create mode 100644 deps/npm/node_modules/through2/LICENSE.html create mode 100644 deps/npm/node_modules/through2/LICENSE.md create mode 100644 deps/npm/node_modules/through2/README.md create mode 100644 deps/npm/node_modules/through2/package.json create mode 100644 deps/npm/node_modules/through2/through2.js create mode 100644 deps/npm/node_modules/timed-out/index.js create mode 100644 deps/npm/node_modules/timed-out/license create mode 100644 deps/npm/node_modules/timed-out/package.json create mode 100644 deps/npm/node_modules/timed-out/readme.md create mode 100644 deps/npm/node_modules/tiny-relative-date/LICENSE.md create mode 100644 deps/npm/node_modules/tiny-relative-date/README.md create mode 100644 deps/npm/node_modules/tiny-relative-date/lib/factory.js create mode 100644 deps/npm/node_modules/tiny-relative-date/lib/index.js create mode 100644 deps/npm/node_modules/tiny-relative-date/package.json create mode 100644 deps/npm/node_modules/tiny-relative-date/src/factory.js create mode 100644 deps/npm/node_modules/tiny-relative-date/src/index.js create mode 100644 deps/npm/node_modules/tiny-relative-date/translations/da.js create mode 100644 deps/npm/node_modules/tiny-relative-date/translations/de.js create mode 100644 deps/npm/node_modules/tiny-relative-date/translations/en-short.js create mode 100644 deps/npm/node_modules/tiny-relative-date/translations/en.js create mode 100644 deps/npm/node_modules/tiny-relative-date/translations/es.js create mode 100644 deps/npm/node_modules/tough-cookie/LICENSE create mode 100644 deps/npm/node_modules/tough-cookie/README.md create mode 100644 deps/npm/node_modules/tough-cookie/lib/cookie.js create mode 100644 deps/npm/node_modules/tough-cookie/lib/memstore.js create mode 100644 deps/npm/node_modules/tough-cookie/lib/pathMatch.js create mode 100644 deps/npm/node_modules/tough-cookie/lib/permuteDomain.js create mode 100644 deps/npm/node_modules/tough-cookie/lib/pubsuffix.js create mode 100644 deps/npm/node_modules/tough-cookie/lib/store.js create mode 100644 deps/npm/node_modules/tough-cookie/package.json create mode 100644 deps/npm/node_modules/tunnel-agent/LICENSE create mode 100644 deps/npm/node_modules/tunnel-agent/README.md create mode 100644 deps/npm/node_modules/tunnel-agent/index.js create mode 100644 deps/npm/node_modules/tunnel-agent/package.json create mode 100644 deps/npm/node_modules/tweetnacl/.npmignore create mode 100644 deps/npm/node_modules/tweetnacl/AUTHORS.md create mode 100644 deps/npm/node_modules/tweetnacl/CHANGELOG.md create mode 100644 deps/npm/node_modules/tweetnacl/LICENSE create mode 100644 deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md create mode 100644 deps/npm/node_modules/tweetnacl/README.md create mode 100644 deps/npm/node_modules/tweetnacl/nacl-fast.js create mode 100644 deps/npm/node_modules/tweetnacl/nacl-fast.min.js create mode 100644 deps/npm/node_modules/tweetnacl/nacl.d.ts create mode 100644 deps/npm/node_modules/tweetnacl/nacl.js create mode 100644 deps/npm/node_modules/tweetnacl/nacl.min.js create mode 100644 deps/npm/node_modules/tweetnacl/package.json create mode 100644 deps/npm/node_modules/typedarray/.travis.yml create mode 100644 deps/npm/node_modules/typedarray/LICENSE create mode 100644 deps/npm/node_modules/typedarray/example/tarray.js create mode 100644 deps/npm/node_modules/typedarray/index.js create mode 100644 deps/npm/node_modules/typedarray/package.json create mode 100644 deps/npm/node_modules/typedarray/readme.markdown create mode 100644 deps/npm/node_modules/typedarray/test/server/undef_globals.js create mode 100644 deps/npm/node_modules/typedarray/test/tarray.js delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/README.md delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/index.js delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/package.json delete mode 100644 deps/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js create mode 100644 deps/npm/node_modules/unique-slug/.npmignore create mode 100644 deps/npm/node_modules/unique-slug/.travis.yml create mode 100644 deps/npm/node_modules/unique-slug/README.md create mode 100644 deps/npm/node_modules/unique-slug/index.js create mode 100644 deps/npm/node_modules/unique-slug/package.json create mode 100644 deps/npm/node_modules/unique-slug/test/index.js create mode 100644 deps/npm/node_modules/unique-string/index.js create mode 100644 deps/npm/node_modules/unique-string/license create mode 100644 deps/npm/node_modules/unique-string/package.json create mode 100644 deps/npm/node_modules/unique-string/readme.md create mode 100644 deps/npm/node_modules/unzip-response/index.js create mode 100644 deps/npm/node_modules/unzip-response/license create mode 100644 deps/npm/node_modules/unzip-response/package.json create mode 100644 deps/npm/node_modules/unzip-response/readme.md create mode 100644 deps/npm/node_modules/update-notifier/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/boxes.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md delete mode 100755 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/import-lazy/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-npm/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-npm/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/is-npm/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/LICENSE.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/buffer-stream.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/base64.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.BSD delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.MIT delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/browser.js delete mode 100755 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/lib/utils.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/example/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/readme.markdown delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/all_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/dash.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/default_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/dotted.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/kv_short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/long.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/num.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/parse_modified.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/stop_early.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/unknown.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/test/whitespace.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/test/ini.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/test/nested-env-vars.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/test/test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/registry-url.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/auth-token.test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/registry-url.test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/yarn.lock delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/.npmignore delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.APACHE2 delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.BSD delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.MIT delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/browser.js delete mode 100755 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/README.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/lib/deep-extend.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/.travis.yml delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/LICENSE delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/example/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/readme.markdown delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/all_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/dash.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/default_bool.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/dotted.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/kv_short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/long.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/num.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/parse.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/parse_modified.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/short.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/stop_early.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/unknown.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/whitespace.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/ini.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/nested-env-vars.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/test.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/latest-version/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/semver-diff/readme.md delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/index.js delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/license delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/package.json delete mode 100644 deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/readme.md create mode 100644 deps/npm/node_modules/url-parse-lax/index.js create mode 100644 deps/npm/node_modules/url-parse-lax/license create mode 100644 deps/npm/node_modules/url-parse-lax/package.json create mode 100644 deps/npm/node_modules/url-parse-lax/readme.md create mode 100644 deps/npm/node_modules/util-deprecate/History.md create mode 100644 deps/npm/node_modules/util-deprecate/LICENSE create mode 100644 deps/npm/node_modules/util-deprecate/README.md create mode 100644 deps/npm/node_modules/util-deprecate/browser.js create mode 100644 deps/npm/node_modules/util-deprecate/node.js create mode 100644 deps/npm/node_modules/util-deprecate/package.json create mode 100644 deps/npm/node_modules/util-extend/LICENSE create mode 100644 deps/npm/node_modules/util-extend/README.md create mode 100644 deps/npm/node_modules/util-extend/extend.js create mode 100644 deps/npm/node_modules/util-extend/package.json create mode 100644 deps/npm/node_modules/util-extend/test.js create mode 100644 deps/npm/node_modules/uuid/CHANGELOG.md delete mode 100644 deps/npm/node_modules/uuid/HISTORY.md create mode 100644 deps/npm/node_modules/uuid/README_js.md create mode 100644 deps/npm/node_modules/uuid/lib/md5-browser.js create mode 100644 deps/npm/node_modules/uuid/lib/md5.js create mode 100644 deps/npm/node_modules/uuid/lib/v35.js create mode 100644 deps/npm/node_modules/uuid/v3.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/AUTHORS delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.js create mode 100644 deps/npm/node_modules/validate-npm-package-license/test.log delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/License delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/test.js create mode 100644 deps/npm/node_modules/verror/.npmignore create mode 100644 deps/npm/node_modules/verror/CHANGES.md create mode 100644 deps/npm/node_modules/verror/CONTRIBUTING.md create mode 100644 deps/npm/node_modules/verror/LICENSE create mode 100644 deps/npm/node_modules/verror/README.md create mode 100644 deps/npm/node_modules/verror/lib/verror.js create mode 100644 deps/npm/node_modules/verror/package.json create mode 100644 deps/npm/node_modules/wcwidth/.npmignore create mode 100644 deps/npm/node_modules/wcwidth/LICENSE create mode 100644 deps/npm/node_modules/wcwidth/Readme.md create mode 100644 deps/npm/node_modules/wcwidth/combining.js create mode 100644 deps/npm/node_modules/wcwidth/docs/index.md create mode 100644 deps/npm/node_modules/wcwidth/index.js create mode 100644 deps/npm/node_modules/wcwidth/package.json create mode 100644 deps/npm/node_modules/wcwidth/test/index.js create mode 100644 deps/npm/node_modules/which-module/CHANGELOG.md create mode 100644 deps/npm/node_modules/which-module/LICENSE create mode 100644 deps/npm/node_modules/which-module/README.md create mode 100644 deps/npm/node_modules/which-module/index.js create mode 100644 deps/npm/node_modules/which-module/package.json delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/.npmignore delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/LICENSE delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/README.md delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/index.js delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/mode.js delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/package.json delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/test/basic.js delete mode 100644 deps/npm/node_modules/which/node_modules/isexe/windows.js create mode 100644 deps/npm/node_modules/wide-align/LICENSE create mode 100644 deps/npm/node_modules/wide-align/README.md create mode 100644 deps/npm/node_modules/wide-align/align.js create mode 100644 deps/npm/node_modules/wide-align/node_modules/ansi-regex/index.js create mode 100644 deps/npm/node_modules/wide-align/node_modules/ansi-regex/license create mode 100644 deps/npm/node_modules/wide-align/node_modules/ansi-regex/package.json create mode 100644 deps/npm/node_modules/wide-align/node_modules/ansi-regex/readme.md create mode 100644 deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/index.js create mode 100644 deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/license create mode 100644 deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/package.json create mode 100644 deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/readme.md create mode 100644 deps/npm/node_modules/wide-align/node_modules/string-width/index.js create mode 100644 deps/npm/node_modules/wide-align/node_modules/string-width/license create mode 100644 deps/npm/node_modules/wide-align/node_modules/string-width/package.json create mode 100644 deps/npm/node_modules/wide-align/node_modules/string-width/readme.md create mode 100644 deps/npm/node_modules/wide-align/node_modules/strip-ansi/index.js create mode 100644 deps/npm/node_modules/wide-align/node_modules/strip-ansi/license create mode 100644 deps/npm/node_modules/wide-align/node_modules/strip-ansi/package.json create mode 100644 deps/npm/node_modules/wide-align/node_modules/strip-ansi/readme.md create mode 100644 deps/npm/node_modules/wide-align/package.json create mode 100644 deps/npm/node_modules/widest-line/index.js create mode 100644 deps/npm/node_modules/widest-line/license create mode 100644 deps/npm/node_modules/widest-line/package.json create mode 100644 deps/npm/node_modules/widest-line/readme.md create mode 100644 deps/npm/node_modules/worker-farm/.editorconfig delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/.npmignore delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/README.md delete mode 100755 deps/npm/node_modules/worker-farm/node_modules/errno/build.js delete mode 100755 deps/npm/node_modules/worker-farm/node_modules/errno/cli.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/custom.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/errno.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.npmignore delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.travis.yml delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/LICENSE delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/README.md delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/package.json delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/prr.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/test.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/errno/package.json delete mode 100755 deps/npm/node_modules/worker-farm/node_modules/errno/test.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/.npmignore delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/LICENCE delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/Makefile delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/README.md delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/immutable.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/mutable.js delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/package.json delete mode 100644 deps/npm/node_modules/worker-farm/node_modules/xtend/test.js create mode 100644 deps/npm/node_modules/worker-farm/tests/child.js create mode 100644 deps/npm/node_modules/worker-farm/tests/debug.js create mode 100644 deps/npm/node_modules/worker-farm/tests/index.js create mode 100755 deps/npm/node_modules/wrap-ansi/index.js create mode 100644 deps/npm/node_modules/wrap-ansi/license create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/index.js create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/license create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/package.json create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/string-width/index.js create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/string-width/license create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/string-width/package.json create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/string-width/readme.md create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/index.js create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/license create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/package.json create mode 100644 deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md create mode 100644 deps/npm/node_modules/wrap-ansi/package.json create mode 100644 deps/npm/node_modules/wrap-ansi/readme.md create mode 100644 deps/npm/node_modules/xdg-basedir/index.js create mode 100644 deps/npm/node_modules/xdg-basedir/license create mode 100644 deps/npm/node_modules/xdg-basedir/package.json create mode 100644 deps/npm/node_modules/xdg-basedir/readme.md create mode 100644 deps/npm/node_modules/xtend/.npmignore create mode 100644 deps/npm/node_modules/xtend/LICENCE create mode 100644 deps/npm/node_modules/xtend/Makefile create mode 100644 deps/npm/node_modules/xtend/README.md create mode 100644 deps/npm/node_modules/xtend/immutable.js create mode 100644 deps/npm/node_modules/xtend/mutable.js create mode 100644 deps/npm/node_modules/xtend/package.json create mode 100644 deps/npm/node_modules/xtend/test.js create mode 100644 deps/npm/node_modules/y18n/CHANGELOG.md create mode 100644 deps/npm/node_modules/y18n/LICENSE create mode 100644 deps/npm/node_modules/y18n/README.md create mode 100644 deps/npm/node_modules/y18n/index.js create mode 100644 deps/npm/node_modules/y18n/package.json create mode 100644 deps/npm/node_modules/yallist/LICENSE create mode 100644 deps/npm/node_modules/yallist/README.md create mode 100644 deps/npm/node_modules/yallist/iterator.js create mode 100644 deps/npm/node_modules/yallist/package.json create mode 100644 deps/npm/node_modules/yallist/yallist.js create mode 100644 deps/npm/node_modules/yargs-parser/CHANGELOG.md create mode 100644 deps/npm/node_modules/yargs-parser/LICENSE.txt create mode 100644 deps/npm/node_modules/yargs-parser/README.md create mode 100644 deps/npm/node_modules/yargs-parser/index.js create mode 100644 deps/npm/node_modules/yargs-parser/lib/tokenize-arg-string.js create mode 100644 deps/npm/node_modules/yargs-parser/package.json create mode 100644 deps/npm/node_modules/yargs/CHANGELOG.md create mode 100644 deps/npm/node_modules/yargs/LICENSE create mode 100644 deps/npm/node_modules/yargs/README.md create mode 100644 deps/npm/node_modules/yargs/completion.sh.hbs create mode 100644 deps/npm/node_modules/yargs/index.js create mode 100644 deps/npm/node_modules/yargs/lib/apply-extends.js create mode 100644 deps/npm/node_modules/yargs/lib/argsert.js create mode 100644 deps/npm/node_modules/yargs/lib/command.js create mode 100644 deps/npm/node_modules/yargs/lib/completion.js create mode 100644 deps/npm/node_modules/yargs/lib/levenshtein.js create mode 100644 deps/npm/node_modules/yargs/lib/obj-filter.js create mode 100644 deps/npm/node_modules/yargs/lib/usage.js create mode 100644 deps/npm/node_modules/yargs/lib/validation.js create mode 100644 deps/npm/node_modules/yargs/lib/yerror.js create mode 100644 deps/npm/node_modules/yargs/locales/be.json create mode 100644 deps/npm/node_modules/yargs/locales/de.json create mode 100644 deps/npm/node_modules/yargs/locales/en.json create mode 100644 deps/npm/node_modules/yargs/locales/es.json create mode 100644 deps/npm/node_modules/yargs/locales/fr.json create mode 100644 deps/npm/node_modules/yargs/locales/hi.json create mode 100644 deps/npm/node_modules/yargs/locales/hu.json create mode 100644 deps/npm/node_modules/yargs/locales/id.json create mode 100644 deps/npm/node_modules/yargs/locales/it.json create mode 100644 deps/npm/node_modules/yargs/locales/ja.json create mode 100644 deps/npm/node_modules/yargs/locales/ko.json create mode 100644 deps/npm/node_modules/yargs/locales/nb.json create mode 100644 deps/npm/node_modules/yargs/locales/nl.json create mode 100644 deps/npm/node_modules/yargs/locales/nn.json create mode 100644 deps/npm/node_modules/yargs/locales/pirate.json create mode 100644 deps/npm/node_modules/yargs/locales/pl.json create mode 100644 deps/npm/node_modules/yargs/locales/pt.json create mode 100644 deps/npm/node_modules/yargs/locales/pt_BR.json create mode 100644 deps/npm/node_modules/yargs/locales/ru.json create mode 100644 deps/npm/node_modules/yargs/locales/th.json create mode 100644 deps/npm/node_modules/yargs/locales/tr.json create mode 100644 deps/npm/node_modules/yargs/locales/zh_CN.json create mode 100644 deps/npm/node_modules/yargs/locales/zh_TW.json create mode 100644 deps/npm/node_modules/yargs/node_modules/y18n/LICENSE create mode 100644 deps/npm/node_modules/yargs/node_modules/y18n/README.md create mode 100644 deps/npm/node_modules/yargs/node_modules/y18n/index.js create mode 100644 deps/npm/node_modules/yargs/node_modules/y18n/package.json create mode 100644 deps/npm/node_modules/yargs/package.json create mode 100644 deps/npm/node_modules/yargs/yargs.js create mode 100644 deps/npm/test/fixtures/config/.npmrc create mode 100644 deps/npm/test/tap/audit-fix.js create mode 100644 deps/npm/test/tap/auto-prune.js delete mode 100644 deps/npm/test/tap/bundled-dependencies-no-pkgjson.js create mode 100644 deps/npm/test/tap/ci.js create mode 100644 deps/npm/test/tap/config-envReplace.js delete mode 100644 deps/npm/test/tap/files-and-ignores.js create mode 100644 deps/npm/test/tap/hook.js create mode 100644 deps/npm/test/tap/init-create.js create mode 100644 deps/npm/test/tap/install-contributors-count.js create mode 100644 deps/npm/test/tap/install-save-consistent-newlines.js create mode 100644 deps/npm/test/tap/install-test-cli-without-package-lock.js create mode 100644 deps/npm/test/tap/outdated-latest.js create mode 100644 deps/npm/test/tap/pack-files-and-ignores.js create mode 100644 deps/npm/test/tap/pack.js create mode 100644 deps/npm/test/tap/publish.js create mode 100644 deps/npm/test/tap/save-optional.js create mode 100644 deps/npm/test/tap/shrinkwrap-resolve-conflict.js create mode 100644 deps/npm/test/tap/unit-token-validate-cidr.js create mode 100644 deps/npm/test/tap/version-consistent-newlines.js (limited to 'deps/npm') diff --git a/deps/npm/.github/issue_template.md b/deps/npm/.github/issue_template.md index f3a5861866..ec78009f76 100644 --- a/deps/npm/.github/issue_template.md +++ b/deps/npm/.github/issue_template.md @@ -3,6 +3,7 @@ - [ ] npm is crashing. - [ ] npm is producing an incorrect install. - [ ] npm is doing something I don't understand. + - [ ] npm is producing incorrect or undesirable behavior. - [ ] Other (_see below for feature requests_): #### What's going wrong? diff --git a/deps/npm/.mailmap b/deps/npm/.mailmap index 86d870d26b..42c32d0ab4 100644 --- a/deps/npm/.mailmap +++ b/deps/npm/.mailmap @@ -13,6 +13,7 @@ Dalmais Maxence Danila Gerasimov Dave Galbraith David Beitey +David Rousselie Domenic Denicola Einar Otto Stangvik Emma Ramirez @@ -32,11 +33,15 @@ Jake Verbaten James Sanders James Treworgy Jason Smith +Jed Fox Joshua Bennett +Joshua Bennett Jonas Weber Julien Meddah +Kat MarchĆ”n Kevin Lorenz Kris Windham +Leonardo Rojas Lin Clark Luke Arduini Maciej Małecki @@ -46,12 +51,14 @@ Maxim Bogushevich Maximilian Antoni Michael Hayes Nicolas Morel +Misha Kaletsky Olivier Melcher Ra'Shaun Stovall Rebecca Turner Rebecca Turner Ryan Emery Sam Mikes +Sreenivas Alapati Stephanie Snopek Takaya Kobayashi Ted Yavuzkurt diff --git a/deps/npm/.npmignore b/deps/npm/.npmignore index 8aa0c3e0af..6b9f1ecefb 100644 --- a/deps/npm/.npmignore +++ b/deps/npm/.npmignore @@ -1,13 +1,7 @@ *.swp .*.swp npm-debug.log -/test/bin -/test/output.log -/test/packages/*/node_modules -/test/packages/npm-test-depends-on-spark/which-spark.log -/test/packages/test-package/random-data.txt -/test/root -/test/npm_cache +/test node_modules/marked node_modules/ronn node_modules/tap @@ -27,8 +21,5 @@ html/*.png *.pyc -/test/tap/builtin-config .nyc_output - -npm-shrinkwrap.json \ No newline at end of file diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml index 108ecf9059..ac208f8907 100644 --- a/deps/npm/.travis.yml +++ b/deps/npm/.travis.yml @@ -15,13 +15,10 @@ matrix: - "node . run tap-cover -- \"test/tap/*.js\"" - "unset COVERALLS_REPO_TOKEN ; node . run tap -- \"test/broken-under-*/*.js\"" # previous LTS is next most important - - node_js: "4" - env: DEPLOY_VERSION=testing - node_js: "6" env: DEPLOY_VERSION=testing - - node_js: "7" + - node_js: "10" env: DEPLOY_VERSION=testing - # then master - node_js: "9" env: DEPLOY_VERSION=testing script: diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS index 014462125a..f0cae95e96 100644 --- a/deps/npm/AUTHORS +++ b/deps/npm/AUTHORS @@ -285,7 +285,7 @@ Clay Carpenter bangbang93 Nick Malaguti Cedric Nelson -Kat MarchĆ”n +Kat MarchĆ”n Andrew Eduardo Pinho Rachel Hutchison @@ -453,14 +453,13 @@ Henry Zhu Nate Goldman Ted Yavuzkurt Arseniy Maximov -Joshua Bennett Evgeny Kulikov Š”ŠŗŠ¾Š²Š¾Ń€Š¾Š“Š° ŠŠøŠŗŠøтŠ° ŠŠ½Š“рŠµŠµŠ²Šøч Carol (Nichols || Goulding) Jarid Margolin David Cook Brian Dukes -J F +Jed Fox Pavlo Liulia JĆ”n Dzurek Lucas Theisen @@ -487,21 +486,21 @@ Leonard Martin Teddy Katz Simon Legg Kin Lum -dax +David Rousselie Jože Mlakar happylynx Dominic Watson Enrico Weigelt, metux IT consult Brian Beck Ramana Venkata -mmkal +Misha Kaletsky Andrew Schmadel AJ Jordan Mark Banner Richard Simko Sanketh Katta Tim Needham -leonardo rojas +Leonardo Rojas Mark Peter Fejes Ryan Florence MichaelQQ @@ -513,7 +512,6 @@ Luis Gustavo Pereira Amos Wenger Samuel Marks Victor Travieso -legodude17 Joshua Chaitin-Pollak Brendan Warkentin Scott Santucci @@ -536,3 +534,39 @@ Jacob Wejendorp Alejandro LĆ³pez Victor Belozyorov Bradley Farias +Kyle E. Mitchell +Tuan Anh Tran +Nathan Woltman +Kyra +LeŠ°h Neukirchen +Kyle Spier-Swenson +Joe Bowbeer +Nalin Bhardwaj <6984346+nalinbhardwaj@users.noreply.github.com> +Nicolas Garnier +Vladislav Rassokhin +Josh Goldberg +laggingreflex +Kristofer Selbekk +Sreenivas Alapati +Ben Creasy +Allan Kimmer Jensen +rinfan +Matt Hoyle +Mason Pawsey +Johannes Bader +Michael Zabka +Bruce MacNaughton +Christopher Patty +Max Stoiber +Enrico Weigelt +David Hu +Steven R. Loomis +Julien Deniau +Prasanna Venkatesh T S +Alec Larson +John-David Dalton +Raymond Feng +Tieme van Veen +Finn Pauls +Jeremy Kahn +Mertcan Mermerkaya diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index 0e42392d65..e292478eab 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,1488 +1,706 @@ -## v5.6.0 (2017-11-27): +## v6.1.0 (2018-05-17): -### Features! +### FIX WRITE AFTER END ERROR -You may have noticed this is a semver-minor bump. Wondering why? This is why! +First introduced in 5.8.0, this finally puts to bed errors where you would +occasionally see `Error: write after end at MiniPass.write`. -* [`bc263c3fd`](https://github.com/npm/npm/commit/bc263c3fde6ff4b04deee132d0a9d89379e28c27) - [#19054](https://github.com/npm/npm/pull/19054) - **Fully cross-platform `package-lock.json`**. Installing a failing optional - dependency on one platform no longer removes it from the dependency tree, - meaning that `package-lock.json` should now be generated consistently across - platforms! šŸŽ‰ - ([@iarna](https://github.com/iarna)) -* [`f94fcbc50`](https://github.com/npm/npm/commit/f94fcbc50d8aec7350164df898d1e12a1e3da77f) - [#19160](https://github.com/npm/npm/pull/19160) - Add `--package-lock-only` config option. This makes it so you can generate a - target `package-lock.json` without performing a full install of - `node_modules`. - ([@alopezsanchez](https://github.com/alopezsanchez)) -* [`66d18280c`](https://github.com/npm/npm/commit/66d18280ca320f880f4377cf80a8052491bbccbe) - [#19104](https://github.com/npm/npm/pull/19104) - Add new `--node-options` config to pass through a custom `NODE_OPTIONS` for - lifecycle scripts. - ([@bmeck](https://github.com/bmeck)) -* [`114d518c7`](https://github.com/npm/npm/commit/114d518c75732c42acbef3acab36ba1d0fd724e2) - Ignore mtime when packing tarballs: This means that doing `npm pack` on the - same repository should yield two tarballs with the same checksum. This will - also help prevent cache bloat when using git dependencies. In the future, this - will allow npm to explicitly cache git dependencies. - ([@isaacs](https://github.com/isaacs)) - -### Performance - -* [`39ba4aa74`](https://github.com/npm/npm/commit/39ba4aa7479220e61573c0c1977124c2199f49d0) - `tar@4.1.0`: Reduce number of overall fs operations during packing/unpacking. - -### Node 9 +* [`171f3182f`](https://github.com/npm/npm/commit/171f3182f32686f2f94ea7d4b08035427e0b826e) + [node-tar#180](https://github.com/npm/node-tar/issues/180) + [npm.community#35](https://npm.community/t/write-after-end-when-installing-packages-with-5-8-and-later/35) + `pacote@8.1.5`: Fix write-after-end errors. + ([@zkat](https://github.com/zkat)) -Previously, it turns out npm broke on the latest Node, `node@9`. We went ahead -and fixed it up so y'all should be able to use the latest npm again! +### DETECT CHANGES IN GIT SPECIFIERS -* [`4ca695819`](https://github.com/npm/npm/commit/4ca6958196ae41cef179473e3f7dbed9df9a32f1) - `minizlib@1.0.4`: `Fix node@9` incompatibility. - ([@isaacs](https://github.com/isaacs)) -* [`c851bb503`](https://github.com/npm/npm/commit/c851bb503a756b7cd48d12ef0e12f39e6f30c577) - `tar@4.0.2`: Fix `node@9` incompatibility. - ([@isaacs](https://github.com/isaacs)) -* [`6caf23096`](https://github.com/npm/npm/commit/6caf2309613d14ce77923ad3d1275cb89c6cf223) - Remove "unsupported" warning for Node 9 now that things are fixed. - ([@iarna](https://github.com/iarna)) -* [`1930b0f8c`](https://github.com/npm/npm/commit/1930b0f8c44373301edc9fb6ccdf7efcb350fa42) - Update test matrix with `node@8` LTS and `node@9`. +* [`0e1726c03`](https://github.com/npm/npm/commit/0e1726c0350a02d5a60f5fddb1e69c247538625e) + We can now determine if the commitid of a git dependency in the lockfile is derived + from the specifier in the package.json and if it isn't we now trigger an update for it. ([@iarna](https://github.com/iarna)) -### Bug Fixes +### OTHER BUGS -* [`b70321733`](https://github.com/npm/npm/commit/b7032173361665a12c9e4200bdc3f0eb4dee682f) - [#18881](https://github.com/npm/npm/pull/18881) - When dealing with a `node_modules` that was created with older versions of npm - (and thus older versions of npa) we need to gracefully handle older spec - entries. Failing to do so results in us treating those packages as if they - were http remote deps, which results in invalid lock files with `version` set - to tarball URLs. This should now be fixed. - ([@iarna](https://github.com/iarna)) -* [`2f9c5dd00`](https://github.com/npm/npm/commit/2f9c5dd0046a53ece3482e92a412413f5aed6955) - [#18880](https://github.com/npm/npm/pull/18880) - Stop overwriting version in package data on disk. This is another safeguard - against the version overwriting that's plagued some folks upgrading from older - package-locks. - ([@iarna](https://github.com/iarna)) - ([@joshclow](https://github.com/joshclow)) -* [`a93e0a51d`](https://github.com/npm/npm/commit/a93e0a51d3dafc31c809ca28cd7dfa71b2836f86) - [#18846](https://github.com/npm/npm/pull/18846) - Correctly save transitive dependencies when using `npm update` in - `package-lock.json`. - ([@iarna](https://github.com/iarna)) -* [`fdde7b649`](https://github.com/npm/npm/commit/fdde7b649987b2acd9a37ef203f1e263fdf6fece) - [#18825](https://github.com/npm/npm/pull/18825) - Fix typo and concatenation in error handling. - ([@alulsh](https://github.com/alulsh)) -* [`be67de7b9`](https://github.com/npm/npm/commit/be67de7b90790cef0a9f63f91c2f1a00942205ee) - [#18711](https://github.com/npm/npm/pull/18711) - Upgrade to bearer tokens from legacy auth when enabling 2FA. +* [`442d2484f`](https://github.com/npm/npm/commit/442d2484f686e3a371b07f8473a17708f84d9603) + [`2f0c88351`](https://github.com/npm/npm/commit/2f0c883519f17c94411dd1d9877c5666f260c12f) + [`631d30a34`](https://github.com/npm/npm/commit/631d30a340f5805aed6e83f47a577ca4125599b2) + When requesting the update of a direct dependency that was also a + transitive dependency to a version incompatible with the transitive + requirement and you had a lock-file but did not have a `node_modules` + folder then npm would fail to provide a new copy of the transitive + dependency, resulting in an invalid lock-file that could not self heal. ([@iarna](https://github.com/iarna)) -* [`bfdf0fd39`](https://github.com/npm/npm/commit/bfdf0fd39646b03db8e543e2bec7092da7880596) - [#19033](https://github.com/npm/npm/pull/19033) - Fix issue where files with `@` signs in their names would not get included - when packing tarballs. - ([@zkat](https://github.com/zkat)) -* [`b65b89bde`](https://github.com/npm/npm/commit/b65b89bdeaa65516f3e13afdb6e9aeb22d8508f4) - [#19048](https://github.com/npm/npm/pull/19048) - Fix problem where `npm login` was ignoring various networking-related options, - such as custom certs. - ([@wejendorp](https://github.com/wejendorp)) -* [`8c194b86e`](https://github.com/npm/npm/commit/8c194b86ec9617e2bcc31f30ee4772469a0bb440) - `npm-packlist@1.1.10`: Include `node_modules/` directories not in the root. - ([@isaacs](https://github.com/isaacs)) -* [`d7ef6a20b`](https://github.com/npm/npm/commit/d7ef6a20b44e968cb92babab1beb51f99110781d) - `libnpx@9.7.1`: Fix some *nix binary path escaping issues. - ([@zkat](https://github.com/zkat)) -* [`981828466`](https://github.com/npm/npm/commit/981828466a5936c70abcccea319b227c443e812b) - `cacache@10.0.1`: Fix fallback to `copy-concurrently` when file move fails. - This might fix permissions and such issues on platforms that were getting - weird filesystem errors during install. - ([@karolba](https://github.com/karolba)) -* [`a0be6bafb`](https://github.com/npm/npm/commit/a0be6bafb6dd7acb3e7b717c27c8575a2215bfff) - `pacote@7.0.2`: Includes a bunch of fixes, specially for issues around git - dependencies. Shasum-related errors should be way less common now, too. - ([@zkat](https://github.com/zkat)) -* [`b80d650de`](https://github.com/npm/npm/commit/b80d650def417645d2525863e9f17af57a917b42) - [#19163](https://github.com/npm/npm/pull/19163) - Fix a number of git and tarball specs and checksum errors. - ([@zkat](https://github.com/zkat)) -* [`cac225025`](https://github.com/npm/npm/commit/cac225025fa06cd055286e75541138cd95f52def) - [#19054](https://github.com/npm/npm/pull/19054) - Don't count failed optionals when summarizing installed packages. +* [`be5dd0f49`](https://github.com/npm/npm/commit/be5dd0f496ec1485b1ea3094c479dfc17bd50d82) + [#20715](https://github.com/npm/npm/pull/20715) + Cleanup output of `npm ci` summary report. + ([@legodude17](https://github.com/legodude17)) +* [`98ffe4adb`](https://github.com/npm/npm/commit/98ffe4adb55a6f4459271856de2e27e95ee63375) + Node.js now has a test that scans for things that look like conflict + markers in source code. This was triggering false positives on a fixture in a test + of npm's ability to heal lockfiles with conflicts in them. ([@iarna](https://github.com/iarna)) -### UX - -* [`b1ec2885c`](https://github.com/npm/npm/commit/b1ec2885c43f8038c4e05b83253041992fdfe382) - [#18326](https://github.com/npm/npm/pull/18326) - Stop truncating output of `npm view`. This means, for example, that you no - longer need to use `--json` when a package has a lot of versions, to see the - whole list. - ([@SimenB](https://github.com/SimenB)) -* [`55a124e0a`](https://github.com/npm/npm/commit/55a124e0aa6097cb46f1484f666444b2a445ba57) - [#18884](https://github.com/npm/npm/pull/18884) - Profile UX improvements: better messaging on unexpected responses, and stop - claiming we set passwords to null when resetting them. - ([@iarna](https://github.com/iarna)) -* [`635481c61`](https://github.com/npm/npm/commit/635481c6143bbe10a6f89747795bf4b83f75a7e9) - [#18844](https://github.com/npm/npm/pull/18844) - Improve error messaging for OTP/2FA. - ([@iarna](https://github.com/iarna)) -* [`52b142ed5`](https://github.com/npm/npm/commit/52b142ed5e0f13f23c99209932e8de3f7649fd47) - [#19054](https://github.com/npm/npm/pull/19054) - Stop running the same rollback multiple times. This should address issues - where Windows users saw strange failures when `fsevents` failed to install. - ([@iarna](https://github.com/iarna)) -* [`798428b0b`](https://github.com/npm/npm/commit/798428b0b7b6cfd6ce98041c45fc0a36396e170c) - [#19172](https://github.com/npm/npm/pull/19172) - `bin-links@1.1.0`: Log the fact line endings are being changed upon install. - ([@marcosscriven](https://github.com/marcosscriven)) - -### Refactors - -Usually, we don't include internal refactor stuff in our release notes, but it's -worth calling out some of them because they're part of a larger effort the CLI -team and associates are undertaking to modularize npm itself so other package -managers and associated tools can reuse all that code! - -* [`9d22c96b7`](https://github.com/npm/npm/commit/9d22c96b7160729c8126a38dcf554611b9e3ba87) - [#18500](https://github.com/npm/npm/pull/18500) - Extract bin-links and gentle-fs to a separate library. This will allow - external tools to do bin linking and certain fs operations in an - npm-compatible way! - ([@mikesherov](https://github.com/mikesherov)) -* [`015a7803b`](https://github.com/npm/npm/commit/015a7803b7b63bc8543882196d987b92b461932d) - [#18883](https://github.com/npm/npm/pull/18883) - Capture logging from log events on the process global. This allows npm to use - npmlog to report logging from external libraries like `npm-profile`. - ([@iarna](https://github.com/iarna)) -* [`c930e98ad`](https://github.com/npm/npm/commit/c930e98adc03cef357ae5716269a04d74744a852) - `npm-lifecycle@2.0.0`: Use our own `node-gyp`. This means npm no longer needs - to pull some maneuvers to make sure `node-gyp` is in the right place, and that - external packages using `npm-lifecycle` will get working native builds without - having to do their own `node-gyp` maneuvers. - ([@zkochan](https://github.com/zkochan)) -* [`876f0c8f3`](https://github.com/npm/npm/commit/876f0c8f341f8915e338b409f4b8616bb5263500) [`829893d61`](https://github.com/npm/npm/commit/829893d617bf81bba0d1ce4ea303f76ea37a2b2d) - [#19099](https://github.com/npm/npm/pull/19099) - `find-npm-prefix@1.0.1`: npm's prefix-finding logic is now a standalone - module. That is, the logic that figures out where the root of your project is - if you've `cd`'d into a subdirectory. Did you know you can run `npm install` - from these subdirectories, and it'll only affect the root? It works like git! - ([@iarna](https://github.com/iarna)) +### DEPENDENCY UPDATES -### Docs - -* [`7ae12b21c`](https://github.com/npm/npm/commit/7ae12b21cc841f76417d3bb13b74f177319d4deb) - [#18823](https://github.com/npm/npm/pull/18823) - Fix spelling of the word authenticator. Because English is hard. - ([@tmcw](https://github.com/tmcw)) -* [`5dfc3ab7b`](https://github.com/npm/npm/commit/5dfc3ab7bc2cb0fa7d9a8c00aa95fecdd14d7ae1) - [#18742](https://github.com/npm/npm/pull/18742) - Explicitly state 'github:foo/bar' as a valid shorthand for hosted git specs. - ([@felicio](https://github.com/felicio)) -* [`a9dc098a6`](https://github.com/npm/npm/commit/a9dc098a6eb7a87895f52a101ac0d41492da698e) - [#18679](https://github.com/npm/npm/pull/18679) - Add some documentation about the `script-shell` config. - ([@gszabo](https://github.com/gszabo)) -* [`24d7734d1`](https://github.com/npm/npm/commit/24d7734d1a1e906c83c53b6d1853af8dc758a998) - [#18571](https://github.com/npm/npm/pull/18571) - Change `verboten` to `forbidden`. - ([@devmount](https://github.com/devmount)) -* [`a8a45668f`](https://github.com/npm/npm/commit/a8a45668fb9b8eb84234fe89234bdcdf644ead58) - [#18568](https://github.com/npm/npm/pull/18568) - Improve wording for the docs for the "engines" section of package.json files. - ([@apitman](https://github.com/apitman)) -* [`dbc7e5b60`](https://github.com/npm/npm/commit/dbc7e5b602870330a8cdaf63bd303cd9050f792f) - [#19118](https://github.com/npm/npm/pull/19118) - Use valid JSON in example for bundledDependencies. - ([@charmander](https://github.com/charmander)) -* [`779339485`](https://github.com/npm/npm/commit/779339485bab5137d0fdc68d1ed6fa987aa8965a) - [#19162](https://github.com/npm/npm/pull/19162) - Remove trailing white space from `npm access` docs. - ([@WispProxy](https://github.com/WispProxy)) - -### Dependency Bumps - -* [`0e7cac941`](https://github.com/npm/npm/commit/0e7cac9413ff1104cf242cc3006f42aa1c2ab63f) - `bluebird@3.5.1` - ([@petkaantonov](https://github.com/petkaantonov)) -* [`c4d5887d9`](https://github.com/npm/npm/commit/c4d5887d978849ddbe2673630de657f141ae5bcf) - `update-notifier@2.3.0` - ([@sindresorhus](https://github.com/sindresorhus)) -* [`eb19a9691`](https://github.com/npm/npm/commit/eb19a9691cf76fbc9c5b66aa7aadb5d905af467a) - `npm-package-arg@6.0.0` - ([@zkat](https://github.com/zkat)) -* [`91d5dca96`](https://github.com/npm/npm/commit/91d5dca96772bc5c45511ddcbeeb2685c7ea68e8) - `npm-profile@2.0.5` +* [`3f2e306b8`](https://github.com/npm/npm/commit/3f2e306b884a027df03f64524beb8658ce1772cb) + Using `npm audit fix`, replace some transitive dependencies with security + issues with versions that don't have any. ([@iarna](https://github.com/iarna)) -* [`8de66c46e`](https://github.com/npm/npm/commit/8de66c46e57e4b449c9540c8ecafbc4fd58faff5) - `ssri@5.0.0` +* [`1d07134e0`](https://github.com/npm/npm/commit/1d07134e0b157f7484a20ce6987ff57951842954) + `tar@4.4.1`: + Dropping to 4.4.1 from 4.4.2 due to https://github.com/npm/node-tar/issues/183 ([@zkat](https://github.com/zkat)) -* [`cfbc3ea69`](https://github.com/npm/npm/commit/cfbc3ea69a8c62dc8e8543193c3ac472631dcef9) - `worker-farm@1.5.1` - ([@rvagg](https://github.com/rvagg)) -* [`60c228160`](https://github.com/npm/npm/commit/60c228160f22d41c2b36745166c9e8c2d84fee58) - `query-string@5.0.1` - ([@sindresorhus](https://github.com/sindresorhus)) -* [`72cad8c66`](https://github.com/npm/npm/commit/72cad8c664efd8eb1bec9a418bccd6c6ca9290de) - `copy-concurrently@1.0.5` - ([@iarna](https://github.com/iarna)) - -## v5.5.1 (2017-10-04): -A very quick, record time, patch release, of a bug fix to a (sigh) last minute bug fix. -* [`e628e058b`](https://github.com/npm/npm/commit/e628e058b) - Fix login to properly recognize OTP request and store bearer tokens. - ([@Rebecca Turner](https://github.com/Rebecca Turner)) +## v6.1.0-next.0 (2018-05-17): -## v5.5.0 (2017-10-04): +Look at that! A feature bump! `npm@6` was super-exciting not just because it +used a bigger number than ever before, but also because it included a super +shiny new command: `npm audit`. Well, we've kept working on it since then and +have some really nice improvements for it. You can expect more of them, and the +occasional fix, in the next few releases as more users start playing with it and +we get more feedback about what y'all would like to see from something like +this. -Hey y'all, this is a big new feature release! We've got some security -related goodies plus a some quality-of-life improvements for anyone who uses -the public registry (so, virtually everyone). +I, for one, have started running it (and the new subcommand...) in all my +projects, and it's one of those things that I don't know how I ever functioned +-without- it! This will make a world of difference to so many people as far as +making the npm ecosystem a higher-quality, safer commons for all of us. -The changes largely came together in one piece, so I'm just gonna leave the commit line here: +This is also a good time to remind y'all that we have a new [RFCs +repository](https://github.com/npm/rfcs), along with a new process for them. +This repo is open to anyone's RFCs, and has already received some great ideas +about where we can take the CLI (and, to a certain extent, the registry). It's a +great place to get feedback, and completely replaces feature requests in the +main repo, so we won't be accepting feature requests there at all anymore. Check +it out if you have something you'd like to suggest, or if you want to keep track +of what the future might look like! -* [`f6ebf5e8b`](https://github.com/npm/npm/commit/f6ebf5e8bd6a212c7661e248c62c423f2b54d978) - [`f97ad6a38`](https://github.com/npm/npm/commit/f97ad6a38412581d059108ea29be470acb4fa510) - [`f644018e6`](https://github.com/npm/npm/commit/f644018e6ef1ff7523c6ec60ae55a24e87a9d9ae) - [`8af91528c`](https://github.com/npm/npm/commit/8af91528ce6277cd3a8c7ca8c8102671baf10d2f) - [`346a34260`](https://github.com/npm/npm/commit/346a34260b5fba7de62717135f3e083cc4820853) - Two factor authentication, profile editing and token management. - ([@iarna](https://github.com/iarna)) +### NEW FEATURE: `npm audit fix` -### TWO FACTOR AUTHENTICATION +This is the biggie with this release! `npm audit fix` does exactly what it says +on the tin. It takes all the actionable reports from your `npm audit` and runs +the installs automatically for you, so you don't have to try to do all that +mechanical work yourself! -You can now enable two-factor authentication for your npm account. You can -even do it from the CLI. In fact, you have to, for the time being: +Note that by default, `npm audit fix` will stick to semver-compatible changes, +so you should be able to safely run it on most projects and carry on with your +day without having to track down what breaking changes were included. If you +want your (toplevel) dependencies to accept semver-major bumps as well, you can +use `npm audit fix --force` and it'll toss those in, as well. Since it's running +the npm installer under the hood, it also supports `--production` and +`--only=dev` flags, as well as things like `--dry-run`, `--json`, and +`--package-lock-only`, if you want more control over what it does. -``` -npm profile enable-tfa -``` +Give it a whirl and tell us what you think! See `npm help audit` for full docs! -With the default two-factor authentication mode you'll be prompted to enter -a one-time password when logging in, when publishing and when modifying access rights to -your modules. +* [`3800a660d`](https://github.com/npm/npm/commit/3800a660d99ca45c0175061dbe087520db2f54b7) + Add `npm audit fix` subcommand to automatically fix detected vulnerabilities. + ([@zkat](https://github.com/zkat)) -### TOKEN MANAGEMENT +### OTHER NEW `audit` FEATURES -You can now create, list and delete authentication tokens from the comfort -of the command line. Authentication tokens created this way can have NEW -restrictions placed on them. For instance, you can create a `read-only` -token to give to your CI. It will be able to download your private modules -but it won't be able to publish or modify modules. You can also create -tokens that can only be used from certain network addresses. This way you -can lock down access to your corporate VPN or other trusted machines. +* [`1854b1c7f`](https://github.com/npm/npm/commit/1854b1c7f09afceb49627e539a086d8a3565601c) + [#20568](https://github.com/npm/npm/pull/20568) + Add support for `npm audit --json` to print the report in JSON format. + ([@finnp](https://github.com/finnp)) +* [`85b86169d`](https://github.com/npm/npm/commit/85b86169d9d0423f50893d2ed0c7274183255abe) + [#20570](https://github.com/npm/npm/pull/20570) + Include number of audited packages in `npm install` summary output. + ([@zkat](https://github.com/zkat)) +* [`957cbe275`](https://github.com/npm/npm/commit/957cbe27542d30c33e58e7e6f2f04eeb64baf5cd) + `npm-audit-report@1.2.1`: + Overhaul audit install and detail output format. The new format is terser and + fits more closely into the visual style of the CLI, while still providing you + with the important bits of information you need. They also include a bit more + detail on the footer about what actions you can take! + ([@zkat](https://github.com/zkat)) -Deleting tokens isn't new, you could [do it via the -website](https://www.npmjs.com/settings/tokens) but now you can do it via -the CLI as well. +### NEW FEATURE: GIT DEPS AND `npm init `! -### CHANGE YOUR PASSWORD, SET YOUR EMAIL +Another exciting change that came with `npm@6` was the new `npm init` command +that allows for community-authored generators. That means you can, for example, +do `npm init react-app` and it'll one-off download, install, and run +[`create-react-app`](https://npm.im/create-react-app) for you, without requiring +or keeping around any global installs. That is, it basically just calls out to +[`npx`](https://npm.im/npx). -You can finally change your password from the CLI with `npm profile set -password`! You can also update your email address with `npm profile set -email
`. If you change your email address we'll send you a new -verification email so you verify that its yours. +The first version of this command only really supported registry dependencies, +but now, [@jdalton](https://github.com/jdalton) went ahead and extended this +feature so you can use hosted git dependencies, and their shorthands. -### AND EVERYTHING ELSE ON YOUR PROFILE +So go ahead and do `npm init facebook/create-react-app` and it'll grab the +package from the github repo now! Or you can use it with a private github +repository to maintain your organizational scaffolding tools or whatnot. āœØ -You can also update all of the other attributes of your profile that -previously you could only update via the website: `fullname`, `homepage`, -`freenode`, `twitter` and `github`. +* [`483e01180`](https://github.com/npm/npm/commit/483e011803af82e63085ef41b7acce5b22aa791c) + [#20403](https://github.com/npm/npm/pull/20403) + Add support for hosted git packages to `npm init `. + ([@jdalton](https://github.com/jdalton)) -### AVAILABLE STAND ALONE +### BUGFIXES -All of these features were implemented in a stand alone library, so if you -have use for them in your own project you can find them in -[npm-profile](https://www.npmjs.com/package/npm-profile) on the registry. -There's also a little mini-cli written just for it at -[npm-profile-cli](https://www.npmjs.com/package/npm-profile-cli). You might -also be interested in the [API -documentation](https://github.com/npm/registry/tree/master/docs) for these -new features: [user profile editing](https://github.com/npm/registry/blob/master/docs/user/profile.md) and -[authentication](https://github.com/npm/registry/blob/master/docs/user/authentication.md). +* [`a41c0393c`](https://github.com/npm/npm/commit/a41c0393cba710761a15612c6c85c9ef2396e65f) + [#20538](https://github.com/npm/npm/pull/20538) + Make the new `npm view` work when the license field is an object instead of a + string. + ([@zkat](https://github.com/zkat)) +* [`eb7522073`](https://github.com/npm/npm/commit/eb75220739302126c94583cc65a5ff12b441e3c6) + [#20582](https://github.com/npm/npm/pull/20582) + Add support for environments (like Docker) where the expected binary for + opening external URLs is not available. + ([@bcoe](https://github.com/bcoe)) +* [`212266529`](https://github.com/npm/npm/commit/212266529ae72056bf0876e2cff4b8ba01d09d0f) + [#20536](https://github.com/npm/npm/pull/20536) + Fix a spurious colon in the new update notifier message and add support for + the npm canary. + ([@zkat](https://github.com/zkat)) +* [`5ee1384d0`](https://github.com/npm/npm/commit/5ee1384d02c3f11949d7a26ec6322488476babe6) + [#20597](https://github.com/npm/npm/pull/20597) + Infer a version range when a `package.json` has a dist-tag instead of a + version range in one of its dependency specs. Previously, this would cause + dependencies to be flagged as invalid. + ([@zkat](https://github.com/zkat)) +* [`4fa68ae41`](https://github.com/npm/npm/commit/4fa68ae41324293e59584ca6cf0ac24b3e0825bb) + [#20585](https://github.com/npm/npm/pull/20585) + Make sure scoped bundled deps are shown in the new publish preview, too. + ([@zkat](https://github.com/zkat)) +* [`1f3ee6b7e`](https://github.com/npm/npm/commit/1f3ee6b7e1b36b52bdedeb9241296d4e66561d48) + `cacache@11.0.2`: + Stop dropping `size` from metadata on `npm cache verify`. + ([@jfmartinez](https://github.com/jfmartinez)) +* [`91ef93691`](https://github.com/npm/npm/commit/91ef93691a9d6ce7c016fefdf7da97854ca2b2ca) + [#20513](https://github.com/npm/npm/pull/20513) + Fix nested command aliases. + ([@mmermerkaya](https://github.com/mmermerkaya)) +* [`18b2b3cf7`](https://github.com/npm/npm/commit/18b2b3cf71a438648ced1bd13faecfb50c71e979) + `npm-lifecycle@2.0.3`: + Make sure different versions of the `Path` env var on Windows all get + `node_modules/.bin` prepended when running lifecycle scripts. + ([@laggingreflex](https://github.com/laggingreflex)) -### BUG FIXES +### DOCUMENTATION -* [`5ee55dc71`](https://github.com/npm/npm/commit/5ee55dc71b8b74b8418c3d5ec17483a07b3b6777) - install.sh: Drop support for upgrading from npm@1 as npm@5 can't run on - any Node.js version that ships npm@1. This fixes an issue some folks were seeing when trying - to upgrade using `curl | http://npmjs.com/install.sh`. - ([@iarna](https://github.com/iarna)) -* [`5cad1699a`](https://github.com/npm/npm/commit/5cad1699a7a0fc85ac7f77a95087a9647f75e344) - `npm-lifecycle@1.0.3` Fix a bug where when more than one lifecycle script - got queued to run, npm would crash. - ([@zkat](https://github.com/zkat)) -* [`cd256cbb2`](https://github.com/npm/npm/commit/cd256cbb2f97fcbcb82237e94b66eac80e493626) - `npm-packlist@1.1.9` Fix a bug where test directories would always be - excluded from published modules. - ([@isaacs](https://github.com/isaacs)) -* [`2a11f0215`](https://github.com/npm/npm/commit/2a11f021561acb1eb1ad4ad45ad955793b1eb4af) - Fix formatting of unsupported version warning +* [`a91d87072`](https://github.com/npm/npm/commit/a91d87072f292564e58dcab508b5a8c6702b9aae) + [#20550](https://github.com/npm/npm/pull/20550) + Update required node versions in README. + ([@legodude17](https://github.com/legodude17)) +* [`bf3cfa7b8`](https://github.com/npm/npm/commit/bf3cfa7b8b351714c4ec621e1a5867c8450c6fff) + Pull in changelogs from the last `npm@5` release. ([@iarna](https://github.com/iarna)) +* [`b2f14b14c`](https://github.com/npm/npm/commit/b2f14b14ca25203c2317ac2c47366acb50d46e69) + [#20629](https://github.com/npm/npm/pull/20629) + Make tone in `publishConfig` docs more neutral. + ([@jeremyckahn](https://github.com/jeremyckahn)) -### DEPENDENCY UPDATES +### DEPENDENCY BUMPS -* [`6d2a285a5`](https://github.com/npm/npm/commit/6d2a285a58655f10834f64d38449eb1f3c8b6c47) - `npm-registry-client@8.5.0` -* [`69e64e27b`](https://github.com/npm/npm/commit/69e64e27bf58efd0b76b3cf6e8182c77f8cc452f) - `request@2.83.0` -* [`34e0f4209`](https://github.com/npm/npm/commit/34e0f42090f6153eb5462f742e402813e4da56c8) - `abbrev@1.1.1` -* [`10d31739d`](https://github.com/npm/npm/commit/10d31739d39765f1f0249f688bd934ffad92f872) - `aproba@1.2.0` -* [`2b02e86c0`](https://github.com/npm/npm/commit/2b02e86c06cf2a5fe7146404f5bfd27f190ee4f4) - `meant@1.0.1` -* [`b81fff808`](https://github.com/npm/npm/commit/b81fff808ee269361d3dcf38c1b6019f1708ae02) - `rimraf@2.6.2`: - Fixes a long standing bug in rimraf's attempts to work around Windows limitations - where it owns a file and can change its perms but can't remove it without - first changing its perms. This _may_ be an improvement for Windows users of npm under - some circumstances. +* [`5fca4eae8`](https://github.com/npm/npm/commit/5fca4eae8a62a7049b1ae06aa0bbffdc6e0ad6cc) + `byte-size@4.0.3` + ([@75lb](https://github.com/75lb)) +* [`d9ef3fba7`](https://github.com/npm/npm/commit/d9ef3fba79f87c470889a6921a91f7cdcafa32b9) + `lru-cache@4.1.3` + ([@isaacs](https://github.com/isaacs)) +* [`f1baf011a`](https://github.com/npm/npm/commit/f1baf011a0d164f8dc8aa6cd31e89225e3872e3b) + `request@2.86.0` + ([@simonv](https://github.com/simonv)) +* [`005fa5420`](https://github.com/npm/npm/commit/005fa542072f09a83f77a9d62c5e53b8f6309371) + `require-inject@1.4.3` + ([@iarna](https://github.com/iarna)) +* [`1becdf09a`](https://github.com/npm/npm/commit/1becdf09a2f19716726c88e9a2342e1e056cfc71) + `tap@11.1.5` ([@isaacs](https://github.com/isaacs)) -## v5.4.2 (2017-09-14): +## v6.0.1 (2018-05-09): -This is a small bug fix release wrapping up most of the issues introduced with 5.4.0. +### AUDIT SHOULDN'T WAIT FOREVER -### Bugs +This will likely be reduced further with the goal that the audit process +shouldn't noticibly slow down your builds regardless of your network +situation. -* [`0b28ac72d`](https://github.com/npm/npm/commit/0b28ac72d29132e9b761717aba20506854465865) - [#18458](https://github.com/npm/npm/pull/18458) - Fix a bug on Windows where rolling back of failed optional dependencies would fail. - ([@marcins](https://github.com/marcins)) -* [`3a1b29991`](https://github.com/npm/npm/commit/3a1b299913ce94fdf25ed3ae5c88fe6699b04e24) - `write-file-atomic@2.1.0` Revert update of `write-file-atomic`. There were changes made to it - that were resulting in EACCES errors for many users. - ([@iarna](https://github.com/iarna)) -* [`cd8687e12`](https://github.com/npm/npm/commit/cd8687e1257f59a253436d69e8d79a29c85d00c8) - Fix a bug where if npm decided it needed to move a module during an upgrade it would strip - out much of the `package.json`. This would result in broken trees after package updates. -* [`5bd0244ee`](https://github.com/npm/npm/commit/5bd0244eec347ce435e88ff12148c35da7c69efe) - [#18385](https://github.com/npm/npm/pull/18385) - Fix `npm outdated` when run on non-registry dependencies. - ([@joshclow](https://github.com/joshclow)) +* [`3dcc240db`](https://github.com/npm/npm/commit/3dcc240dba5258532990534f1bd8a25d1698b0bf) + Timeout audit requests eventually. ([@iarna](https://github.com/iarna)) -### Ux +### Looking forward + +We're still a way from having node@11, so now's a good time to ensure we +don't warn about being used with it. -* [`339f17b1e`](https://github.com/npm/npm/commit/339f17b1e6816eccff7df97875db33917eccdd13) - Report unsupported node versions with greater granularity. +* [`ed1aebf55`](https://github.com/npm/npm/commit/ed1aebf55) + Allow node@11, when it comes. ([@iarna](https://github.com/iarna)) -### Docs +## v6.0.1-next.0 (2018-05-03): -* [`b2ab6f43b`](https://github.com/npm/npm/commit/b2ab6f43b8ae645134238acd8dd3083e5ba8846e) - [#18397](https://github.com/npm/npm/pull/18397) - Document that the default loglevel with `npm@5` is `notice`. - ([@KenanY](https://github.com/KenanY)) -* [`e5aedcd82`](https://github.com/npm/npm/commit/e5aedcd82af81fa9e222f9210f6f890c72a18dd3) - [#18372](https://github.com/npm/npm/pull/18372) - In npm-config documentation, note that env vars use \_ in place of -. - ([@jakubholynet](https://github.com/jakubholynet)) +### CTRL-C OUT DURING PACKAGE EXTRACTION AS MUCH AS YOU WANT! -## v5.4.1 (2017-09-06): +* [`b267bbbb9`](https://github.com/npm/npm/commit/b267bbbb9ddd551e3dbd162cc2597be041b9382c) + [npm/lockfile#29](https://github.com/npm/lockfile/pull/29) + `lockfile@1.0.4`: + Switches to `signal-exit` to detect abnormal exits and remove locks. + ([@Redsandro](https://github.com/Redsandro)) -This is a very small bug fix release to fix a problem where permissions on -installed binaries were being set incorrectly. +### SHRONKWRAPS AND LACKFILES -* [`767ff6eee`](https://github.com/npm/npm/commit/767ff6eee7fa3a0f42ad677dedc0ec1f0dc15e7c) - [zkat/pacote#117](https://github.com/zkat/pacote/pull/117) - [#18324](https://github.com/npm/npm/issues/18324) - `pacote@6.0.2` - ([@zkat](https://github.com/zkat)) +If a published modules had legacy `npm-shrinkwrap.json` we were saving +ordinary registry dependencies (`name@version`) to your `package-lock.json` +as `https://` URLs instead of versions. -## v5.4.0 (2017-08-22): +* [`89102c0d9`](https://github.com/npm/npm/commit/89102c0d995c3d707ff2b56995a97a1610f8b532) + When saving the lock-file compute how the dependency is being required instead of using + `_resolved` in the `package.json`. This fixes the bug that was converting + registry dependencies into `https://` dependencies. + ([@iarna](https://github.com/iarna)) +* [`676f1239a`](https://github.com/npm/npm/commit/676f1239ab337ff967741895dbe3a6b6349467b6) + When encountering a `https://` URL in our lockfiles that point at our default registry, extract + the version and use them as registry dependencies. This lets us heal + `package-lock.json` files produced by 6.0.0 + ([@iarna](https://github.com/iarna)) -Here's another ~~small~~ big release, with a ~~handful~~ bunch of fixes and -a couple of ~~small~~ new features! This release has been incubating rather -longer than usual and it's grown quite a bit in that time. I'm also excited -to say that it has contributions from **27** different folks, which is a new -record for us. Our previous record was 5.1.0 at 21. Before that the record -had been held by 1.3.16 since _December of 2013_. +### AUDIT AUDIT EVERYWHERE -![chart of contributor counts by version, showing an increasing rate over time and spikes mid in the 1.x series and later at 5.x](https://pbs.twimg.com/media/DH38rbZUwAAf9hS.jpg) +You can't use it _quite_ yet, but we do have a few last moment patches to `npm audit` to make +it even better when it is turned on! -If you can't get enough of the bleeding edge, I encourage you to check out -our canary release of npm. Get it with `npm install -g npmc`. It's going to -be seeing some exciting stuff in the next couple of weeks, starting with a -rewriten `npm dedupe`, but moving on toā€¦ well, you'll just have to wait and -find out. +* [`b2e4f48f5`](https://github.com/npm/npm/commit/b2e4f48f5c07b8ebc94a46ce01a810dd5d6cd20c) + Make sure we hide stream errors on background audit submissions. Previously some classes + of error could end up being displayed (harmlessly) during installs. + ([@iarna](https://github.com/iarna)) +* [`1fe0c7fea`](https://github.com/npm/npm/commit/1fe0c7fea226e592c96b8ab22fd9435e200420e9) + Include session and scope in requests (as we do in other requests to the registry). + ([@iarna](https://github.com/iarna)) +* [`d04656461`](https://github.com/npm/npm/commit/d046564614639c37e7984fff127c79a8ddcc0c92) + Exit with non-zero status when vulnerabilities are found. So you can have `npm audit` as a test or prepublish step! + ([@iarna](https://github.com/iarna)) +* [`fcdbcbacc`](https://github.com/npm/npm/commit/fcdbcbacc16d96a8696dde4b6d7c1cba77828337) + Verify lockfile integrity before running. You'd get an error either way, but this way it's + faster and can give you more concrete instructions on how to fix it. + ([@iarna](https://github.com/iarna)) +* [`2ac8edd42`](https://github.com/npm/npm/commit/2ac8edd4248f2393b35896f0300b530e7666bb0e) + Refuse to run in global mode. Audits require a lockfile and globals don't have one. Yet. + ([@iarna](https://github.com/iarna)) -### PERFORMANCE +### DOCUMENTATION IMPROVEMENTS -* [`d080379f6`](https://github.com/npm/npm/commit/d080379f620c716afa2c1d2e2ffc0a1ac3459194) - `pacote@6.0.1` Updates extract to use tar@4, which is much faster than the - older tar@2. It reduces install times by as much as 10%. - ([@zkat](https://github.com/zkat)) -* [`4cd6a1774`](https://github.com/npm/npm/commit/4cd6a1774f774506323cae5685c9ca9a10deab63) - [`0195c0a8c`](https://github.com/npm/npm/commit/0195c0a8cdf816834c2f737372194ddc576c451d) - [#16804](https://github.com/npm/npm/pull/16804) - `tar@4.0.1` Update publish to use tar@4. tar@4 brings many advantages - over tar@2: It's faster, better tested and easier to work with. It also - produces exactly the same byte-for-byte output when producing tarballs - from the same set of files. This will have some nice carry on effects for - things like caching builds from git. And finally, last but certainly not - least, upgrading to it also let's us finally eliminate `fstream`ā€”if - you know what that is you'll know why we're so relieved. - ([@isaacs](https://github.com/isaacs)) +* [`b7fca1084`](https://github.com/npm/npm/commit/b7fca1084b0be6f8b87ec0807c6daf91dbc3060a) + [#20407](https://github.com/npm/npm/pull/20407) + Update the lock-file spec doc to mention that we now generate the from field for `git`-type dependencies. + ([@watilde](https://github.com/watilde)) +* [`7a6555e61`](https://github.com/npm/npm/commit/7a6555e618e4b8459609b7847a9e17de2d4fa36e) + [#20408](https://github.com/npm/npm/pull/20408) + Describe what the colors in outdated mean. + ([@teameh](https://github.com/teameh)) -### FEATURES +### DEPENDENCY UPDATES -* [`1ac470dd2`](https://github.com/npm/npm/commit/1ac470dd283cc7758dc37721dd6331d5b316dc99) - [#10382](https://github.com/npm/npm/pull/10382) - If you make a typo when writing a command now, npm will print a brief "did you - mean..." message with some possible alternatives to what you meant. - ([@watilde](https://github.com/watilde)) -* [`20c46228d`](https://github.com/npm/npm/commit/20c46228d8f9243910f8c343f4830d52455d754e) - [#12356](https://github.com/npm/npm/pull/12356) - When running lifecycle scripts, `INIT_CWD` will now contain the original - working directory that npm was executed from. Remember that you can use `npm - run-script` even if you're not inside your package root directory! - ([@MichaelQQ](https://github.com/MichaelQQ)) -* [`be91e1726`](https://github.com/npm/npm/commit/be91e1726e9c21c4532723e4f413b73a93dd53d1) - [`4e7c41f4a`](https://github.com/npm/npm/commit/4e7c41f4a29744a9976cc22c77eee9d44172f21e) - `libnpx@9.6.0`: Fixes a number of issues on Windows and adds support for - several more languages: Korean, Norwegian (bokmĆ„l and nynorsk), Ukrainian, - Serbian, Bahasa Indonesia, Polish, Dutch and Arabic. - ([@zkat](https://github.com/zkat)) -* [`2dec601c6`](https://github.com/npm/npm/commit/2dec601c6d5a576751d50efbcf76eaef4deff31e) - [#17142](https://github.com/npm/npm/pull/17142) - Add the new `commit-hooks` option to `npm version` so that you can disable commit - hooks when committing the version bump. - ([@faazshift](https://github.com/faazshift)) -* [`bde151902`](https://github.com/npm/npm/commit/bde15190230b5c62dbd98095311eab71f6b52321) - [#14461](https://github.com/npm/npm/pull/14461) - Make output from `npm ping` clear as to its success or failure. - ([@legodude17](https://github.com/legodude17)) +* [`5e56b3209`](https://github.com/npm/npm/commit/5e56b3209c4719e3c4d7f0d9346dfca3881a5d34) + `npm-audit-report@1.0.8` + ([@evilpacket](https://github.com/evilpacket)) +* [`58a0b31b4`](https://github.com/npm/npm/commit/58a0b31b43245692b4de0f1e798fcaf71f8b7c31) + `lock-verify@2.0.2` + ([@iarna](https://github.com/iarna)) +* [`e7a8c364f`](https://github.com/npm/npm/commit/e7a8c364f3146ffb94357d8dd7f643e5563e2f2b) + [zkat/pacote#148](https://github.com/zkat/pacote/pull/148) + `pacote@8.1.1` + ([@redonkulus](https://github.com/redonkulus)) +* [`46c0090a5`](https://github.com/npm/npm/commit/46c0090a517526dfec9b1b6483ff640227f0cd10) + `tar@4.4.2` + ([@isaacs](https://github.com/isaacs)) +* [`8a16db3e3`](https://github.com/npm/npm/commit/8a16db3e39715301fd085a8f4c80ae836f0ec714) + `update-notifier@2.5.0` + ([@alexccl](https://github.com/alexccl)) +* [`696375903`](https://github.com/npm/npm/commit/6963759032fe955c1404d362e14f458d633c9444) + `safe-buffer@5.1.2` + ([@feross](https://github.com/feross)) +* [`c949eb26a`](https://github.com/npm/npm/commit/c949eb26ab6c0f307e75a546f342bb2ec0403dcf) + `query-string@6.1.0` + ([@sindresorhus](https://github.com/sindresorhus)) -### BUGFIXES +## v6.0.0 (2018-04-20): -* [`b6d5549d2`](https://github.com/npm/npm/commit/b6d5549d2c2d38dd0e4319c56b69ad137f0d50cd) - [#17844](https://github.com/npm/npm/pull/17844) - Make package-lock.json sorting locale-agnostic. Previously, sorting would vary - by locale, due to using `localeCompare` for key sorting. This'll give you - a little package-lock.json churn as it reshuffles things, sorry! - ([@LotharSee](https://github.com/LotharSee)) -* [`44b98b9dd`](https://github.com/npm/npm/commit/44b98b9ddcfcccf68967fdf106fca52bf0c3da4b) - [#17919](https://github.com/npm/npm/pull/17919) - Fix a crash where `npm prune --production` would fail while removing `.bin`. - ([@fasterthanlime](https://github.com/fasterthanlime)) -* [`c3d1d3ba8`](https://github.com/npm/npm/commit/c3d1d3ba82aa41dfb2bd135e6cdc59f8d33cd9fb) - [#17816](https://github.com/npm/npm/pull/17816) - Fail more smoothly when attempting to install an invalid package name. - ([@SamuelMarks](https://github.com/SamuelMarks)) -* [`55ac2fca8`](https://github.com/npm/npm/commit/55ac2fca81bf08338302dc7dc2070494e71add5c) - [#12784](https://github.com/npm/npm/pull/12784) - Guard against stack overflows when marking packages as failed. - ([@vtravieso](https://github.com/vtravieso)) -* [`597cc0e4b`](https://github.com/npm/npm/commit/597cc0e4b5e6ee719014e3171d4e966df42a275c) - [#15087](https://github.com/npm/npm/pull/15087) - Stop outputting progressbars or using color on dumb terminals. - ([@iarna](https://github.com/iarna)) -* [`7a7710ba7`](https://github.com/npm/npm/commit/7a7710ba72e6f82414653c2e7e91fea9a1aba7e2) - [#15088](https://github.com/npm/npm/pull/15088) - Don't exclude modules that are both dev & prod when using `npm ls --production`. - ([@iarna](https://github.com/iarna)) -* [`867df2b02`](https://github.com/npm/npm/commit/867df2b0214689822b87b51578e347f353be97e8) - [#18164](https://github.com/npm/npm/pull/18164) - Only do multiple procs on OSX for now. We've seen a handful of issues - relating to this in Docker and in on Windows with antivirus. - ([@zkat](https://github.com/zkat)) -* [`23540af7b`](https://github.com/npm/npm/commit/23540af7b0ec5f12bbdc1558745c8c4f0861042b) - [#18117](https://github.com/npm/npm/pull/18117) - Some package managers would write spaces to the \_from field in package.json's in the - form of `name @spec`. This was causing npm to fail to interpret them. We now handle that - correctly and doubly make sure we don't do that ourselves. - ([@IgorNadj](https://github.com/IgorNadj)) -* [`0ef320cb4`](https://github.com/npm/npm/commit/0ef320cb40222693b7367b97c60ddffabc2d58c5) - [#16634](https://github.com/npm/npm/pull/16634) - Convert any bin script with a shbang a the start to Unix line-endings. (These sorts of scripts - are not compatible with Windows line-endings even on Windows.) - ([@ScottFreeCode](https://github.com/ScottFreeCode)) -* [`71191ca22`](https://github.com/npm/npm/commit/71191ca2227694355c49dfb187104f68df5126bd) - [#16476](https://github.com/npm/npm/pull/16476) - `npm-lifecycle@1.0.2` Running an install with `--ignore-scripts` was resulting in the - the package object being mutated to have the lifecycle scripts removed from it and that - in turn was being written out to disk, causing further problems. This fixes that: - No more mutation, no more unexpected changes. - ([@addaleax](https://github.com/addaleax)) -* [`459fa9d51`](https://github.com/npm/npm/commit/459fa9d51600904ee75ed6267b159367a1209793) - [npm/read-package-json#74](https://github.com/npm/read-package-json/pull/74) - [#17802](https://github.com/npm/npm/pull/17802) - `read-package-json@2.0.1` Use unix-style slashes for generated bin - entries, which lets them be cross platform even when produced on Windows. - ([@iarna](https://github.com/iarna)) -* [`5ec72ab5b`](https://github.com/npm/npm/commit/5ec72ab5b27c5c83cee9ff568cf75a9479d4b83a) - [#18229](https://github.com/npm/npm/pull/18229) - Make install.sh find nodejs on debian. - ([@cebe](https://github.com/cebe)) +Hey y'all! Here's another `npm@6` release -- with `node@10` around the corner, +this might well be the last prerelease before we tag `6.0.0`! There's two major +features included with this release, along with a few miscellaneous fixes and +changes. -### DOCUMENTATION +### EXTENDED `npm init` SCAFFOLDING -* [`b019680db`](https://github.com/npm/npm/commit/b019680db78ae0a6dff2289dbfe9f61fccbbe824) - [#10846](https://github.com/npm/npm/pull/10846) - Remind users that they have to install missing `peerDependencies` manually. - ([@ryanflorence](https://github.com/ryanflorence)) -* [`3aee5986a`](https://github.com/npm/npm/commit/3aee5986a65add2f815b24541b9f4b69d7fb445f) - [#17898](https://github.com/npm/npm/pull/17898) - Minor punctuation fixes to the README. - ([@AndersDJohnson](https://github.com/AndersDJohnson)) -* [`e0d0a7e1d`](https://github.com/npm/npm/commit/e0d0a7e1dda2c43822b17eb71f4d51900575cc61) - [#17832](https://github.com/npm/npm/pull/17832) - Fix grammar, format, and spelling in documentation for `run-script`. - ([@simonua](https://github.com/simonua)) -* [`3fd6a5f2f`](https://github.com/npm/npm/commit/3fd6a5f2f8802a9768dba2ec32c593b5db5a878d) - [#17897](https://github.com/npm/npm/pull/17897) - Add more info about using `files` with `npm pack`/`npm publish`. - ([@davidjgoss](https://github.com/davidjgoss)) -* [`f00cdc6eb`](https://github.com/npm/npm/commit/f00cdc6eb90a0735bc3c516720de0b1428c79c31) - [#17785](https://github.com/npm/npm/pull/17785) - Add a note about filenames for certificates on Windows, which use a different - extension and file type. - ([@lgp1985](https://github.com/lgp1985)) -* [`0cea6f974`](https://github.com/npm/npm/commit/0cea6f9741243b1937abfa300c2a111d9ed79143) - [#18022](https://github.com/npm/npm/pull/18022) - Clarify usage for the `files` field in `package.json`. - ([@xcambar](https://github.com/xcambar)) -* [`a0fdd1571`](https://github.com/npm/npm/commit/a0fdd15710971234cbc57086cd1a4dc037a39471) - [#15234](https://github.com/npm/npm/pull/15234) - Clarify the behavior of the `files` array in the package-json docs. - ([@jbcpollak](https://github.com/jbcpollak)) -* [`cecd6aa5d`](https://github.com/npm/npm/commit/cecd6aa5d4dd04af765b26b749c1cd032f7eb913) - [#18137](https://github.com/npm/npm/pull/18137) - Clarify interaction between npmignore and files in package.json. - ([@supertong](https://github.com/supertong)) -* [`6b8972039`](https://github.com/npm/npm/commit/6b89720396767961001e727fc985671ce88b901b) - [#18044](https://github.com/npm/npm/pull/18044) - Corrected the typo in package-locks docs. - ([@vikramnr](https://github.com/vikramnr)) -* [`6e012924f`](https://github.com/npm/npm/commit/6e012924f99c475bc3637c86ab6a113875405fc7) - [#17667](https://github.com/npm/npm/pull/17667) - Fix description of package.json in npm-scripts docs. - ([@tripu](https://github.com/tripu)) - -### POSSIBLY INTERESTING DEPENDENCY UPDATES - -* [`48d84171a`](https://github.com/npm/npm/commit/48d84171a302fde2510b3f31e4a004c5a4d39c73) - [`f60b05d63`](https://github.com/npm/npm/commit/f60b05d6307a7c46160ce98d6f3ccba89411c4ba) - `semver@5.4.1` Perf improvements. - ([@zkat](https://github.com/zkat)) -* [`f4650b5d4`](https://github.com/npm/npm/commit/f4650b5d4b2be2c04c229cc53aa930e260af9b4e) - `write-file-atomic@2.3.0`: - Serialize writes to the same file so that results are deterministic. - Cleanup tempfiles when process is interrupted or killed. - ([@ferm10n](https://github.com/ferm10n)) - ([@iarna](https://github.com/iarna)) +Thanks to the wonderful efforts of [@jdalton](https://github.com/jdalton) of +lodash fame, `npm init` can now be used to invoke custom scaffolding tools! -### CHORES - -* [`96d78df98`](https://github.com/npm/npm/commit/96d78df9843187bc53be2c93913e8567003ccb73) - [`80e2f4960`](https://github.com/npm/npm/commit/80e2f4960691bc5dbd8320002e4d9143784b9ce9) - [`4f49f687b`](https://github.com/npm/npm/commit/4f49f687bbd54b6a0e406936ae35593d8e971e1e) - [`07d2296b1`](https://github.com/npm/npm/commit/07d2296b10e3d8d6f079eba3a61f0258501d7161) - [`a267ab430`](https://github.com/npm/npm/commit/a267ab4309883012a9d55934533c5915e9842277) - [#18176](https://github.com/npm/npm/pull/18176) - [#18025](https://github.com/npm/npm/pull/18025) - Move the lifecycle code out of npm into a separate library, - [`npm-lifecycle`](https://github.com/npm/lifecycle). Shh, I didn't tell you this, but this - portends to some pretty cool stuff to come very soon now. - ([@mikesherov](https://github.com/mikesherov)) -* [`0933c7eaf`](https://github.com/npm/npm/commit/0933c7eaf9cfcdf56471fe4e71c403e2016973da) - [#18025](https://github.com/npm/npm/pull/18025) - Force Travis to use Precise instead of Trusty. We have issues with our - couchdb setup and Trusty. =/ - ([@mikesherov](https://github.com/mikesherov)) -* [`afb086230`](https://github.com/npm/npm/commit/afb086230223f3c4fcddee4e958d18fce5db0ff9) - [#18138](https://github.com/npm/npm/pull/18138) - Fix typos in files-and-ignores test. - ([@supertong](https://github.com/supertong)) -* [`3e6d11cde`](https://github.com/npm/npm/commit/3e6d11cde096b4ee7b07e7569b37186aa2115b1a) - [#18175](https://github.com/npm/npm/pull/18175) - Update dependencies to eliminate transitive dependencies with the WTFPL license, which - some more serious corporate lawyery types aren't super comfortable with. - ([@zkat](https://github.com/zkat)) -* [`ee4c9bd8a`](https://github.com/npm/npm/commit/ee4c9bd8ae574a0d6b24725ba6c7b718d8aaad8d) - [#16474](https://github.com/npm/npm/pull/16474) - The tests in `test/tap/lifecycle-signal.js`, as well as the features - they are testing, are partially broken. This moves them from - being skipped in CI to being disabled only for certain platforms. - In particular, because `npm` spawns its lifecycle scripts in a - shell, signals are not necessarily forwarded by the shell and - wonā€™t cause scripts to exit; also, shells may report the signal - they receive using their exit status, rather than terminating - themselves with a signal. - ([@addaleax](https://github.com/addaleax)) -* [`9462e5d9c`](https://github.com/npm/npm/commit/9462e5d9cfbaa50218de6d0a630d6552e72ad0a8) - [#16547](https://github.com/npm/npm/pull/16547) - Remove unused file: bin/read-package-json.js - ([@metux](https://github.com/metux)) -* [`0756d687d`](https://github.com/npm/npm/commit/0756d687d4ccfcd4a7fd83db0065eceb9261befb) - [#16550](https://github.com/npm/npm/pull/16550) - The build tools for the documentation need to be built/installed - before the documents, even with parallel builds. - Make has a simple mechanism which was made exactly for that: - target dependencies. - ([@metux](https://github.com/metux)) - -## v5.3.0 (2017-07-12): - -As mentioned before, we're continuing to do relatively rapid, smaller releases -as we keep working on stomping out `npm@5` issues! We've made a lot of progress -since 5.0 already, and this release is no exception. - -### FEATURES - -* [`1e3a46944`](https://github.com/npm/npm/commit/1e3a469448b5db8376e6f64022c4c0c78cdb1686) - [#17616](https://github.com/npm/npm/pull/17616) - Add `--link` filter option to `npm ls`. - ([@richardsimko](https://github.com/richardsimko)) -* [`33df0aaa`](https://github.com/npm/npm/commit/33df0aaaa7271dac982b86f2701d10152c4177c8) - `libnpx@9.2.0`: - * 4 new languages - Czech, Italian, Turkish, and Chinese (Traditional)! This means npx is available in 14 different languages! - * New --node-arg option lets you pass CLI arguments directly to node when the target binary is found to be a Node.js script. - ([@zkat](https://github.com/zkat)) +You can now do things like `npm init react-app` or `npm init esm` to scaffold an +npm package by running `create-react-app` and `create-esm`, respectively. This +also adds an `npm create` alias, to correspond to Yarn's `yarn create` feature, +which inspired this. -### BUGFIXES +* [`008a83642`](https://github.com/npm/npm/commit/008a83642e04360e461f56da74b5557d5248a726) [`ed81d1426`](https://github.com/npm/npm/commit/ed81d1426776bcac47492cabef43f65e1d4ab536) [`833046e45`](https://github.com/npm/npm/commit/833046e45fe25f75daffd55caf25599a9f98c148) + [#20303](https://github.com/npm/npm/pull/20303) + Add an `npm init` feature that calls out to `npx` when invoked with positional + arguments. ([@jdalton](https://github.com/jdalton)) -* [`33df0aaa`](https://github.com/npm/npm/commit/33df0aaaa7271dac982b86f2701d10152c4177c8) - `libnpx@9.2.0`: - * npx should now work on (most) Windows installs. A couple of issues remain. - * Prevent auto-fallback from going into an infinite loop when npx disappears. - * `npx npx npx npx npx npx npx npx` works again. - * `update-notifier` will no longer run for the npx bundled with npm. - * `npx ` in a subdirectory of your project should be able to find your `node_modules/.bin` now. Oops - ([@zkat](https://github.com/zkat)) -* [`8e979bf80`](https://github.com/npm/npm/commit/8e979bf80fb93233f19db003f08443e26cfc5e64) - Revert change where npm stopped flattening modules that required peerDeps. - This caused problems because folks were using peer deps to indicate that the - target of the peer dep needed to be able to require the dependency and had - been relying on the fact that peer deps didn't change the shape of the tree - (as of npm@3). - The fix that will actually work for people is for a peer dep to insist on - never being installed deeper than the the thing it relies on. At the moment - this is tricky because the thing the peer dep relies on may not yet have - been added to the tree, so we don't know where it is. - ([@iarna](https://github.com/iarna)) -* [`7f28a77f3`](https://github.com/npm/npm/commit/7f28a77f33ef501065f22e8d5e8cffee3195dccd) - [#17733](https://github.com/npm/npm/pull/17733) - Split remove and unbuild actions into two to get uninstall lifecycles and the - removal of transitive symlinks during uninstallation to run in the right - order. - ([@iarna](https://github.com/iarna)) -* [`637f2548f`](https://github.com/npm/npm/commit/637f2548facae011eebf5e5c38bfe56a6c2db9fa) - [#17748](https://github.com/npm/npm/pull/17748) - When rolling back use symlink project-relative path, fixing some issues with - `fs-vacuum` getting confused while removing symlinked things. - ([@iarna](https://github.com/iarna)) -* [`f153b5b22`](https://github.com/npm/npm/commit/f153b5b22f647d4d403f5b8cecd2ce63ac75b07c) - [#17706](https://github.com/npm/npm/pull/17706) - Use semver to compare node versions in npm doctor instead of plain `>` - comparison. - ([@leo-shopify](https://github.com/leo-shopify)) -* [`542f7561`](https://github.com/npm/npm/commit/542f7561d173eca40eb8d838a16a0ed582fef989) - [#17742](https://github.com/npm/npm/pull/17742) - Fix issue where `npm version` would sometimes not commit package-locks. - ([@markpeterfejes](https://github.com/markpeterfejes)) -* [`51a9e63d`](https://github.com/npm/npm/commit/51a9e63d31cb5ac52259dcf1c364004286072426) - [#17777](https://github.com/npm/npm/pull/17777) - Fix bug exposed by other bugfixes where the wrong package would be removed. - ([@iarna](https://github.com/iarna)) +### DEPENDENCY AUDITING -### DOCUMENTATION +This version of npm adds a new command, `npm audit`, which will run a security +audit of your project's dependency tree and notify you about any actions you may +need to take. -Have we mentioned we really like documentation patches? Keep sending them in! -Small patches are just fine, and they're a great way to get started contributing -to npm! - -* [`fb42d55a9`](https://github.com/npm/npm/commit/fb42d55a9a97afa5ab7db38b3b99088cf68684ea) - [#17728](https://github.com/npm/npm/pull/17728) - Document semver git urls in package.json docs. - ([@sankethkatta](https://github.com/sankethkatta)) -* [`f398c700f`](https://github.com/npm/npm/commit/f398c700fb0f2f3665ebf45995a910ad16cd8d05) - [#17684](https://github.com/npm/npm/pull/17684) - Tweak heading hierarchy in package.json docs. - ([@sonicdoe](https://github.com/sonicdoe)) -* [`d5ad65e50`](https://github.com/npm/npm/commit/d5ad65e50a573cdf9df4155225e869cd6c88ca5e) - [#17691](https://github.com/npm/npm/pull/17691) - Explicitly document `--no-save` flag for uninstall. - ([@timneedham](https://github.com/timneedham)) - -## v5.2.0 (2017-07-05): - -It's only been a couple of days but we've got some bug fixes we wanted to -get out to you all. We also believe that -[`npx`](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) is ready to be bundled -with npm, which we're really excited about! - -### npx!!! - -npx is a tool intended to help round out the experience of using packages -from the npm registryā€Šā€”ā€Šthe same way npm makes it super easy to install and -manage dependencies hosted on the registry, npx is meant to make it easy to -use CLI tools and other executables hosted on the registry. It greatly -simplifies a number of things that, until now, required a bit of ceremony to -do with plain npm. - -![](https://cdn-images-1.medium.com/max/1600/1*OlIRsvVO5aK7ja9HmwXz_Q.gif) - -[@zkat](https://github.com/zkat) has a [great introduction post to npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) -that I highly recommend you give a read - -* [`fb040bee0`](https://github.com/npm/npm/commit/fb040bee0710759c60e45bf8fa2a3b8ddcf4212a) - [#17685](https://github.com/npm/npm/pull/17685) - Bundle npx with npm itself. - ([@zkat](https://github.com/zkat)) +The registry-side services required for this command to work will be available +on the main npm registry in the coming weeks. Until then, you won't get much out +of trying to use this on the CLI. -### BUG FIXES +As part of this change, the npm CLI now sends scrubbed and cryptographically +anonymized metadata about your dependency tree to your configured registry, to +allow notifying you about the existence of critical security flaws. For details +about how the CLI protects your privacy when it shares this metadata, see `npm +help audit`, or [read the docs for `npm audit` +online](https://github.com/npm/npm/blob/release-next/doc/cli/npm-audit.md). You +can disable this altogether by doing `npm config set audit false`, but will no +longer benefit from the service. -* [`9fe905c39`](https://github.com/npm/npm/commit/9fe905c399d07a3c00c7b22035ddb6b7762731e6) - [#17652](https://github.com/npm/npm/pull/17652) - Fix max callstack exceeded loops with trees with circular links. - ([@iarna](https://github.com/iarna)) -* [`c0a289b1b`](https://github.com/npm/npm/commit/c0a289b1ba6b99652c43a955b23acbf1de0b56ae) - [#17606](https://github.com/npm/npm/pull/17606) - Make sure that when write package.json and package-lock.json we always use unix path separators. - ([@Standard8](https://github.com/Standard8)) -* [`1658b79ca`](https://github.com/npm/npm/commit/1658b79cad89ccece5ae5ce3c2f691d44b933116) - [#17654](https://github.com/npm/npm/pull/17654) - Make `npm outdated` show results for globals again. Previously it never thought they were out of date. +* [`f4bc648ea`](https://github.com/npm/npm/commit/f4bc648ea7b19d63cc9878c9da2cb1312f6ce152) + [#20389](https://github.com/npm/npm/pull/20389) + `npm-registry-fetch@1.1.0` ([@iarna](https://github.com/iarna)) -* [`06c154fd6`](https://github.com/npm/npm/commit/06c154fd653d18725d2e760ba825d43cdd807420) - [#17678](https://github.com/npm/npm/pull/17678) - Stop flattening modules that have peer dependencies. We're making this - change to support scenarios where the module requiring a peer dependency - is flattened but the peer dependency itself is not, due to conflicts. In - those cases the module requiring the peer dep can't be flattened past the - location its peer dep was placed in. This initial fix is naive, never - flattening peer deps, and we can look into doing something more - sophisticated later on. +* [`594d16987`](https://github.com/npm/npm/commit/594d16987465014d573c51a49bba6886cc19f8e8) + [#20389](https://github.com/npm/npm/pull/20389) + `npm-audit-report@1.0.5` ([@iarna](https://github.com/iarna)) -* [`88aafee8b`](https://github.com/npm/npm/commit/88aafee8b5b232b7eeb5690279a098d056575791) - [#17677](https://github.com/npm/npm/pull/17677) - There was an issue where updating a flattened dependency would sometimes - unflatten it. This only happened when the dependency had dependencies - that in turn required the original dependency. +* [`8c77dde74`](https://github.com/npm/npm/commit/8c77dde74a9d8f9007667cd1732c3329e0d52617) [`1d8ac2492`](https://github.com/npm/npm/commit/1d8ac2492196c4752b2e41b23d5ddc92780aaa24) [`552ff6d64`](https://github.com/npm/npm/commit/552ff6d64a5e3bcecb33b2a861c49a3396adad6d) [`09c734803`](https://github.com/npm/npm/commit/09c73480329e75e44fb8e55ca522f798be68d448) + [#20389](https://github.com/npm/npm/pull/20389) + Add new `npm audit` command. ([@iarna](https://github.com/iarna)) -* [`b58ec8eab`](https://github.com/npm/npm/commit/b58ec8eab3b4141e7f1b8b42d8cc24f716a804d8) - [#17626](https://github.com/npm/npm/pull/17626) - Integrators who were building their own copies of npm ran into issues because - `make install` and https://npmjs.com/install.sh weren't aware that - `npm install` creates links now when given a directory to work on. This does not impact folks - installing npm with `npm install -g npm`. +* [`be393a290`](https://github.com/npm/npm/commit/be393a290a5207dc75d3d70a32973afb3322306c) + [#20389](https://github.com/npm/npm/pull/20389) + Temporarily suppress git metadata till there's an opt-in. ([@iarna](https://github.com/iarna)) - -### DOC FIXES - -* [`10bef735e`](https://github.com/npm/npm/commit/10bef735e825acc8278827d34df415dfcd8c67d4) - [#17645](https://github.com/npm/npm/pull/17645) - Fix some github issue links in the 5.1.0 changelog - ([@schmod](https://github.com/schmod)) -* [`85fa9dcb2`](https://github.com/npm/npm/commit/85fa9dcb2f0b4f51b515358e0184ec82a5845227) - [#17634](https://github.com/npm/npm/pull/17634) - Fix typo in package-lock docs. - ([@sonicdoe](https://github.com/sonicdoe)) -* [`688699bef`](https://github.com/npm/npm/commit/688699befc2d147288c69a9405fb8354ecaebe36) - [#17628](https://github.com/npm/npm/pull/17628) - Recommend that folks looking for support join us on https://package.community/ or message - [@npm_support](https://twitter.com/npm_support) on Twitter. - ([@strugee](https://github.com/strugee)) - - -## v5.1.0 (2017-07-05): - -Hey y'all~ - -We've got some goodies for you here, including `npm@5`'s first semver-minor -release! This version includes a huge number of fixes, particularly for some of -the critical bugs users were running into after upgrading npm. You should -overall see a much more stable experience, and we're going to continue hacking -on fixes for the time being. Semver-major releases, specially for tools like -npm, are bound to cause some instability, and getting `npm@5` stable is the CLI -team's top priority for now! - -Not that bugfixes are the only things that landed, either: between improvements -that fell out of the bugfixes, and some really cool work by community members -like [@mikesherov](https://github.com/mikesherov), `npm@5.1.0` is **_twice as -fast_** as `npm@5.0.0` in some benchmarks. We're not stopping there, either: you -can expect a steady stream of speed improvements over the course of the year. -It's not _top_ priority, but we'll keep doing what we can to make sure npm saves -its users as much time as possible. - -Hang on to your seats. At **100 commits**, this release is a bit of a doozy. šŸ˜Ž - -### FEATURES - -Semver-minor releases, of course, mean that there's a new feature somewhere, -right? Here's what's bumping that number for us this time: - -* [`a09c1a69d`](https://github.com/npm/npm/commit/a09c1a69df05b753464cc1272cdccc6af0f4da5a) - [#16687](https://github.com/npm/npm/pull/16687) - Allow customizing the shell used to execute `run-script`s. - ([@mmkal](https://github.com/mmkal)) -* [`4f45ba222`](https://github.com/npm/npm/commit/4f45ba222e2ac6dbe6d696cb7a8e678bbda7c839) [`a48958598`](https://github.com/npm/npm/commit/a489585985540deed4edc03418636c9e97aa9e40) [`901bef0e1`](https://github.com/npm/npm/commit/901bef0e1ea806fc08d8d58744a9f813b6c020ab) - [#17508](https://github.com/npm/npm/pull/17508) - Add a new `requires` field to `package-lock.json` with information about the - _logical_ dependency tree. This includes references to the specific version - each package is intended to see, and can be used for many things, such as - [converting `package-lock.json` to other lockfile - formats](https://twitter.com/maybekatz/status/880578566907248640), various - optimizations, and verifying correctness of a package tree. - ([@iarna](https://github.com/iarna)) -* [`47e8fc8eb`](https://github.com/npm/npm/commit/47e8fc8eb9b5faccef9e03ab991cf37458c16249) - [#17508](https://github.com/npm/npm/pull/17508) - Make `npm ls` take package locks (and shrinkwraps) into account. This means - `npm ls` can now be used to see [which dependencies are - missing](https://twitter.com/maybekatz/status/880446509547794437), so long as - a package lock has been previously generated with it in. - ([@iarna](https://github.com/iarna)) -* [`f0075e7ca`](https://github.com/npm/npm/commit/f0075e7caa3e151424a254d7809ae4489ed8df90) - [#17508](https://github.com/npm/npm/pull/17508) - Take `package.json` changes into account when running installs -- if you - remove or add a dependency to `package.json` manually, npm will now pick that - up and update your tree and package lock accordingly. - ([@iarna](https://github.com/iarna)) -* [`83a5455aa`](https://github.com/npm/npm/commit/83a5455aac3c5cc2511ab504923b652b13bd66a0) - [#17205](https://github.com/npm/npm/pull/17205) - Add `npm udpate` as an alias for `npm update`, for symmetry with - `install`/`isntall`. - ([@gdassori](https://github.com/gdassori)) -* [`57225d394`](https://github.com/npm/npm/commit/57225d394b6174eb0be48393d8e18da0991f67b6) - [#17120](https://github.com/npm/npm/pull/17120) - npm will no longer warn about `preferGlobal`, and the option is now - deprecated. - ([@zkat](https://github.com/zkat)) -* [`82df7bb16`](https://github.com/npm/npm/commit/82df7bb16fc29c47a024db4a8c393e55f883744b) - [#17351](https://github.com/npm/npm/pull/17351) - As some of you may already know `npm build` doesn't do what a lot of people - expect: It's mainly an npm plumbing command, and is part of the more familiar - `npm rebuild` command. That said, a lot of users assume that this is the way - to run an npm `run-script` named `build`, which is an incredibly common script - name to use. To clarify things for users, and encourage them to use `npm run - build` instead, npm will now warn if `npm build` is run without any arguments. - ([@lennym](https://github.com/lennym)) - -### PERFORMANCE - -* [`59f86ef90`](https://github.com/npm/npm/commit/59f86ef90a58d8dc925c9613f1c96e68bee5ec7b) [`43be9d222`](https://github.com/npm/npm/commit/43be9d2222b23ebb0a427ed91824ae217e6d077a) [`e906cdd98`](https://github.com/npm/npm/commit/e906cdd980b4722e66618ce295c682b9a8ffaf8f) - [#16633](https://github.com/npm/npm/pull/16633) - npm now parallelizes tarball extraction across multiple child process workers. - This can significantly speed up installations, specially when installing from - cache, and will improve with number of processors. - ([@zkat](https://github.com/zkat)) -* [`e0849878d`](https://github.com/npm/npm/commit/e0849878dd248de8988c2ef3fc941054625712ca) - [#17441](https://github.com/npm/npm/pull/17441) - Avoid building environment for empty lifecycle scripts. This change alone - accounted for as much as a 15% speed boost for npm installations by outright - skipping entire steps of the installer when not needed. - ([@mikesherov](https://github.com/mikesherov)) -* [`265c2544c`](https://github.com/npm/npm/commit/265c2544c8ded10854909243482e6437ed03c261) - [npm/hosted-git-info#24](https://github.com/npm/hosted-git-info/pull/24) - `hosted-git-info@2.5.0`: Add caching to `fromURL`, which gets called many, - many times by the installer. This improved installation performance by around - 10% on realistic application repositories. - ([@mikesherov](https://github.com/mikesherov)) -* [`901d26cb`](https://github.com/npm/npm/commit/901d26cb656e7e773d9a38ef4eac9263b95e07c8) - [npm/read-package-json#20](https://github.com/npm/read-package-json/pull/70) - `read-package-json@2.0.9`: Speed up installs by as much as 20% by - reintroducing a previously-removed cache and making it actually be correct - this time around. - ([@mikesherov](https://github.com/mikesherov)) -* [`44e37045d`](https://github.com/npm/npm/commit/44e37045d77bc40adf339b423d42bf5e9b4d4d91) - Eliminate `Bluebird.promisifyAll` from our codebase. +* [`8e713344f`](https://github.com/npm/npm/commit/8e713344f6e0828ddfb7733df20d75e95a5382d8) + [#20389](https://github.com/npm/npm/pull/20389) + Document the new command. ([@iarna](https://github.com/iarna)) -* [`3b4681b53`](https://github.com/npm/npm/commit/3b4681b53db7757985223932072875d099694677) - [#17508](https://github.com/npm/npm/pull/17508) - Stop calling `addBundle` on locked deps, speeding up the - `package-lock.json`-based fast path. +* + [#20389](https://github.com/npm/npm/pull/20389) + Default audit to off when running the npm test suite itself. ([@iarna](https://github.com/iarna)) -### BUGFIXES +### MORE `package-lock.json` FORMAT CHANGES?! -* [#17508](https://github.com/npm/npm/pull/17508) - This is a big PR that fixes a variety of issues when installing from package - locks. If you were previously having issues with missing dependencies or - unwanted removals, this might have fixed it: - * It introduces a new `package-lock.json` field, called `requires`, which tracks which modules a given module requires. - * It fixes [#16839](https://github.com/npm/npm/issues/16839) which was caused by not having this information available, particularly when git dependencies were involved. - * It fixes [#16866](https://github.com/npm/npm/issues/16866), allowing the `package.json` to trump the `package-lock.json`. - * `npm ls` now loads the shrinkwrap, which opens the door to showing a full tree of dependencies even when nothing is yet installed. (It doesn't do that yet though.) - ([@iarna](https://github.com/iarna)) -* [`656544c31`](https://github.com/npm/npm/commit/656544c31cdef3cef64fc10c24f03a8ae2685e35) [`d21ab57c3`](https://github.com/npm/npm/commit/d21ab57c3ef4f01d41fb6c2103debe884a17dc22) - [#16637](https://github.com/npm/npm/pull/16637) - Fix some cases where `npm prune` was leaving some dependencies unpruned if - to-be-pruned dependencies depended on them. - ([@exogen](https://github.com/exogen)) -* [`394436b09`](https://github.com/npm/npm/commit/394436b098dcca2d252061f95c4eeb92c4a7027c) - [#17552](https://github.com/npm/npm/pull/17552) - Make `refresh-package-json` re-verify the package platform. This fixes an - issue most notably experienced by Windows users using `create-react-app` where - `fsevents` would not short-circuit and cause a crash during its - otherwise-skipped native build phase. - ([@zkat](https://github.com/zkat)) -* [`9e5a94354`](https://github.com/npm/npm/commit/9e5a943547b29c8d022192afd9398b3a136a7e5a) - [#17590](https://github.com/npm/npm/pull/17590) - Fix an issue where `npm@5` would crash when trying to remove packages - installed with `npm@<5`. - ([@iarna](https://github.com/iarna)) -* [`c3b586aaf`](https://github.com/npm/npm/commit/c3b586aafa9eabac572eb6e2b8a7266536dbc65b) - [#17141](https://github.com/npm/npm/issues/17141) - Don't update the package.json when modifying packages that don't go there. - This was previously causing `package.json` to get a `"false": {}` field added. - ([@iarna](https://github.com/iarna)) -* [`d04a23de2`](https://github.com/npm/npm/commit/d04a23de21dd9991b32029d839b71e10e07b400d) [`4a5b360d5`](https://github.com/npm/npm/commit/4a5b360d561f565703024085da0927ccafe8793e) [`d9e53db48`](https://github.com/npm/npm/commit/d9e53db48ca227b21bb67df48c9b3580cb390e9e) - `pacote@2.7.38`: - * [zkat/pacote#102](https://github.com/zkat/pacote/pull/102) Fix issue with tar extraction and special characters. - * Enable loose semver parsing in some missing corner cases. - ([@colinrotherham](https://github.com/colinrotherham), [@zkat](https://github.com/zkat), [@mcibique](https://github.com/mcibique)) -* [`e2f815f87`](https://github.com/npm/npm/commit/e2f815f87676b7c50b896e939cee15a01aa976e4) - [#17104](https://github.com/npm/npm/pull/17104) - Write an empty str and wait for flush to exit to reduce issues with npm - exiting before all output is complete when it's a child process. - ([@zkat](https://github.com/zkat)) -* [`835fcec60`](https://github.com/npm/npm/commit/835fcec601204971083aa3a281c3a9da6061a7c2) - [#17060](https://github.com/npm/npm/pull/17060) - Make git repos with prepare scripts always install with both dev and prod - flags. - ([@intellix](https://github.com/intellix)) -* [`f1dc8a175`](https://github.com/npm/npm/commit/f1dc8a175eed56f1ed23bd5773e5e10beaf6cb31) - [#16879](https://github.com/npm/npm/pull/16879) - Fix support for `always-auth` and `_auth`. They are now both available in both - unscoped and registry-scoped configurations. - ([@jozemlakar](https://github.com/jozemlakar)) -* [`ddd8a1ca2`](https://github.com/npm/npm/commit/ddd8a1ca2fa3377199af74ede9d0c1a406d19793) - Serialize package specs to prevent `[object Object]` showing up in logs during - extraction. +* [`820f74ae2`](https://github.com/npm/npm/commit/820f74ae22b7feb875232d46901cc34e9ba995d6) + [#20384](https://github.com/npm/npm/pull/20384) + Add `from` field back into package-lock for git dependencies. This will give + npm the information it needs to figure out whether git deps are valid, + specially when running with legacy install metadata or in + `--package-lock-only` mode when there's no `node_modules`. This should help + remove a significant amount of git-related churn on the lock-file. ([@zkat](https://github.com/zkat)) -* [`99ef3b52c`](https://github.com/npm/npm/commit/99ef3b52caa7507e87a4257e622f8964b1c1f5f3) - [#17505](https://github.com/npm/npm/pull/17505) - Stop trying to commit updated `npm-shrinkwrap.json` and `package-lock.json` if - they're `.gitignore`d. - ([@zkat](https://github.com/zkat)) -* [`58be2ec59`](https://github.com/npm/npm/commit/58be2ec596dfb0353ad2570e6750e408339f1478) - Make sure uid and gid are getting correctly set even when they're `0`. This - should fix some Docker-related issues with bad permissions/broken ownership. - ([@rgrove](https://github.com/rgrove)) - ([@zkat](https://github.com/zkat)) -* [`9d1e3b6fa`](https://github.com/npm/npm/commit/9d1e3b6fa01bb563d76018ee153259d9507658cf) - [#17506](https://github.com/npm/npm/pull/17506) - Skip writing package.json and locks if on-disk version is identical to the new - one. - ([@zkat](https://github.com/zkat)) -* [`3fc6477a8`](https://github.com/npm/npm/commit/3fc6477a89773786e6c43ef43a23e5cdc662ff8e) - [#17592](https://github.com/npm/npm/pull/17592) - Fix an issue where `npm install -g .` on a package with no `name` field would - cause the entire global `node_modules` directory to be replaced with a symlink - to `$CWD`. lol. - ([@iarna](https://github.com/iarna)) -* [`06ba0a14a`](https://github.com/npm/npm/commit/06ba0a14a6c1c8cdcc8c062b68c8c63041b0cec0) - [#17591](https://github.com/npm/npm/pull/17591) - Fix spurious removal reporting: if you tried to remove something that didn't - actually exist, npm would tell you it removed 1 package even though there was - nothing to do. - ([@iarna](https://github.com/iarna)) -* [`20ff05f8`](https://github.com/npm/npm/commit/20ff05f8fe0ad8c36e1323d30b63b4d2ff7e11ef) - [#17629](https://github.com/npm/npm/pull/17629) - When removing a link, keep dependencies installed inside of it instead of - removing them, if the link is outside the scope of the current project. This - fixes an issue where removing globally-linked packages would remove all their - dependencies in the source directory, as well as some ergonomic issues when - using links in other situations. - ([@iarna](https://github.com/iarna)) -### DOCS +### BUGFIXES -* [`fd5fab595`](https://github.com/npm/npm/commit/fd5fab5955a20a9bb8c0e77092ada1435f73a8d2) - [#16441](https://github.com/npm/npm/pull/16441) - Add spec for `npm-shrinkwrap.json` and `package-lock.json` from RFC. +* [`9d5d0a18a`](https://github.com/npm/npm/commit/9d5d0a18a5458655275056156b5aa001140ae4d7) + [#20358](https://github.com/npm/npm/pull/20358) + `npm install-test` (aka `npm it`) will no longer generate `package-lock.json` + when running with `--no-package-lock` or `package-lock=false`. + ([@raymondfeng](https://github.com/raymondfeng)) +* [`e4ed976e2`](https://github.com/npm/npm/commit/e4ed976e20b7d1114c920a9dc9faf351f89a31c9) + [`2facb35fb`](https://github.com/npm/npm/commit/2facb35fbfbbc415e693d350b67413a66ff96204) + [`9c1eb945b`](https://github.com/npm/npm/commit/9c1eb945be566e24cbbbf186b0437bdec4be53fc) + [#20390](https://github.com/npm/npm/pull/20390) + Fix a scenario where a git dependency had a comittish associated with it + that was not a complete commitid. `npm` would never consider that entry + in the `package.json` as matching the entry in the `package-lock.json` and + this resulted in inappropriate pruning or reinstallation of git + dependencies. This has been addressed in two ways, first, the addition of the + `from` field as described in [#20384](https://github.com/npm/npm/pull/20384) means + we can exactly match the `package.json`. Second, when that's missing (when working with + older `package-lock.json` files), we assume that the match is ok. (If + it's not, we'll fix it up when a real installation is done.) ([@iarna](https://github.com/iarna)) -* [`9589c1ccb`](https://github.com/npm/npm/commit/9589c1ccb3f794abaaa48c2a647ada311dd881ef) - [#17451](https://github.com/npm/npm/pull/17451) - Fix typo in changelog. - ([@watilde](https://github.com/watilde)) -* [`f8e76d856`](https://github.com/npm/npm/commit/f8e76d8566ae1965e57d348df74edad0643b66a6) - [#17370](https://github.com/npm/npm/pull/17370) - Correct the default prefix config path for Windows operating systems in the - documentation for npm folders. - ([@kierendixon](https://github.com/kierendixon)) -* [`d0f3b5a12`](https://github.com/npm/npm/commit/d0f3b5a127718b0347c6622a2b9c28341c530d36) - [#17369](https://github.com/npm/npm/pull/17369) - Fix `npm-config` reference to `userconfig` & `globalconfig` environment - variables. - ([@racztiborzoltan](https://github.com/racztiborzoltan)) -* [`87629880a`](https://github.com/npm/npm/commit/87629880a71baec352c1b5345bc29268d6212467) - [#17336](https://github.com/npm/npm/pull/17336) - Remove note in docs about `prepublish` being entirely removed. - ([@Hirse](https://github.com/Hirse)) -* [`a1058afd9`](https://github.com/npm/npm/commit/a1058afd9a7a569bd0ac65b86eadd4fe077a7221) - [#17169](https://github.com/npm/npm/pull/17169) - Document `--no-package-lock` flag. - ([@leggsimon](https://github.com/leggsimon)) -* [`32fc6e41a`](https://github.com/npm/npm/commit/32fc6e41a2ce4dbcd5ce1e5f291e2e2efc779d48) - [#17250](https://github.com/npm/npm/pull/17250) - Fix a typo in the shrinkwrap docs. - ([@Zarel](https://github.com/Zarel)) -* [`f19bd3c8c`](https://github.com/npm/npm/commit/f19bd3c8cbd37c8a99487d6b5035282580ac3e9d) - [#17249](https://github.com/npm/npm/pull/17249) - Fix a package-lock.json cross-reference link. - ([@not-an-aardvark](https://github.com/not-an-aardvark)) -* [`153245edc`](https://github.com/npm/npm/commit/153245edc4845db670ada5e95ef384561706a751) - [#17075](https://github.com/npm/npm/pull/17075/files) - Fix a typo in `npm-config` docs. - ([@KennethKinLum](https://github.com/KennethKinLum)) -* [`c9b534a14`](https://github.com/npm/npm/commit/c9b534a148818d1a97787c0dfdba5f64ce3618a6) - [#17074](https://github.com/npm/npm/pull/17074) - Clarify config documention with multiple boolean flags. - ([@KennethKinLum](https://github.com/KennethKinLum)) -* [`e111b0a40`](https://github.com/npm/npm/commit/e111b0a40c4bc6691d7b8d67ddce5419e67bfd27) - [#16768](https://github.com/npm/npm/pull/16768) - Document the `-l` option to `npm config list`. - ([@happylynx](https://github.com/happylynx)) -* [`5a803ebad`](https://github.com/npm/npm/commit/5a803ebadd61229bca3d64fb3ef1981729b2548e) - [#16548](https://github.com/npm/npm/pull/16548) - Fix permissions for documentation files. Some of them had `+x` set. (???) - ([@metux](https://github.com/metux)) -* [`d57d4f48c`](https://github.com/npm/npm/commit/d57d4f48c6cd00fdf1e694eb49e9358071d8e105) - [#17319](https://github.com/npm/npm/pull/17319) - Document that the `--silent` option for `npm run-script` can be used to - suppress `npm ERR!` output on errors. - ([@styfle](https://github.com/styfle)) - -### MISC - -Not all contributions need to be visible features, docs, or bugfixes! It's super -helpful when community members go over our code and help clean it up, too! - -* [`9e5b76140`](https://github.com/npm/npm/commit/9e5b76140ffdb7dcd12aa402793644213fb8c5d7) - [#17411](https://github.com/npm/npm/pull/17411) - Convert all callback-style `move` usage to use Promises. - ([@vramana](https://github.com/vramana)) -* [`0711c08f7`](https://github.com/npm/npm/commit/0711c08f779ac641ec42ecc96f604c8861008b28) - [#17394](https://github.com/npm/npm/pull/17394) - Remove unused argument in `deepSortObject`. - ([@vramana](https://github.com/vramana)) -* [`7d650048c`](https://github.com/npm/npm/commit/7d650048c8ed5faa0486492f1eeb698e7383e32f) - [#17563](https://github.com/npm/npm/pull/17563) - Refactor some code to use `Object.assign`. - ([@vramana](https://github.com/vramana)) -* [`993f673f0`](https://github.com/npm/npm/commit/993f673f056aea5f602ea04b1e697b027c267a2d) - [#17600](https://github.com/npm/npm/pull/17600) - Remove an old comment. - ([@vramana](https://github.com/vramana)) - -## v5.0.4 (2017-06-13): - -Hey y'all. This is another minor patch release with a variety of little fixes -we've been accumulating~ - -* [`f0a37ace9`](https://github.com/npm/npm/commit/f0a37ace9ab7879cab20f2b0fcd7840bfc305feb) - Fix `npm doctor` when hitting registries without `ping`. - ([@zkat](https://github.com/zkat)) -* [`64f0105e8`](https://github.com/npm/npm/commit/64f0105e81352b42b72900d83b437b90afc6d9ce) - Fix invalid format error when setting cache-related headers. - ([@zkat](https://github.com/zkat)) -* [`d2969c80e`](https://github.com/npm/npm/commit/d2969c80e4178faebf0f7c4cab6eb610dd953cc6) - Fix spurious `EINTEGRITY` issue. - ([@zkat](https://github.com/zkat)) -* [`800cb2b4e`](https://github.com/npm/npm/commit/800cb2b4e2d0bd00b5c9082a896f2110e907eb0b) - [#17076](https://github.com/npm/npm/pull/17076) - Use legacy `from` field to improve upgrade experience from legacy shrinkwraps - and installs. - ([@zkat](https://github.com/zkat)) -* [`4100d47ea`](https://github.com/npm/npm/commit/4100d47ea58b4966c02604f71350b5316108df6a) - [#17007](https://github.com/npm/npm/pull/17007) - Restore loose semver parsing to match older npm behavior when running into - invalid semver ranges in dependencies. - ([@zkat](https://github.com/zkat)) -* [`35316cce2`](https://github.com/npm/npm/commit/35316cce2ca2d8eb94161ec7fe7e8f7bec7b3aa7) - [#17005](https://github.com/npm/npm/pull/17005) - Emulate npm@4's behavior of simply marking the peerDep as invalid, instead of - crashing. - ([@zkat](https://github.com/zkat)) -* [`e7e8ee5c5`](https://github.com/npm/npm/commit/e7e8ee5c57c7238655677e118a8809b652019f53) - [#16937](https://github.com/npm/npm/pull/16937) - Workaround for separate bug where `requested` was somehow null. - ([@forivall](https://github.com/forivall)) -* [`2d9629bb2`](https://github.com/npm/npm/commit/2d9629bb2043cff47eaad2654a64d2cef5725356) - Better logging output for git errors. - ([@zkat](https://github.com/zkat)) -* [`2235aea73`](https://github.com/npm/npm/commit/2235aea73569fb9711a06fa6344ef31247177dcd) - More scp-url fixes: parsing only worked correctly when a committish was - present. - ([@zkat](https://github.com/zkat)) -* [`80c33cf5e`](https://github.com/npm/npm/commit/80c33cf5e6ef207450949764de41ea96538c636e) - Standardize package permissions on tarball extraction, instead of using perms - from the tarball. This matches previous npm behavior and fixes a number of - incompatibilities in the wild. - ([@zkat](https://github.com/zkat)) -* [`2b1e40efb`](https://github.com/npm/npm/commit/2b1e40efba0b3d1004259efa4275cf42144e3ce3) - Limit shallow cloning to hosts which are known to support it. - ([@zkat](https://github.com/zkat)) - -## v5.0.3 (2017-06-05) -Happy Monday, y'all! We've got another npm release for you with the fruits of -our ongoing bugsquashing efforts. You can expect at least one more this week, -but probably more -- and as we announced last week, we'll be merging fixes more -rapidly into the `npmc` canary so you can get everything as soon as possible! -Hope y'all are enjoying npm5 in the meantime, and don't hesitate to file issues -for anything you find! The goal is to get this release rock-solid as soon as we -can. šŸ’š +### DEPENDENCIES -* [`6e12a5cc0`](https://github.com/npm/npm/commit/6e12a5cc022cb5a157a37df7283b6d7b3d49bdab) - Bump several dependencies to get improvements and bugfixes: - * `cacache`: content files (the tarballs) are now read-only. - * `pacote`: fix failing clones with bad heads, send extra TLS-related opts to proxy, enable global auth configurations and `_auth`-based auth. - * `ssri`: stop crashing with `can't call method find of undefined` when running into a weird `opts.integrity`/`opts.algorithms` conflict during verification. - ([@zkat](https://github.com/zkat)) -* [`89cc8e3e1`](https://github.com/npm/npm/commit/89cc8e3e12dad67fd9844accf4d41deb4c180c5c) - [#16917](https://github.com/npm/npm/pull/16917) - Send `ca`, `cert` and `key` config through to network layer. - ([@colinrotherham](https://github.com/colinrotherham)) -* [`6a9b51c67`](https://github.com/npm/npm/commit/6a9b51c67ba3df0372991631992748329b84f2e7) - [#16929](https://github.com/npm/npm/pull/16929) - Send `npm-session` header value with registry requests again. - ([@zarenner](https://github.com/zarenner)) -* [`662a15ab7`](https://github.com/npm/npm/commit/662a15ab7e790e87f5e5a35252f05d5a4a0724a1) - Fix `npm doctor` so it stop complaining about read-only content files in the - cache. - ([@zkat](https://github.com/zkat)) -* [`191d10a66`](https://github.com/npm/npm/commit/191d10a6616d72e26d89fd00f5a4f6158bfbc526) - [#16918](https://github.com/npm/npm/pull/16918) - Clarify prepublish deprecation message. - ([@Hirse](https://github.com/Hirse)) - -## v5.0.2 (2017-06-02) - -Here's another patch release, soon after the other! - -This particular release includes a slew of fixes to npm's git support, which was -causing some issues for a chunk of people, specially those who were using -self-hosted/Enterprise repos. All of those should be back in working condition -now. - -There's another shiny thing you might wanna know about: npm has a Canary release -now! The `npm5` experiment we did during our beta proved to be incredibly -successful: users were able to have a tight feedback loop between reports and -getting the bugfixes they needed, and the CLI team was able to roll out -experimental patches and have the community try them out right away. So we want -to keep doing that. - -From now on, you'll be able to install the 'npm canary' with `npm i -g npmc`. -This release will be a separate binary (`npmc`. Because canary. Get it?), which -will update independently of the main CLI. Most of the time, this will track -`release-next` or something close to it. We might occasionally toss experimental -branches in there to see if our more adventurous users run into anything -interesting with it. For example, the current canary (`npmc@5.0.1-canary.6`) -includes an [experimental multiproc -branch](https://github.com/npm/npm/pull/16633) that parallelizes tarball -extraction across multiple processes. - -If you find any issues while running the canary version, please report them and -let us know it came from `npmc`! It would be tremendously helpful, and finding -things early is a huge reason to have it there. Happy hacking! - -### A NOTE ABOUT THE ISSUE TRACKER - -Just a heads up: We're preparing to do a massive cleanup of the issue tracker. -It's been a long time since it was something we could really keep up with, and -we didn't have a process for dealing with it that could actually be sustainable. - -We're still sussing the details out, and we'll talk about it more when we're -about to do it, but the plan is essentially to close old, abandoned issues and -start over. We will also [add some automation](https://github.com/probot) around -issue management so that things that we can't keep up with don't just stay -around forever. - -Stay tuned! - -### GIT YOLO - -* [`1f26e9567`](https://github.com/npm/npm/commit/1f26e9567a6d14088704e121ebe787c38b6849a4) - `pacote@2.7.27`: Fixes installing committishes that look like semver, even - though they're not using the required `#semver:` syntax. - ([@zkat](https://github.com/zkat)) -* [`85ea1e0b9`](https://github.com/npm/npm/commit/85ea1e0b9478551265d03d545e7dc750b9edf547) - `npm-package-arg@5.1.1`: This includes the npa git-parsing patch to make it so - non-hosted SCP-style identifiers are correctly handled. Previously, npa would - mangle them (even though hosted-git-info is doing the right thing for them). +* [`1c1f89b73`](https://github.com/npm/npm/commit/1c1f89b7319b2eef6adee2530c4619ac1c0d83cf) + `libnpx@10.2.0` ([@zkat](https://github.com/zkat)) - -### COOL NEW OUTPUT - -The new summary output has been really well received! One downside that reared -its head as more people used it, though, is that it doesn't really tell you -anything about the toplevel versions it installed. So, if you did `npm i -g -foo`, it would just say "added 1 package". This patch by -[@rmg](https://github.com/rmg) keeps things concise while still telling you -what you got! So now, you'll see something like this: - -``` -$ npm i -g foo bar -+ foo@1.2.3 -+ bar@3.2.1 -added 234 packages in .005ms -``` - -* [`362f9fd5b`](https://github.com/npm/npm/commit/362f9fd5bec65301082416b4292b8fe3eb7f824a) - [#16899](https://github.com/npm/npm/pull/16899) - For every package that is given as an argument to install, print the name and - version that was actually installed. - ([@rmg](https://github.com/rmg)) - -### OTHER BUGFIXES - -* [`a47593a98`](https://github.com/npm/npm/commit/a47593a98a402143081d7077d2ac677d13083010) - [#16835](https://github.com/npm/npm/pull/16835) - Fix a crash while installing with `--no-shrinkwrap`. - ([@jacknagel](https://github.com/jacknagel)) - -### DOC UPATES - -* [`89e0cb816`](https://github.com/npm/npm/commit/89e0cb8165dd9c3c7ac74d531617f367099608f4) - [#16818](https://github.com/npm/npm/pull/16818) - Fixes a spelling error in the docs. Because the CLI team has trouble spelling - "package", I guess. - ([@ankon](https://github.com/ankon)) -* [`c01fbc46e`](https://github.com/npm/npm/commit/c01fbc46e151bcfb359fd68dd7faa392789b4f55) - [#16895](https://github.com/npm/npm/pull/16895) - Remove `--save` from `npm init` instructions, since it's now the default. - ([@jhwohlgemuth](https://github.com/jhwohlgemuth)) -* [`80c42d218`](https://github.com/npm/npm/commit/80c42d2181dd4d1b79fcee4e9233df268dfb30b7) - Guard against cycles when inflating bundles, as symlinks are bundles now. - ([@iarna](https://github.com/iarna)) -* [`7fe7f8665`](https://github.com/npm/npm/commit/7fe7f86658798db6667df89afc75588c0e43bc94) - [#16674](https://github.com/npm/npm/issues/16674) - Write the builtin config for `npmc`, not just `npm`. This is hardcoded for npm - self-installations and is needed for Canary to work right. +* [`242d8a647`](https://github.com/npm/npm/commit/242d8a6478b725778c00be8ba3dc85f367006a61) + `pacote@8.1.0` ([@zkat](https://github.com/zkat)) -### DEP UPDATES - -* [`63df4fcdd`](https://github.com/npm/npm/commit/63df4fcddc7445efb50cc7d8e09cdd45146d3e39) - [#16894](https://github.com/npm/npm/pull/16894) - [`node-gyp@3.6.2`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md#v362-2017-06-01): - Fixes an issue parsing SDK versions on Windows, among other things. - ([@refack](https://github.com/refack)) -* [`5bb15c3c4`](https://github.com/npm/npm/commit/5bb15c3c4f0d7d77c73fd6dafa38ac36549b6e00) - `read-package-tree@5.1.6`: Fixes some racyness while reading the tree. - ([@iarna](https://github.com/iarna)) -* [`a6f7a52e7`](https://github.com/npm/npm/commit/a6f7a52e7) - `aproba@1.1.2`: Remove nested function declaration for speed up - ([@mikesherov](https://github.com/mikesherov)) - -## v5.0.1 (2017-05-31): - -Hey y'all! Hope you're enjoying the new npm! - -As you all know, fresh software that's gone through major overhauls tends to -miss a lot of spots the old one used to handle well enough, and `npm@5` is no -exception. The CLI team will be doing faster release cycles that go directly to -the `latest` tag for a couple of weeks while 5 stabilizes a bit and we're -confident the common low-hanging fruit people are running into are all taken -care of. +### DOCS -With that said: this is our first patch release! The biggest focus is fixing up -a number of git-related issues that folks ran into right out the door. It also -fixes other things, like some proxy/auth-related issues, and even has a neat -speed boost! (You can expect more speed bumps in the coming releases as pending -work starts landing, too!) +* [`a1c77d614`](https://github.com/npm/npm/commit/a1c77d614adb4fe6769631b646b817fd490d239c) + [#20331](https://github.com/npm/npm/pull/20331) + Fix broken link to 'private-modules' page. The redirect went away when the new + npm website went up, but the new URL is better anyway. + ([@vipranarayan14](https://github.com/vipranarayan14)) +* [`ad7a5962d`](https://github.com/npm/npm/commit/ad7a5962d758efcbcfbd9fda9a3d8b38ddbf89a1) + [#20279](https://github.com/npm/npm/pull/20279) + Document the `--if-present` option for `npm run-script`. + ([@aleclarson](https://github.com/aleclarson)) -Thanks everyone who's been reporting issues and submitting patches! +## v6.0.0-next.1 (2018-04-12): -### BUGFIXES +### NEW FEATURES -* [`e61e68dac`](https://github.com/npm/npm/commit/e61e68dac4fa51c0540a064204a75b19f8052e58) - [#16762](https://github.com/npm/npm/pull/16762) - Make `npm publish` obey the `--tag` flag again. +* [`a9e722118`](https://github.com/npm/npm/commit/a9e7221181dc88e14820d0677acccf0648ac3c5a) + [#20256](https://github.com/npm/npm/pull/20256) + Add support for managing npm webhooks. This brings over functionality + previously provided by the [`wombat`](https://www.npmjs.com/package/wombat) CLI. ([@zkat](https://github.com/zkat)) -* [`923fd58d3`](https://github.com/npm/npm/commit/923fd58d312f40f8c17b232ad1dfc8e2ff622dbd) - [#16749](https://github.com/npm/npm/pull/16749) - Speed up installations by nearly 20% by... removing one line of code. (hah) - ([@mikesherov](https://github.com/mikesherov)) -* [`9aac984cb`](https://github.com/npm/npm/commit/9aac984cbbfef22182ee42b51a193c0b47146ad6) - Guard against a particular failure mode for a bug still being hunted down. +* [`8a1a64203`](https://github.com/npm/npm/commit/8a1a64203cca3f30999ea9e160eb63662478dcee) + [#20126](https://github.com/npm/npm/pull/20126) + Add `npm cit` command that's equivalent of `npm ci && npm t` that's equivalent of `npm it`. + ([@SimenB](https://github.com/SimenB)) +* [`fe867aaf1`](https://github.com/npm/npm/commit/fe867aaf19e924322fe58ed0cf0a570297a96559) + [`49d18b4d8`](https://github.com/npm/npm/commit/49d18b4d87d8050024f8c5d7a0f61fc2514917b1) + [`ff6b31f77`](https://github.com/npm/npm/commit/ff6b31f775f532bb8748e8ef85911ffb35a8c646) + [`78eab3cda`](https://github.com/npm/npm/commit/78eab3cdab6876728798f876d569badfc74ce68f) + The `requires` field in your lock-file will be upgraded to use ranges from + versions on your first use of npm. ([@iarna](https://github.com/iarna)) -* [`80ab521f1`](https://github.com/npm/npm/commit/80ab521f18d34df109de0c5dc9eb1cde5ff6d7e8) - Pull in dependency updates for various core deps: - * New `pacote` fixes several git-related bugs. - * `ssri` update fixes crash on early node@4 versions. - * `make-fetch-happen` update fixes proxy authentication issue. - * `npm-user-validate` adds regex for blocking usernames with illegal chars. - ([@zkat](https://github.com/zkat)) -* [`7e5ce87b8`](https://github.com/npm/npm/commit/7e5ce87b84880c7433ee4c07d2dd6ce8806df436) - `pacote@2.7.26`: - Fixes various other git issues related to commit hashes. +* [`cf4d7b4de`](https://github.com/npm/npm/commit/cf4d7b4de6fa241a656e58f662af0f8d7cd57d21) + [#20257](https://github.com/npm/npm/pull/20257) + Add shasum and integrity to the new `npm view` output. ([@zkat](https://github.com/zkat)) -* [`acbe85bfc`](https://github.com/npm/npm/commit/acbe85bfc1a68d19ca339a3fb71da0cffbf58926) - [#16791](https://github.com/npm/npm/pull/16791) - `npm view` was calling `cb` prematurely and giving partial output when called - in a child process. - ([@zkat](https://github.com/zkat)) -* [`ebafe48af`](https://github.com/npm/npm/commit/ebafe48af91f702ccefc8c619d52fed3b8dfd3c7) - [#16750](https://github.com/npm/npm/pull/16750) - Hamilpatch the Musical: Talk less, complete more. - ([@aredridel](https://github.com/aredridel)) - -### DOCUMENTATION - -* [`dc2823a6c`](https://github.com/npm/npm/commit/dc2823a6c5fc098041e61515c643570819d059d2) - [#16799](https://github.com/npm/npm/pull/16799) - Document that `package-lock.json` is never allowed in tarballs. - ([@sonicdoe](https://github.com/sonicdoe)) -* [`f3cb84b44`](https://github.com/npm/npm/commit/f3cb84b446c51d628ee0033cdf13752c15b31a29) - [#16771](https://github.com/npm/npm/pull/16771) - Fix `npm -l` usage information for the `test` command. - ([@grawlinson](https://github.com/grawlinson)) - -### OTHER CHANGES - -* [`661262309`](https://github.com/npm/npm/commit/66126230912ab5ab35287b40a9908e036fa73994) - [#16756](https://github.com/npm/npm/pull/16756) - remove unused argument - ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) -* [`c3e0b4287`](https://github.com/npm/npm/commit/c3e0b4287ea69735cc367aa7bb7e7aa9a6d9804b) - [#16296](https://github.com/npm/npm/pull/16296) - preserve same name convention for command - ([@desfero](https://github.com/desfero)) -* [`9f814831d`](https://github.com/npm/npm/commit/9f814831d330dde7702973186aea06caaa77ff31) - [#16757](https://github.com/npm/npm/pull/16757) - remove unused argument - ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) -* [`3cb843239`](https://github.com/npm/npm/commit/3cb8432397b3666d88c31131dbb4599016a983ff) - minor linter fix - ([@zkat](https://github.com/zkat)) - -## v5.0.0 (2017-05-25) - -Wowowowowow npm@5! - -This release marks months of hard work for the young, scrappy, and hungry CLI -team, and includes some changes we've been hoping to do for literally years. -npm@5 takes npm a pretty big step forward, significantly improving its -performance in almost all common situations, fixing a bunch of old errors due to -the architecture, and just generally making it more robust and fault-tolerant. -It comes with changes to make life easier for people doing monorepos, for users -who want consistency/security guarantees, and brings semver support to git -dependencies. See below for all the deets! - -### Breaking Changes - -* Existing npm caches will no longer be used: you will have to redownload any cached packages. There is no tool or intention to reuse old caches. ([#15666](https://github.com/npm/npm/pull/15666)) - -* `npm install ./packages/subdir` will now create a symlink instead of a regular installation. `file://path/to/tarball.tgz` will not change -- only directories are symlinked. ([#15900](https://github.com/npm/npm/pull/15900)) - -* npm will now scold you if you capitalize its name. seriously it will fight you. - -* [npm will `--save` by default now](https://twitter.com/maybekatz/status/859229741676625920). Additionally, `package-lock.json` will be automatically created unless an `npm-shrinkwrap.json` exists. ([#15666](https://github.com/npm/npm/pull/15666)) - -* Git dependencies support semver through `user/repo#semver:^1.2.3` ([#15308](https://github.com/npm/npm/pull/15308)) ([#15666](https://github.com/npm/npm/pull/15666)) ([@sankethkatta](https://github.com/sankethkatta)) - -* Git dependencies with `prepare` scripts will have their `devDependencies` installed, and `npm install` run in their directory before being packed. - -* `npm cache` commands have been rewritten and don't really work anything like they did before. ([#15666](https://github.com/npm/npm/pull/15666)) - -* `--cache-min` and `--cache-max` have been deprecated. ([#15666](https://github.com/npm/npm/pull/15666)) - -* Running npm while offline will no longer insist on retrying network requests. npm will now immediately fall back to cache if possible, or fail. ([#15666](https://github.com/npm/npm/pull/15666)) - -* package locks no longer exclude `optionalDependencies` that failed to build. This means package-lock.json and npm-shrinkwrap.json should now be cross-platform. ([#15900](https://github.com/npm/npm/pull/15900)) - -* If you generated your package lock against registry A, and you switch to registry B, npm will now try to [install the packages from registry B, instead of A](https://twitter.com/maybekatz/status/862834964932435969). If you want to use different registries for different packages, use scope-specific registries (`npm config set @myscope:registry=https://myownregist.ry/packages/`). Different registries for different unscoped packages are not supported anymore. - -* Shrinkwrap and package-lock no longer warn and exit without saving the lockfile. - -* Local tarballs can now only be installed if they have a file extensions `.tar`, `.tar.gz`, or `.tgz`. - -* A new loglevel, `notice`, has been added and set as default. -* One binary to rule them all: `./cli.js` has been removed in favor of `./bin/npm-cli.js`. In case you were doing something with `./cli.js` itself. ([#12096](https://github.com/npm/npm/pull/12096)) ([@watilde](https://github.com/watilde)) - -* Stub file removed ([#16204](https://github.com/npm/npm/pull/16204)) ([@watilde](https://github.com/watilde)) - -* The "extremely legacy" `_token` couchToken has been removed. ([#12986](https://github.com/npm/npm/pull/12986)) - -### Feature Summary - -#### Installer changes - -* A new, standardised lockfile feature meant for cross-package-manager compatibility (`package-lock.json`), and a new format and semantics for shrinkwrap. ([#16441](https://github.com/npm/npm/pull/16441)) - -* `--save` is no longer necessary. All installs will be saved by default. You can prevent saving with `--no-save`. Installing optional and dev deps is unchanged: use `-D/--save-dev` and `-O/--save-optional` if you want them saved into those fields instead. Note that since npm@3, npm will automatically update npm-shrinkwrap.json when you save: this will also be true for `package-lock.json`. ([#15666](https://github.com/npm/npm/pull/15666)) - -* Installing a package directory now ends up creating a symlink and does the Right Thingā„¢ as far as saving to and installing from the package lock goes. If you have a monorepo, this might make things much easier to work with, and probably a lot faster too. šŸ˜ ([#15900](https://github.com/npm/npm/pull/15900)) - -* Project-level (toplevel) `preinstall` scripts now run before anything else, and can modify `node_modules` before the CLI reads it. - -* Two new scripts have been added, `prepack` and `postpack`, which will run on both `npm pack` and `npm publish`, but NOT on `npm install` (without arguments). Combined with the fact that `prepublishOnly` is run before the tarball is generated, this should round out the general story as far as putzing around with your code before publication. +### BUG FIXES -* Git dependencies with `prepare` scripts will now [have their devDependencies installed, and their prepare script executed](https://twitter.com/maybekatz/status/860363896443371520) as if under `npm pack`. +* [`685764308`](https://github.com/npm/npm/commit/685764308e05ff0ddb9943b22ca77b3a56d5c026) + Fix a bug where OTPs passed in via the commandline would have leading + zeros deleted resulted in authentication failures. + ([@iarna](https://github.com/iarna)) +* [`8f3faa323`](https://github.com/npm/npm/commit/8f3faa3234b2d2fcd2cb05712a80c3e4133c8f45) + [`6800f76ff`](https://github.com/npm/npm/commit/6800f76ffcd674742ba8944f11f6b0aa55f4b612) + [`ec90c06c7`](https://github.com/npm/npm/commit/ec90c06c78134eb2618612ac72288054825ea941) + [`825b5d2c6`](https://github.com/npm/npm/commit/825b5d2c60e620da5459d9dc13d4f911294a7ec2) + [`4785f13fb`](https://github.com/npm/npm/commit/4785f13fb69f33a8c624ecc8a2be5c5d0d7c94fc) + [`bd16485f5`](https://github.com/npm/npm/commit/bd16485f5b3087625e13773f7251d66547d6807d) + Restore the ability to bundle dependencies that are uninstallable from the + registry. This also eliminates needless registry lookups for bundled + dependencies. + + Fixed a bug where attempting to install a dependency that is bundled + inside another module without reinstalling that module would result in + ENOENT errors. + ([@iarna](https://github.com/iarna)) +* [`429498a8c`](https://github.com/npm/npm/commit/429498a8c8d4414bf242be6a3f3a08f9a2adcdf9) + [#20029](https://github.com/npm/npm/pull/20029) + Allow packages with non-registry specifiers to follow the fast path that + the we use with the lock-file for registry specifiers. This will improve install time + especially when operating only on the package-lock (`--package-lock-only`). + ([@zkat](https://github.com/zkat)) + + Fix the a bug where `npm i --only=prod` could remove development + dependencies from lock-file. + ([@iarna](https://github.com/iarna)) +* [`834b46ff4`](https://github.com/npm/npm/commit/834b46ff48ade4ab4e557566c10e83199d8778c6) + [#20122](https://github.com/npm/npm/pull/20122) + Improve the update-notifier messaging (borrowing ideas from pnpm) and + eliminate false positives. + ([@zkat](https://github.com/zkat)) +* [`f9de7ef3a`](https://github.com/npm/npm/commit/f9de7ef3a1089ceb2610cd27bbd4b4bc2979c4de) + [#20154](https://github.com/npm/npm/pull/20154) + Let version succeed when `package-lock.json` is gitignored. + ([@nwoltman](https://github.com/nwoltman)) +* [`f8ec52073`](https://github.com/npm/npm/commit/f8ec520732bda687bc58d9da0873dadb2d65ca96) + [#20212](https://github.com/npm/npm/pull/20212) + Ensure that we only create an `etc` directory if we are actually going to write files to it. + ([@buddydvd](https://github.com/buddydvd)) +* [`ab489b753`](https://github.com/npm/npm/commit/ab489b75362348f412c002cf795a31dea6420ef0) + [#20140](https://github.com/npm/npm/pull/20140) + Note in documentation that `package-lock.json` version gets touched by `npm version`. + ([@srl295](https://github.com/srl295)) +* [`857c2138d`](https://github.com/npm/npm/commit/857c2138dae768ea9798782baa916b1840ab13e8) + [#20032](https://github.com/npm/npm/pull/20032) + Fix bug where unauthenticated errors would get reported as both 404s and + 401s, i.e. `npm ERR! 404 Registry returned 401`. In these cases the error + message will now be much more informative. + ([@iarna](https://github.com/iarna)) +* [`d2d290bca`](https://github.com/npm/npm/commit/d2d290bcaa85e44a4b08cc40cb4791dd4f81dfc4) + [#20082](https://github.com/npm/npm/pull/20082) + Allow optional @ prefix on scope with `npm team` commands for parity with other commands. + ([@bcoe](https://github.com/bcoe)) +* [`b5babf0a9`](https://github.com/npm/npm/commit/b5babf0a9aa1e47fad8a07cc83245bd510842047) + [#19580](https://github.com/npm/npm/pull/19580) + Improve messaging when two-factor authentication is required while publishing. + ([@jdeniau](https://github.com/jdeniau)) +* [`471ee1c5b`](https://github.com/npm/npm/commit/471ee1c5b58631fe2e936e32480f3f5ed6438536) + [`0da38b7b4`](https://github.com/npm/npm/commit/0da38b7b4aff0464c60ad12e0253fd389efd5086) + Fix a bug where optional status of a dependency was not being saved to + the package-lock on the initial install. + ([@iarna](https://github.com/iarna)) +* [`b3f98d8ba`](https://github.com/npm/npm/commit/b3f98d8ba242a7238f0f9a90ceea840b7b7070af) + [`9dea95e31`](https://github.com/npm/npm/commit/9dea95e319169647bea967e732ae4c8212608f53) + Ensure that `--no-optional` does not remove optional dependencies from the lock-file. + ([@iarna](https://github.com/iarna)) + +### MISCELLANEOUS + +* [`ec6b12099`](https://github.com/npm/npm/commit/ec6b120995c9c1d17ff84bf0217ba5741365af2d) + Exclude all tests from the published version of npm itself. + ([@iarna](https://github.com/iarna)) -* Git dependencies now support semver-based matching: `npm install git://github.com/npm/npm#semver:^5` (#15308, #15666) +### DEPENDENCY UPDATES -* `node-gyp` now supports `node-gyp.cmd` on Windows ([#14568](https://github.com/npm/npm/pull/14568)) +* [`73dc97455`](https://github.com/npm/npm/commit/73dc974555217207fb384e39d049da19be2f79ba) + [zkat/cipm#46](https://github.com/zkat/cipm/pull/46) + `libcipm@1.6.2`: + Detect binding.gyp for default install lifecycle. Let's `npm ci` work on projects that + have their own C code. + ([@caleblloyd](https://github.com/caleblloyd)) +* [`77c3f7a00`](https://github.com/npm/npm/commit/77c3f7a0091f689661f61182cd361465e2d695d5) + `iferr@1.0.0` +* [`dce733e37`](https://github.com/npm/npm/commit/dce733e37687c21cb1a658f06197c609ac39c793) + [zkat/json-parse-better-errors#1](https://github.com/zkat/json-parse-better-errors/pull/1) + `json-parse-better-errors@1.0.2` + ([@Hoishin](https://github.com/Hoishin)) +* [`c52765ff3`](https://github.com/npm/npm/commit/c52765ff32d195842133baf146d647760eb8d0cd) + `readable-stream@2.3.6` + ([@mcollina](https://github.com/mcollina)) +* [`e160adf9f`](https://github.com/npm/npm/commit/e160adf9fce09f226f66e0892cc3fa45f254b5e8) + `update-notifier@2.4.0` + ([@sindersorhus](https://github.com/sindersorhus)) +* [`9a9d7809e`](https://github.com/npm/npm/commit/9a9d7809e30d1add21b760804be4a829e3c7e39e) + `marked@0.3.1` + ([@joshbruce](https://github.com/joshbruce)) +* [`f2fbd8577`](https://github.com/npm/npm/commit/f2fbd857797cf5c12a68a6fb0ff0609d373198b3) + [#20256](https://github.com/npm/npm/pull/20256) + `figgy-pudding@2.0.1` + ([@zkat](https://github.com/zkat)) +* [`44972d53d`](https://github.com/npm/npm/commit/44972d53df2e0f0cc22d527ac88045066205dbbf) + [#20256](https://github.com/npm/npm/pull/20256) + `libnpmhook@3.0.0` + ([@zkat](https://github.com/zkat)) +* [`cfe562c58`](https://github.com/npm/npm/commit/cfe562c5803db08a8d88957828a2cd1cc51a8dd5) + [#20276](https://github.com/npm/npm/pull/20276) + `node-gyp@3.6.2` +* [`3c0bbcb8e`](https://github.com/npm/npm/commit/3c0bbcb8e5440a3b90fabcce85d7a1d31e2ecbe7) + [zkat/npx#172](https://github.com/zkat/npx/pull/172) + `libnpx@10.1.1` + ([@jdalton](https://github.com/jdalton)) +* [`0573d91e5`](https://github.com/npm/npm/commit/0573d91e57c068635a3ad4187b9792afd7b5e22f) + [zkat/cacache#128](https://github.com/zkat/cacache/pull/128) + `cacache@11.0.1` + ([@zkat](https://github.com/zkat)) +* [`396afa99f`](https://github.com/npm/npm/commit/396afa99f61561424866d5c8dd7aedd6f91d611a) + `figgy-pudding@3.1.0` + ([@zkat](https://github.com/zkat)) +* [`e7f869c36`](https://github.com/npm/npm/commit/e7f869c36ec1dacb630e5ab749eb3bb466193f01) + `pacote@8.0.0` + ([@zkat](https://github.com/zkat)) +* [`77dac72df`](https://github.com/npm/npm/commit/77dac72dfdb6add66ec859a949b1d2d788a379b7) + `ssri@6.0.0` + ([@zkat](https://github.com/zkat)) +* [`0b802f2a0`](https://github.com/npm/npm/commit/0b802f2a0bfa15c6af8074ebf9347f07bccdbcc7) + `retry@0.12.0` + ([@iarna](https://github.com/iarna)) +* [`4781b64bc`](https://github.com/npm/npm/commit/4781b64bcc47d4e7fb7025fd6517cde044f6b5e1) + `libnpmhook@4.0.1` + ([@zkat](https://github.com/zkat)) +* [`7bdbaeea6`](https://github.com/npm/npm/commit/7bdbaeea61853280f00c8443a3b2d6e6b893ada9) + `npm-package-arg@6.1.0` + ([@zkat](https://github.com/zkat)) +* [`5f2bf4222`](https://github.com/npm/npm/commit/5f2bf4222004117eb38c44ace961bd15a779fd66) + `read-package-tree@5.2.1` + ([@zkat](https://github.com/zkat)) + +## v6.0.0-0 (2018-03-23): + +Sometimes major releases are a big splash, sometimes they're something +smaller. This is the latter kind. That said, we expect to keep this in +release candidate status until Node 10 ships at the end of April. There +will likely be a few more features for the 6.0.0 release line between now +and then. We do expect to have a bigger one later this year though, so keep +an eye out for `npm@7`! + +### *BREAKING* AVOID DEPRECATED + +When selecting versions to install, we now avoid deprecated versions if +possible. For example: -* npm no longer blasts your screen with the whole installed tree. Instead, you'll see a summary report of the install that is much kinder on your shell real-estate. Specially for large projects. ([#15914](https://github.com/npm/npm/pull/15914)): ``` -$ npm install -npm added 125, removed 32, updated 148 and moved 5 packages in 5.032s. -$ +Module: example +Versions: +1.0.0 +1.1.0 +1.1.2 +1.1.3 (deprecated) +1.2.0 (latest) ``` -* `--parseable` and `--json` now work more consistently across various commands, particularly `install` and `ls`. - -* Indentation is now [detected and preserved](https://twitter.com/maybekatz/status/860690502932340737) for `package.json`, `package-lock.json`, and `npm-shrinkwrap.json`. If the package lock is missing, it will default to `package.json`'s current indentation. - -#### Publishing +If you ask `npm` to install `example@~1.1.0`, `npm` will now give you `1.1.2`. -* New [publishes will now include *both* `sha512`](https://twitter.com/maybekatz/status/863201943082065920) and `sha1` checksums. Versions of npm from 5 onwards will use the strongest algorithm available to verify downloads. [npm/npm-registry-client#157](https://github.com/npm/npm-registry-client/pull/157) +By contrast, if you installed `example@~1.1.3` then you'd get `1.1.3`, as +it's the only version that can match the range. -#### Cache Rewrite! - -We've been talking about rewriting the cache for a loooong time. So here it is. -Lots of exciting stuff ahead. The rewrite will also enable some exciting future -features, but we'll talk about those when they're actually in the works. #15666 -is the main PR for all these changes. Additional PRs/commits are linked inline. +* [`78bebc0ce`](https://github.com/npm/npm/commit/78bebc0cedc4ce75c974c47b61791e6ca1ccfd7e) + [#20151](https://github.com/npm/npm/pull/20151) + Skip deprecated versions when possible. + ([@zkat](https://github.com/zkat)) -* Package metadata, package download, and caching infrastructure replaced. +### *BREAKING* UPDATE AND OUTDATED -* It's a bit faster. [Hopefully it will be noticeable](https://twitter.com/maybekatz/status/865393382260056064). šŸ¤” +When `npm install` is finding a version to install, it first checks to see +if the specifier you requested matches the `latest` tag. If it doesn't, +then it looks for the highest version that does. This means you can do +release candidates on tags other than `latest` and users won't see them +unless they ask for them. Promoting them is as easy as setting the `latest` +tag to point at them. -* With the shrinkwrap and package-lock changes, tarballs will be looked up in the cache by content address (and verified with it). +Historically `npm update` and `npm outdated` worked differently. They just +looked for the most recent thing that matched the semver range, disregarding +the `latest` tag. We're changing it to match `npm install`'s behavior. -* Corrupted cache entries will [automatically be removed and re-fetched](https://twitter.com/maybekatz/status/854933138182557696) on integrity check failure. +* [`3aaa6ef42`](https://github.com/npm/npm/commit/3aaa6ef427b7a34ebc49cd656e188b5befc22bae) + Make update and outdated respect latest interaction with semver as install does. + ([@iarna](https://github.com/iarna)) +* [`e5fbbd2c9`](https://github.com/npm/npm/commit/e5fbbd2c999ab9c7ec15b30d8b4eb596d614c715) + `npm-pick-manifest@2.1.0` + ([@iarna](https://github.com/iarna)) -* npm CLI now supports tarball hashes with any hash function supported by Node.js. That is, it will [use `sha512` for tarballs from registries that send a `sha512` checksum as the tarball hash](https://twitter.com/maybekatz/status/858137093624573953). Publishing with `sha512` is added by [npm/npm-registry-client#157](https://github.com/npm/npm-registry-client/pull/157) and may be backfilled by the registry for older entries. +### PLUS ONE SMALLER PATCH -* Remote tarball requests are now cached. This means that even if you're missing the `integrity` field in your shrinkwrap or package-lock, npm will be able to install from the cache. +Technically this is a bug fix, but the change in behavior is enough of an +edge case that I held off on bringing it in until a major version. -* Downloads for large packages are streamed in and out of disk. npm is now able to install packages of """any""" size without running out of memory. Support for publishing them is pending (due to registry limitations). +When we extract a binary and it starts with a shebang (or "hash bang"), that +is, something like: -* [Automatic fallback-to-offline mode](https://twitter.com/maybekatz/status/854176565587984384). npm will seamlessly use your cache if you are offline, or if you lose access to a particular registry (for example, if you can no longer access a private npm repo, or if your git host is unavailable). +``` +#!/usr/bin/env node +``` -* A new `--prefer-offline` option will make npm skip any conditional requests (304 checks) for stale cache data, and *only* hit the network if something is missing from the cache. +If the file has Windows line endings we strip them off of the first line. +The reason for this is that shebangs are only used in Unix-like environments +and the files with them can't be run if the shebang has a Windows line ending. -* A new `--prefer-online` option that will force npm to revalidate cached data (with 304 checks), ignoring any staleness checks, and refreshing the cache with revalidated, fresh data. +Previously we converted ALL line endings from Windows to Unix. With this +patch we only convert the line with the shebang. (Node.js works just fine +with either set of line endings.) -* A new `--offline` option will force npm to use the cache or exit. It will error with an `ENOTCACHED` code if anything it tries to install isn't already in the cache. +* [`814658371`](https://github.com/npm/npm/commit/814658371bc7b820b23bc138e2b90499d5dda7b1) + [`7265198eb`](https://github.com/npm/npm/commit/7265198ebb32d35937f4ff484b0167870725b054) + `bin-links@1.1.2`: + Only rewrite the CR after a shebang (if any) when fixing up CR/LFs. + ([@iarna](https://github.com/iarna)) -* A new `npm cache verify` command that will garbage collect your cache, reducing disk usage for things you don't need (-handwave-), and will do full integrity verification on both the index and the content. This is also hooked into `npm doctor` as part of its larger suite of checking tools. +### *BREAKING* SUPPORTED NODE VERSIONS -* The new cache is *very* fault tolerant and supports concurrent access. - * Multiple npm processes will not corrupt a shared cache. - * Corrupted data will not be installed. Data is checked on both insertion and extraction, and treated as if it were missing if found to be corrupted. I will literally bake you a cookie if you manage to corrupt the cache in such a way that you end up with the wrong data in your installation (installer bugs notwithstanding). - * `npm cache clear` is no longer useful for anything except clearing up disk space. +Per our supported Node.js policy, we're dropping support for both Node 4 and +Node 7, which are no longer supported by the Node.js project. -* Package metadata is cached separately per registry and package type: you can't have package name conflicts between locally-installed packages, private repo packages, and public repo packages. Identical tarball data will still be shared/deduplicated as long as their hashes match. +* [`077cbe917`](https://github.com/npm/npm/commit/077cbe917930ed9a0c066e10934d540e1edb6245) + Drop support for Node 4 and Node 7. + ([@iarna](https://github.com/iarna)) -* HTTP cache-related headers and features are "fully" (lol) supported for both metadata and tarball requests -- if you have your own registry, you can define your own cache settings the CLI will obey! +### DEPENDENCIES -* `prepublishOnly` now runs *before* the tarball to publish is created, after `prepare` has run. +* [`478fbe2d0`](https://github.com/npm/npm/commit/478fbe2d0bce1534b1867e0b80310863cfacc01a) + `iferr@1.0.0` +* [`b18d88178`](https://github.com/npm/npm/commit/b18d88178a4cf333afd896245a7850f2f5fb740b) + `query-string@6.0.0` +* [`e02fa7497`](https://github.com/npm/npm/commit/e02fa7497f89623dc155debd0143aa54994ace74) + `is-cidr@2.0.5` +* [`c8f8564be`](https://github.com/npm/npm/commit/c8f8564be6f644e202fccd9e3de01d64f346d870) + [`311e55512`](https://github.com/npm/npm/commit/311e5551243d67bf9f0d168322378061339ecff8) + `standard@11.0.1` diff --git a/deps/npm/Makefile b/deps/npm/Makefile index 42b7beda93..4e00647a19 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -65,9 +65,9 @@ dev: install link: uninstall node bin/npm-cli.js link -f -clean: markedclean marked-manclean doc-clean uninstall +clean: markedclean marked-manclean doc-clean rm -rf npmrc - node bin/npm-cli.js cache clean + node bin/npm-cli.js cache clean --force uninstall: node bin/npm-cli.js rm npm -g -f diff --git a/deps/npm/README.md b/deps/npm/README.md index d394af73dd..21bdfdb33f 100644 --- a/deps/npm/README.md +++ b/deps/npm/README.md @@ -11,9 +11,9 @@ Much more info available via `npm help` once it's installed. ## IMPORTANT -**You need node v4 or higher to run this program.** +**You need node v6 or higher to run this program.** -To install an old **and unsupported** version of npm that works on node v0.12 +To install an old **and unsupported** version of npm that works on node v5 and prior, clone the git repo and dig through the old tags and branches. **npm is configured to use npm, Inc.'s public package registry at diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js index e2c013b5df..d7c14bc4b2 100755 --- a/deps/npm/bin/npm-cli.js +++ b/deps/npm/bin/npm-cli.js @@ -1,7 +1,7 @@ #!/usr/bin/env node ;(function () { // wrapper in case we're in module_context mode // windows: running "npm blah" in this folder will invoke WSH, not node. - /*global WScript*/ + /* global WScript */ if (typeof WScript !== 'undefined') { WScript.echo( 'npm does not work when run\n' + @@ -25,17 +25,10 @@ unsupported.checkForUnsupportedNode() - if (!unsupported.checkVersion(process.version).unsupported) { - var updater = require('update-notifier') - var pkg = require('../package.json') - updater({pkg: pkg}).notify({defer: true}) - } - var path = require('path') var npm = require('../lib/npm.js') var npmconf = require('../lib/config/core.js') var errorHandler = require('../lib/utils/error-handler.js') - var output = require('../lib/utils/output.js') var configDefs = npmconf.defs var shorthands = configDefs.shorthands @@ -81,10 +74,70 @@ conf._exit = true npm.load(conf, function (er) { if (er) return errorHandler(er) + if (!unsupported.checkVersion(process.version).unsupported) { + const pkg = require('../package.json') + let notifier = require('update-notifier')({pkg}) + if ( + notifier.update && + notifier.update.latest !== pkg.version + ) { + const color = require('ansicolors') + const useColor = npm.config.get('color') + const useUnicode = npm.config.get('unicode') + const old = notifier.update.current + const latest = notifier.update.latest + let type = notifier.update.type + if (useColor) { + switch (type) { + case 'major': + type = color.red(type) + break + case 'minor': + type = color.yellow(type) + break + case 'patch': + type = color.green(type) + break + } + } + const changelog = `https://github.com/npm/npm/releases/tag/v${latest}` + notifier.notify({ + message: `New ${type} version of ${pkg.name} available! ${ + useColor ? color.red(old) : old + } ${useUnicode ? 'ā†’' : '->'} ${ + useColor ? color.green(latest) : latest + }\n` + + `${ + useColor ? color.yellow('Changelog:') : 'Changelog:' + } ${ + useColor ? color.cyan(changelog) : changelog + }\n` + + `Run ${ + useColor + ? color.green(`npm install -g ${pkg.name}`) + : `npm i -g ${pkg.name}` + } to update!` + }) + } + } npm.commands[npm.command](npm.argv, function (err) { - // https://www.youtube.com/watch?v=7nfPu8qTiQU - if (!err && npm.config.get('ham-it-up') && !npm.config.get('json') && !npm.config.get('parseable') && npm.command !== 'completion') { - output('\n šŸŽµ I Have the Honour to Be Your Obedient Servant,šŸŽµ ~ npm šŸ“œšŸ–‹\n') + // https://genius.com/Lin-manuel-miranda-your-obedient-servant-lyrics + if ( + !err && + npm.config.get('ham-it-up') && + !npm.config.get('json') && + !npm.config.get('parseable') && + npm.command !== 'completion' + ) { + console.error( + `\n ${ + npm.config.get('unicode') ? 'šŸŽµ ' : '' + } I Have the Honour to Be Your Obedient Servant,${ + npm.config.get('unicode') ? 'šŸŽµ ' : '' + } ~ npm ${ + npm.config.get('unicode') ? 'šŸ“œšŸ–‹ ' : '' + }\n` + ) } errorHandler.apply(this, arguments) }) diff --git a/deps/npm/bin/npx b/deps/npm/bin/npx index a49c608bab..261e339850 100644 --- a/deps/npm/bin/npx +++ b/deps/npm/bin/npx @@ -12,18 +12,19 @@ if ! [ -x "$NODE_EXE" ]; then NODE_EXE=node fi +NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js" NPX_CLI_JS="$basedir/node_modules/npm/bin/npx-cli.js" case `uname` in *MINGW*) - NPM_PREFIX=`"$NODE_EXE" "$NPX_CLI_JS" prefix -g` + NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` NPM_PREFIX_NPX_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npx-cli.js" if [ -f "$NPM_PREFIX_NPX_CLI_JS" ]; then NPX_CLI_JS="$NPM_PREFIX_NPX_CLI_JS" fi ;; *CYGWIN*) - NPM_PREFIX=`"$NODE_EXE" "$NPX_CLI_JS" prefix -g` + NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` NPM_PREFIX_NPX_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npx-cli.js" if [ -f "$NPM_PREFIX_NPX_CLI_JS" ]; then NPX_CLI_JS="$NPM_PREFIX_NPX_CLI_JS" diff --git a/deps/npm/bin/npx.cmd b/deps/npm/bin/npx.cmd index 02fcbd9ffc..9339ebd065 100644 --- a/deps/npm/bin/npx.cmd +++ b/deps/npm/bin/npx.cmd @@ -8,8 +8,9 @@ IF NOT EXIST "%NODE_EXE%" ( SET "NODE_EXE=node" ) +SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" SET "NPX_CLI_JS=%~dp0\node_modules\npm\bin\npx-cli.js" -FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPX_CLI_JS%" prefix -g') DO ( +FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( SET "NPM_PREFIX_NPX_CLI_JS=%%F\node_modules\npm\bin\npx-cli.js" ) IF EXIST "%NPM_PREFIX_NPX_CLI_JS%" ( diff --git a/deps/npm/changelogs/CHANGELOG-5.md b/deps/npm/changelogs/CHANGELOG-5.md new file mode 100644 index 0000000000..b94243ae75 --- /dev/null +++ b/deps/npm/changelogs/CHANGELOG-5.md @@ -0,0 +1,2360 @@ +## v5.10.0 (2018-05-10): + +### AUDIT SHOULDN'T WAIT FOREVER + +This will likely be reduced further with the goal that the audit process +shouldn't noticibly slow down your builds regardless of your network +situation. + +* [`3dcc240db`](https://github.com/npm/npm/commit/3dcc240dba5258532990534f1bd8a25d1698b0bf) + Timeout audit requests eventually. + ([@iarna](https://github.com/iarna)) + + +## v5.10.0-next.1 (2018-05-07): + +### EXTENDED `npm init` SCAFFOLDING + +Thanks to the wonderful efforts of [@jdalton](https://github.com/jdalton) of +lodash fame, `npm init` can now be used to invoke custom scaffolding tools! + +You can now do things like `npm init react-app` or `npm init esm` to scaffold an +npm package by running `create-react-app` and `create-esm`, respectively. This +also adds an `npm create` alias, to correspond to Yarn's `yarn create` feature, +which inspired this. + +* [`adc009ed4`](https://github.com/npm/npm/commit/adc009ed4114ed1e692f8ef15123af6040615cee) + [`f363edd04`](https://github.com/npm/npm/commit/f363edd04f474fa64e4d97228c0b2a7858f21e7c) + [`f03b45fb2`](https://github.com/npm/npm/commit/f03b45fb217df066c3cb7715f9c0469d84e5aa8e) + [`13adcbb52`](https://github.com/npm/npm/commit/13adcbb527fb8214e5f2233706c6b72ce072f3fa) + [#20303](https://github.com/npm/npm/pull/20303) + [#20372](https://github.com/npm/npm/pull/20372) + Add an `npm init` feature that calls out to `npx` when invoked with positional + arguments. ([@jdalton](https://github.com/jdalton)) + +### DEPENDENCY AUDITING + +This version of npm adds a new command, `npm audit`, which will run a security +audit of your project's dependency tree and notify you about any actions you may +need to take. + +The registry-side services required for this command to work will be available +on the main npm registry in the coming weeks. Until then, you won't get much out +of trying to use this on the CLI. + +As part of this change, the npm CLI now sends scrubbed and cryptographically +anonymized metadata about your dependency tree to your configured registry, to +allow notifying you about the existence of critical security flaws. For details +about how the CLI protects your privacy when it shares this metadata, see `npm +help audit`, or [read the docs for `npm audit` +online](https://github.com/npm/npm/blob/release-next/doc/cli/npm-audit.md). You +can disable this altogether by doing `npm config set audit false`, but will no +longer benefit from the service. + +* [`c81dfb91b`](https://github.com/npm/npm/commit/c81dfb91bc031f1f979fc200bb66718a7e8e1551) + `npm-registry-fetch@1.1.1` + ([@iarna](https://github.com/iarna)) +* [`b096f44a9`](https://github.com/npm/npm/commit/b096f44a96d185c45305b9b6a5f26d3ccbbf759d) + `npm-audit-report@1.0.9` + ([@iarna](https://github.com/iarna)) +* [`43b20b204`](https://github.com/npm/npm/commit/43b20b204ff9a86319350988d6774397b7da4593) + [#20389](https://github.com/npm/npm/pull/20389) + Add new `npm audit` command. + ([@iarna](https://github.com/iarna)) +* [`49ddb3f56`](https://github.com/npm/npm/commit/49ddb3f5669e90785217a639f936f4e38390eea2) + [#20389](https://github.com/npm/npm/pull/20389) + Temporarily suppress git metadata till there's an opt-in. + ([@iarna](https://github.com/iarna)) +* [`5f1129c4b`](https://github.com/npm/npm/commit/5f1129c4b072172c72cf9cff501885e2c11998ea) + [#20389](https://github.com/npm/npm/pull/20389) + Document the new command. + ([@iarna](https://github.com/iarna)) +* [`9a07b379d`](https://github.com/npm/npm/commit/9a07b379d24d089687867ca34df6e1e6189c72f1) + [#20389](https://github.com/npm/npm/pull/20389) + Default audit to off when running the npm test suite itself. + ([@iarna](https://github.com/iarna)) +* [`a6e2f1284`](https://github.com/npm/npm/commit/a6e2f12849b84709d89b3dc4f096e8c6f7db7ebb) + Make sure we hide stream errors on background audit submissions. Previously some classes + of error could end up being displayed (harmlessly) during installs. + ([@iarna](https://github.com/iarna)) +* [`aadbf3f46`](https://github.com/npm/npm/commit/aadbf3f4695e75b236ee502cbe41e51aec318dc3) + Include session and scope in requests (as we do in other requests to the registry). + ([@iarna](https://github.com/iarna)) +* [`7d43ddf63`](https://github.com/npm/npm/commit/7d43ddf6366d3bfc18ea9ccef8c7b8e43d3b79f5) + Exit with non-zero status when vulnerabilities are found. So you can have `npm audit` as a test or prepublish step! + ([@iarna](https://github.com/iarna)) +* [`bc3fc55fa`](https://github.com/npm/npm/commit/bc3fc55fae648da8efaf1be5b86078f0f736282e) + Verify lockfile integrity before running. You'd get an error either way, but this way it's + faster and can give you more concrete instructions on how to fix it. + ([@iarna](https://github.com/iarna)) +* [`2ac8edd42`](https://github.com/npm/npm/commit/2ac8edd4248f2393b35896f0300b530e7666bb0e) + Refuse to run in global mode. Audits require a lockfile and globals don't have one. Yet. + ([@iarna](https://github.com/iarna)) + +### CTRL-C OUT DURING PACKAGE EXTRACTION AS MUCH AS YOU WANT! + +* [`663d8b5e5`](https://github.com/npm/npm/commit/663d8b5e5427c2243149d2dd6968faa117e9db3f) + [npm/lockfile#29](https://github.com/npm/lockfile/pull/29) + `lockfile@1.0.4`: + Switches to `signal-exit` to detect abnormal exits and remove locks. + ([@Redsandro](https://github.com/Redsandro)) + +### SHRONKWRAPS AND LACKFILES + +If a published modules had legacy `npm-shrinkwrap.json` we were saving +ordinary registry dependencies (`name@version`) to your `package-lock.json` +as `https://` URLs instead of versions. + +* [`36f998411`](https://github.com/npm/npm/commit/36f9984113e39d7b190010a2d0694ee025924dcb) + When saving the lock-file compute how the dependency is being required instead of using + `_resolved` in the `package.json`. This fixes the bug that was converting + registry dependencies into `https://` dependencies. + ([@iarna](https://github.com/iarna)) +* [`113e1a3af`](https://github.com/npm/npm/commit/113e1a3af2f487c753b8871d51924682283c89fc) + When encountering a `https://` URL in our lockfiles that point at our default registry, extract + the version and use them as registry dependencies. This lets us heal + `package-lock.json` files produced by 6.0.0 + ([@iarna](https://github.com/iarna)) + +### MORE `package-lock.json` FORMAT CHANGES?! + +* [`074502916`](https://github.com/npm/npm/commit/0745029168dfdfee0d1823137550e6ebccf741a5) + [#20384](https://github.com/npm/npm/pull/20384) + Add `from` field back into package-lock for git dependencies. This will give + npm the information it needs to figure out whether git deps are valid, + specially when running with legacy install metadata or in + `--package-lock-only` mode when there's no `node_modules`. This should help + remove a significant amount of git-related churn on the lock-file. + ([@zkat](https://github.com/zkat)) + +### DOCUMENTATION IMPROVEMENTS + +* [`e0235ebb6`](https://github.com/npm/npm/commit/e0235ebb6e560f0114b8babedb6949385ab9bd57) + [#20384](https://github.com/npm/npm/pull/20384) + Update the lock-file spec doc to mention that we now generate the from field for `git`-type dependencies. + ([@watilde](https://github.com/watilde)) +* [`35de04676`](https://github.com/npm/npm/commit/35de04676a567ef11e1dd031d566231021d8aff2) + [#20408](https://github.com/npm/npm/pull/20408) + Describe what the colors in outdated mean. + ([@teameh](https://github.com/teameh)) + +### BUGFIXES + +* [`1b535cb9d`](https://github.com/npm/npm/commit/1b535cb9d4a556840aeab2682cc8973495c9919a) + [#20358](https://github.com/npm/npm/pull/20358) + `npm install-test` (aka `npm it`) will no longer generate `package-lock.json` + when running with `--no-package-lock` or `package-lock=false`. + ([@raymondfeng](https://github.com/raymondfeng)) +* [`268f7ac50`](https://github.com/npm/npm/commit/268f7ac508cda352d61df63a2ae7148c54bdff7c) + [`5f84ebdb6`](https://github.com/npm/npm/commit/5f84ebdb66e35486d1dec1ca29e9ba0e4c5b6d5f) + [`c12e61431`](https://github.com/npm/npm/commit/c12e61431ecf4f77e56dc8aa55c41d5d7eeaacad) + [#20390](https://github.com/npm/npm/pull/20390) + Fix a scenario where a git dependency had a comittish associated with it + that was not a complete commitid. `npm` would never consider that entry + in the `package.json` as matching the entry in the `package-lock.json` and + this resulted in inappropriate pruning or reinstallation of git + dependencies. This has been addressed in two ways, first, the addition of the + `from` field as described in [#20384](https://github.com/npm/npm/pull/20384) means + we can exactly match the `package.json`. Second, when that's missing (when working with + older `package-lock.json` files), we assume that the match is ok. (If + it's not, we'll fix it up when a real installation is done.) + ([@iarna](https://github.com/iarna)) + +### DOCS + +* [`7b13bf5e3`](https://github.com/npm/npm/commit/7b13bf5e373e2ae2466ecaa3fd6dcba67a97f462) + [#20331](https://github.com/npm/npm/pull/20331) + Fix broken link to 'private-modules' page. The redirect went away when the new + npm website went up, but the new URL is better anyway. + ([@vipranarayan14](https://github.com/vipranarayan14)) +* [`1c4ffddce`](https://github.com/npm/npm/commit/1c4ffddce05c25ef51e254dfc6a9a97e03c711ce) + [#20279](https://github.com/npm/npm/pull/20279) + Document the `--if-present` option for `npm run-script`. + ([@aleclarson](https://github.com/aleclarson)) + +### DEPENDENCY UPDATES + +* [`815d91ce0`](https://github.com/npm/npm/commit/815d91ce0e8044775e884c1dab93052da57f6650) + `libnpx@10.2.0` + ([@zkat](https://github.com/zkat)) +* [`02715f19f`](https://github.com/npm/npm/commit/02715f19fbcdecec8990b92fc60b1a022c59613b) + `update-notifier@2.5.0` + ([@alexccl](https://github.com/alexccl)) +* [`08c4ddd9e`](https://github.com/npm/npm/commit/08c4ddd9eb560aa6408a1bb1c1d2d9aa6ba46ba0) + `tar@4.4.2` + ([@isaacs](https://github.com/isaacs)) +* [`53718cb12`](https://github.com/npm/npm/commit/53718cb126956851850839b4d7d3041d4e9a80d0) + `tap@11.1.4` + ([@isaacs](https://github.com/isaacs)) +* [`0a20cf546`](https://github.com/npm/npm/commit/0a20cf546a246ac12b5fe2b6235ffb8649336ec4) + `safe-buffer@5.1.2` + ([@feross](https://github.com/feross)) +* [`e8c8e844c`](https://github.com/npm/npm/commit/e8c8e844c194351fe2d65cf3af79ef318bbc8bec) + `retry@0.12.0` + ([@tim-kos](https://github.com/tim-kos)) +* [`76c7f21bd`](https://github.com/npm/npm/commit/76c7f21bd04407d529edc4a76deaa85a2d6b6e6f) + `read-package-tree@5.2.1` + ([@zkat](https://github.com/zkat)) +* [`c8b0aa07b`](https://github.com/npm/npm/commit/c8b0aa07b34a0b0f8bc85154da75d9fb458eb504) + `query-string@6.1.0` + ([@sindresorhus](https://github.com/sindresorhus)) +* [`abfd366b4`](https://github.com/npm/npm/commit/abfd366b4709325f954f2b1ee5bd475330aab828) + `npm-package-arg@6.1.0` + ([@zkat](https://github.com/zkat)) +* [`bd29baf83`](https://github.com/npm/npm/commit/bd29baf834c3e16a9b3d7b60cdb4f462889800bf) + `lock-verify@2.0.2` + ([@iarna](https://github.com/iarna)) + +## v5.10.0-next.0 (2018-04-12): + +### NEW FEATURES + +* [`32ec2f54b`](https://github.com/npm/npm/commit/32ec2f54b2ad7370f2fd17e6e2fbbb2487c81266) + [#20257](https://github.com/npm/npm/pull/20257) + Add shasum and integrity to the new `npm view` output. + ([@zkat](https://github.com/zkat)) +* [`a22153be2`](https://github.com/npm/npm/commit/a22153be239dfd99d87a1a1c7d2c3700db0bebf3) + [#20126](https://github.com/npm/npm/pull/20126) + Add `npm cit` command that's equivalent of `npm ci && npm t` that's equivalent of `npm it`. + ([@SimenB](https://github.com/SimenB)) + +### BUG FIXES + +* [`089aeaf44`](https://github.com/npm/npm/commit/089aeaf4479f286b1ce62716c6442382ff0f2150) + Fix a bug where OTPs passed in via the commandline would have leading + zeros deleted resulted in authentication failures. + ([@iarna](https://github.com/iarna)) +* [`6eaa860ea`](https://github.com/npm/npm/commit/6eaa860ead3222a6dbd6d370b4271e7bf242b30b) + Eliminate direct use of `new Buffer` in `npm`. While the use of it in `npm` was safe, there + are two other reasons for this change: + + 1. Node 10 emits warnings about its use. + 2. Users who require npm as a library (which they definitely should not do) + can call the functions that call `new Buffer` in unsafe ways, if they try + really hard. + + ([@iarna](https://github.com/iarna)) + +* [`85900a294`](https://github.com/npm/npm/commit/85900a2944fed14bc8f59c48856fb797faaafedc) + Starting with 5.8.0 the `requires` section of the lock-file saved version ranges instead of + specific versions. Due to a bug, further actions on the same lock-file would result in the + range being switched back to a version. This corrects that, keeping ranges when they appear. + ([@iarna](https://github.com/iarna)) +* [`0dffa9c2a`](https://github.com/npm/npm/commit/0dffa9c2ae20b669f65c8e596dafd63e52248250) + [`609d6f6e1`](https://github.com/npm/npm/commit/609d6f6e1b39330b64ca4677a531819f2143a283) + [`08f81aa94`](https://github.com/npm/npm/commit/08f81aa94171987a8e1b71a87034e7b028bb9fc7) + [`f8b76e076`](https://github.com/npm/npm/commit/f8b76e0764b606e2c129cbaa66e48ac6a3ebdf8a) + [`6d609822d`](https://github.com/npm/npm/commit/6d609822d00da7ab8bd05c24ec4925094ecaef53) + [`59d080a22`](https://github.com/npm/npm/commit/59d080a22f7314a8e4df6e4f85c84777c1e4be42) + Restore the ability to bundle dependencies that are uninstallable from the + registry. This also eliminates needless registry lookups for bundled + dependencies. + + Fixed a bug where attempting to install a dependency that is bundled + inside another module without reinstalling that module would result in + ENOENT errors. + ([@iarna](https://github.com/iarna)) +* [`db846c2d5`](https://github.com/npm/npm/commit/db846c2d57399f277829036f9d96cd767088097e) + [#20029](https://github.com/npm/npm/pull/20029) + Allow packages with non-registry specifiers to follow the fast path that + the we use with the lock-file for registry specifiers. This will improve install time + especially when operating only on the package-lock (`--package-lock-only`). + + ([@zkat](https://github.com/zkat)) + + Fix the a bug where `npm i --only=prod` could remove development + dependencies from lock-file. + ([@iarna](https://github.com/iarna)) +* [`3e12d2407`](https://github.com/npm/npm/commit/3e12d2407446661d3dd226b03a2b6055b7932140) + [#20122](https://github.com/npm/npm/pull/20122) + Improve the update-notifier messaging (borrowing ideas from pnpm) and + eliminate false positives. + ([@zkat](https://github.com/zkat)) +* [`f18be9b39`](https://github.com/npm/npm/commit/f18be9b39888d05c7f98946c53214f40914f6284) + [#20154](https://github.com/npm/npm/pull/20154) + Let version succeed when `package-lock.json` is gitignored. + ([@nwoltman](https://github.com/nwoltman)) +* [`ced29253d`](https://github.com/npm/npm/commit/ced29253df6c6d67e4bf47ca83e042db4fb19034) + [#20212](https://github.com/npm/npm/pull/20212) + Ensure that we only create an `etc` directory if we are actually going to write files to it. + ([@buddydvd](https://github.com/buddydvd)) +* [`8e21b19a8`](https://github.com/npm/npm/commit/8e21b19a8c5e7d71cb51f3cc6a8bfaf7749ac2c5) + [#20140](https://github.com/npm/npm/pull/20140) + Note in documentation that `package-lock.json` version gets touched by `npm version`. + ([@srl295](https://github.com/srl295)) +* [`5d17c87d8`](https://github.com/npm/npm/commit/5d17c87d8d27caeac71f291fbd62628f2765fda2) + [#20032](https://github.com/npm/npm/pull/20032) + Fix bug where unauthenticated errors would get reported as both 404s and + 401s, i.e. `npm ERR! 404 Registry returned 401`. In these cases the error + message will now be much more informative. + ([@iarna](https://github.com/iarna)) +* [`05ff6c9b1`](https://github.com/npm/npm/commit/05ff6c9b14cb095988b768830e51789d6b6b8e6e) + [#20082](https://github.com/npm/npm/pull/20082) + Allow optional @ prefix on scope with `npm team` commands for parity with other commands. + ([@bcoe](https://github.com/bcoe)) +* [`6bef53891`](https://github.com/npm/npm/commit/6bef538919825b8cd2e738333bdd7b6ca2e2e0e3) + [#19580](https://github.com/npm/npm/pull/19580) + Improve messaging when two-factor authentication is required while publishing. + ([@jdeniau](https://github.com/jdeniau)) +* [`155dab2bd`](https://github.com/npm/npm/commit/155dab2bd7b06724eca190abadd89c9f03f85446) + Fix a bug where optional status of a dependency was not being saved to + the package-lock on the initial install. + ([@iarna](https://github.com/iarna)) +* [`8d6a4cafc`](https://github.com/npm/npm/commit/8d6a4cafc2e6963d9ec7c828e1af6f2abc12e7f3) + [`a0937e9af`](https://github.com/npm/npm/commit/a0937e9afe126dce7a746c1a6270b1ac69f2a9b3) + Ensure that `--no-optional` does not remove optional dependencies from the lock-file. + ([@iarna](https://github.com/iarna)) + +### DEPENDENCY UPDATES + +* [`8baa37551`](https://github.com/npm/npm/commit/8baa37551945bc329a6faf793ec5e3e2feff489b) + [zkat/cipm#46](https://github.com/zkat/cipm/pull/46) + `libcipm@1.6.2`: + Detect binding.gyp for default install lifecycle. Let's `npm ci` work on projects that + have their own C code. + ([@caleblloyd](https://github.com/caleblloyd)) +* [`323f74242`](https://github.com/npm/npm/commit/323f74242066c989f7faf94fb848ff8f3b677619) + [zkat/json-parse-better-errors#1](https://github.com/zkat/json-parse-better-errors/pull/1) + `json-parse-better-errors@1.0.2` + ([@Hoishin](https://github.com/Hoishin)) +* [`d0cf1f11e`](https://github.com/npm/npm/commit/d0cf1f11e5947446f74881a3d15d6a504baea619) + `readable-stream@2.3.6` + ([@mcollina](https://github.com/mcollina)) +* [`9e9fdba5e`](https://github.com/npm/npm/commit/9e9fdba5e7b7f3a1dd73530dadb96d9e3445c48d) + `update-notifier@2.4.0` + ([@sindersorhus](https://github.com/sindersorhus)) +* [`57fa33870`](https://github.com/npm/npm/commit/57fa338706ab122ab7e13d2206016289c5bdacf3) + `marked@0.3.1` + ([@joshbruce](https://github.com/joshbruce)) +* [`d2b20d34b`](https://github.com/npm/npm/commit/d2b20d34b60f35eecf0d51cd1f05de79b0e15096) + [#20276](https://github.com/npm/npm/pull/20276) + `node-gyp@3.6.2` +* [`2b5700679`](https://github.com/npm/npm/commit/2b5700679fce9ee0c24c4509618709a4a35a3d27) + [zkat/npx#172](https://github.com/zkat/npx/pull/172) + `libnpx@10.1.1` + ([@jdalton](https://github.com/jdalton)) + +## v5.9.0 (2018-03-23): + +Coming to you this week are a fancy new package view, pack/publish previews +and a handful of bug fixes! Let's get right in! + +### NEW PACKAGE VIEW + +There's a new `npm view` in town. You might it as `npm info` or `npm show`. +The new output gives you a nicely summarized view that for most packages +fits on one screen. If you ask it for `--json` you'll still get the same +results, so your scripts should still work fine. + +* [`143cdbf13`](https://github.com/npm/npm/commit/143cdbf1327f7d92ccae405bc05d95d28939a837) + [#19910](https://github.com/npm/npm/pull/19910) + Add humanized default view. + ([@zkat](https://github.com/zkat)) +* [`ca84be91c`](https://github.com/npm/npm/commit/ca84be91c434fb7fa472ee4c0b7341414acf52b5) + [#19910](https://github.com/npm/npm/pull/19910) + `tiny-relative-date@1.3.0` + ([@zkat](https://github.com/zkat)) +* [`9a5807c4f`](https://github.com/npm/npm/commit/9a5807c4f813c49b854170b6111c099b3054faa2) + [#19910](https://github.com/npm/npm/pull/19910) + `cli-columns@3.1.2` + ([@zkat](https://github.com/zkat)) +* [`23b4a4fac`](https://github.com/npm/npm/commit/23b4a4fac0fbfe8e03e2f65d9f674f163643d15d) + [#19910](https://github.com/npm/npm/pull/19910) + `byte-size@4.0.2` + +### PACK AND PUBLISH PREVIEWS + +The `npm pack` and `npm publish` commands print out a summary of the files +included in the package. They also both now take the `--dry-run` flag, so +you can double check your `.npmignore` settings before doing a publish. + +* [`116e9d827`](https://github.com/npm/npm/commit/116e9d8271d04536522a7f02de1dde6f91ca5e6e) + [#19908](https://github.com/npm/npm/pull/19908) + Add package previews to pack and publish. Also add --dry-run and --json + flags. + ([@zkat](https://github.com/zkat)) + +### MERGE CONFLICT, SMERGE CONFLICT + +If you resolve a `package-lock.json` merge conflict with `npm install` we +now suggest you setup a merge driver to handle these automatically for you. +If you're reading this and you'd like to set it up now, run: + +```console +npx npm-merge-driver install -g +``` + +* [`5ebe99719`](https://github.com/npm/npm/commit/5ebe99719d11fedeeec7a55f1b389dcf556f32f3) + [#20071](https://github.com/npm/npm/pull/20071) + suggest installing the merge driver + ([@zkat](https://github.com/zkat)) + +### MISC BITS + +* [`a05e27b71`](https://github.com/npm/npm/commit/a05e27b7104f9a79f5941e7458c4658872e5e0cd) + Going forward, record requested ranges not versions in the package-lock. + ([@iarna](https://github.com/iarna)) +* [`f721eec59`](https://github.com/npm/npm/commit/f721eec599df4bdf046d248e0f50822d436654b4) + Add 10 to Node.js supported version list. It's not out yet, but soon my pretties... + ([@iarna](https://github.com/iarna)) + +### DEPENDENCY UPDATES + +* [`40aabb94e`](https://github.com/npm/npm/commit/40aabb94e3f24a9feabb9c490403e10ec9dc254f) + `libcipm@1.6.1`: + Fix bugs on docker and with some `prepare` scripts and `npm ci`. + Fix a bug where script hooks wouldn't be called with `npm ci`. + Fix a bug where `npm ci` and `--prefix` weren't compatible. + ([@isaacseymour](https://github.com/isaacseymour)) + ([@umarov](https://github.com/umarov)) + ([@mikeshirov](https://github.com/mikeshirov)) + ([@billjanitsch](https://github.com/billjanitsch)) +* [`a85372e67`](https://github.com/npm/npm/commit/a85372e671eab46e62caa46631baa30900e32114) + `tar@4.4.1`: + Switch to safe-buffer and Buffer.from. + ([@isaacs](https://github.com/isaacs)) + ([@ChALkeR](https://github.com/ChALkeR)) +* [`588eabd23`](https://github.com/npm/npm/commit/588eabd23fa04420269b9326cab26d974d9c151f) + `lru-cache@4.1.2`: +* [`07f27ee89`](https://github.com/npm/npm/commit/07f27ee898f3c3199e75427017f2b6a189b1a85b) + `qrcode-terminal@0.12.0`: +* [`01e4e29bc`](https://github.com/npm/npm/commit/01e4e29bc879bdaa0e92f0b58e3725a41377d21c) + `request@2.85.0` +* [`344ba8819`](https://github.com/npm/npm/commit/344ba8819f485c72e1c7ac3e656d7e9210ccf607) + `worker-farm@1.6.0` +* [`dc6df1bc4`](https://github.com/npm/npm/commit/dc6df1bc4677164b9ba638e87c1185b857744720) + `validate-npm-package-license@3.0.3` +* [`97a976696`](https://github.com/npm/npm/commit/97a9766962ab5125af3b2a1f7b4ef550a2e3599b) + `ssri@5.3.0` +* [`9b629d0c6`](https://github.com/npm/npm/commit/9b629d0c69599635ee066cb71fcc1b0155317f19) + `query-string@5.1.1` + +## v5.8.0 (2018-03-08): + +Hey again, everyone! While last release was focused largely around PRs from the +CLI team, this release is mostly pulling in community PRs in npm itself and its +dependencies! We've got a good chunk of wonderful contributions for y'all, and +even new features and performance improvements! šŸŽ‰ + +We're hoping to continue our biweekly (as in every-other-week biweekly) release +schedule from now on, so you should be seeing more steady npm releases from here +on out. And that's good, 'cause we've got a _ton_ of new stuff on our roadmap +for this year. Keep an eye out for exciting news. šŸ‘€ + +### FEATURES + +* [`2f513fe1c`](https://github.com/npm/npm/commit/2f513fe1ce6db055b04a63fe4360212a83f77b34) + [#19904](https://github.com/npm/npm/pull/19904) + Make a best-attempt at preserving line ending style when saving + `package.json`/`package-lock.json`/`npm-shrinkwrap.json`. This goes + hand-in-hand with a previous patch to preserve detected indentation style. + ([@tuananh](https://github.com/tuananh)) +* [`d3cfd41a2`](https://github.com/npm/npm/commit/d3cfd41a28253db5a18260f68642513cbbc93e3b) + `pacote@7.6.1` ([@zkat](https://github.com/zkat)) + * Enable `file:`-based `resolved` URIs in `package-lock.json`. + * Retry git-based operations on certain types of failure. +* [`ecfbb16dc`](https://github.com/npm/npm/commit/ecfbb16dc705f28aa61b3223bdbf9e47230a0fa4) + [#19929](https://github.com/npm/npm/pull/19929) + Add support for the [`NO_COLOR` standard](http://no-color.org). This gives a + cross-application, consistent way of disabling ANSI color code output. Note + that npm already supported this through `--no-color` or + `npm_config_color='false'` configurations, so this is just another way to do + it. + ([@chneukirchen](https://github.com/chneukirchen)) +* [`fc8761daf`](https://github.com/npm/npm/commit/fc8761daf1e8749481457973890fa516eb96a195) + [#19629](https://github.com/npm/npm/pull/19629) + Give more detailed, contextual information when npm fails to parse + `package-lock.json` and `npm-shrinkwrap.json`, instead of saying `JSON parse + error` and leaving you out in the cold. + ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg)) +* [`1d368e1e6`](https://github.com/npm/npm/commit/1d368e1e63229f236b9dbabf628989fa3aa98bdb) + [#19157](https://github.com/npm/npm/pull/19157) + Add `--no-proxy` config option. Previously, you needed to use the `NO_PROXY` + environment variable to use this feature -- now it's an actual npm option. + ([@Saturate](https://github.com/Saturate)) +* [`f0e998daa`](https://github.com/npm/npm/commit/f0e998daa049810d5f928615132250021e46451d) + [#18426](https://github.com/npm/npm/pull/18426) + Do environment variable replacement in config files even for config keys or + fragments of keys. + ([@misak113](https://github.com/misak113)) +* [`9847c82a8`](https://github.com/npm/npm/commit/9847c82a8528cfdf5968e9bb00abd8ed47903b5c) + [#18384](https://github.com/npm/npm/pull/18384) + Better error messaging and suggestions when users get `EPERM`/`EACCES` errors. + ([@chrisjpatty](https://github.com/chrisjpatty)) +* [`b9d0c0c01`](https://github.com/npm/npm/commit/b9d0c0c0173542a8d741a9a17b9fb34fbaf5068e) + [#19448](https://github.com/npm/npm/pull/19448) + Holiday celebrations now include all JavaScripters, not just Node developers. + ([@isaacs](https://github.com/isaacs)) + +### NPM CI + +I hope y'all have been having fun with `npm ci` so far! Since this is the first +release since that went out, we've had a few fixes and improvements now that +folks have actually gotten their hands on it! Benchmarks have been super +promising so far, and I've gotten messages from a lot of you saying you've sped +up your CI work by **2-5x** in some cases! Have a good example? Tell us on +Twitter! + +`npm ci` is, right now, [the fastest +installer](http://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable) +you can use in CI situations, so go check it out if you haven't already! We'll +continue doing performance improvements on it, and a lot of those will help make +`npm install` fast as well. šŸŽšŸ˜Ž + +* [`0d7f203d9`](https://github.com/npm/npm/commit/0d7f203d9e86cc6c8d69107689ea60fc7cbab424) + `libcipm@1.6.0` + ([@zkat](https://github.com/zkat)) + +This `libcipm` release includes a number of improvements: + +* **PERFORMANCE** Reduce calls to `read-package-json` and separate JSON update phase from man/bin linking phase. `npm ci` should be noticeably faster. +* **FEATURE** Progress bar now fills up as packages are installed, instead of sitting there doing nothing. +* **BUGFIX** Add support for `--only` and `--also` options. +* **BUFGIX** Linking binaries and running scripts in parallel was causing packages to sometimes clobber each other when hoisted, as well as potentially running too many run-scripts in parallel. This is now a serial operation, and it turns out to have had relatively little actual performance impact. +* **BUGFIX** Stop adding `_from` to directory deps (aka `file:packages/my-dep`). + +### BUGFIXES + +* [`58d2aa58d`](https://github.com/npm/npm/commit/58d2aa58d5f9c4db49f57a5f33952b3106778669) + [#20027](https://github.com/npm/npm/pull/20027) + Use a specific mtime when packing tarballs instead of the beginning of epoch + time. This should allow `npm pack` to generate tarballs with identical hashes + for identical contents, while fixing issues with some `zip` implementations + that do not support pre-1980 timestamps. + ([@isaacs](https://github.com/isaacs)) +* [`4f319de1d`](https://github.com/npm/npm/commit/4f319de1d6e8aca5fb68f78023425233da4f07f6) + Don't fall back to couch adduser if we didn't try couch login. + ([@iarna](https://github.com/iarna)) +* [`c8230c9bb`](https://github.com/npm/npm/commit/c8230c9bbd596156a4a8cfe62f2370f81d22bd9f) + [#19608](https://github.com/npm/npm/pull/19608) + Fix issue where using the npm-bundled `npx` on Windows was invoking `npx + prefix` (and downloading that package). + ([@laggingreflex](https://github.com/laggingreflex)) +* [`d70c01970`](https://github.com/npm/npm/commit/d70c01970311f4e84b35eef8559c114136a9ebc7) + [#18953](https://github.com/npm/npm/pull/18953) + Avoid using code that depends on `node@>=4` in the `unsupported` check, so npm + can report the issue normally instead of syntax-crashing. + ([@deployable](https://github.com/deployable)) + +### DOCUMENTATION + +* [`4477ca2d9`](https://github.com/npm/npm/commit/4477ca2d993088ac40ef5cf39d1f9c68be3d6252) + `marked@0.3.17`: Fixes issue preventing correct rendering of backticked + strings. man pages should be rendering correctly now instead of having empty + spaces wherever backticks were used. + ([@joshbruce](https://github.com/joshbruce)) +* [`71076ebda`](https://github.com/npm/npm/commit/71076ebdaddd04f2bf330fe668f15750bcff00ea) + [#19950](https://github.com/npm/npm/pull/19950) + Add a note to install --production. + ([@kyranet](https://github.com/kyranet)) +* [`3a33400b8`](https://github.com/npm/npm/commit/3a33400b89a8dd00fa9a49fcb57a8add36f79fa6) + [#19957](https://github.com/npm/npm/pull/19957) + nudge around some details in ci docs + ([@zkat](https://github.com/zkat)) +* [`06038246a`](https://github.com/npm/npm/commit/06038246a3fa58d6f42bb4ab897aa534ff6ed282) + [#19893](https://github.com/npm/npm/pull/19893) + Add a common open reason to the issue template. + ([@MrStonedOne](https://github.com/MrStonedOne)) +* [`7376dd8af`](https://github.com/npm/npm/commit/7376dd8afb654929adade126b4925461aa52da12) + [#19870](https://github.com/npm/npm/pull/19870) + Fix typo in `npm-config.md` + ([@joebowbeer](https://github.com/joebowbeer)) +* [`5390ed4fa`](https://github.com/npm/npm/commit/5390ed4fa2b480f7c58fff6ee670120149ec2d45) + [#19858](https://github.com/npm/npm/pull/19858) + Fix documented default value for config save option. It was still documented + as `false`, even though `npm@5.0.0` set it to `true` by default. + ([@nalinbhardwaj](https://github.com/nalinbhardwaj)) +* [`dc36d850a`](https://github.com/npm/npm/commit/dc36d850a1d763f71a98c99db05ca875dab124ed) + [#19552](https://github.com/npm/npm/pull/19552) + Rework `npm update` docs now that `--save` is on by default. + ([@selbekk](https://github.com/selbekk)) +* [`5ec5dffc8`](https://github.com/npm/npm/commit/5ec5dffc80527d9330388ff82926dd890f4945af) + [#19726](https://github.com/npm/npm/pull/19726) + Clarify that `name` and `version` fields are optional if your package is not + supposed to be installable as a dependency. + ([@ngarnier](https://github.com/ngarnier)) +* [`046500994`](https://github.com/npm/npm/commit/0465009942d6423f878c1359e91972fa5990f996) + [#19676](https://github.com/npm/npm/pull/19676) + Fix documented cache location on Windows. + ([@VladRassokhin](https://github.com/VladRassokhin)) +* [`ffa84cd0f`](https://github.com/npm/npm/commit/ffa84cd0f43c07858506764b4151ba6af11ea120) + [#19475](https://github.com/npm/npm/pull/19475) + Added example for `homepage` field from `package.json`. + ([@cg-cnu](https://github.com/cg-cnu)) +* [`de72d9a18`](https://github.com/npm/npm/commit/de72d9a18ae650ebaee0fdd6694fc89b1cbe8e95) + [#19307](https://github.com/npm/npm/pull/19307) + Document the `requires` field in `npm help package-lock.json`. + ([@jcrben](https://github.com/jcrben)) +* [`35c4abded`](https://github.com/npm/npm/commit/35c4abdedfa622f27e8ee47aa6e293f435323623) + [#18976](https://github.com/npm/npm/pull/18976) + Typo fix in coding style documentation. + ([@rinfan](https://github.com/rinfan)) +* [`0616fd22a`](https://github.com/npm/npm/commit/0616fd22a4e4f2b2998bb70d86d269756aab64be) + [#19216](https://github.com/npm/npm/pull/19216) + Add `edit` section to description in `npm-team.md`. + ([@WispProxy](https://github.com/WispProxy)) +* [`c2bbaaa58`](https://github.com/npm/npm/commit/c2bbaaa582d024cc48b410757efbb81d95837d43) + [#19194](https://github.com/npm/npm/pull/19194) + Tiny style fix in `npm.md`. + ([@WispProxy](https://github.com/WispProxy)) +* [`dcdfdcbb0`](https://github.com/npm/npm/commit/dcdfdcbb0035ef3290bd0912f562e26f6fc4ea94) + [#19192](https://github.com/npm/npm/pull/19192) + Document `--development` flag in `npm-ls.md`. + ([@WispProxy](https://github.com/WispProxy)) +* [`d7ff07135`](https://github.com/npm/npm/commit/d7ff07135a685dd89c15e29d6a28fca33cf448b0) + [#18514](https://github.com/npm/npm/pull/18514) + Make it so `javascript` -> `JavaScript`. This is important. + ([@masonpawsey](https://github.com/masonpawsey)) +* [`7a8705113`](https://github.com/npm/npm/commit/7a870511327d31e8921d6afa845ec8065c60064b) + [#18407](https://github.com/npm/npm/pull/18407) + Clarify the mechanics of the `file` field in `package.json` a bit. + ([@bmacnaughton](https://github.com/bmacnaughton)) +* [`b2a1cf084`](https://github.com/npm/npm/commit/b2a1cf0844ceaeb51ed04f3ae81678527ec9ae68) + [#18382](https://github.com/npm/npm/pull/18382) + Document the [`browser` + field](https://github.com/defunctzombie/package-browser-field-spec) in + `package.json`. + ([@mxstbr](https://github.com/mxstbr)) + +### MISC + +* [`b8a48a959`](https://github.com/npm/npm/commit/b8a48a9595b379cfc2a2c576f61062120ea0caf7) + [#19907](https://github.com/npm/npm/pull/19907) + Consolidate code for stringifying `package.json` and package locks. Also adds + tests have been added to test that `package[-lock].json` files are written to + disk with their original line endings. + ([@nwoltman](https://github.com/nwoltman)) +* [`b4f707d9f`](https://github.com/npm/npm/commit/b4f707d9f543f0995ed5811827a892fc8b2192b5) + [#19879](https://github.com/npm/npm/pull/19879) + Remove unused devDependency `nock` from `.gitignore`. + ([@watilde](https://github.com/watilde)) +* [`8150dd5f7`](https://github.com/npm/npm/commit/8150dd5f72520eb143f75e44787a5775bd8b8ebc) + [#16540](https://github.com/npm/npm/pull/16540) + Stop doing an `uninstall` when using `make clean`. + ([@metux](https://github.com/metux)) + +### OTHER DEPENDENCY BUMPS + +* [`ab237a2a5`](https://github.com/npm/npm/commit/ab237a2a5dcf70ee490e2f0322dfedb1560251d4) + `init-package-json@1.10.3` + ([@zkat](https://github.com/zkat)) +* [`f6d668941`](https://github.com/npm/npm/commit/f6d6689414f00a67a1f34afc6791bdc7d7be4d9b) + `npm-lifecycle@2.0.1` + ([@zkat](https://github.com/zkat)) +* [`882bfbdfa`](https://github.com/npm/npm/commit/882bfbdfaa3eb09b35875e648545cb6967f72562) + `npm-registry-client@8.5.1` + ([@zkat](https://github.com/zkat)) +* [`6ae38055b`](https://github.com/npm/npm/commit/6ae38055ba69db5785ee6c394372de0333763822) + `read-package-json@2.0.1`: Support git packed refs `--all` mode. + ([@zkat](https://github.com/zkat)) +* [`89db703ae`](https://github.com/npm/npm/commit/89db703ae4e25b9fb6c9d7c5119520107a23a752) + `readable-stream@2.3.5` + ([@mcollina](https://github.com/mcollina)) +* [`634dfa5f4`](https://github.com/npm/npm/commit/634dfa5f476b7954b136105a8f9489f5631085a3) + `worker-farm@1.5.4` + ([@rvagg](https://github.com/rvagg)) +* [`92ad34439`](https://github.com/npm/npm/commit/92ad344399f7a23e308d0f3f02547656a47ae6c5) + `hosted-git-info@2.6.0` + ([@zkat](https://github.com/zkat)) +* [`75279c488`](https://github.com/npm/npm/commit/75279c4884d02bd7d451b66616e320eb8cb03bcb) + `tar@4.4.0` + ([@isaacs](https://github.com/isaacs)) +* [`228aba276`](https://github.com/npm/npm/commit/228aba276b19c987cd5989f9bb9ffbe25edb4030) + `write-file-atomic@2.3.0` + ([@iarna](https://github.com/iarna)) +* [`006e9d272`](https://github.com/npm/npm/commit/006e9d272914fc3ba016f110b1411dd20f8a937d) + `libnpx@10.0.1` + ([@zkat](https://github.com/zkat)) +* [`9985561e6`](https://github.com/npm/npm/commit/9985561e666473deeb352c1d4252adf17c2fa01d) + `mississippi@3.0.0` + ([@bcomnes](https://github.com/bcomnes)) +* [`1dc6b3b52`](https://github.com/npm/npm/commit/1dc6b3b525967bc8526aa4765e987136cb570e8e) + `tap@11.1.2` + ([@isaacs](https://github.com/isaacs)) + +## v5.7.1 (2018-02-22): + +This release reverts a patch that could cause some ownership changes on system +files when running from some directories when also using `sudo`. šŸ˜² + +Thankfully, it only affected users running `npm@next`, which is part of our +staggered release system, which we use to prevent issues like this from going +out into the wider world before we can catch them. Users on `latest` would have +never seen this! + +The original patch was added to increase consistency and reliability of methods +npm uses to avoid writing files as `root` in places it shouldn't, but the change +was applied in places that should have used regular `mkdirp`. This release +reverts that patch. + +* [`74e149da6`](https://github.com/npm/npm/commit/74e149da6efe6ed89477faa81fef08eee7999ad0) + [`#19883`](https://github.com/npm/npm/issue/19883) + Revert "*: Switch from mkdirp to correctMkdir to preserve perms and owners" + This reverts commit [`94227e15`](https://github.com/npm/npm/commit/94227e15eeced836b3d7b3d2b5e5cc41d4959cff). + ([@zkat](https://github.com/zkat)) + +## v5.7.0 (2018-02-20): + +Hey y'all, it's been a while. Expect our release rate to increase back to +normal here, as we've got a lot in the pipeline. Right now we've got a +bunch of things from folks at npm. In the next release we'll be focusing on +user contributions and there are a lot of them queued up! + +This release brings a bunch of exciting new features and bug fixes. + +### PACKAGE-LOCK GIT MERGE CONFLICT RESOLUTION + +Allow `npm install` to fix `package-lock.json` and `npm-shrinkwrap.json` +files that have merge conflicts in them without your having to edit them. +It works in conjunction with +[`npm-merge-driver`](https://www.npmjs.com/package/npm-merge-driver) to +entirely eliminate package-lock merge conflicts. + +* [`e27674c22`](https://github.com/npm/npm/commit/e27674c221dc17473f23bffa50123e49a021ae34) + Automatically resolve merge conflicts in lock-files. + ([@zkat](https://github.com/zkat)) + +### NPM CI + +The new `npm ci` command installs from your lock-file ONLY. If your +`package.json` and your lock-file are out of sync then it will report an error. + +It works by throwing away your `node_modules` and recreating it from scratch. + +Beyond guaranteeing you that you'll only get what is in your lock-file it's +also much faster (2x-10x!) than `npm install` when you don't start with a +`node_modules`. + +As you may take from the name, we expect it to be a big boon to continuous +integration environments. We also expect that folks who do production +deploys from git tags will see major gains. + +* [`5e4de9c99`](https://github.com/npm/npm/commit/5e4de9c99c934e25ef7b9c788244cc3c993da559) + Add new `npm ci` installer. + ([@zkat](https://github.com/zkat)) + +### OTHER NEW FEATURES + +* [`4d418c21b`](https://github.com/npm/npm/commit/4d418c21b051f23a3b6fb085449fdf4bf4f826f5) + [#19817](https://github.com/npm/npm/pull/19817) + Include contributor count in installation summary. + ([@kemitchell](https://github.com/kemitchell)) +* [`17079c2a8`](https://github.com/npm/npm/commit/17079c2a880d3a6f8a67c8f17eedc7eb51b8f0f8) + Require password to change email through `npm profile`. + ([@iarna](https://github.com/iarna)) +* [`e7c5d226a`](https://github.com/npm/npm/commit/e7c5d226ac0ad3da0e38f16721c710909d0a9847) + [`4f5327c05`](https://github.com/npm/npm/commit/4f5327c0556764aa1bbc9b58b1a8c8a84136c56a) + [#19780](https://github.com/npm/npm/pull/19780) + Add support for web-based logins. This is not yet available on the registry, however. + ([@isaacs](https://github.com/isaacs)) + +### BIG FIXES TO PRUNING + +* [`827951590`](https://github.com/npm/npm/commit/8279515903cfa3026cf7096189485cdf29f74a8f) + Handle running `npm install package-name` with a `node_modules` containing + packages without sufficient metadata to verify their origin. The only way + to get install packages like this is to use a non-`npm` package manager. + Previously `npm` removed any packages that it couldn't verify. Now it + will leave them untouched as long as you're not asking for a full install. + On a full install they will be reinstalled (but the same versions will be + maintained). + + This will fix problems for folks who are using a third party package + manager to install packages that have `postinstall` scripts that run + `npm install`. + ([@iarna](https://github.com/iarna)) +* [`3b305ee71`](https://github.com/npm/npm/commit/3b305ee71e2bf852ff3037366a1774b8c5fcc0a5) + Only auto-prune on installs that will create a lock-file. This restores + `npm@4` compatible behavior when the lock-file is disabled. When using a + lock-file `npm` will continue to remove anything in your `node_modules` + that's not in your lock-file. ([@iarna](https://github.com/iarna)) +* [`cec5be542`](https://github.com/npm/npm/commit/cec5be5427f7f5106a905de8630e1243e9b36ef4) + Fix bug where `npm prune --production` would remove dev deps from the lock + file. It will now only remove them from `node_modules` not from your lock + file. + ([@iarna](https://github.com/iarna)) +* [`857dab03f`](https://github.com/npm/npm/commit/857dab03f2d58586b45d41d3e5af0fb2d4e824d0) + Fix bug where git dependencies would be removed or reinstalled when + installing other dependencies. + ([@iarna](https://github.com/iarna)) + +### BUG FIXES TO TOKENS AND PROFILES + +* [`a66e0cd03`](https://github.com/npm/npm/commit/a66e0cd0314893b745e6b9f6ca1708019b1d7aa3) + For CIDR filtered tokens, allow comma separated CIDR ranges, as documented. Previously + you could only pass in multiple cidr ranges with multiple `--cidr` command line options. + ([@iarna](https://github.com/iarna)) +* [`d259ab014`](https://github.com/npm/npm/commit/d259ab014748634a89cad5b20eb7a40f3223c0d5) + Fix token revocation when an OTP is required. Previously you had to pass + it in via `--otp`. Now it will prompt you for an OTP like other + `npm token` commands. + ([@iarna](https://github.com/iarna)) +* [`f8b1f6aec`](https://github.com/npm/npm/commit/f8b1f6aecadd3b9953c2b8b05d15f3a9cff67cfd) + Update token and profile commands to support legacy (username/password) authentication. + (The npm registry uses tokens, not username/password pairs, to authenticate commands.) + ([@iarna](https://github.com/iarna)) + +### OTHER BUG FIXES + +* [`6954dfc19`](https://github.com/npm/npm/commit/6954dfc192f88ac263f1fcc66cf820a21f4379f1) + Fix a bug where packages would get pushed deeper into the tree when upgrading without + an existing copy on disk. Having packages deeper in the tree ordinarily is harmless but + is not when peerDependencies are in play. + ([@iarna](https://github.com/iarna)) +* [`1ca916a1e`](https://github.com/npm/npm/commit/1ca916a1e9cf94691d1ff2e5e9d0204cfaba39e1) + Fix bug where when switching from a linked module to a non-linked module, the dependencies + of the module wouldn't be installed on the first run of `npm install`. + ([@iarna](https://github.com/iarna)) +* [`8c120ebb2`](https://github.com/npm/npm/commit/8c120ebb28e87bc6fe08a3fad1bb87b50026a33a) + Fix integrity matching to eliminate spurious EINTEGRITY errors. + ([@zkat](https://github.com/zkat)) +* [`94227e15e`](https://github.com/npm/npm/commit/94227e15eeced836b3d7b3d2b5e5cc41d4959cff) + More consistently make directories using perm and ownership preserving features. + ([@iarna](https://github.com/iarna)) + +### DEPENDENCY UPDATES + +* [`364b23c7f`](https://github.com/npm/npm/commit/364b23c7f8a231c0df3866d6a8bde4d3f37bbc00) + [`f2049f9e7`](https://github.com/npm/npm/commit/f2049f9e7992e6edcfce8619b59746789367150f) + `cacache@10.0.4` + ([@zkat](https://github.com/zkat)) +* [`d183d7675`](https://github.com/npm/npm/commit/d183d76757e8a29d63a999d7fb4edcc1486c25c1) + `find-npm-prefix@1.0.2`: + ([@iarna](https://github.com/iarna)) +* [`ffd6ea62c`](https://github.com/npm/npm/commit/ffd6ea62ce583baff38cf4901cf599639bc193c8) + `fs-minipass@1.2.5` +* [`ee63b8a31`](https://github.com/npm/npm/commit/ee63b8a311ac53b0cf2efa79babe61a2c4083ef6) + `ini@1.3.5` + ([@isaacs](https://github.com/isaacs)) +* [`6f73f5509`](https://github.com/npm/npm/commit/6f73f5509e9e8d606526565c7ceb71c62642466e) + `JSONStream@1.3.2` + ([@dominictarr](https://github.com/dominictarr)) +* [`26cd64869`](https://github.com/npm/npm/commit/26cd648697c1324979289e381fe837f9837f3874) + [`9bc6230cf`](https://github.com/npm/npm/commit/9bc6230cf34a09b7e4358145ff0ac3c69c23c3f6) + `libcipm@1.3.3` + ([@zkat](https://github.com/zkat)) +* [`21a39be42`](https://github.com/npm/npm/commit/21a39be4241a60a898d11a5967f3fc9868ef70c9) + `marked@0.3.1`:5 + ([@joshbruce](https://github.com/joshbruce)) +* [`dabdf57b2`](https://github.com/npm/npm/commit/dabdf57b2d60d665728894b4c1397b35aa9d41c0) + `mississippi@2.0.0` +* [`2594c5867`](https://github.com/npm/npm/commit/2594c586723023edb1db172779afb2cbf8b30c08) + `npm-registry-couchapp@2.7.1` + ([@iarna](https://github.com/iarna)) +* [`8abb3f230`](https://github.com/npm/npm/commit/8abb3f230f119fe054353e70cb26248fc05db0b9) + `osenv@0.1.5` + ([@isaacs](https://github.com/isaacs)) +* [`11a0b00bd`](https://github.com/npm/npm/commit/11a0b00bd3c18625075dcdf4a5cb6500b33c6265) + `pacote@7.3.3` + ([@zkat](https://github.com/zkat)) +* [`9b6bdb2c7`](https://github.com/npm/npm/commit/9b6bdb2c77e49f6d473e70de4cd83c58d7147965) + `query-string@5.1.0` + ([@sindresorhus](https://github.com/sindresorhus)) +* [`d6d17d6b5`](https://github.com/npm/npm/commit/d6d17d6b532cf4c3461b1cf2e0404f7c62c47ec4) + `readable-stream@2.3.4` + ([@mcollina](https://github.com/mcollina)) +* [`51370aad5`](https://github.com/npm/npm/commit/51370aad561b368ccc95c1c935c67c8cd2844d40) + `semver@5.5.0` + ([@isaacs](https://github.com/isaacs)) +* [`0db14bac7`](https://github.com/npm/npm/commit/0db14bac762dd59c3fe17c20ee96d2426257cdd5) + [`81da938ab`](https://github.com/npm/npm/commit/81da938ab6efb881123cdcb44f7f84551924c988) + [`9999e83f8`](https://github.com/npm/npm/commit/9999e83f87c957113a12a6bf014a2099d720d716) + `ssri@5.2.4` + ([@zkat](https://github.com/zkat)) +* [`f526992ab`](https://github.com/npm/npm/commit/f526992ab6f7322a0b3a8d460dc48a2aa4a59a33) + `tap@11.1.1` + ([@isaacs](https://github.com/isaacs)) +* [`be096b409`](https://github.com/npm/npm/commit/be096b4090e2a33ae057912d28fadc5a53bd3391) + [`dc3059522`](https://github.com/npm/npm/commit/dc3059522758470adc225f0651be72c274bd29ef) + `tar@4.3.3` +* [`6b552daac`](https://github.com/npm/npm/commit/6b552daac952f413ed0e2df762024ad219a8dc0a) + `uuid@3.2.1` + ([@broofa](https://github.com/broofa)) +* [`8c9011b72`](https://github.com/npm/npm/commit/8c9011b724ad96060e7e82d9470e9cc3bb64e9c6) + `worker-farm@1.5.2` + ([@rvagg](https://github.com/rvagg)) + + +## v5.6.0 (2017-11-27): + +### Features! + +You may have noticed this is a semver-minor bump. Wondering why? This is why! + +* [`bc263c3fd`](https://github.com/npm/npm/commit/bc263c3fde6ff4b04deee132d0a9d89379e28c27) + [#19054](https://github.com/npm/npm/pull/19054) + **Fully cross-platform `package-lock.json`**. Installing a failing optional + dependency on one platform no longer removes it from the dependency tree, + meaning that `package-lock.json` should now be generated consistently across + platforms! šŸŽ‰ + ([@iarna](https://github.com/iarna)) +* [`f94fcbc50`](https://github.com/npm/npm/commit/f94fcbc50d8aec7350164df898d1e12a1e3da77f) + [#19160](https://github.com/npm/npm/pull/19160) + Add `--package-lock-only` config option. This makes it so you can generate a + target `package-lock.json` without performing a full install of + `node_modules`. + ([@alopezsanchez](https://github.com/alopezsanchez)) +* [`66d18280c`](https://github.com/npm/npm/commit/66d18280ca320f880f4377cf80a8052491bbccbe) + [#19104](https://github.com/npm/npm/pull/19104) + Add new `--node-options` config to pass through a custom `NODE_OPTIONS` for + lifecycle scripts. + ([@bmeck](https://github.com/bmeck)) +* [`114d518c7`](https://github.com/npm/npm/commit/114d518c75732c42acbef3acab36ba1d0fd724e2) + Ignore mtime when packing tarballs: This means that doing `npm pack` on the + same repository should yield two tarballs with the same checksum. This will + also help prevent cache bloat when using git dependencies. In the future, this + will allow npm to explicitly cache git dependencies. + ([@isaacs](https://github.com/isaacs)) + +### Node 9 + +Previously, it turns out npm broke on the latest Node, `node@9`. We went ahead +and fixed it up so y'all should be able to use the latest npm again! + +* [`4ca695819`](https://github.com/npm/npm/commit/4ca6958196ae41cef179473e3f7dbed9df9a32f1) + `minizlib@1.0.4`: `Fix node@9` incompatibility. + ([@isaacs](https://github.com/isaacs)) +* [`c851bb503`](https://github.com/npm/npm/commit/c851bb503a756b7cd48d12ef0e12f39e6f30c577) + `tar@4.0.2`: Fix `node@9` incompatibility. + ([@isaacs](https://github.com/isaacs)) +* [`6caf23096`](https://github.com/npm/npm/commit/6caf2309613d14ce77923ad3d1275cb89c6cf223) + Remove "unsupported" warning for Node 9 now that things are fixed. + ([@iarna](https://github.com/iarna)) +* [`1930b0f8c`](https://github.com/npm/npm/commit/1930b0f8c44373301edc9fb6ccdf7efcb350fa42) + Update test matrix with `node@8` LTS and `node@9`. + ([@iarna](https://github.com/iarna)) + +### Bug Fixes + +* [`b70321733`](https://github.com/npm/npm/commit/b7032173361665a12c9e4200bdc3f0eb4dee682f) + [#18881](https://github.com/npm/npm/pull/18881) + When dealing with a `node_modules` that was created with older versions of npm + (and thus older versions of npa) we need to gracefully handle older spec + entries. Failing to do so results in us treating those packages as if they + were http remote deps, which results in invalid lock files with `version` set + to tarball URLs. This should now be fixed. + ([@iarna](https://github.com/iarna)) +* [`2f9c5dd00`](https://github.com/npm/npm/commit/2f9c5dd0046a53ece3482e92a412413f5aed6955) + [#18880](https://github.com/npm/npm/pull/18880) + Stop overwriting version in package data on disk. This is another safeguard + against the version overwriting that's plagued some folks upgrading from older + package-locks. + ([@iarna](https://github.com/iarna)) + ([@joshclow](https://github.com/joshclow)) +* [`a93e0a51d`](https://github.com/npm/npm/commit/a93e0a51d3dafc31c809ca28cd7dfa71b2836f86) + [#18846](https://github.com/npm/npm/pull/18846) + Correctly save transitive dependencies when using `npm update` in + `package-lock.json`. + ([@iarna](https://github.com/iarna)) +* [`fdde7b649`](https://github.com/npm/npm/commit/fdde7b649987b2acd9a37ef203f1e263fdf6fece) + [#18825](https://github.com/npm/npm/pull/18825) + Fix typo and concatenation in error handling. + ([@alulsh](https://github.com/alulsh)) +* [`be67de7b9`](https://github.com/npm/npm/commit/be67de7b90790cef0a9f63f91c2f1a00942205ee) + [#18711](https://github.com/npm/npm/pull/18711) + Upgrade to bearer tokens from legacy auth when enabling 2FA. + ([@iarna](https://github.com/iarna)) +* [`bfdf0fd39`](https://github.com/npm/npm/commit/bfdf0fd39646b03db8e543e2bec7092da7880596) + [#19033](https://github.com/npm/npm/pull/19033) + Fix issue where files with `@` signs in their names would not get included + when packing tarballs. + ([@zkat](https://github.com/zkat)) +* [`b65b89bde`](https://github.com/npm/npm/commit/b65b89bdeaa65516f3e13afdb6e9aeb22d8508f4) + [#19048](https://github.com/npm/npm/pull/19048) + Fix problem where `npm login` was ignoring various networking-related options, + such as custom certs. + ([@wejendorp](https://github.com/wejendorp)) +* [`8c194b86e`](https://github.com/npm/npm/commit/8c194b86ec9617e2bcc31f30ee4772469a0bb440) + `npm-packlist@1.1.10`: Include `node_modules/` directories not in the root. + ([@isaacs](https://github.com/isaacs)) +* [`d7ef6a20b`](https://github.com/npm/npm/commit/d7ef6a20b44e968cb92babab1beb51f99110781d) + `libnpx@9.7.1`: Fix some *nix binary path escaping issues. + ([@zkat](https://github.com/zkat)) +* [`981828466`](https://github.com/npm/npm/commit/981828466a5936c70abcccea319b227c443e812b) + `cacache@10.0.1`: Fix fallback to `copy-concurrently` when file move fails. + This might fix permissions and such issues on platforms that were getting + weird filesystem errors during install. + ([@karolba](https://github.com/karolba)) +* [`a0be6bafb`](https://github.com/npm/npm/commit/a0be6bafb6dd7acb3e7b717c27c8575a2215bfff) + `pacote@7.0.2`: Includes a bunch of fixes, specially for issues around git + dependencies. Shasum-related errors should be way less common now, too. + ([@zkat](https://github.com/zkat)) +* [`b80d650de`](https://github.com/npm/npm/commit/b80d650def417645d2525863e9f17af57a917b42) + [#19163](https://github.com/npm/npm/pull/19163) + Fix a number of git and tarball specs and checksum errors. + ([@zkat](https://github.com/zkat)) +* [`cac225025`](https://github.com/npm/npm/commit/cac225025fa06cd055286e75541138cd95f52def) + [#19054](https://github.com/npm/npm/pull/19054) + Don't count failed optionals when summarizing installed packages. + ([@iarna](https://github.com/iarna)) + +### UX + +* [`b1ec2885c`](https://github.com/npm/npm/commit/b1ec2885c43f8038c4e05b83253041992fdfe382) + [#18326](https://github.com/npm/npm/pull/18326) + Stop truncating output of `npm view`. This means, for example, that you no + longer need to use `--json` when a package has a lot of versions, to see the + whole list. + ([@SimenB](https://github.com/SimenB)) +* [`55a124e0a`](https://github.com/npm/npm/commit/55a124e0aa6097cb46f1484f666444b2a445ba57) + [#18884](https://github.com/npm/npm/pull/18884) + Profile UX improvements: better messaging on unexpected responses, and stop + claiming we set passwords to null when resetting them. + ([@iarna](https://github.com/iarna)) +* [`635481c61`](https://github.com/npm/npm/commit/635481c6143bbe10a6f89747795bf4b83f75a7e9) + [#18844](https://github.com/npm/npm/pull/18844) + Improve error messaging for OTP/2FA. + ([@iarna](https://github.com/iarna)) +* [`52b142ed5`](https://github.com/npm/npm/commit/52b142ed5e0f13f23c99209932e8de3f7649fd47) + [#19054](https://github.com/npm/npm/pull/19054) + Stop running the same rollback multiple times. This should address issues + where Windows users saw strange failures when `fsevents` failed to install. + ([@iarna](https://github.com/iarna)) +* [`798428b0b`](https://github.com/npm/npm/commit/798428b0b7b6cfd6ce98041c45fc0a36396e170c) + [#19172](https://github.com/npm/npm/pull/19172) + `bin-links@1.1.0`: Log the fact line endings are being changed upon install. + ([@marcosscriven](https://github.com/marcosscriven)) + +### Refactors + +Usually, we don't include internal refactor stuff in our release notes, but it's +worth calling out some of them because they're part of a larger effort the CLI +team and associates are undertaking to modularize npm itself so other package +managers and associated tools can reuse all that code! + +* [`9d22c96b7`](https://github.com/npm/npm/commit/9d22c96b7160729c8126a38dcf554611b9e3ba87) + [#18500](https://github.com/npm/npm/pull/18500) + Extract bin-links and gentle-fs to a separate library. This will allow + external tools to do bin linking and certain fs operations in an + npm-compatible way! + ([@mikesherov](https://github.com/mikesherov)) +* [`015a7803b`](https://github.com/npm/npm/commit/015a7803b7b63bc8543882196d987b92b461932d) + [#18883](https://github.com/npm/npm/pull/18883) + Capture logging from log events on the process global. This allows npm to use + npmlog to report logging from external libraries like `npm-profile`. + ([@iarna](https://github.com/iarna)) +* [`c930e98ad`](https://github.com/npm/npm/commit/c930e98adc03cef357ae5716269a04d74744a852) + `npm-lifecycle@2.0.0`: Use our own `node-gyp`. This means npm no longer needs + to pull some maneuvers to make sure `node-gyp` is in the right place, and that + external packages using `npm-lifecycle` will get working native builds without + having to do their own `node-gyp` maneuvers. + ([@zkochan](https://github.com/zkochan)) +* [`876f0c8f3`](https://github.com/npm/npm/commit/876f0c8f341f8915e338b409f4b8616bb5263500) [`829893d61`](https://github.com/npm/npm/commit/829893d617bf81bba0d1ce4ea303f76ea37a2b2d) + [#19099](https://github.com/npm/npm/pull/19099) + `find-npm-prefix@1.0.1`: npm's prefix-finding logic is now a standalone + module. That is, the logic that figures out where the root of your project is + if you've `cd`'d into a subdirectory. Did you know you can run `npm install` + from these subdirectories, and it'll only affect the root? It works like git! + ([@iarna](https://github.com/iarna)) + +### Docs + +* [`7ae12b21c`](https://github.com/npm/npm/commit/7ae12b21cc841f76417d3bb13b74f177319d4deb) + [#18823](https://github.com/npm/npm/pull/18823) + Fix spelling of the word authenticator. Because English is hard. + ([@tmcw](https://github.com/tmcw)) +* [`5dfc3ab7b`](https://github.com/npm/npm/commit/5dfc3ab7bc2cb0fa7d9a8c00aa95fecdd14d7ae1) + [#18742](https://github.com/npm/npm/pull/18742) + Explicitly state 'github:foo/bar' as a valid shorthand for hosted git specs. + ([@felicio](https://github.com/felicio)) +* [`a9dc098a6`](https://github.com/npm/npm/commit/a9dc098a6eb7a87895f52a101ac0d41492da698e) + [#18679](https://github.com/npm/npm/pull/18679) + Add some documentation about the `script-shell` config. + ([@gszabo](https://github.com/gszabo)) +* [`24d7734d1`](https://github.com/npm/npm/commit/24d7734d1a1e906c83c53b6d1853af8dc758a998) + [#18571](https://github.com/npm/npm/pull/18571) + Change `verboten` to `forbidden`. + ([@devmount](https://github.com/devmount)) +* [`a8a45668f`](https://github.com/npm/npm/commit/a8a45668fb9b8eb84234fe89234bdcdf644ead58) + [#18568](https://github.com/npm/npm/pull/18568) + Improve wording for the docs for the "engines" section of package.json files. + ([@apitman](https://github.com/apitman)) +* [`dbc7e5b60`](https://github.com/npm/npm/commit/dbc7e5b602870330a8cdaf63bd303cd9050f792f) + [#19118](https://github.com/npm/npm/pull/19118) + Use valid JSON in example for bundledDependencies. + ([@charmander](https://github.com/charmander)) +* [`779339485`](https://github.com/npm/npm/commit/779339485bab5137d0fdc68d1ed6fa987aa8965a) + [#19162](https://github.com/npm/npm/pull/19162) + Remove trailing white space from `npm access` docs. + ([@WispProxy](https://github.com/WispProxy)) + +### Dependency Bumps + +* [`0e7cac941`](https://github.com/npm/npm/commit/0e7cac9413ff1104cf242cc3006f42aa1c2ab63f) + `bluebird@3.5.1` + ([@petkaantonov](https://github.com/petkaantonov)) +* [`c4d5887d9`](https://github.com/npm/npm/commit/c4d5887d978849ddbe2673630de657f141ae5bcf) + `update-notifier@2.3.0` + ([@sindresorhus](https://github.com/sindresorhus)) +* [`eb19a9691`](https://github.com/npm/npm/commit/eb19a9691cf76fbc9c5b66aa7aadb5d905af467a) + `npm-package-arg@6.0.0` + ([@zkat](https://github.com/zkat)) +* [`91d5dca96`](https://github.com/npm/npm/commit/91d5dca96772bc5c45511ddcbeeb2685c7ea68e8) + `npm-profile@2.0.5` + ([@iarna](https://github.com/iarna)) +* [`8de66c46e`](https://github.com/npm/npm/commit/8de66c46e57e4b449c9540c8ecafbc4fd58faff5) + `ssri@5.0.0` + ([@zkat](https://github.com/zkat)) +* [`cfbc3ea69`](https://github.com/npm/npm/commit/cfbc3ea69a8c62dc8e8543193c3ac472631dcef9) + `worker-farm@1.5.1` + ([@rvagg](https://github.com/rvagg)) +* [`60c228160`](https://github.com/npm/npm/commit/60c228160f22d41c2b36745166c9e8c2d84fee58) + `query-string@5.0.1` + ([@sindresorhus](https://github.com/sindresorhus)) +* [`72cad8c66`](https://github.com/npm/npm/commit/72cad8c664efd8eb1bec9a418bccd6c6ca9290de) + `copy-concurrently@1.0.5` + ([@iarna](https://github.com/iarna)) + +## v5.5.1 (2017-10-04): + +A very quick, record time, patch release, of a bug fix to a (sigh) last minute bug fix. + +* [`e628e058b`](https://github.com/npm/npm/commit/e628e058b) + Fix login to properly recognize OTP request and store bearer tokens. + ([@iarna](https://github.com/iarna)) + +## v5.5.0 (2017-10-04): + +Hey y'all, this is a big new feature release! We've got some security +related goodies plus a some quality-of-life improvements for anyone who uses +the public registry (so, virtually everyone). + +The changes largely came together in one piece, so I'm just gonna leave the commit line here: + +* [`f6ebf5e8b`](https://github.com/npm/npm/commit/f6ebf5e8bd6a212c7661e248c62c423f2b54d978) + [`f97ad6a38`](https://github.com/npm/npm/commit/f97ad6a38412581d059108ea29be470acb4fa510) + [`f644018e6`](https://github.com/npm/npm/commit/f644018e6ef1ff7523c6ec60ae55a24e87a9d9ae) + [`8af91528c`](https://github.com/npm/npm/commit/8af91528ce6277cd3a8c7ca8c8102671baf10d2f) + [`346a34260`](https://github.com/npm/npm/commit/346a34260b5fba7de62717135f3e083cc4820853) + Two factor authentication, profile editing and token management. + ([@iarna](https://github.com/iarna)) + +### TWO FACTOR AUTHENTICATION + +You can now enable two-factor authentication for your npm account. You can +even do it from the CLI. In fact, you have to, for the time being: + +``` +npm profile enable-tfa +``` + +With the default two-factor authentication mode you'll be prompted to enter +a one-time password when logging in, when publishing and when modifying access rights to +your modules. + +### TOKEN MANAGEMENT + +You can now create, list and delete authentication tokens from the comfort +of the command line. Authentication tokens created this way can have NEW +restrictions placed on them. For instance, you can create a `read-only` +token to give to your CI. It will be able to download your private modules +but it won't be able to publish or modify modules. You can also create +tokens that can only be used from certain network addresses. This way you +can lock down access to your corporate VPN or other trusted machines. + +Deleting tokens isn't new, you could [do it via the +website](https://www.npmjs.com/settings/tokens) but now you can do it via +the CLI as well. + +### CHANGE YOUR PASSWORD, SET YOUR EMAIL + +You can finally change your password from the CLI with `npm profile set +password`! You can also update your email address with `npm profile set +email
`. If you change your email address we'll send you a new +verification email so you verify that its yours. + +### AND EVERYTHING ELSE ON YOUR PROFILE + +You can also update all of the other attributes of your profile that +previously you could only update via the website: `fullname`, `homepage`, +`freenode`, `twitter` and `github`. + +### AVAILABLE STAND ALONE + +All of these features were implemented in a stand alone library, so if you +have use for them in your own project you can find them in +[npm-profile](https://www.npmjs.com/package/npm-profile) on the registry. +There's also a little mini-cli written just for it at +[npm-profile-cli](https://www.npmjs.com/package/npm-profile-cli). You might +also be interested in the [API +documentation](https://github.com/npm/registry/tree/master/docs) for these +new features: [user profile editing](https://github.com/npm/registry/blob/master/docs/user/profile.md) and +[authentication](https://github.com/npm/registry/blob/master/docs/user/authentication.md). + +### BUG FIXES + +* [`5ee55dc71`](https://github.com/npm/npm/commit/5ee55dc71b8b74b8418c3d5ec17483a07b3b6777) + install.sh: Drop support for upgrading from npm@1 as npm@5 can't run on + any Node.js version that ships npm@1. This fixes an issue some folks were seeing when trying + to upgrade using `curl | http://npmjs.com/install.sh`. + ([@iarna](https://github.com/iarna)) +* [`5cad1699a`](https://github.com/npm/npm/commit/5cad1699a7a0fc85ac7f77a95087a9647f75e344) + `npm-lifecycle@1.0.3` Fix a bug where when more than one lifecycle script + got queued to run, npm would crash. + ([@zkat](https://github.com/zkat)) +* [`cd256cbb2`](https://github.com/npm/npm/commit/cd256cbb2f97fcbcb82237e94b66eac80e493626) + `npm-packlist@1.1.9` Fix a bug where test directories would always be + excluded from published modules. + ([@isaacs](https://github.com/isaacs)) +* [`2a11f0215`](https://github.com/npm/npm/commit/2a11f021561acb1eb1ad4ad45ad955793b1eb4af) + Fix formatting of unsupported version warning + ([@iarna](https://github.com/iarna)) + +### DEPENDENCY UPDATES + +* [`6d2a285a5`](https://github.com/npm/npm/commit/6d2a285a58655f10834f64d38449eb1f3c8b6c47) + `npm-registry-client@8.5.0` +* [`69e64e27b`](https://github.com/npm/npm/commit/69e64e27bf58efd0b76b3cf6e8182c77f8cc452f) + `request@2.83.0` +* [`34e0f4209`](https://github.com/npm/npm/commit/34e0f42090f6153eb5462f742e402813e4da56c8) + `abbrev@1.1.1` +* [`10d31739d`](https://github.com/npm/npm/commit/10d31739d39765f1f0249f688bd934ffad92f872) + `aproba@1.2.0` +* [`2b02e86c0`](https://github.com/npm/npm/commit/2b02e86c06cf2a5fe7146404f5bfd27f190ee4f4) + `meant@1.0.1` +* [`b81fff808`](https://github.com/npm/npm/commit/b81fff808ee269361d3dcf38c1b6019f1708ae02) + `rimraf@2.6.2`: + Fixes a long standing bug in rimraf's attempts to work around Windows limitations + where it owns a file and can change its perms but can't remove it without + first changing its perms. This _may_ be an improvement for Windows users of npm under + some circumstances. + ([@isaacs](https://github.com/isaacs)) + +## v5.4.2 (2017-09-14): + +This is a small bug fix release wrapping up most of the issues introduced with 5.4.0. + +### Bugs + +* [`0b28ac72d`](https://github.com/npm/npm/commit/0b28ac72d29132e9b761717aba20506854465865) + [#18458](https://github.com/npm/npm/pull/18458) + Fix a bug on Windows where rolling back of failed optional dependencies would fail. + ([@marcins](https://github.com/marcins)) +* [`3a1b29991`](https://github.com/npm/npm/commit/3a1b299913ce94fdf25ed3ae5c88fe6699b04e24) + `write-file-atomic@2.1.0` Revert update of `write-file-atomic`. There were changes made to it + that were resulting in EACCES errors for many users. + ([@iarna](https://github.com/iarna)) +* [`cd8687e12`](https://github.com/npm/npm/commit/cd8687e1257f59a253436d69e8d79a29c85d00c8) + Fix a bug where if npm decided it needed to move a module during an upgrade it would strip + out much of the `package.json`. This would result in broken trees after package updates. +* [`5bd0244ee`](https://github.com/npm/npm/commit/5bd0244eec347ce435e88ff12148c35da7c69efe) + [#18385](https://github.com/npm/npm/pull/18385) + Fix `npm outdated` when run on non-registry dependencies. + ([@joshclow](https://github.com/joshclow)) + ([@iarna](https://github.com/iarna)) + +### Ux + +* [`339f17b1e`](https://github.com/npm/npm/commit/339f17b1e6816eccff7df97875db33917eccdd13) + Report unsupported node versions with greater granularity. + ([@iarna](https://github.com/iarna)) + +### Docs + +* [`b2ab6f43b`](https://github.com/npm/npm/commit/b2ab6f43b8ae645134238acd8dd3083e5ba8846e) + [#18397](https://github.com/npm/npm/pull/18397) + Document that the default loglevel with `npm@5` is `notice`. + ([@KenanY](https://github.com/KenanY)) +* [`e5aedcd82`](https://github.com/npm/npm/commit/e5aedcd82af81fa9e222f9210f6f890c72a18dd3) + [#18372](https://github.com/npm/npm/pull/18372) + In npm-config documentation, note that env vars use \_ in place of -. + ([@jakubholynet](https://github.com/jakubholynet)) + +## v5.4.1 (2017-09-06): + +This is a very small bug fix release to fix a problem where permissions on +installed binaries were being set incorrectly. + +* [`767ff6eee`](https://github.com/npm/npm/commit/767ff6eee7fa3a0f42ad677dedc0ec1f0dc15e7c) + [zkat/pacote#117](https://github.com/zkat/pacote/pull/117) + [#18324](https://github.com/npm/npm/issues/18324) + `pacote@6.0.2` + ([@zkat](https://github.com/zkat)) + +## v5.4.0 (2017-08-22): + +Here's another ~~small~~ big release, with a ~~handful~~ bunch of fixes and +a couple of ~~small~~ new features! This release has been incubating rather +longer than usual and it's grown quite a bit in that time. I'm also excited +to say that it has contributions from **27** different folks, which is a new +record for us. Our previous record was 5.1.0 at 21. Before that the record +had been held by 1.3.16 since _December of 2013_. + +![chart of contributor counts by version, showing an increasing rate over time and spikes mid in the 1.x series and later at 5.x](https://pbs.twimg.com/media/DH38rbZUwAAf9hS.jpg) + +If you can't get enough of the bleeding edge, I encourage you to check out +our canary release of npm. Get it with `npm install -g npmc`. It's going to +be seeing some exciting stuff in the next couple of weeks, starting with a +rewriten `npm dedupe`, but moving on toā€¦ well, you'll just have to wait and +find out. + +### PERFORMANCE + +* [`d080379f6`](https://github.com/npm/npm/commit/d080379f620c716afa2c1d2e2ffc0a1ac3459194) + `pacote@6.0.1` Updates extract to use tar@4, which is much faster than the + older tar@2. It reduces install times by as much as 10%. + ([@zkat](https://github.com/zkat)) +* [`4cd6a1774`](https://github.com/npm/npm/commit/4cd6a1774f774506323cae5685c9ca9a10deab63) + [`0195c0a8c`](https://github.com/npm/npm/commit/0195c0a8cdf816834c2f737372194ddc576c451d) + [#16804](https://github.com/npm/npm/pull/16804) + `tar@4.0.1` Update publish to use tar@4. tar@4 brings many advantages + over tar@2: It's faster, better tested and easier to work with. It also + produces exactly the same byte-for-byte output when producing tarballs + from the same set of files. This will have some nice carry on effects for + things like caching builds from git. And finally, last but certainly not + least, upgrading to it also let's us finally eliminate `fstream`ā€”if + you know what that is you'll know why we're so relieved. + ([@isaacs](https://github.com/isaacs)) + +### FEATURES + +* [`1ac470dd2`](https://github.com/npm/npm/commit/1ac470dd283cc7758dc37721dd6331d5b316dc99) + [#10382](https://github.com/npm/npm/pull/10382) + If you make a typo when writing a command now, npm will print a brief "did you + mean..." message with some possible alternatives to what you meant. + ([@watilde](https://github.com/watilde)) +* [`20c46228d`](https://github.com/npm/npm/commit/20c46228d8f9243910f8c343f4830d52455d754e) + [#12356](https://github.com/npm/npm/pull/12356) + When running lifecycle scripts, `INIT_CWD` will now contain the original + working directory that npm was executed from. Remember that you can use `npm + run-script` even if you're not inside your package root directory! + ([@MichaelQQ](https://github.com/MichaelQQ)) +* [`be91e1726`](https://github.com/npm/npm/commit/be91e1726e9c21c4532723e4f413b73a93dd53d1) + [`4e7c41f4a`](https://github.com/npm/npm/commit/4e7c41f4a29744a9976cc22c77eee9d44172f21e) + `libnpx@9.6.0`: Fixes a number of issues on Windows and adds support for + several more languages: Korean, Norwegian (bokmĆ„l and nynorsk), Ukrainian, + Serbian, Bahasa Indonesia, Polish, Dutch and Arabic. + ([@zkat](https://github.com/zkat)) +* [`2dec601c6`](https://github.com/npm/npm/commit/2dec601c6d5a576751d50efbcf76eaef4deff31e) + [#17142](https://github.com/npm/npm/pull/17142) + Add the new `commit-hooks` option to `npm version` so that you can disable commit + hooks when committing the version bump. + ([@faazshift](https://github.com/faazshift)) +* [`bde151902`](https://github.com/npm/npm/commit/bde15190230b5c62dbd98095311eab71f6b52321) + [#14461](https://github.com/npm/npm/pull/14461) + Make output from `npm ping` clear as to its success or failure. + ([@legodude17](https://github.com/legodude17)) + +### BUGFIXES + +* [`b6d5549d2`](https://github.com/npm/npm/commit/b6d5549d2c2d38dd0e4319c56b69ad137f0d50cd) + [#17844](https://github.com/npm/npm/pull/17844) + Make package-lock.json sorting locale-agnostic. Previously, sorting would vary + by locale, due to using `localeCompare` for key sorting. This'll give you + a little package-lock.json churn as it reshuffles things, sorry! + ([@LotharSee](https://github.com/LotharSee)) +* [`44b98b9dd`](https://github.com/npm/npm/commit/44b98b9ddcfcccf68967fdf106fca52bf0c3da4b) + [#17919](https://github.com/npm/npm/pull/17919) + Fix a crash where `npm prune --production` would fail while removing `.bin`. + ([@fasterthanlime](https://github.com/fasterthanlime)) +* [`c3d1d3ba8`](https://github.com/npm/npm/commit/c3d1d3ba82aa41dfb2bd135e6cdc59f8d33cd9fb) + [#17816](https://github.com/npm/npm/pull/17816) + Fail more smoothly when attempting to install an invalid package name. + ([@SamuelMarks](https://github.com/SamuelMarks)) +* [`55ac2fca8`](https://github.com/npm/npm/commit/55ac2fca81bf08338302dc7dc2070494e71add5c) + [#12784](https://github.com/npm/npm/pull/12784) + Guard against stack overflows when marking packages as failed. + ([@vtravieso](https://github.com/vtravieso)) +* [`597cc0e4b`](https://github.com/npm/npm/commit/597cc0e4b5e6ee719014e3171d4e966df42a275c) + [#15087](https://github.com/npm/npm/pull/15087) + Stop outputting progressbars or using color on dumb terminals. + ([@iarna](https://github.com/iarna)) +* [`7a7710ba7`](https://github.com/npm/npm/commit/7a7710ba72e6f82414653c2e7e91fea9a1aba7e2) + [#15088](https://github.com/npm/npm/pull/15088) + Don't exclude modules that are both dev & prod when using `npm ls --production`. + ([@iarna](https://github.com/iarna)) +* [`867df2b02`](https://github.com/npm/npm/commit/867df2b0214689822b87b51578e347f353be97e8) + [#18164](https://github.com/npm/npm/pull/18164) + Only do multiple procs on OSX for now. We've seen a handful of issues + relating to this in Docker and in on Windows with antivirus. + ([@zkat](https://github.com/zkat)) +* [`23540af7b`](https://github.com/npm/npm/commit/23540af7b0ec5f12bbdc1558745c8c4f0861042b) + [#18117](https://github.com/npm/npm/pull/18117) + Some package managers would write spaces to the \_from field in package.json's in the + form of `name @spec`. This was causing npm to fail to interpret them. We now handle that + correctly and doubly make sure we don't do that ourselves. + ([@IgorNadj](https://github.com/IgorNadj)) +* [`0ef320cb4`](https://github.com/npm/npm/commit/0ef320cb40222693b7367b97c60ddffabc2d58c5) + [#16634](https://github.com/npm/npm/pull/16634) + Convert any bin script with a shbang a the start to Unix line-endings. (These sorts of scripts + are not compatible with Windows line-endings even on Windows.) + ([@ScottFreeCode](https://github.com/ScottFreeCode)) +* [`71191ca22`](https://github.com/npm/npm/commit/71191ca2227694355c49dfb187104f68df5126bd) + [#16476](https://github.com/npm/npm/pull/16476) + `npm-lifecycle@1.0.2` Running an install with `--ignore-scripts` was resulting in the + the package object being mutated to have the lifecycle scripts removed from it and that + in turn was being written out to disk, causing further problems. This fixes that: + No more mutation, no more unexpected changes. + ([@addaleax](https://github.com/addaleax)) +* [`459fa9d51`](https://github.com/npm/npm/commit/459fa9d51600904ee75ed6267b159367a1209793) + [npm/read-package-json#74](https://github.com/npm/read-package-json/pull/74) + [#17802](https://github.com/npm/npm/pull/17802) + `read-package-json@2.0.1` Use unix-style slashes for generated bin + entries, which lets them be cross platform even when produced on Windows. + ([@iarna](https://github.com/iarna)) +* [`5ec72ab5b`](https://github.com/npm/npm/commit/5ec72ab5b27c5c83cee9ff568cf75a9479d4b83a) + [#18229](https://github.com/npm/npm/pull/18229) + Make install.sh find nodejs on debian. + ([@cebe](https://github.com/cebe)) + +### DOCUMENTATION + +* [`b019680db`](https://github.com/npm/npm/commit/b019680db78ae0a6dff2289dbfe9f61fccbbe824) + [#10846](https://github.com/npm/npm/pull/10846) + Remind users that they have to install missing `peerDependencies` manually. + ([@ryanflorence](https://github.com/ryanflorence)) +* [`3aee5986a`](https://github.com/npm/npm/commit/3aee5986a65add2f815b24541b9f4b69d7fb445f) + [#17898](https://github.com/npm/npm/pull/17898) + Minor punctuation fixes to the README. + ([@AndersDJohnson](https://github.com/AndersDJohnson)) +* [`e0d0a7e1d`](https://github.com/npm/npm/commit/e0d0a7e1dda2c43822b17eb71f4d51900575cc61) + [#17832](https://github.com/npm/npm/pull/17832) + Fix grammar, format, and spelling in documentation for `run-script`. + ([@simonua](https://github.com/simonua)) +* [`3fd6a5f2f`](https://github.com/npm/npm/commit/3fd6a5f2f8802a9768dba2ec32c593b5db5a878d) + [#17897](https://github.com/npm/npm/pull/17897) + Add more info about using `files` with `npm pack`/`npm publish`. + ([@davidjgoss](https://github.com/davidjgoss)) +* [`f00cdc6eb`](https://github.com/npm/npm/commit/f00cdc6eb90a0735bc3c516720de0b1428c79c31) + [#17785](https://github.com/npm/npm/pull/17785) + Add a note about filenames for certificates on Windows, which use a different + extension and file type. + ([@lgp1985](https://github.com/lgp1985)) +* [`0cea6f974`](https://github.com/npm/npm/commit/0cea6f9741243b1937abfa300c2a111d9ed79143) + [#18022](https://github.com/npm/npm/pull/18022) + Clarify usage for the `files` field in `package.json`. + ([@xcambar](https://github.com/xcambar)) +* [`a0fdd1571`](https://github.com/npm/npm/commit/a0fdd15710971234cbc57086cd1a4dc037a39471) + [#15234](https://github.com/npm/npm/pull/15234) + Clarify the behavior of the `files` array in the package-json docs. + ([@jbcpollak](https://github.com/jbcpollak)) +* [`cecd6aa5d`](https://github.com/npm/npm/commit/cecd6aa5d4dd04af765b26b749c1cd032f7eb913) + [#18137](https://github.com/npm/npm/pull/18137) + Clarify interaction between npmignore and files in package.json. + ([@supertong](https://github.com/supertong)) +* [`6b8972039`](https://github.com/npm/npm/commit/6b89720396767961001e727fc985671ce88b901b) + [#18044](https://github.com/npm/npm/pull/18044) + Corrected the typo in package-locks docs. + ([@vikramnr](https://github.com/vikramnr)) +* [`6e012924f`](https://github.com/npm/npm/commit/6e012924f99c475bc3637c86ab6a113875405fc7) + [#17667](https://github.com/npm/npm/pull/17667) + Fix description of package.json in npm-scripts docs. + ([@tripu](https://github.com/tripu)) + +### POSSIBLY INTERESTING DEPENDENCY UPDATES + +* [`48d84171a`](https://github.com/npm/npm/commit/48d84171a302fde2510b3f31e4a004c5a4d39c73) + [`f60b05d63`](https://github.com/npm/npm/commit/f60b05d6307a7c46160ce98d6f3ccba89411c4ba) + `semver@5.4.1` Perf improvements. + ([@zkat](https://github.com/zkat)) +* [`f4650b5d4`](https://github.com/npm/npm/commit/f4650b5d4b2be2c04c229cc53aa930e260af9b4e) + `write-file-atomic@2.3.0`: + Serialize writes to the same file so that results are deterministic. + Cleanup tempfiles when process is interrupted or killed. + ([@ferm10n](https://github.com/ferm10n)) + ([@iarna](https://github.com/iarna)) + +### CHORES + +* [`96d78df98`](https://github.com/npm/npm/commit/96d78df9843187bc53be2c93913e8567003ccb73) + [`80e2f4960`](https://github.com/npm/npm/commit/80e2f4960691bc5dbd8320002e4d9143784b9ce9) + [`4f49f687b`](https://github.com/npm/npm/commit/4f49f687bbd54b6a0e406936ae35593d8e971e1e) + [`07d2296b1`](https://github.com/npm/npm/commit/07d2296b10e3d8d6f079eba3a61f0258501d7161) + [`a267ab430`](https://github.com/npm/npm/commit/a267ab4309883012a9d55934533c5915e9842277) + [#18176](https://github.com/npm/npm/pull/18176) + [#18025](https://github.com/npm/npm/pull/18025) + Move the lifecycle code out of npm into a separate library, + [`npm-lifecycle`](https://github.com/npm/lifecycle). Shh, I didn't tell you this, but this + portends to some pretty cool stuff to come very soon now. + ([@mikesherov](https://github.com/mikesherov)) +* [`0933c7eaf`](https://github.com/npm/npm/commit/0933c7eaf9cfcdf56471fe4e71c403e2016973da) + [#18025](https://github.com/npm/npm/pull/18025) + Force Travis to use Precise instead of Trusty. We have issues with our + couchdb setup and Trusty. =/ + ([@mikesherov](https://github.com/mikesherov)) +* [`afb086230`](https://github.com/npm/npm/commit/afb086230223f3c4fcddee4e958d18fce5db0ff9) + [#18138](https://github.com/npm/npm/pull/18138) + Fix typos in files-and-ignores test. + ([@supertong](https://github.com/supertong)) +* [`3e6d11cde`](https://github.com/npm/npm/commit/3e6d11cde096b4ee7b07e7569b37186aa2115b1a) + [#18175](https://github.com/npm/npm/pull/18175) + Update dependencies to eliminate transitive dependencies with the WTFPL license, which + some more serious corporate lawyery types aren't super comfortable with. + ([@zkat](https://github.com/zkat)) +* [`ee4c9bd8a`](https://github.com/npm/npm/commit/ee4c9bd8ae574a0d6b24725ba6c7b718d8aaad8d) + [#16474](https://github.com/npm/npm/pull/16474) + The tests in `test/tap/lifecycle-signal.js`, as well as the features + they are testing, are partially broken. This moves them from + being skipped in CI to being disabled only for certain platforms. + In particular, because `npm` spawns its lifecycle scripts in a + shell, signals are not necessarily forwarded by the shell and + wonā€™t cause scripts to exit; also, shells may report the signal + they receive using their exit status, rather than terminating + themselves with a signal. + ([@addaleax](https://github.com/addaleax)) +* [`9462e5d9c`](https://github.com/npm/npm/commit/9462e5d9cfbaa50218de6d0a630d6552e72ad0a8) + [#16547](https://github.com/npm/npm/pull/16547) + Remove unused file: bin/read-package-json.js + ([@metux](https://github.com/metux)) +* [`0756d687d`](https://github.com/npm/npm/commit/0756d687d4ccfcd4a7fd83db0065eceb9261befb) + [#16550](https://github.com/npm/npm/pull/16550) + The build tools for the documentation need to be built/installed + before the documents, even with parallel builds. + Make has a simple mechanism which was made exactly for that: + target dependencies. + ([@metux](https://github.com/metux)) + +## v5.3.0 (2017-07-12): + +As mentioned before, we're continuing to do relatively rapid, smaller releases +as we keep working on stomping out `npm@5` issues! We've made a lot of progress +since 5.0 already, and this release is no exception. + +### FEATURES + +* [`1e3a46944`](https://github.com/npm/npm/commit/1e3a469448b5db8376e6f64022c4c0c78cdb1686) + [#17616](https://github.com/npm/npm/pull/17616) + Add `--link` filter option to `npm ls`. + ([@richardsimko](https://github.com/richardsimko)) +* [`33df0aaa`](https://github.com/npm/npm/commit/33df0aaaa7271dac982b86f2701d10152c4177c8) + `libnpx@9.2.0`: + * 4 new languages - Czech, Italian, Turkish, and Chinese (Traditional)! This means npx is available in 14 different languages! + * New --node-arg option lets you pass CLI arguments directly to node when the target binary is found to be a Node.js script. + ([@zkat](https://github.com/zkat)) + +### BUGFIXES + +* [`33df0aaa`](https://github.com/npm/npm/commit/33df0aaaa7271dac982b86f2701d10152c4177c8) + `libnpx@9.2.0`: + * npx should now work on (most) Windows installs. A couple of issues remain. + * Prevent auto-fallback from going into an infinite loop when npx disappears. + * `npx npx npx npx npx npx npx npx` works again. + * `update-notifier` will no longer run for the npx bundled with npm. + * `npx ` in a subdirectory of your project should be able to find your `node_modules/.bin` now. Oops + ([@zkat](https://github.com/zkat)) +* [`8e979bf80`](https://github.com/npm/npm/commit/8e979bf80fb93233f19db003f08443e26cfc5e64) + Revert change where npm stopped flattening modules that required peerDeps. + This caused problems because folks were using peer deps to indicate that the + target of the peer dep needed to be able to require the dependency and had + been relying on the fact that peer deps didn't change the shape of the tree + (as of npm@3). + The fix that will actually work for people is for a peer dep to insist on + never being installed deeper than the the thing it relies on. At the moment + this is tricky because the thing the peer dep relies on may not yet have + been added to the tree, so we don't know where it is. + ([@iarna](https://github.com/iarna)) +* [`7f28a77f3`](https://github.com/npm/npm/commit/7f28a77f33ef501065f22e8d5e8cffee3195dccd) + [#17733](https://github.com/npm/npm/pull/17733) + Split remove and unbuild actions into two to get uninstall lifecycles and the + removal of transitive symlinks during uninstallation to run in the right + order. + ([@iarna](https://github.com/iarna)) +* [`637f2548f`](https://github.com/npm/npm/commit/637f2548facae011eebf5e5c38bfe56a6c2db9fa) + [#17748](https://github.com/npm/npm/pull/17748) + When rolling back use symlink project-relative path, fixing some issues with + `fs-vacuum` getting confused while removing symlinked things. + ([@iarna](https://github.com/iarna)) +* [`f153b5b22`](https://github.com/npm/npm/commit/f153b5b22f647d4d403f5b8cecd2ce63ac75b07c) + [#17706](https://github.com/npm/npm/pull/17706) + Use semver to compare node versions in npm doctor instead of plain `>` + comparison. + ([@leo-shopify](https://github.com/leo-shopify)) +* [`542f7561`](https://github.com/npm/npm/commit/542f7561d173eca40eb8d838a16a0ed582fef989) + [#17742](https://github.com/npm/npm/pull/17742) + Fix issue where `npm version` would sometimes not commit package-locks. + ([@markpeterfejes](https://github.com/markpeterfejes)) +* [`51a9e63d`](https://github.com/npm/npm/commit/51a9e63d31cb5ac52259dcf1c364004286072426) + [#17777](https://github.com/npm/npm/pull/17777) + Fix bug exposed by other bugfixes where the wrong package would be removed. + ([@iarna](https://github.com/iarna)) + +### DOCUMENTATION + +Have we mentioned we really like documentation patches? Keep sending them in! +Small patches are just fine, and they're a great way to get started contributing +to npm! + +* [`fb42d55a9`](https://github.com/npm/npm/commit/fb42d55a9a97afa5ab7db38b3b99088cf68684ea) + [#17728](https://github.com/npm/npm/pull/17728) + Document semver git urls in package.json docs. + ([@sankethkatta](https://github.com/sankethkatta)) +* [`f398c700f`](https://github.com/npm/npm/commit/f398c700fb0f2f3665ebf45995a910ad16cd8d05) + [#17684](https://github.com/npm/npm/pull/17684) + Tweak heading hierarchy in package.json docs. + ([@sonicdoe](https://github.com/sonicdoe)) +* [`d5ad65e50`](https://github.com/npm/npm/commit/d5ad65e50a573cdf9df4155225e869cd6c88ca5e) + [#17691](https://github.com/npm/npm/pull/17691) + Explicitly document `--no-save` flag for uninstall. + ([@timneedham](https://github.com/timneedham)) + +## v5.2.0 (2017-07-05): + +It's only been a couple of days but we've got some bug fixes we wanted to +get out to you all. We also believe that +[`npx`](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) is ready to be bundled +with npm, which we're really excited about! + +### npx!!! + +npx is a tool intended to help round out the experience of using packages +from the npm registryā€Šā€”ā€Šthe same way npm makes it super easy to install and +manage dependencies hosted on the registry, npx is meant to make it easy to +use CLI tools and other executables hosted on the registry. It greatly +simplifies a number of things that, until now, required a bit of ceremony to +do with plain npm. + +![](https://cdn-images-1.medium.com/max/1600/1*OlIRsvVO5aK7ja9HmwXz_Q.gif) + +[@zkat](https://github.com/zkat) has a [great introduction post to npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) +that I highly recommend you give a read + +* [`fb040bee0`](https://github.com/npm/npm/commit/fb040bee0710759c60e45bf8fa2a3b8ddcf4212a) + [#17685](https://github.com/npm/npm/pull/17685) + Bundle npx with npm itself. + ([@zkat](https://github.com/zkat)) + +### BUG FIXES + +* [`9fe905c39`](https://github.com/npm/npm/commit/9fe905c399d07a3c00c7b22035ddb6b7762731e6) + [#17652](https://github.com/npm/npm/pull/17652) + Fix max callstack exceeded loops with trees with circular links. + ([@iarna](https://github.com/iarna)) +* [`c0a289b1b`](https://github.com/npm/npm/commit/c0a289b1ba6b99652c43a955b23acbf1de0b56ae) + [#17606](https://github.com/npm/npm/pull/17606) + Make sure that when write package.json and package-lock.json we always use unix path separators. + ([@Standard8](https://github.com/Standard8)) +* [`1658b79ca`](https://github.com/npm/npm/commit/1658b79cad89ccece5ae5ce3c2f691d44b933116) + [#17654](https://github.com/npm/npm/pull/17654) + Make `npm outdated` show results for globals again. Previously it never thought they were out of date. + ([@iarna](https://github.com/iarna)) +* [`06c154fd6`](https://github.com/npm/npm/commit/06c154fd653d18725d2e760ba825d43cdd807420) + [#17678](https://github.com/npm/npm/pull/17678) + Stop flattening modules that have peer dependencies. We're making this + change to support scenarios where the module requiring a peer dependency + is flattened but the peer dependency itself is not, due to conflicts. In + those cases the module requiring the peer dep can't be flattened past the + location its peer dep was placed in. This initial fix is naive, never + flattening peer deps, and we can look into doing something more + sophisticated later on. + ([@iarna](https://github.com/iarna)) +* [`88aafee8b`](https://github.com/npm/npm/commit/88aafee8b5b232b7eeb5690279a098d056575791) + [#17677](https://github.com/npm/npm/pull/17677) + There was an issue where updating a flattened dependency would sometimes + unflatten it. This only happened when the dependency had dependencies + that in turn required the original dependency. + ([@iarna](https://github.com/iarna)) +* [`b58ec8eab`](https://github.com/npm/npm/commit/b58ec8eab3b4141e7f1b8b42d8cc24f716a804d8) + [#17626](https://github.com/npm/npm/pull/17626) + Integrators who were building their own copies of npm ran into issues because + `make install` and https://npmjs.com/install.sh weren't aware that + `npm install` creates links now when given a directory to work on. This does not impact folks + installing npm with `npm install -g npm`. + ([@iarna](https://github.com/iarna)) + +### DOC FIXES + +* [`10bef735e`](https://github.com/npm/npm/commit/10bef735e825acc8278827d34df415dfcd8c67d4) + [#17645](https://github.com/npm/npm/pull/17645) + Fix some github issue links in the 5.1.0 changelog + ([@schmod](https://github.com/schmod)) +* [`85fa9dcb2`](https://github.com/npm/npm/commit/85fa9dcb2f0b4f51b515358e0184ec82a5845227) + [#17634](https://github.com/npm/npm/pull/17634) + Fix typo in package-lock docs. + ([@sonicdoe](https://github.com/sonicdoe)) +* [`688699bef`](https://github.com/npm/npm/commit/688699befc2d147288c69a9405fb8354ecaebe36) + [#17628](https://github.com/npm/npm/pull/17628) + Recommend that folks looking for support join us on https://package.community/ or message + [@npm_support](https://twitter.com/npm_support) on Twitter. + ([@strugee](https://github.com/strugee)) + + +## v5.1.0 (2017-07-05): + +Hey y'all~ + +We've got some goodies for you here, including `npm@5`'s first semver-minor +release! This version includes a huge number of fixes, particularly for some of +the critical bugs users were running into after upgrading npm. You should +overall see a much more stable experience, and we're going to continue hacking +on fixes for the time being. Semver-major releases, specially for tools like +npm, are bound to cause some instability, and getting `npm@5` stable is the CLI +team's top priority for now! + +Not that bugfixes are the only things that landed, either: between improvements +that fell out of the bugfixes, and some really cool work by community members +like [@mikesherov](https://github.com/mikesherov), `npm@5.1.0` is **_twice as +fast_** as `npm@5.0.0` in some benchmarks. We're not stopping there, either: you +can expect a steady stream of speed improvements over the course of the year. +It's not _top_ priority, but we'll keep doing what we can to make sure npm saves +its users as much time as possible. + +Hang on to your seats. At **100 commits**, this release is a bit of a doozy. šŸ˜Ž + +### FEATURES + +Semver-minor releases, of course, mean that there's a new feature somewhere, +right? Here's what's bumping that number for us this time: + +* [`a09c1a69d`](https://github.com/npm/npm/commit/a09c1a69df05b753464cc1272cdccc6af0f4da5a) + [#16687](https://github.com/npm/npm/pull/16687) + Allow customizing the shell used to execute `run-script`s. + ([@mmkal](https://github.com/mmkal)) +* [`4f45ba222`](https://github.com/npm/npm/commit/4f45ba222e2ac6dbe6d696cb7a8e678bbda7c839) [`a48958598`](https://github.com/npm/npm/commit/a489585985540deed4edc03418636c9e97aa9e40) [`901bef0e1`](https://github.com/npm/npm/commit/901bef0e1ea806fc08d8d58744a9f813b6c020ab) + [#17508](https://github.com/npm/npm/pull/17508) + Add a new `requires` field to `package-lock.json` with information about the + _logical_ dependency tree. This includes references to the specific version + each package is intended to see, and can be used for many things, such as + [converting `package-lock.json` to other lockfile + formats](https://twitter.com/maybekatz/status/880578566907248640), various + optimizations, and verifying correctness of a package tree. + ([@iarna](https://github.com/iarna)) +* [`47e8fc8eb`](https://github.com/npm/npm/commit/47e8fc8eb9b5faccef9e03ab991cf37458c16249) + [#17508](https://github.com/npm/npm/pull/17508) + Make `npm ls` take package locks (and shrinkwraps) into account. This means + `npm ls` can now be used to see [which dependencies are + missing](https://twitter.com/maybekatz/status/880446509547794437), so long as + a package lock has been previously generated with it in. + ([@iarna](https://github.com/iarna)) +* [`f0075e7ca`](https://github.com/npm/npm/commit/f0075e7caa3e151424a254d7809ae4489ed8df90) + [#17508](https://github.com/npm/npm/pull/17508) + Take `package.json` changes into account when running installs -- if you + remove or add a dependency to `package.json` manually, npm will now pick that + up and update your tree and package lock accordingly. + ([@iarna](https://github.com/iarna)) +* [`83a5455aa`](https://github.com/npm/npm/commit/83a5455aac3c5cc2511ab504923b652b13bd66a0) + [#17205](https://github.com/npm/npm/pull/17205) + Add `npm udpate` as an alias for `npm update`, for symmetry with + `install`/`isntall`. + ([@gdassori](https://github.com/gdassori)) +* [`57225d394`](https://github.com/npm/npm/commit/57225d394b6174eb0be48393d8e18da0991f67b6) + [#17120](https://github.com/npm/npm/pull/17120) + npm will no longer warn about `preferGlobal`, and the option is now + deprecated. + ([@zkat](https://github.com/zkat)) +* [`82df7bb16`](https://github.com/npm/npm/commit/82df7bb16fc29c47a024db4a8c393e55f883744b) + [#17351](https://github.com/npm/npm/pull/17351) + As some of you may already know `npm build` doesn't do what a lot of people + expect: It's mainly an npm plumbing command, and is part of the more familiar + `npm rebuild` command. That said, a lot of users assume that this is the way + to run an npm `run-script` named `build`, which is an incredibly common script + name to use. To clarify things for users, and encourage them to use `npm run + build` instead, npm will now warn if `npm build` is run without any arguments. + ([@lennym](https://github.com/lennym)) + +### PERFORMANCE + +* [`59f86ef90`](https://github.com/npm/npm/commit/59f86ef90a58d8dc925c9613f1c96e68bee5ec7b) [`43be9d222`](https://github.com/npm/npm/commit/43be9d2222b23ebb0a427ed91824ae217e6d077a) [`e906cdd98`](https://github.com/npm/npm/commit/e906cdd980b4722e66618ce295c682b9a8ffaf8f) + [#16633](https://github.com/npm/npm/pull/16633) + npm now parallelizes tarball extraction across multiple child process workers. + This can significantly speed up installations, specially when installing from + cache, and will improve with number of processors. + ([@zkat](https://github.com/zkat)) +* [`e0849878d`](https://github.com/npm/npm/commit/e0849878dd248de8988c2ef3fc941054625712ca) + [#17441](https://github.com/npm/npm/pull/17441) + Avoid building environment for empty lifecycle scripts. This change alone + accounted for as much as a 15% speed boost for npm installations by outright + skipping entire steps of the installer when not needed. + ([@mikesherov](https://github.com/mikesherov)) +* [`265c2544c`](https://github.com/npm/npm/commit/265c2544c8ded10854909243482e6437ed03c261) + [npm/hosted-git-info#24](https://github.com/npm/hosted-git-info/pull/24) + `hosted-git-info@2.5.0`: Add caching to `fromURL`, which gets called many, + many times by the installer. This improved installation performance by around + 10% on realistic application repositories. + ([@mikesherov](https://github.com/mikesherov)) +* [`901d26cb`](https://github.com/npm/npm/commit/901d26cb656e7e773d9a38ef4eac9263b95e07c8) + [npm/read-package-json#20](https://github.com/npm/read-package-json/pull/70) + `read-package-json@2.0.9`: Speed up installs by as much as 20% by + reintroducing a previously-removed cache and making it actually be correct + this time around. + ([@mikesherov](https://github.com/mikesherov)) +* [`44e37045d`](https://github.com/npm/npm/commit/44e37045d77bc40adf339b423d42bf5e9b4d4d91) + Eliminate `Bluebird.promisifyAll` from our codebase. + ([@iarna](https://github.com/iarna)) +* [`3b4681b53`](https://github.com/npm/npm/commit/3b4681b53db7757985223932072875d099694677) + [#17508](https://github.com/npm/npm/pull/17508) + Stop calling `addBundle` on locked deps, speeding up the + `package-lock.json`-based fast path. + ([@iarna](https://github.com/iarna)) + +### BUGFIXES + +* [#17508](https://github.com/npm/npm/pull/17508) + This is a big PR that fixes a variety of issues when installing from package + locks. If you were previously having issues with missing dependencies or + unwanted removals, this might have fixed it: + * It introduces a new `package-lock.json` field, called `requires`, which tracks which modules a given module requires. + * It fixes [#16839](https://github.com/npm/npm/issues/16839) which was caused by not having this information available, particularly when git dependencies were involved. + * It fixes [#16866](https://github.com/npm/npm/issues/16866), allowing the `package.json` to trump the `package-lock.json`. + * `npm ls` now loads the shrinkwrap, which opens the door to showing a full tree of dependencies even when nothing is yet installed. (It doesn't do that yet though.) + ([@iarna](https://github.com/iarna)) +* [`656544c31`](https://github.com/npm/npm/commit/656544c31cdef3cef64fc10c24f03a8ae2685e35) [`d21ab57c3`](https://github.com/npm/npm/commit/d21ab57c3ef4f01d41fb6c2103debe884a17dc22) + [#16637](https://github.com/npm/npm/pull/16637) + Fix some cases where `npm prune` was leaving some dependencies unpruned if + to-be-pruned dependencies depended on them. + ([@exogen](https://github.com/exogen)) +* [`394436b09`](https://github.com/npm/npm/commit/394436b098dcca2d252061f95c4eeb92c4a7027c) + [#17552](https://github.com/npm/npm/pull/17552) + Make `refresh-package-json` re-verify the package platform. This fixes an + issue most notably experienced by Windows users using `create-react-app` where + `fsevents` would not short-circuit and cause a crash during its + otherwise-skipped native build phase. + ([@zkat](https://github.com/zkat)) +* [`9e5a94354`](https://github.com/npm/npm/commit/9e5a943547b29c8d022192afd9398b3a136a7e5a) + [#17590](https://github.com/npm/npm/pull/17590) + Fix an issue where `npm@5` would crash when trying to remove packages + installed with `npm@<5`. + ([@iarna](https://github.com/iarna)) +* [`c3b586aaf`](https://github.com/npm/npm/commit/c3b586aafa9eabac572eb6e2b8a7266536dbc65b) + [#17141](https://github.com/npm/npm/issues/17141) + Don't update the package.json when modifying packages that don't go there. + This was previously causing `package.json` to get a `"false": {}` field added. + ([@iarna](https://github.com/iarna)) +* [`d04a23de2`](https://github.com/npm/npm/commit/d04a23de21dd9991b32029d839b71e10e07b400d) [`4a5b360d5`](https://github.com/npm/npm/commit/4a5b360d561f565703024085da0927ccafe8793e) [`d9e53db48`](https://github.com/npm/npm/commit/d9e53db48ca227b21bb67df48c9b3580cb390e9e) + `pacote@2.7.38`: + * [zkat/pacote#102](https://github.com/zkat/pacote/pull/102) Fix issue with tar extraction and special characters. + * Enable loose semver parsing in some missing corner cases. + ([@colinrotherham](https://github.com/colinrotherham), [@zkat](https://github.com/zkat), [@mcibique](https://github.com/mcibique)) +* [`e2f815f87`](https://github.com/npm/npm/commit/e2f815f87676b7c50b896e939cee15a01aa976e4) + [#17104](https://github.com/npm/npm/pull/17104) + Write an empty str and wait for flush to exit to reduce issues with npm + exiting before all output is complete when it's a child process. + ([@zkat](https://github.com/zkat)) +* [`835fcec60`](https://github.com/npm/npm/commit/835fcec601204971083aa3a281c3a9da6061a7c2) + [#17060](https://github.com/npm/npm/pull/17060) + Make git repos with prepare scripts always install with both dev and prod + flags. + ([@intellix](https://github.com/intellix)) +* [`f1dc8a175`](https://github.com/npm/npm/commit/f1dc8a175eed56f1ed23bd5773e5e10beaf6cb31) + [#16879](https://github.com/npm/npm/pull/16879) + Fix support for `always-auth` and `_auth`. They are now both available in both + unscoped and registry-scoped configurations. + ([@jozemlakar](https://github.com/jozemlakar)) +* [`ddd8a1ca2`](https://github.com/npm/npm/commit/ddd8a1ca2fa3377199af74ede9d0c1a406d19793) + Serialize package specs to prevent `[object Object]` showing up in logs during + extraction. + ([@zkat](https://github.com/zkat)) +* [`99ef3b52c`](https://github.com/npm/npm/commit/99ef3b52caa7507e87a4257e622f8964b1c1f5f3) + [#17505](https://github.com/npm/npm/pull/17505) + Stop trying to commit updated `npm-shrinkwrap.json` and `package-lock.json` if + they're `.gitignore`d. + ([@zkat](https://github.com/zkat)) +* [`58be2ec59`](https://github.com/npm/npm/commit/58be2ec596dfb0353ad2570e6750e408339f1478) + Make sure uid and gid are getting correctly set even when they're `0`. This + should fix some Docker-related issues with bad permissions/broken ownership. + ([@rgrove](https://github.com/rgrove)) + ([@zkat](https://github.com/zkat)) +* [`9d1e3b6fa`](https://github.com/npm/npm/commit/9d1e3b6fa01bb563d76018ee153259d9507658cf) + [#17506](https://github.com/npm/npm/pull/17506) + Skip writing package.json and locks if on-disk version is identical to the new + one. + ([@zkat](https://github.com/zkat)) +* [`3fc6477a8`](https://github.com/npm/npm/commit/3fc6477a89773786e6c43ef43a23e5cdc662ff8e) + [#17592](https://github.com/npm/npm/pull/17592) + Fix an issue where `npm install -g .` on a package with no `name` field would + cause the entire global `node_modules` directory to be replaced with a symlink + to `$CWD`. lol. + ([@iarna](https://github.com/iarna)) +* [`06ba0a14a`](https://github.com/npm/npm/commit/06ba0a14a6c1c8cdcc8c062b68c8c63041b0cec0) + [#17591](https://github.com/npm/npm/pull/17591) + Fix spurious removal reporting: if you tried to remove something that didn't + actually exist, npm would tell you it removed 1 package even though there was + nothing to do. + ([@iarna](https://github.com/iarna)) +* [`20ff05f8`](https://github.com/npm/npm/commit/20ff05f8fe0ad8c36e1323d30b63b4d2ff7e11ef) + [#17629](https://github.com/npm/npm/pull/17629) + When removing a link, keep dependencies installed inside of it instead of + removing them, if the link is outside the scope of the current project. This + fixes an issue where removing globally-linked packages would remove all their + dependencies in the source directory, as well as some ergonomic issues when + using links in other situations. + ([@iarna](https://github.com/iarna)) + +### DOCS + +* [`fd5fab595`](https://github.com/npm/npm/commit/fd5fab5955a20a9bb8c0e77092ada1435f73a8d2) + [#16441](https://github.com/npm/npm/pull/16441) + Add spec for `npm-shrinkwrap.json` and `package-lock.json` from RFC. + ([@iarna](https://github.com/iarna)) +* [`9589c1ccb`](https://github.com/npm/npm/commit/9589c1ccb3f794abaaa48c2a647ada311dd881ef) + [#17451](https://github.com/npm/npm/pull/17451) + Fix typo in changelog. + ([@watilde](https://github.com/watilde)) +* [`f8e76d856`](https://github.com/npm/npm/commit/f8e76d8566ae1965e57d348df74edad0643b66a6) + [#17370](https://github.com/npm/npm/pull/17370) + Correct the default prefix config path for Windows operating systems in the + documentation for npm folders. + ([@kierendixon](https://github.com/kierendixon)) +* [`d0f3b5a12`](https://github.com/npm/npm/commit/d0f3b5a127718b0347c6622a2b9c28341c530d36) + [#17369](https://github.com/npm/npm/pull/17369) + Fix `npm-config` reference to `userconfig` & `globalconfig` environment + variables. + ([@racztiborzoltan](https://github.com/racztiborzoltan)) +* [`87629880a`](https://github.com/npm/npm/commit/87629880a71baec352c1b5345bc29268d6212467) + [#17336](https://github.com/npm/npm/pull/17336) + Remove note in docs about `prepublish` being entirely removed. + ([@Hirse](https://github.com/Hirse)) +* [`a1058afd9`](https://github.com/npm/npm/commit/a1058afd9a7a569bd0ac65b86eadd4fe077a7221) + [#17169](https://github.com/npm/npm/pull/17169) + Document `--no-package-lock` flag. + ([@leggsimon](https://github.com/leggsimon)) +* [`32fc6e41a`](https://github.com/npm/npm/commit/32fc6e41a2ce4dbcd5ce1e5f291e2e2efc779d48) + [#17250](https://github.com/npm/npm/pull/17250) + Fix a typo in the shrinkwrap docs. + ([@Zarel](https://github.com/Zarel)) +* [`f19bd3c8c`](https://github.com/npm/npm/commit/f19bd3c8cbd37c8a99487d6b5035282580ac3e9d) + [#17249](https://github.com/npm/npm/pull/17249) + Fix a package-lock.json cross-reference link. + ([@not-an-aardvark](https://github.com/not-an-aardvark)) +* [`153245edc`](https://github.com/npm/npm/commit/153245edc4845db670ada5e95ef384561706a751) + [#17075](https://github.com/npm/npm/pull/17075/files) + Fix a typo in `npm-config` docs. + ([@KennethKinLum](https://github.com/KennethKinLum)) +* [`c9b534a14`](https://github.com/npm/npm/commit/c9b534a148818d1a97787c0dfdba5f64ce3618a6) + [#17074](https://github.com/npm/npm/pull/17074) + Clarify config documention with multiple boolean flags. + ([@KennethKinLum](https://github.com/KennethKinLum)) +* [`e111b0a40`](https://github.com/npm/npm/commit/e111b0a40c4bc6691d7b8d67ddce5419e67bfd27) + [#16768](https://github.com/npm/npm/pull/16768) + Document the `-l` option to `npm config list`. + ([@happylynx](https://github.com/happylynx)) +* [`5a803ebad`](https://github.com/npm/npm/commit/5a803ebadd61229bca3d64fb3ef1981729b2548e) + [#16548](https://github.com/npm/npm/pull/16548) + Fix permissions for documentation files. Some of them had `+x` set. (???) + ([@metux](https://github.com/metux)) +* [`d57d4f48c`](https://github.com/npm/npm/commit/d57d4f48c6cd00fdf1e694eb49e9358071d8e105) + [#17319](https://github.com/npm/npm/pull/17319) + Document that the `--silent` option for `npm run-script` can be used to + suppress `npm ERR!` output on errors. + ([@styfle](https://github.com/styfle)) + +### MISC + +Not all contributions need to be visible features, docs, or bugfixes! It's super +helpful when community members go over our code and help clean it up, too! + +* [`9e5b76140`](https://github.com/npm/npm/commit/9e5b76140ffdb7dcd12aa402793644213fb8c5d7) + [#17411](https://github.com/npm/npm/pull/17411) + Convert all callback-style `move` usage to use Promises. + ([@vramana](https://github.com/vramana)) +* [`0711c08f7`](https://github.com/npm/npm/commit/0711c08f779ac641ec42ecc96f604c8861008b28) + [#17394](https://github.com/npm/npm/pull/17394) + Remove unused argument in `deepSortObject`. + ([@vramana](https://github.com/vramana)) +* [`7d650048c`](https://github.com/npm/npm/commit/7d650048c8ed5faa0486492f1eeb698e7383e32f) + [#17563](https://github.com/npm/npm/pull/17563) + Refactor some code to use `Object.assign`. + ([@vramana](https://github.com/vramana)) +* [`993f673f0`](https://github.com/npm/npm/commit/993f673f056aea5f602ea04b1e697b027c267a2d) + [#17600](https://github.com/npm/npm/pull/17600) + Remove an old comment. + ([@vramana](https://github.com/vramana)) + +## v5.0.4 (2017-06-13): + +Hey y'all. This is another minor patch release with a variety of little fixes +we've been accumulating~ + +* [`f0a37ace9`](https://github.com/npm/npm/commit/f0a37ace9ab7879cab20f2b0fcd7840bfc305feb) + Fix `npm doctor` when hitting registries without `ping`. + ([@zkat](https://github.com/zkat)) +* [`64f0105e8`](https://github.com/npm/npm/commit/64f0105e81352b42b72900d83b437b90afc6d9ce) + Fix invalid format error when setting cache-related headers. + ([@zkat](https://github.com/zkat)) +* [`d2969c80e`](https://github.com/npm/npm/commit/d2969c80e4178faebf0f7c4cab6eb610dd953cc6) + Fix spurious `EINTEGRITY` issue. + ([@zkat](https://github.com/zkat)) +* [`800cb2b4e`](https://github.com/npm/npm/commit/800cb2b4e2d0bd00b5c9082a896f2110e907eb0b) + [#17076](https://github.com/npm/npm/pull/17076) + Use legacy `from` field to improve upgrade experience from legacy shrinkwraps + and installs. + ([@zkat](https://github.com/zkat)) +* [`4100d47ea`](https://github.com/npm/npm/commit/4100d47ea58b4966c02604f71350b5316108df6a) + [#17007](https://github.com/npm/npm/pull/17007) + Restore loose semver parsing to match older npm behavior when running into + invalid semver ranges in dependencies. + ([@zkat](https://github.com/zkat)) +* [`35316cce2`](https://github.com/npm/npm/commit/35316cce2ca2d8eb94161ec7fe7e8f7bec7b3aa7) + [#17005](https://github.com/npm/npm/pull/17005) + Emulate npm@4's behavior of simply marking the peerDep as invalid, instead of + crashing. + ([@zkat](https://github.com/zkat)) +* [`e7e8ee5c5`](https://github.com/npm/npm/commit/e7e8ee5c57c7238655677e118a8809b652019f53) + [#16937](https://github.com/npm/npm/pull/16937) + Workaround for separate bug where `requested` was somehow null. + ([@forivall](https://github.com/forivall)) +* [`2d9629bb2`](https://github.com/npm/npm/commit/2d9629bb2043cff47eaad2654a64d2cef5725356) + Better logging output for git errors. + ([@zkat](https://github.com/zkat)) +* [`2235aea73`](https://github.com/npm/npm/commit/2235aea73569fb9711a06fa6344ef31247177dcd) + More scp-url fixes: parsing only worked correctly when a committish was + present. + ([@zkat](https://github.com/zkat)) +* [`80c33cf5e`](https://github.com/npm/npm/commit/80c33cf5e6ef207450949764de41ea96538c636e) + Standardize package permissions on tarball extraction, instead of using perms + from the tarball. This matches previous npm behavior and fixes a number of + incompatibilities in the wild. + ([@zkat](https://github.com/zkat)) +* [`2b1e40efb`](https://github.com/npm/npm/commit/2b1e40efba0b3d1004259efa4275cf42144e3ce3) + Limit shallow cloning to hosts which are known to support it. + ([@zkat](https://github.com/zkat)) + +## v5.0.3 (2017-06-05) + +Happy Monday, y'all! We've got another npm release for you with the fruits of +our ongoing bugsquashing efforts. You can expect at least one more this week, +but probably more -- and as we announced last week, we'll be merging fixes more +rapidly into the `npmc` canary so you can get everything as soon as possible! + +Hope y'all are enjoying npm5 in the meantime, and don't hesitate to file issues +for anything you find! The goal is to get this release rock-solid as soon as we +can. šŸ’š + +* [`6e12a5cc0`](https://github.com/npm/npm/commit/6e12a5cc022cb5a157a37df7283b6d7b3d49bdab) + Bump several dependencies to get improvements and bugfixes: + * `cacache`: content files (the tarballs) are now read-only. + * `pacote`: fix failing clones with bad heads, send extra TLS-related opts to proxy, enable global auth configurations and `_auth`-based auth. + * `ssri`: stop crashing with `can't call method find of undefined` when running into a weird `opts.integrity`/`opts.algorithms` conflict during verification. + ([@zkat](https://github.com/zkat)) +* [`89cc8e3e1`](https://github.com/npm/npm/commit/89cc8e3e12dad67fd9844accf4d41deb4c180c5c) + [#16917](https://github.com/npm/npm/pull/16917) + Send `ca`, `cert` and `key` config through to network layer. + ([@colinrotherham](https://github.com/colinrotherham)) +* [`6a9b51c67`](https://github.com/npm/npm/commit/6a9b51c67ba3df0372991631992748329b84f2e7) + [#16929](https://github.com/npm/npm/pull/16929) + Send `npm-session` header value with registry requests again. + ([@zarenner](https://github.com/zarenner)) +* [`662a15ab7`](https://github.com/npm/npm/commit/662a15ab7e790e87f5e5a35252f05d5a4a0724a1) + Fix `npm doctor` so it stop complaining about read-only content files in the + cache. + ([@zkat](https://github.com/zkat)) +* [`191d10a66`](https://github.com/npm/npm/commit/191d10a6616d72e26d89fd00f5a4f6158bfbc526) + [#16918](https://github.com/npm/npm/pull/16918) + Clarify prepublish deprecation message. + ([@Hirse](https://github.com/Hirse)) + +## v5.0.2 (2017-06-02) + +Here's another patch release, soon after the other! + +This particular release includes a slew of fixes to npm's git support, which was +causing some issues for a chunk of people, specially those who were using +self-hosted/Enterprise repos. All of those should be back in working condition +now. + +There's another shiny thing you might wanna know about: npm has a Canary release +now! The `npm5` experiment we did during our beta proved to be incredibly +successful: users were able to have a tight feedback loop between reports and +getting the bugfixes they needed, and the CLI team was able to roll out +experimental patches and have the community try them out right away. So we want +to keep doing that. + +From now on, you'll be able to install the 'npm canary' with `npm i -g npmc`. +This release will be a separate binary (`npmc`. Because canary. Get it?), which +will update independently of the main CLI. Most of the time, this will track +`release-next` or something close to it. We might occasionally toss experimental +branches in there to see if our more adventurous users run into anything +interesting with it. For example, the current canary (`npmc@5.0.1-canary.6`) +includes an [experimental multiproc +branch](https://github.com/npm/npm/pull/16633) that parallelizes tarball +extraction across multiple processes. + +If you find any issues while running the canary version, please report them and +let us know it came from `npmc`! It would be tremendously helpful, and finding +things early is a huge reason to have it there. Happy hacking! + +### A NOTE ABOUT THE ISSUE TRACKER + +Just a heads up: We're preparing to do a massive cleanup of the issue tracker. +It's been a long time since it was something we could really keep up with, and +we didn't have a process for dealing with it that could actually be sustainable. + +We're still sussing the details out, and we'll talk about it more when we're +about to do it, but the plan is essentially to close old, abandoned issues and +start over. We will also [add some automation](https://github.com/probot) around +issue management so that things that we can't keep up with don't just stay +around forever. + +Stay tuned! + +### GIT YOLO + +* [`1f26e9567`](https://github.com/npm/npm/commit/1f26e9567a6d14088704e121ebe787c38b6849a4) + `pacote@2.7.27`: Fixes installing committishes that look like semver, even + though they're not using the required `#semver:` syntax. + ([@zkat](https://github.com/zkat)) +* [`85ea1e0b9`](https://github.com/npm/npm/commit/85ea1e0b9478551265d03d545e7dc750b9edf547) + `npm-package-arg@5.1.1`: This includes the npa git-parsing patch to make it so + non-hosted SCP-style identifiers are correctly handled. Previously, npa would + mangle them (even though hosted-git-info is doing the right thing for them). + ([@zkat](https://github.com/zkat)) + +### COOL NEW OUTPUT + +The new summary output has been really well received! One downside that reared +its head as more people used it, though, is that it doesn't really tell you +anything about the toplevel versions it installed. So, if you did `npm i -g +foo`, it would just say "added 1 package". This patch by +[@rmg](https://github.com/rmg) keeps things concise while still telling you +what you got! So now, you'll see something like this: + +``` +$ npm i -g foo bar ++ foo@1.2.3 ++ bar@3.2.1 +added 234 packages in .005ms +``` + +* [`362f9fd5b`](https://github.com/npm/npm/commit/362f9fd5bec65301082416b4292b8fe3eb7f824a) + [#16899](https://github.com/npm/npm/pull/16899) + For every package that is given as an argument to install, print the name and + version that was actually installed. + ([@rmg](https://github.com/rmg)) + +### OTHER BUGFIXES + +* [`a47593a98`](https://github.com/npm/npm/commit/a47593a98a402143081d7077d2ac677d13083010) + [#16835](https://github.com/npm/npm/pull/16835) + Fix a crash while installing with `--no-shrinkwrap`. + ([@jacknagel](https://github.com/jacknagel)) + +### DOC UPATES + +* [`89e0cb816`](https://github.com/npm/npm/commit/89e0cb8165dd9c3c7ac74d531617f367099608f4) + [#16818](https://github.com/npm/npm/pull/16818) + Fixes a spelling error in the docs. Because the CLI team has trouble spelling + "package", I guess. + ([@ankon](https://github.com/ankon)) +* [`c01fbc46e`](https://github.com/npm/npm/commit/c01fbc46e151bcfb359fd68dd7faa392789b4f55) + [#16895](https://github.com/npm/npm/pull/16895) + Remove `--save` from `npm init` instructions, since it's now the default. + ([@jhwohlgemuth](https://github.com/jhwohlgemuth)) +* [`80c42d218`](https://github.com/npm/npm/commit/80c42d2181dd4d1b79fcee4e9233df268dfb30b7) + Guard against cycles when inflating bundles, as symlinks are bundles now. + ([@iarna](https://github.com/iarna)) +* [`7fe7f8665`](https://github.com/npm/npm/commit/7fe7f86658798db6667df89afc75588c0e43bc94) + [#16674](https://github.com/npm/npm/issues/16674) + Write the builtin config for `npmc`, not just `npm`. This is hardcoded for npm + self-installations and is needed for Canary to work right. + ([@zkat](https://github.com/zkat)) + +### DEP UPDATES + +* [`63df4fcdd`](https://github.com/npm/npm/commit/63df4fcddc7445efb50cc7d8e09cdd45146d3e39) + [#16894](https://github.com/npm/npm/pull/16894) + [`node-gyp@3.6.2`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md#v362-2017-06-01): + Fixes an issue parsing SDK versions on Windows, among other things. + ([@refack](https://github.com/refack)) +* [`5bb15c3c4`](https://github.com/npm/npm/commit/5bb15c3c4f0d7d77c73fd6dafa38ac36549b6e00) + `read-package-tree@5.1.6`: Fixes some racyness while reading the tree. + ([@iarna](https://github.com/iarna)) +* [`a6f7a52e7`](https://github.com/npm/npm/commit/a6f7a52e7) + `aproba@1.1.2`: Remove nested function declaration for speed up + ([@mikesherov](https://github.com/mikesherov)) + +## v5.0.1 (2017-05-31): + +Hey y'all! Hope you're enjoying the new npm! + +As you all know, fresh software that's gone through major overhauls tends to +miss a lot of spots the old one used to handle well enough, and `npm@5` is no +exception. The CLI team will be doing faster release cycles that go directly to +the `latest` tag for a couple of weeks while 5 stabilizes a bit and we're +confident the common low-hanging fruit people are running into are all taken +care of. + +With that said: this is our first patch release! The biggest focus is fixing up +a number of git-related issues that folks ran into right out the door. It also +fixes other things, like some proxy/auth-related issues, and even has a neat +speed boost! (You can expect more speed bumps in the coming releases as pending +work starts landing, too!) + +Thanks everyone who's been reporting issues and submitting patches! + +### BUGFIXES + +* [`e61e68dac`](https://github.com/npm/npm/commit/e61e68dac4fa51c0540a064204a75b19f8052e58) + [#16762](https://github.com/npm/npm/pull/16762) + Make `npm publish` obey the `--tag` flag again. + ([@zkat](https://github.com/zkat)) +* [`923fd58d3`](https://github.com/npm/npm/commit/923fd58d312f40f8c17b232ad1dfc8e2ff622dbd) + [#16749](https://github.com/npm/npm/pull/16749) + Speed up installations by nearly 20% by... removing one line of code. (hah) + ([@mikesherov](https://github.com/mikesherov)) +* [`9aac984cb`](https://github.com/npm/npm/commit/9aac984cbbfef22182ee42b51a193c0b47146ad6) + Guard against a particular failure mode for a bug still being hunted down. + ([@iarna](https://github.com/iarna)) +* [`80ab521f1`](https://github.com/npm/npm/commit/80ab521f18d34df109de0c5dc9eb1cde5ff6d7e8) + Pull in dependency updates for various core deps: + * New `pacote` fixes several git-related bugs. + * `ssri` update fixes crash on early node@4 versions. + * `make-fetch-happen` update fixes proxy authentication issue. + * `npm-user-validate` adds regex for blocking usernames with illegal chars. + ([@zkat](https://github.com/zkat)) +* [`7e5ce87b8`](https://github.com/npm/npm/commit/7e5ce87b84880c7433ee4c07d2dd6ce8806df436) + `pacote@2.7.26`: + Fixes various other git issues related to commit hashes. + ([@zkat](https://github.com/zkat)) +* [`acbe85bfc`](https://github.com/npm/npm/commit/acbe85bfc1a68d19ca339a3fb71da0cffbf58926) + [#16791](https://github.com/npm/npm/pull/16791) + `npm view` was calling `cb` prematurely and giving partial output when called + in a child process. + ([@zkat](https://github.com/zkat)) +* [`ebafe48af`](https://github.com/npm/npm/commit/ebafe48af91f702ccefc8c619d52fed3b8dfd3c7) + [#16750](https://github.com/npm/npm/pull/16750) + Hamilpatch the Musical: Talk less, complete more. + ([@aredridel](https://github.com/aredridel)) + +### DOCUMENTATION + +* [`dc2823a6c`](https://github.com/npm/npm/commit/dc2823a6c5fc098041e61515c643570819d059d2) + [#16799](https://github.com/npm/npm/pull/16799) + Document that `package-lock.json` is never allowed in tarballs. + ([@sonicdoe](https://github.com/sonicdoe)) +* [`f3cb84b44`](https://github.com/npm/npm/commit/f3cb84b446c51d628ee0033cdf13752c15b31a29) + [#16771](https://github.com/npm/npm/pull/16771) + Fix `npm -l` usage information for the `test` command. + ([@grawlinson](https://github.com/grawlinson)) + +### OTHER CHANGES + +* [`661262309`](https://github.com/npm/npm/commit/66126230912ab5ab35287b40a9908e036fa73994) + [#16756](https://github.com/npm/npm/pull/16756) + remove unused argument + ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) +* [`c3e0b4287`](https://github.com/npm/npm/commit/c3e0b4287ea69735cc367aa7bb7e7aa9a6d9804b) + [#16296](https://github.com/npm/npm/pull/16296) + preserve same name convention for command + ([@desfero](https://github.com/desfero)) +* [`9f814831d`](https://github.com/npm/npm/commit/9f814831d330dde7702973186aea06caaa77ff31) + [#16757](https://github.com/npm/npm/pull/16757) + remove unused argument + ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) +* [`3cb843239`](https://github.com/npm/npm/commit/3cb8432397b3666d88c31131dbb4599016a983ff) + minor linter fix + ([@zkat](https://github.com/zkat)) + +## v5.0.0 (2017-05-25) + +Wowowowowow npm@5! + +This release marks months of hard work for the young, scrappy, and hungry CLI +team, and includes some changes we've been hoping to do for literally years. +npm@5 takes npm a pretty big step forward, significantly improving its +performance in almost all common situations, fixing a bunch of old errors due to +the architecture, and just generally making it more robust and fault-tolerant. +It comes with changes to make life easier for people doing monorepos, for users +who want consistency/security guarantees, and brings semver support to git +dependencies. See below for all the deets! + +### Breaking Changes + +* Existing npm caches will no longer be used: you will have to redownload any cached packages. There is no tool or intention to reuse old caches. ([#15666](https://github.com/npm/npm/pull/15666)) + +* `npm install ./packages/subdir` will now create a symlink instead of a regular installation. `file://path/to/tarball.tgz` will not change -- only directories are symlinked. ([#15900](https://github.com/npm/npm/pull/15900)) + +* npm will now scold you if you capitalize its name. seriously it will fight you. + +* [npm will `--save` by default now](https://twitter.com/maybekatz/status/859229741676625920). Additionally, `package-lock.json` will be automatically created unless an `npm-shrinkwrap.json` exists. ([#15666](https://github.com/npm/npm/pull/15666)) + +* Git dependencies support semver through `user/repo#semver:^1.2.3` ([#15308](https://github.com/npm/npm/pull/15308)) ([#15666](https://github.com/npm/npm/pull/15666)) ([@sankethkatta](https://github.com/sankethkatta)) + +* Git dependencies with `prepare` scripts will have their `devDependencies` installed, and `npm install` run in their directory before being packed. + +* `npm cache` commands have been rewritten and don't really work anything like they did before. ([#15666](https://github.com/npm/npm/pull/15666)) + +* `--cache-min` and `--cache-max` have been deprecated. ([#15666](https://github.com/npm/npm/pull/15666)) + +* Running npm while offline will no longer insist on retrying network requests. npm will now immediately fall back to cache if possible, or fail. ([#15666](https://github.com/npm/npm/pull/15666)) + +* package locks no longer exclude `optionalDependencies` that failed to build. This means package-lock.json and npm-shrinkwrap.json should now be cross-platform. ([#15900](https://github.com/npm/npm/pull/15900)) + +* If you generated your package lock against registry A, and you switch to registry B, npm will now try to [install the packages from registry B, instead of A](https://twitter.com/maybekatz/status/862834964932435969). If you want to use different registries for different packages, use scope-specific registries (`npm config set @myscope:registry=https://myownregist.ry/packages/`). Different registries for different unscoped packages are not supported anymore. + +* Shrinkwrap and package-lock no longer warn and exit without saving the lockfile. + +* Local tarballs can now only be installed if they have a file extensions `.tar`, `.tar.gz`, or `.tgz`. + +* A new loglevel, `notice`, has been added and set as default. + +* One binary to rule them all: `./cli.js` has been removed in favor of `./bin/npm-cli.js`. In case you were doing something with `./cli.js` itself. ([#12096](https://github.com/npm/npm/pull/12096)) ([@watilde](https://github.com/watilde)) + +* Stub file removed ([#16204](https://github.com/npm/npm/pull/16204)) ([@watilde](https://github.com/watilde)) + +* The "extremely legacy" `_token` couchToken has been removed. ([#12986](https://github.com/npm/npm/pull/12986)) + +### Feature Summary + +#### Installer changes + +* A new, standardised lockfile feature meant for cross-package-manager compatibility (`package-lock.json`), and a new format and semantics for shrinkwrap. ([#16441](https://github.com/npm/npm/pull/16441)) + +* `--save` is no longer necessary. All installs will be saved by default. You can prevent saving with `--no-save`. Installing optional and dev deps is unchanged: use `-D/--save-dev` and `-O/--save-optional` if you want them saved into those fields instead. Note that since npm@3, npm will automatically update npm-shrinkwrap.json when you save: this will also be true for `package-lock.json`. ([#15666](https://github.com/npm/npm/pull/15666)) + +* Installing a package directory now ends up creating a symlink and does the Right Thingā„¢ as far as saving to and installing from the package lock goes. If you have a monorepo, this might make things much easier to work with, and probably a lot faster too. šŸ˜ ([#15900](https://github.com/npm/npm/pull/15900)) + +* Project-level (toplevel) `preinstall` scripts now run before anything else, and can modify `node_modules` before the CLI reads it. + +* Two new scripts have been added, `prepack` and `postpack`, which will run on both `npm pack` and `npm publish`, but NOT on `npm install` (without arguments). Combined with the fact that `prepublishOnly` is run before the tarball is generated, this should round out the general story as far as putzing around with your code before publication. + +* Git dependencies with `prepare` scripts will now [have their devDependencies installed, and their prepare script executed](https://twitter.com/maybekatz/status/860363896443371520) as if under `npm pack`. + +* Git dependencies now support semver-based matching: `npm install git://github.com/npm/npm#semver:^5` (#15308, #15666) + +* `node-gyp` now supports `node-gyp.cmd` on Windows ([#14568](https://github.com/npm/npm/pull/14568)) + +* npm no longer blasts your screen with the whole installed tree. Instead, you'll see a summary report of the install that is much kinder on your shell real-estate. Specially for large projects. ([#15914](https://github.com/npm/npm/pull/15914)): +``` +$ npm install +npm added 125, removed 32, updated 148 and moved 5 packages in 5.032s. +$ +``` + +* `--parseable` and `--json` now work more consistently across various commands, particularly `install` and `ls`. + +* Indentation is now [detected and preserved](https://twitter.com/maybekatz/status/860690502932340737) for `package.json`, `package-lock.json`, and `npm-shrinkwrap.json`. If the package lock is missing, it will default to `package.json`'s current indentation. + +#### Publishing + +* New [publishes will now include *both* `sha512`](https://twitter.com/maybekatz/status/863201943082065920) and `sha1` checksums. Versions of npm from 5 onwards will use the strongest algorithm available to verify downloads. [npm/npm-registry-client#157](https://github.com/npm/npm-registry-client/pull/157) + +#### Cache Rewrite! + +We've been talking about rewriting the cache for a loooong time. So here it is. +Lots of exciting stuff ahead. The rewrite will also enable some exciting future +features, but we'll talk about those when they're actually in the works. #15666 +is the main PR for all these changes. Additional PRs/commits are linked inline. + +* Package metadata, package download, and caching infrastructure replaced. + +* It's a bit faster. [Hopefully it will be noticeable](https://twitter.com/maybekatz/status/865393382260056064). šŸ¤” + +* With the shrinkwrap and package-lock changes, tarballs will be looked up in the cache by content address (and verified with it). + +* Corrupted cache entries will [automatically be removed and re-fetched](https://twitter.com/maybekatz/status/854933138182557696) on integrity check failure. + +* npm CLI now supports tarball hashes with any hash function supported by Node.js. That is, it will [use `sha512` for tarballs from registries that send a `sha512` checksum as the tarball hash](https://twitter.com/maybekatz/status/858137093624573953). Publishing with `sha512` is added by [npm/npm-registry-client#157](https://github.com/npm/npm-registry-client/pull/157) and may be backfilled by the registry for older entries. + +* Remote tarball requests are now cached. This means that even if you're missing the `integrity` field in your shrinkwrap or package-lock, npm will be able to install from the cache. + +* Downloads for large packages are streamed in and out of disk. npm is now able to install packages of """any""" size without running out of memory. Support for publishing them is pending (due to registry limitations). + +* [Automatic fallback-to-offline mode](https://twitter.com/maybekatz/status/854176565587984384). npm will seamlessly use your cache if you are offline, or if you lose access to a particular registry (for example, if you can no longer access a private npm repo, or if your git host is unavailable). + +* A new `--prefer-offline` option will make npm skip any conditional requests (304 checks) for stale cache data, and *only* hit the network if something is missing from the cache. + +* A new `--prefer-online` option that will force npm to revalidate cached data (with 304 checks), ignoring any staleness checks, and refreshing the cache with revalidated, fresh data. + +* A new `--offline` option will force npm to use the cache or exit. It will error with an `ENOTCACHED` code if anything it tries to install isn't already in the cache. + +* A new `npm cache verify` command that will garbage collect your cache, reducing disk usage for things you don't need (-handwave-), and will do full integrity verification on both the index and the content. This is also hooked into `npm doctor` as part of its larger suite of checking tools. + +* The new cache is *very* fault tolerant and supports concurrent access. + * Multiple npm processes will not corrupt a shared cache. + * Corrupted data will not be installed. Data is checked on both insertion and extraction, and treated as if it were missing if found to be corrupted. I will literally bake you a cookie if you manage to corrupt the cache in such a way that you end up with the wrong data in your installation (installer bugs notwithstanding). + * `npm cache clear` is no longer useful for anything except clearing up disk space. + +* Package metadata is cached separately per registry and package type: you can't have package name conflicts between locally-installed packages, private repo packages, and public repo packages. Identical tarball data will still be shared/deduplicated as long as their hashes match. + +* HTTP cache-related headers and features are "fully" (lol) supported for both metadata and tarball requests -- if you have your own registry, you can define your own cache settings the CLI will obey! + +* `prepublishOnly` now runs *before* the tarball to publish is created, after `prepare` has run. diff --git a/deps/npm/doc/cli/npm-audit.md b/deps/npm/doc/cli/npm-audit.md new file mode 100644 index 0000000000..3bb13259d7 --- /dev/null +++ b/deps/npm/doc/cli/npm-audit.md @@ -0,0 +1,94 @@ +npm-audit(1) -- Run a security audit +==================================== + +## SYNOPSIS + + npm audit [--json] + npm audit fix [--force|--package-lock-only|--dry-run|--production|--only=dev] + +## EXAMPLES + +Scan your project for vulnerabilities and automatically install any compatible +updates to vulnerable dependencies: +``` +$ npm audit fix +``` + +Run `audit fix` without modifying `node_modules`, but still updating the +pkglock: +``` +$ npm audit fix --package-lock-only +``` + +Skip updating `devDependencies`: +``` +$ npm audit fix --only=prod +``` + +Have `audit fix` install semver-major updates to toplevel dependencies, not just +semver-compatible ones: +``` +$ npm audit fix --force +``` + +Do a dry run to get an idea of what `audit fix` will do, and _also_ output +install information in JSON format: +``` +$ npm audit fix --dry-run --json +``` + +Scan your project for vulnerabilities and just show the details, without fixing +anything: +``` +$ npm audit +``` + +Get the detailed audit report in JSON format: +``` +$ npm audit --json +``` + +## DESCRIPTION + +The audit command submits a description of the dependencies configured in +your project to your default registry and asks for a report of known +vulnerabilities. The report returned includes instructions on how to act on +this information. + +You can also have npm automatically fix the vulnerabilities by running `npm +audit fix`. Note that some vulnerabilities cannot be fixed automatically and +will require manual intervention or review. Also note that since `npm audit fix` +runs a full-fledged `npm install` under the hood, all configs that apply to the +installer will also apply to `npm install` -- so things like `npm audit fix +--package-lock-only` will work as expected. + +## CONTENT SUBMITTED + +* npm_version +* node_version +* platform +* node_env +* A scrubbed version of your package-lock.json or npm-shrinkwrap.json + +### SCRUBBING + +In order to ensure that potentially sensitive information is not included in +the audit data bundle, some dependencies may have their names (and sometimes +versions) replaced with opaque non-reversible identifiers. It is done for +the following dependency types: + +* Any module referencing a scope that is configured for a non-default + registry has its name scrubbed. (That is, a scope you did a `npm login --scope=@ourscope` for.) +* All git dependencies have their names and specifiers scrubbed. +* All remote tarball dependencies have their names and specifiers scrubbed. +* All local directory and tarball dependencies have their names and specifiers scrubbed. + +The non-reversible identifiers are a sha256 of a session-specific UUID and the +value being replaced, ensuring a consistent value within the payload that is +different between runs. + +## SEE ALSO + +* npm-install(1) +* package-locks(5) +* config(7) diff --git a/deps/npm/doc/cli/npm-ci.md b/deps/npm/doc/cli/npm-ci.md new file mode 100644 index 0000000000..b1406e36a5 --- /dev/null +++ b/deps/npm/doc/cli/npm-ci.md @@ -0,0 +1,58 @@ +npm-ci(1) -- Install a project with a clean slate +=================================== + +## SYNOPSIS + + npm ci + +## EXAMPLE + +Make sure you have a package-lock and an up-to-date install: + +``` +$ cd ./my/npm/project +$ npm install +added 154 packages in 10s +$ ls | grep package-lock +``` + +Run `npm ci` in that project + +``` +$ npm ci +added 154 packages in 5s +``` + +Configure Travis to build using `npm ci` instead of `npm install`: + +``` +# .travis.yml +install: +- npm ci +# keep the npm cache around to speed up installs +cache: + directories: + - "$HOME/.npm" +``` + +## DESCRIPTION + +This command is similar to `npm-install(1)`, except it's meant to be used in +automated environments such as test platforms, continuous integration, and +deployment. It can be significantly faster than a regular npm install by +skipping certain user-oriented features. It is also more strict than a regular +install, which can help catch errors or inconsistencies caused by the +incrementally-installed local environments of most npm users. + +In short, the main differences between using `npm install` and `npm ci` are: + +* The project **must** have an existing `package-lock.json` or `npm-shrinkwrap.json`. +* If dependencies in the package lock do not match those in `package.json`, `npm ci` will exit with an error, instead of updating the package lock. +* `npm ci` can only install entire projects at a time: individual dependencies cannot be added with this command. +* If a `node_modules` is already present, it will be automatically removed before `npm ci` begins its install. +* It will never write to `package.json` or any of the package-locks: installs are essentially frozen. + +## SEE ALSO + +* npm-install(1) +* npm-package-locks(5) diff --git a/deps/npm/doc/cli/npm-hook.md b/deps/npm/doc/cli/npm-hook.md new file mode 100644 index 0000000000..34deecaf92 --- /dev/null +++ b/deps/npm/doc/cli/npm-hook.md @@ -0,0 +1,72 @@ +npm-hook(1) -- Manage registry hooks +=================================== + +## SYNOPSIS + + npm hook ls [pkg] + npm hook add + npm hook update [secret] + npm hook rm + +## EXAMPLE + +Add a hook to watch a package for changes: +``` +$ npm hook add lodash https://example.com/ my-shared-secret +``` + +Add a hook to watch packages belonging to the user `substack`: +``` +$ npm hook add ~substack https://example.com/ my-shared-secret +``` + +Add a hook to watch packages in the scope `@npm` +``` +$ npm hook add @npm https://example.com/ my-shared-secret +``` + +List all your active hooks: +``` +$ npm hook ls +``` + +List your active hooks for the `lodash` package: +``` +$ npm hook ls lodash +``` + +Update an existing hook's url: +``` +$ npm hook update id-deadbeef https://my-new-website.here/ +``` + +Remove a hook: +``` +$ npm hook rm id-deadbeef +``` + +## DESCRIPTION + +Allows you to manage [npm +hooks](http://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm), +including adding, removing, listing, and updating. + +Hooks allow you to configure URL endpoints that will be notified whenever a +change happens to any of the supported entity types. Three different types of +entities can be watched by hooks: packages, owners, and scopes. + +To create a package hook, simply reference the package name. + +To create an owner hook, prefix the owner name with `~` (as in, `~youruser`). + +To create a scope hook, prefix the scope name with `@` (as in, `@yourscope`). + +The hook `id` used by `update` and `rm` are the IDs listed in `npm hook ls` for +that particular hook. + +The shared secret will be sent along to the URL endpoint so you can verify the +request came from your own configured hook. + +## SEE ALSO + +* ["Introducing Hooks" blog post](http://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm) diff --git a/deps/npm/doc/cli/npm-init.md b/deps/npm/doc/cli/npm-init.md index ec4c25beda..b91bcafae8 100644 --- a/deps/npm/doc/cli/npm-init.md +++ b/deps/npm/doc/cli/npm-init.md @@ -1,34 +1,62 @@ -npm-init(1) -- Interactively create a package.json file +npm-init(1) -- create a package.json file ======================================================= ## SYNOPSIS - npm init [-f|--force|-y|--yes] + npm init [--force|-f|--yes|-y|--scope] + npm init <@scope> (same as `npx <@scope>/create`) + npm init [<@scope>/] (same as `npx [<@scope>/]create-`) -## DESCRIPTION +## EXAMPLES + +Create a new React-based project using [`create-react-app`](https://npm.im/create-react-app): +``` +$ npm init react-app ./my-react-app +``` -This will ask you a bunch of questions, and then write a package.json for you. +Create a new `esm`-compatible package using [`create-esm`](https://npm.im/create-esm): +``` +$ mkdir my-esm-lib && cd my-esm-lib +$ npm init esm --yes +``` -It attempts to make reasonable guesses about what you want things to be set to, -and then writes a package.json file with the options you've selected. +Generate a plain old package.json using legacy init: +``` +$ mkdir my-npm-pkg && cd my-npm-pkg +$ git init +$ npm init +``` -If you already have a package.json file, it'll read that first, and default to -the options in there. +Generate it without having it ask any questions: +``` +$ npm init -y +``` + +## DESCRIPTION -It is strictly additive, so it does not delete options from your package.json -without a really good reason to do so. +`npm init ` can be used to set up a new or existing npm package. -If you invoke it with `-f`, `--force`, `-y`, or `--yes`, it will use only -defaults and not prompt you for any options. +`initializer` in this case is an npm package named `create-`, which +will be installed by [`npx(1)`](https://npm.im/npx), and then have its main bin +executed -- presumably creating or updating `package.json` and running any other +initialization-related operations. -## CONFIGURATION +The init command is transformed to a corresponding `npx` operation as follows: -### scope +* `npm init foo` -> `npx create-foo` +* `npm init @usr/foo` -> `npx @usr/create-foo` +* `npm init @usr` -> `npx @usr/create` -* Default: none -* Type: String +Any additional options will be passed directly to the command, so `npm init foo +--hello` will map to `npx create-foo --hello`. -The scope under which the new module should be created. +If the initializer is omitted (by just calling `npm init`), init will fall back +to legacy init behavior. It will ask you a bunch of questions, and then write a +package.json for you. It will attempt to make reasonable guesses based on +existing fields, dependencies, and options selected. It is strictly additive, so +it will keep any fields and values that were already set. You can also use +`-y`/`--yes` to skip the questionnaire altogether. If you pass `--scope`, it +will create a scoped package. ## SEE ALSO diff --git a/deps/npm/doc/cli/npm-install-ci-test.md b/deps/npm/doc/cli/npm-install-ci-test.md new file mode 100644 index 0000000000..4cbab9144e --- /dev/null +++ b/deps/npm/doc/cli/npm-install-ci-test.md @@ -0,0 +1,16 @@ +# npm install-ci-test(1) -- Install a project with a clean slate and run tests + +## SYNOPSIS + + npm install-ci-test + + alias: npm cit + +## DESCRIPTION + +This command runs an `npm ci` followed immediately by an `npm test`. + +## SEE ALSO + +- npm-ci(1) +- npm-test(1) diff --git a/deps/npm/doc/cli/npm-install.md b/deps/npm/doc/cli/npm-install.md index 0489ddf94e..6c8d327dc8 100644 --- a/deps/npm/doc/cli/npm-install.md +++ b/deps/npm/doc/cli/npm-install.md @@ -55,6 +55,9 @@ after packing it up into a tarball (b). is set to `production`), npm will not install modules listed in `devDependencies`. + > NOTE: The `--production` flag has no particular meaning when adding a + dependency to a project. + * `npm install `: Install the package in the directory as a symlink in the current project. @@ -347,7 +350,8 @@ The `--no-shrinkwrap` argument, which will ignore an available package lock or shrinkwrap file and use the package.json instead. The `--no-package-lock` argument will prevent npm from creating a -`package-lock.json` file. +`package-lock.json` file. When running with package-lock's disabled npm +will not automatically prune your node modules when installing. The `--nodedir=/path/to/node/source` argument will allow npm to find the node source code so that npm can compile native modules. @@ -355,6 +359,9 @@ node source code so that npm can compile native modules. The `--only={prod[uction]|dev[elopment]}` argument will cause either only `devDependencies` or only non-`devDependencies` to be installed regardless of the `NODE_ENV`. +The `--no-audit` argument can be used to disable sending of audit reports to +the configured registries. See `npm-audit(1)` for details on what is sent. + See `npm-config(7)`. Many of the configuration params have some effect on installation, since that's most of what npm does. @@ -430,6 +437,7 @@ affects a real use-case, it will be investigated. * npm-folders(5) * npm-update(1) +* npm-audit(1) * npm-link(1) * npm-rebuild(1) * npm-scripts(7) diff --git a/deps/npm/doc/cli/npm-ls.md b/deps/npm/doc/cli/npm-ls.md index e665a735c3..7b10a19d69 100644 --- a/deps/npm/doc/cli/npm-ls.md +++ b/deps/npm/doc/cli/npm-ls.md @@ -76,7 +76,7 @@ Max display depth of the dependency tree. Display only the dependency tree for packages in `dependencies`. -### dev +### dev / development * Type: Boolean * Default: false diff --git a/deps/npm/doc/cli/npm-outdated.md b/deps/npm/doc/cli/npm-outdated.md index 0792be24a7..ad0d003cee 100644 --- a/deps/npm/doc/cli/npm-outdated.md +++ b/deps/npm/doc/cli/npm-outdated.md @@ -27,6 +27,8 @@ In the output: * `package type` (when using `--long` / `-l`) tells you whether this package is a `dependency` or a `devDependency`. Packages not included in `package.json` are always marked `dependencies`. +* Red means there's a newer version matching your semver requirements, so you should update now. +* Yellow indicates that there's a newer version above your semver requirements (usually new major, or new 0.x minor) so proceed with caution. ### An example diff --git a/deps/npm/doc/cli/npm-prune.md b/deps/npm/doc/cli/npm-prune.md index c7f340ca7b..0dde244251 100644 --- a/deps/npm/doc/cli/npm-prune.md +++ b/deps/npm/doc/cli/npm-prune.md @@ -3,7 +3,7 @@ npm-prune(1) -- Remove extraneous packages ## SYNOPSIS - npm prune [[<@scope>/]...] [--production] + npm prune [[<@scope>/]...] [--production] [--dry-run] [--json] ## DESCRIPTION @@ -16,9 +16,21 @@ package's dependencies list. If the `--production` flag is specified or the `NODE_ENV` environment variable is set to `production`, this command will remove the packages -specified in your `devDependencies`. Setting `--production=false` will +specified in your `devDependencies`. Setting `--no-production` will negate `NODE_ENV` being set to `production`. +If the `--dry-run` flag is used then no changes will actually be made. + +If the `--json` flag is used then the changes `npm prune` made (or would +have made with `--dry-run`) are printed as a JSON object. + +In normal operation with package-locks enabled, extraneous modules are +pruned automatically when modules are installed and you'll only need +this command with the `--production` flag. + +If you've disabled package-locks then extraneous modules will not be removed +and it's up to you to run `npm prune` from time-to-time to remove them. + ## SEE ALSO * npm-uninstall(1) diff --git a/deps/npm/doc/cli/npm-run-script.md b/deps/npm/doc/cli/npm-run-script.md index ee907d8c73..dc2c93ef94 100644 --- a/deps/npm/doc/cli/npm-run-script.md +++ b/deps/npm/doc/cli/npm-run-script.md @@ -68,6 +68,10 @@ you will be given a warning to run `npm install`, just in case you've forgotten. You can use the `--silent` flag to prevent showing `npm ERR!` output on error. +You can use the `--if-present` flag to avoid exiting with a non-zero exit code +when the script is undefined. This lets you run potentially undefined scripts +without breaking the execution chain. + ## SEE ALSO * npm-scripts(7) diff --git a/deps/npm/doc/cli/npm-team.md b/deps/npm/doc/cli/npm-team.md index 5a8b4b63e3..9e01a451c7 100644 --- a/deps/npm/doc/cli/npm-team.md +++ b/deps/npm/doc/cli/npm-team.md @@ -34,6 +34,9 @@ when operating on them, separated by a colon (`:`). That is, if you have a under that organization. If performed on a team, it will instead return a list of all users belonging to that particular team. +* edit: + Edit a current team. + ## DETAILS `npm team` always operates directly on the current registry, configurable from diff --git a/deps/npm/doc/cli/npm-update.md b/deps/npm/doc/cli/npm-update.md index d6ec30d2ae..b6cf2af78b 100644 --- a/deps/npm/doc/cli/npm-update.md +++ b/deps/npm/doc/cli/npm-update.md @@ -26,6 +26,10 @@ As of `npm@2.6.1`, the `npm update` will only inspect top-level packages. Prior versions of `npm` would also recursively inspect all dependencies. To get the old behavior, use `npm --depth 9999 update`. +As of `npm@5.0.0`, the `npm update` will change `package.json` to save the +new version as the minimum required dependency. To get the old behavior, +use `npm update --no-save`. + ## EXAMPLES IMPORTANT VERSION NOTE: these examples assume `npm@2.6.1` or later. For @@ -104,30 +108,6 @@ If the dependence were on `^0.4.0`: Then `npm update` will install `dep1@0.4.1`, because that is the highest-sorting version that satisfies `^0.4.0` (`>= 0.4.0 <0.5.0`) -### Recording Updates with `--save` - -When you want to update a package and save the new version as -the minimum required dependency in `package.json`, you can use -`npm update -S` or `npm update --save`. For example if -`package.json` contains: - -``` -"dependencies": { - "dep1": "^1.1.1" -} -``` - -Then `npm update --save` will install `dep1@1.2.2` (i.e., `latest`), -and `package.json` will be modified: - -``` -"dependencies": { - "dep1": "^1.2.2" -} -``` - -Note that `npm` will only write an updated version to `package.json` -if it installs a new package. ### Updating Globally-Installed Packages diff --git a/deps/npm/doc/cli/npm-version.md b/deps/npm/doc/cli/npm-version.md index 1381b8be4b..f1a9bfccda 100644 --- a/deps/npm/doc/cli/npm-version.md +++ b/deps/npm/doc/cli/npm-version.md @@ -12,7 +12,7 @@ npm-version(1) -- Bump a package version ## DESCRIPTION Run this in a package directory to bump the version and write the new -data back to `package.json` and, if present, `npm-shrinkwrap.json`. +data back to `package.json`, `package-lock.json`, and, if present, `npm-shrinkwrap.json`. The `newversion` argument should be a valid semver string, a valid second argument to [semver.inc](https://github.com/npm/node-semver#functions) (one of `patch`, `minor`, `major`, diff --git a/deps/npm/doc/cli/npm.md b/deps/npm/doc/cli/npm.md index ec867e5f9e..e41e7252e3 100644 --- a/deps/npm/doc/cli/npm.md +++ b/deps/npm/doc/cli/npm.md @@ -93,7 +93,7 @@ npm is extremely configurable. It reads its configuration options from * Command line switches: Set a config with `--key val`. All keys take a value, even if they are booleans (the config parser doesn't know what the options are at - the time of parsing.) If no value is provided, then the option is set + the time of parsing). If no value is provided, then the option is set to boolean `true`. * Environment Variables: Set any config by prefixing the name in an environment variable with diff --git a/deps/npm/doc/files/npm-folders.md b/deps/npm/doc/files/npm-folders.md index 74c7883443..456cb58bc8 100644 --- a/deps/npm/doc/files/npm-folders.md +++ b/deps/npm/doc/files/npm-folders.md @@ -68,7 +68,7 @@ Man pages are not installed on Windows systems. ### Cache See `npm-cache(1)`. Cache files are stored in `~/.npm` on Posix, or -`~/npm-cache` on Windows. +`%AppData%/npm-cache` on Windows. This is controlled by the `cache` configuration param. diff --git a/deps/npm/doc/files/npm-package-locks.md b/deps/npm/doc/files/npm-package-locks.md index c57fc85658..cbb62bdc38 100644 --- a/deps/npm/doc/files/npm-package-locks.md +++ b/deps/npm/doc/files/npm-package-locks.md @@ -136,6 +136,25 @@ on. Additionally, the diffs from these changes are human-readable and will inform you of any changes npm has made to your `node_modules`, so you can notice if any transitive dependencies were updated, hoisted, etc. +### Resolving lockfile conflicts + +Occasionally, two separate npm install will create package locks that cause +merge conflicts in source control systems. As of `npm@5.7.0`, these conflicts +can be resolved by manually fixing any `package.json` conflicts, and then +running `npm install [--package-lock-only]` again. npm will automatically +resolve any conflicts for you and write a merged package lock that includes all +the dependencies from both branches in a reasonable tree. If +`--package-lock-only` is provided, it will do this without also modifying your +local `node_modules/`. + +To make this process seamless on git, consider installing +[`npm-merge-driver`](https://npm.im/npm-merge-driver), which will teach git how +to do this itself without any user interaction. In short: `$ npx +npm-merge-driver install -g` will let you do this, and even works with +pre-`npm@5.7.0` versions of npm 5, albeit a bit more noisily. Note that if +`package.json` itself conflicts, you will have to resolve that by hand and run +`npm install` manually, even with the merge driver. + ## SEE ALSO * https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527 diff --git a/deps/npm/doc/files/package-lock.json.md b/deps/npm/doc/files/package-lock.json.md index 4c134fc229..1b4ba93497 100644 --- a/deps/npm/doc/files/package-lock.json.md +++ b/deps/npm/doc/files/package-lock.json.md @@ -120,6 +120,15 @@ transitive dependency of a non-optional dependency of the top level. All optional dependencies should be included even if they're uninstallable on the current platform. + +#### requires + +This is a mapping of module name to version. This is a list of everything +this module requires, regardless of where it will be installed. The version +should match via normal matching rules a dependency either in our +`dependencies` or in a level higher than us. + + #### dependencies The dependencies of this dependency, exactly as at the top level. @@ -128,5 +137,6 @@ The dependencies of this dependency, exactly as at the top level. * npm-shrinkwrap(1) * npm-shrinkwrap.json(5) +* npm-package-locks(5) * package.json(5) * npm-install(1) diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md index d91984d1d4..2ad3bcf68c 100644 --- a/deps/npm/doc/files/package.json.md +++ b/deps/npm/doc/files/package.json.md @@ -11,11 +11,11 @@ settings described in `npm-config(7)`. ## name -The *most* important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version. +If you plan to publish your package, the *most* important things in your +package.json are the name and version fields as they will be required. The name +and version together form an identifier that is assumed to be completely unique. +Changes to the package should come along with changes to the version. If you don't +plan to publish your package, the name and version fields are optional. The name is what your thing is called. @@ -44,11 +44,11 @@ A name can be optionally prefixed by a scope, e.g. `@myorg/mypackage`. See ## version -The *most* important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version. +If you plan to publish your package, the *most* important things in your +package.json are the name and version fields as they will be required. The name +and version together form an identifier that is assumed to be completely unique. +Changes to the package should come along with changes to the version. If you don't +plan to publish your package, the name and version fields are optional. Version must be parseable by [node-semver](https://github.com/isaacs/node-semver), which is bundled @@ -70,6 +70,10 @@ discover your package as it's listed in `npm search`. The url to the project homepage. +Example: + + "homepage": "https://github.com/owner/project#readme" + ## bugs The url to your project's issue tracker and / or the email address to which @@ -168,13 +172,15 @@ npm also sets a top-level "maintainers" field with your npm user info. ## files -The optional "files" field is an array of file patterns that describes +The optional `files` field is an array of file patterns that describes the entries to be included when your package is installed as a -dependency. If the files array is omitted, everything except -automatically-excluded files will be included in your publish. If you -name a folder in the array, then it will also include the files inside -that folder (unless they would be ignored by another rule in this -section.). +dependency. File patterns follow a similar syntax to `.gitignore`, but +reversed: including a file, directory, or glob pattern (`*`, `**/*`, and such) +will make it so that file is included in the tarball when it's packed. Omitting +the field will make it default to `["*"]`, which means it will include all files. + +Some special files and directories are also included or excluded regardless of +whether they exist in the `files` array (see below). You can also provide a `.npmignore` file in the root of your package or in subdirectories, which will keep files from being included. At the @@ -226,6 +232,12 @@ This should be a module ID relative to the root of your package folder. For most modules, it makes the most sense to have a main script and often not much else. +## browser + +If your module is meant to be used client-side the browser field should be +used instead of the main field. This is helpful to hint users that it might +rely on primitives that aren't available in Node.js modules. (e.g. `window`) + ## bin A lot of packages have one or more executable files that they'd like to @@ -745,8 +757,8 @@ especially handy if you want to set the tag, registry or access, so that you can ensure that a given package is not tagged with "latest", published to the global public registry or that a scoped module is private by default. -Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing. +Any config values can be overridden, but only "tag", "registry" and "access" +probably matter for the purposes of publishing. See `npm-config(7)` to see the list of config options that can be overridden. diff --git a/deps/npm/doc/misc/npm-coding-style.md b/deps/npm/doc/misc/npm-coding-style.md index e6837bfbf3..1199f63fcc 100644 --- a/deps/npm/doc/misc/npm-coding-style.md +++ b/deps/npm/doc/misc/npm-coding-style.md @@ -115,7 +115,7 @@ Good: ## Whitespace -Put a single space in front of ( for anything other than a function call. +Put a single space in front of `(` for anything other than a function call. Also use a single space wherever it makes things more readable. Don't leave trailing whitespace at the end of lines. Don't indent empty diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md index 0ab0418918..a82c8ee220 100644 --- a/deps/npm/doc/misc/npm-config.md +++ b/deps/npm/doc/misc/npm-config.md @@ -155,6 +155,15 @@ even for `GET` requests. When "dev" or "development" and running local `npm shrinkwrap`, `npm outdated`, or `npm update`, is an alias for `--dev`. +### audit + +* Default: true +* Type: Boolean + +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(1) for details on what is submitted. + ### auth-type * Default: `'legacy'` @@ -284,6 +293,9 @@ This is a list of CIDR address to be used when configuring limited access tokens If false, never shows colors. If `"always"` then always shows colors. If true, then only prints color codes for tty file descriptors. +This option can also be changed using the environment: colors are +disabled when the environment variable `NO_COLOR` is set to any value. + ### depth * Default: Infinity @@ -672,6 +684,13 @@ impact how lifecycle scripts are called. The node version to use when checking a package's `engines` map. +### no-proxy + +* Default: null +* Type: String or Array + +A comma-separated string or an array of domain extensions that a proxy should not be used for. + ### offline * Default: false @@ -731,6 +750,10 @@ when publishing or changing package permissions with `npm access`. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. +When package package-locks are disabled, automatic pruning of extraneous +modules will also be disabled. To remove extraneous modules with +package-locks disabled use `npm prune`. + This option is an alias for `--shrinkwrap`. ### package-lock-only @@ -738,7 +761,7 @@ This option is an alias for `--shrinkwrap`. * Default: false * Type: Boolean -If set to true, it will update only the `package-json`, +If set to true, it will update only the `package-lock.json`, instead of checking `node_modules` and downloading dependencies. ### parseable @@ -835,7 +858,7 @@ Remove failed installs. ### save -* Default: false +* Default: true * Type: Boolean Save installed packages to a package.json file as dependencies. diff --git a/deps/npm/doc/misc/npm-developers.md b/deps/npm/doc/misc/npm-developers.md index 2f54b98fb9..55c8d9b08d 100644 --- a/deps/npm/doc/misc/npm-developers.md +++ b/deps/npm/doc/misc/npm-developers.md @@ -57,7 +57,7 @@ least, you need: use the name to specify that it runs on node, or is in JavaScript. You can use the "engines" field to explicitly state the versions of node (or whatever else) that your program requires, and it's pretty - well assumed that it's javascript. + well assumed that it's JavaScript. It does not necessarily need to match your github repository name. diff --git a/deps/npm/doc/misc/npm-index.md b/deps/npm/doc/misc/npm-index.md index 64fb25de2e..efbf2784ff 100644 --- a/deps/npm/doc/misc/npm-index.md +++ b/deps/npm/doc/misc/npm-index.md @@ -21,6 +21,10 @@ Set access level on published packages Add a registry user account +### npm-audit(1) + +Run a security audit + ### npm-bin(1) Display npm bin folder @@ -41,6 +45,10 @@ REMOVED Manipulates packages cache +### npm-ci(1) + +Install a project with a clean slate + ### npm-completion(1) Tab Completion for npm @@ -85,9 +93,17 @@ Search npm help documentation Get help on npm +### npm-hook(1) + +Manage registry hooks + ### npm-init(1) -Interactively create a package.json file +create a package.json file + +### npm-install-ci-test(1) + +Install a project with a clean slate and run tests ### npm-install-test(1) diff --git a/deps/npm/doc/misc/npm-scope.md b/deps/npm/doc/misc/npm-scope.md index 940c1dbb58..a65af92bcd 100644 --- a/deps/npm/doc/misc/npm-scope.md +++ b/deps/npm/doc/misc/npm-scope.md @@ -75,7 +75,7 @@ to `public` as if you had run `npm access public` after publishing. ### Publishing private scoped packages to the npm registry To publish a private scoped package to the npm registry, you must have -an [npm Private Modules](https://www.npmjs.com/private-modules) +an [npm Private Modules](https://docs.npmjs.com/private-modules/intro) account. You can then publish the module with `npm publish` or `npm publish diff --git a/deps/npm/doc/misc/semver.md b/deps/npm/doc/misc/semver.md index 993621a6fd..ab6f72c13e 100644 --- a/deps/npm/doc/misc/semver.md +++ b/deps/npm/doc/misc/semver.md @@ -20,6 +20,8 @@ semver.clean(' =v1.2.3 ') // '1.2.3' semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true semver.gt('1.2.3', '9.8.7') // false semver.lt('1.2.3', '9.8.7') // true +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' ``` As a command-line utility: @@ -52,6 +54,10 @@ Options: -l --loose Interpret versions and ranges loosely +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + Program exits successfully if any valid version satisfies all supplied ranges, and prints all satisfying versions. @@ -364,3 +370,19 @@ satisfy the range. If you want to know if a version satisfies or does not satisfy a range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver +string to semver. It looks for the first digit in a string, and +consumes all remaining characters which satisfy at least a partial semver +(e.g., `1`, `1.2`, `1.2.3`) up to the max permitted length (256 characters). +Longer versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). +All surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes `3.4.0`). +Only text which lacks digits will fail coercion (`version one` is not valid). +The maximum length for any semver component considered for coercion is 16 characters; +longer components will be ignored (`10000000000000000.4.7.4` becomes `4.7.4`). +The maximum value for any semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; +higher value components are invalid (`9999999999999999.4.7.4` is likely invalid). diff --git a/deps/npm/doc/spec/package-lock.md b/deps/npm/doc/spec/package-lock.md index e7a7141139..e1cc6941ae 100644 --- a/deps/npm/doc/spec/package-lock.md +++ b/deps/npm/doc/spec/package-lock.md @@ -107,10 +107,10 @@ transitive dependency of a non-optional dependency of the top level. All optional dependencies should be included even if they're uninstallable on the current platform. -#### from *(deprecated)* +#### from This is a record of what specifier was used to originally install this -package. This should not be included in new `package-lock.json` files. +package. This should be used only for git dependencies. #### requires diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html index 48f8433f62..f7a482f465 100644 --- a/deps/npm/html/doc/README.html +++ b/deps/npm/html/doc/README.html @@ -15,8 +15,8 @@

This is just enough info to get you up and running.

Much more info available via npm help once it's installed.

IMPORTANT

-

You need node v4 or higher to run this program.

-

To install an old and unsupported version of npm that works on node v0.12 +

You need node v6 or higher to run this program.

+

To install an old and unsupported version of npm that works on node v5 and prior, clone the git repo and dig through the old tags and branches.

npm is configured to use npm, Inc.'s public package registry at https://registry.npmjs.org by default.

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

       - + diff --git a/deps/npm/html/doc/cli/npm-access.html b/deps/npm/html/doc/cli/npm-access.html index 5fb7cfb002..bbc9b1814b 100644 --- a/deps/npm/html/doc/cli/npm-access.html +++ b/deps/npm/html/doc/cli/npm-access.html @@ -86,5 +86,5 @@ with an HTTP 402 status code (logically enough), unless you use        - + diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html index 90d247f5f5..629130d14f 100644 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ b/deps/npm/html/doc/cli/npm-adduser.html @@ -81,5 +81,5 @@ username/password entry in legacy npm.

       - + diff --git a/deps/npm/html/doc/cli/npm-audit.html b/deps/npm/html/doc/cli/npm-audit.html new file mode 100644 index 0000000000..e7e9c74b02 --- /dev/null +++ b/deps/npm/html/doc/cli/npm-audit.html @@ -0,0 +1,88 @@ + + + npm-audit + + + + + + +
+ +

npm-audit

Run a security audit

+

SYNOPSIS

+
npm audit [--json]
+npm audit fix [--force|--package-lock-only|--dry-run|--production|--only=dev]
+

EXAMPLES

+

Scan your project for vulnerabilities and automatically install any compatible +updates to vulnerable dependencies:

+
$ npm audit fix
+

Run audit fix without modifying node_modules, but still updating the +pkglock:

+
$ npm audit fix --package-lock-only
+

Skip updating devDependencies:

+
$ npm audit fix --only=prod
+

Have audit fix install semver-major updates to toplevel dependencies, not just +semver-compatible ones:

+
$ npm audit fix --force
+

Do a dry run to get an idea of what audit fix will do, and also output +install information in JSON format:

+
$ npm audit fix --dry-run --json
+

Scan your project for vulnerabilities and just show the details, without fixing +anything:

+
$ npm audit
+

Get the detailed audit report in JSON format:

+
$ npm audit --json
+

DESCRIPTION

+

The audit command submits a description of the dependencies configured in +your project to your default registry and asks for a report of known +vulnerabilities. The report returned includes instructions on how to act on +this information.

+

You can also have npm automatically fix the vulnerabilities by running npm +audit fix. Note that some vulnerabilities cannot be fixed automatically and +will require manual intervention or review. Also note that since npm audit fix +runs a full-fledged npm install under the hood, all configs that apply to the +installer will also apply to npm install -- so things like npm audit fix +--package-lock-only will work as expected.

+

CONTENT SUBMITTED

+
    +
  • npm_version
  • +
  • node_version
  • +
  • platform
  • +
  • node_env
  • +
  • A scrubbed version of your package-lock.json or npm-shrinkwrap.json
  • +
+

SCRUBBING

+

In order to ensure that potentially sensitive information is not included in +the audit data bundle, some dependencies may have their names (and sometimes +versions) replaced with opaque non-reversible identifiers. It is done for +the following dependency types:

+
    +
  • Any module referencing a scope that is configured for a non-default +registry has its name scrubbed. (That is, a scope you did a npm login --scope=@ourscope for.)
  • +
  • All git dependencies have their names and specifiers scrubbed.
  • +
  • All remote tarball dependencies have their names and specifiers scrubbed.
  • +
  • All local directory and tarball dependencies have their names and specifiers scrubbed.
  • +
+

The non-reversible identifiers are a sha256 of a session-specific UUID and the +value being replaced, ensuring a consistent value within the payload that is +different between runs.

+

SEE ALSO

+ + +
+ + + + + + + + + + + diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html index 677f621a97..75cd0fef71 100644 --- a/deps/npm/html/doc/cli/npm-bin.html +++ b/deps/npm/html/doc/cli/npm-bin.html @@ -35,5 +35,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html index 3437dd4380..c5d564941a 100644 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ b/deps/npm/html/doc/cli/npm-bugs.html @@ -55,5 +55,5 @@ a package.json in the current folder and use the name        - + diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html index 51544a4532..ffdbfed446 100644 --- a/deps/npm/html/doc/cli/npm-build.html +++ b/deps/npm/html/doc/cli/npm-build.html @@ -40,5 +40,5 @@ directly, run:

       - + diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html index 94cf6ed12b..cc6494ba6f 100644 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ b/deps/npm/html/doc/cli/npm-bundle.html @@ -31,5 +31,5 @@ install packages into the local space.

       - + diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html index 71d5297a9c..8f3b4d2b1e 100644 --- a/deps/npm/html/doc/cli/npm-cache.html +++ b/deps/npm/html/doc/cli/npm-cache.html @@ -89,5 +89,5 @@ verify.

       - + diff --git a/deps/npm/html/doc/cli/npm-ci.html b/deps/npm/html/doc/cli/npm-ci.html new file mode 100644 index 0000000000..82791325f1 --- /dev/null +++ b/deps/npm/html/doc/cli/npm-ci.html @@ -0,0 +1,64 @@ + + + npm-ci + + + + + + +
+ +

npm-ci

Install a project with a clean slate

+

SYNOPSIS

+
npm ci
+

EXAMPLE

+

Make sure you have a package-lock and an up-to-date install:

+
$ cd ./my/npm/project
+$ npm install
+added 154 packages in 10s
+$ ls | grep package-lock
+

Run npm ci in that project

+
$ npm ci
+added 154 packages in 5s
+

Configure Travis to build using npm ci instead of npm install:

+
# .travis.yml
+install:
+- npm ci
+# keep the npm cache around to speed up installs
+cache:
+  directories:
+  - "$HOME/.npm"
+

DESCRIPTION

+

This command is similar to npm-install(1), except it's meant to be used in +automated environments such as test platforms, continuous integration, and +deployment. It can be significantly faster than a regular npm install by +skipping certain user-oriented features. It is also more strict than a regular +install, which can help catch errors or inconsistencies caused by the +incrementally-installed local environments of most npm users.

+

In short, the main differences between using npm install and npm ci are:

+
    +
  • The project must have an existing package-lock.json or npm-shrinkwrap.json.
  • +
  • If dependencies in the package lock do not match those in package.json, npm ci will exit with an error, instead of updating the package lock.
  • +
  • npm ci can only install entire projects at a time: individual dependencies cannot be added with this command.
  • +
  • If a node_modules is already present, it will be automatically removed before npm ci begins its install.
  • +
  • It will never write to package.json or any of the package-locks: installs are essentially frozen.
  • +
+

SEE ALSO

+ + +
+ + + + + + + + + + + diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html index 7a37048a8a..381ce6ba8f 100644 --- a/deps/npm/html/doc/cli/npm-completion.html +++ b/deps/npm/html/doc/cli/npm-completion.html @@ -43,5 +43,5 @@ completions based on the arguments.

       - + diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html index ccacfe9c39..dad4fb527f 100644 --- a/deps/npm/html/doc/cli/npm-config.html +++ b/deps/npm/html/doc/cli/npm-config.html @@ -68,5 +68,5 @@ global config.

       - + diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html index e21605193f..6e78044137 100644 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ b/deps/npm/html/doc/cli/npm-dedupe.html @@ -61,5 +61,5 @@ result in new modules being installed.

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

       - + diff --git a/deps/npm/html/doc/cli/npm-dist-tag.html b/deps/npm/html/doc/cli/npm-dist-tag.html index 6f8bc9744f..0a2b2861dc 100644 --- a/deps/npm/html/doc/cli/npm-dist-tag.html +++ b/deps/npm/html/doc/cli/npm-dist-tag.html @@ -88,5 +88,5 @@ begin with a number or the letter v.

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

       - + diff --git a/deps/npm/html/doc/cli/npm-doctor.html b/deps/npm/html/doc/cli/npm-doctor.html index 8eba9f172d..5d3dff5245 100644 --- a/deps/npm/html/doc/cli/npm-doctor.html +++ b/deps/npm/html/doc/cli/npm-doctor.html @@ -32,7 +32,7 @@ old versions of npm. Since npm is constantly improving, running npm@latest better than an old version.

npm doctor verifies the following items in your environment, and if there are any recommended changes, it will display them.

-

npm ping

+

npm ping

By default, npm installs from the primary npm registry, registry.npmjs.org. npm doctor hits a special ping endpoint within the registry. This can also be checked with npm ping. If this check fails, you may be using a proxy that @@ -42,7 +42,7 @@ HTTPS to registry.npmjs.org.

what that is by running npm config get registry), and if you're using a private registry that doesn't support the /whoami endpoint supported by the primary registry, this check may fail.

-

npm -v

+

npm -v

While Node.js may come bundled with a particular version of npm, it's the policy of the CLI team that we recommend all users run npm@latest if they can. As the CLI is maintained by a small team of contributors, there are only @@ -50,21 +50,21 @@ resources for a single line of development, so npm's own long-term support releases typically only receive critical security and regression fixes. The team believes that the latest tested version of npm is almost always likely to be the most functional and defect-free version of npm.

-

node -v

+

node -v

For most users, in most circumstances, the best version of Node will be the latest long-term support (LTS) release. Those of you who want access to new ECMAscript features or bleeding-edge changes to Node's standard library may be running a newer version, and some of you may be required to run an older version of Node because of enterprise change control policies. That's OK! But in general, the npm team recommends that most users run Node.js LTS.

-

npm config get registry

+

npm config get registry

Some of you may be installing from private package registries for your project or company. That's great! Others of you may be following tutorials or StackOverflow questions in an effort to troubleshoot problems you may be having. Sometimes, this may entail changing the registry you're pointing at. This part of npm doctor just lets you, and maybe whoever's helping you with support, know that you're not using the default registry.

-

which git

+

which git

While it's documented in the README, it may not be obvious that npm needs Git installed to do many of the things that it does. Also, in some cases ā€“ especially on Windows ā€“ you may have Git set up in such a way that it's not @@ -103,4 +103,4 @@ cache, you should probably run npm cache clean and reset the cache.        -

+ diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html index 651990084d..3d0b4a1bdc 100644 --- a/deps/npm/html/doc/cli/npm-edit.html +++ b/deps/npm/html/doc/cli/npm-edit.html @@ -49,5 +49,5 @@ or "notepad" on Windows.        - + diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html index bab3a861ec..4d5628ddbf 100644 --- a/deps/npm/html/doc/cli/npm-explore.html +++ b/deps/npm/html/doc/cli/npm-explore.html @@ -49,5 +49,5 @@ Windows        - + diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html index 01b1ff62d2..06204f99c4 100644 --- a/deps/npm/html/doc/cli/npm-help-search.html +++ b/deps/npm/html/doc/cli/npm-help-search.html @@ -45,5 +45,5 @@ where the terms were found in the documentation.

       - + diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html index 8adf3b3843..9301975467 100644 --- a/deps/npm/html/doc/cli/npm-help.html +++ b/deps/npm/html/doc/cli/npm-help.html @@ -50,5 +50,5 @@ matches are equivalent to specifying a topic name.

       - + diff --git a/deps/npm/html/doc/cli/npm-hook.html b/deps/npm/html/doc/cli/npm-hook.html new file mode 100644 index 0000000000..b4e513f2fc --- /dev/null +++ b/deps/npm/html/doc/cli/npm-hook.html @@ -0,0 +1,63 @@ + + + npm-hook + + + + + + +
+ +

npm-hook

Manage registry hooks

+

SYNOPSIS

+
npm hook ls [pkg]
+npm hook add <entity> <url> <secret>
+npm hook update <id> <url> [secret]
+npm hook rm <id>
+

EXAMPLE

+

Add a hook to watch a package for changes:

+
$ npm hook add lodash https://example.com/ my-shared-secret
+

Add a hook to watch packages belonging to the user substack:

+
$ npm hook add ~substack https://example.com/ my-shared-secret
+

Add a hook to watch packages in the scope @npm

+
$ npm hook add @npm https://example.com/ my-shared-secret
+

List all your active hooks:

+
$ npm hook ls
+

List your active hooks for the lodash package:

+
$ npm hook ls lodash
+

Update an existing hook's url:

+
$ npm hook update id-deadbeef https://my-new-website.here/
+

Remove a hook:

+
$ npm hook rm id-deadbeef
+

DESCRIPTION

+

Allows you to manage npm +hooks, +including adding, removing, listing, and updating.

+

Hooks allow you to configure URL endpoints that will be notified whenever a +change happens to any of the supported entity types. Three different types of +entities can be watched by hooks: packages, owners, and scopes.

+

To create a package hook, simply reference the package name.

+

To create an owner hook, prefix the owner name with ~ (as in, ~youruser).

+

To create a scope hook, prefix the scope name with @ (as in, @yourscope).

+

The hook id used by update and rm are the IDs listed in npm hook ls for +that particular hook.

+

The shared secret will be sent along to the URL endpoint so you can verify the +request came from your own configured hook.

+

SEE ALSO

+ + +
+ + + + + + + + + + + diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html index 115c9b2185..4e405c2ccf 100644 --- a/deps/npm/html/doc/cli/npm-init.html +++ b/deps/npm/html/doc/cli/npm-init.html @@ -9,26 +9,44 @@
-

npm-init

Interactively create a package.json file

+

npm-init

create a package.json file

SYNOPSIS

-
npm init [-f|--force|-y|--yes]
+
npm init [--force|-f|--yes|-y|--scope]
+npm init <@scope> (same as `npx <@scope>/create`)
+npm init [<@scope>/]<name> (same as `npx [<@scope>/]create-<name>`)
+

EXAMPLES

+

Create a new React-based project using create-react-app:

+
$ npm init react-app ./my-react-app
+

Create a new esm-compatible package using create-esm:

+
$ mkdir my-esm-lib && cd my-esm-lib
+$ npm init esm --yes
+

Generate a plain old package.json using legacy init:

+
$ mkdir my-npm-pkg && cd my-npm-pkg
+$ git init
+$ npm init
+

Generate it without having it ask any questions:

+
$ npm init -y
 

DESCRIPTION

-

This will ask you a bunch of questions, and then write a package.json for you.

-

It attempts to make reasonable guesses about what you want things to be set to, -and then writes a package.json file with the options you've selected.

-

If you already have a package.json file, it'll read that first, and default to -the options in there.

-

It is strictly additive, so it does not delete options from your package.json -without a really good reason to do so.

-

If you invoke it with -f, --force, -y, or --yes, it will use only -defaults and not prompt you for any options.

-

CONFIGURATION

-

scope

+

npm init <initializer> can be used to set up a new or existing npm package.

+

initializer in this case is an npm package named create-<initializer>, which +will be installed by npx(1), and then have its main bin +executed -- presumably creating or updating package.json and running any other +initialization-related operations.

+

The init command is transformed to a corresponding npx operation as follows:

    -
  • Default: none
  • -
  • Type: String
  • +
  • npm init foo -> npx create-foo
  • +
  • npm init @usr/foo -> npx @usr/create-foo
  • +
  • npm init @usr -> npx @usr/create
-

The scope under which the new module should be created.

+

Any additional options will be passed directly to the command, so npm init foo +--hello will map to npx create-foo --hello.

+

If the initializer is omitted (by just calling npm init), init will fall back +to legacy init behavior. It will ask you a bunch of questions, and then write a +package.json for you. It will attempt to make reasonable guesses based on +existing fields, dependencies, and options selected. It is strictly additive, so +it will keep any fields and values that were already set. You can also use +-y/--yes to skip the questionnaire altogether. If you pass --scope, it +will create a scoped package.

SEE ALSO

  • https://github.com/isaacs/init-package-json
  • @@ -48,5 +66,5 @@ defaults and not prompt you for any options.

           - + diff --git a/deps/npm/html/doc/cli/npm-install-ci-test.html b/deps/npm/html/doc/cli/npm-install-ci-test.html new file mode 100644 index 0000000000..537a0263bf --- /dev/null +++ b/deps/npm/html/doc/cli/npm-install-ci-test.html @@ -0,0 +1,36 @@ + + + npm-install-ci-test + + + + + + +
    + +

    npm install-ci-test

    Install a project with a clean slate and run tests

    +

    SYNOPSIS

    +
    npm install-ci-test
    +
    +alias: npm cit
    +

    DESCRIPTION

    +

    This command runs an npm ci followed immediately by an npm test.

    +

    SEE ALSO

    + + +
    + + + + + + + + + + + diff --git a/deps/npm/html/doc/cli/npm-install-test.html b/deps/npm/html/doc/cli/npm-install-test.html index 71262400b3..beb2d312a9 100644 --- a/deps/npm/html/doc/cli/npm-install-test.html +++ b/deps/npm/html/doc/cli/npm-install-test.html @@ -42,5 +42,5 @@ takes exactly the same arguments as npm install.

           - + diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html index 5989cc25a1..5bc9cd985b 100644 --- a/deps/npm/html/doc/cli/npm-install.html +++ b/deps/npm/html/doc/cli/npm-install.html @@ -54,6 +54,10 @@ after packing it up into a tarball (b).

    With the --production flag (or when the NODE_ENV environment variable is set to production), npm will not install modules listed in devDependencies.

    +
    +

    NOTE: The --production flag has no particular meaning when adding a + dependency to a project.

    +
  • npm install <folder>:

    Install the package in the directory as a symlink in the current project. @@ -281,11 +285,14 @@ being installed.

    The --no-shrinkwrap argument, which will ignore an available package lock or shrinkwrap file and use the package.json instead.

    The --no-package-lock argument will prevent npm from creating a -package-lock.json file.

    +package-lock.json file. When running with package-lock's disabled npm +will not automatically prune your node modules when installing.

    The --nodedir=/path/to/node/source argument will allow npm to find the node source code so that npm can compile native modules.

    The --only={prod[uction]|dev[elopment]} argument will cause either only devDependencies or only non-devDependencies to be installed regardless of the NODE_ENV.

    +

    The --no-audit argument can be used to disable sending of audit reports to +the configured registries. See npm-audit(1) for details on what is sent.

    See npm-config(7). Many of the configuration params have some effect on installation, since that's most of what npm does.

    ALGORITHM

    @@ -344,6 +351,7 @@ affects a real use-case, it will be investigated.

    • npm-folders(5)
    • npm-update(1)
    • +
    • npm-audit(1)
    • npm-link(1)
    • npm-rebuild(1)
    • npm-scripts(7)
    • @@ -369,5 +377,5 @@ affects a real use-case, it will be investigated.

             - + diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html index 57a6ae8673..b84aad751d 100644 --- a/deps/npm/html/doc/cli/npm-link.html +++ b/deps/npm/html/doc/cli/npm-link.html @@ -74,5 +74,5 @@ include that scope, e.g.

             - + diff --git a/deps/npm/html/doc/cli/npm-logout.html b/deps/npm/html/doc/cli/npm-logout.html index a06341b2d2..3929410fa1 100644 --- a/deps/npm/html/doc/cli/npm-logout.html +++ b/deps/npm/html/doc/cli/npm-logout.html @@ -51,5 +51,5 @@ it takes precedence.

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

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

      -
      npm@5.6.0 /path/to/npm
      +
      npm@6.1.0 /path/to/npm
       ā””ā”€ā”¬ init-package-json@0.0.4
         ā””ā”€ā”€ promzard@0.1.5
       

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

      @@ -68,7 +68,7 @@ project.

    • Default: false

    Display only the dependency tree for packages in dependencies.

    -

    dev

    +

    dev / development

    • Type: Boolean
    • Default: false
    • @@ -110,5 +110,5 @@ project.

             - + diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html index d59e0548a3..319f1ae45f 100644 --- a/deps/npm/html/doc/cli/npm-outdated.html +++ b/deps/npm/html/doc/cli/npm-outdated.html @@ -32,6 +32,8 @@ always be seeing only top-level dependencies that are outdated.
    • package type (when using --long / -l) tells you whether this package is a dependency or a devDependency. Packages not included in package.json are always marked dependencies.
    • +
    • Red means there's a newer version matching your semver requirements, so you should update now.
    • +
    • Yellow indicates that there's a newer version above your semver requirements (usually new major, or new 0.x minor) so proceed with caution.

    An example

    $ npm outdated
    @@ -58,10 +60,9 @@ The installed committish might satisfy the dependency specifier (if it's
     something immutable, like a commit SHA), or it might not, so npm outdated and
     npm update have to fetch Git repos to check. This is why currently doing a
     reinstall of a Git dependency always forces a new clone and install.
  • -
  • npm@3.5.2 is marked as "wanted", but "latest" is npm@3.5.1 because npm -uses dist-tags to manage its latest and next release channels. npm update -will install the newest version, but npm install npm (with no semver range) -will install whatever's tagged as latest.
  • +
  • `npm@3.5.2is marked as "wanted", but "latest" isnpm@3.5.1because npm +uses dist-tags to manage itslatestandnextrelease channels.npm updatewill install the _newest_ version, butnpm install npm(with no semver range) +will install whatever's tagged aslatest`.
  • once is just plain out of date. Reinstalling node_modules from scratch or running npm update will bring it up to spec.
@@ -116,5 +117,5 @@ project.

       - + diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html index 6b28ab48d1..1c1ce66534 100644 --- a/deps/npm/html/doc/cli/npm-owner.html +++ b/deps/npm/html/doc/cli/npm-owner.html @@ -54,5 +54,5 @@ with --otp.

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

       - + diff --git a/deps/npm/html/doc/cli/npm-ping.html b/deps/npm/html/doc/cli/npm-ping.html index 4b67c2686e..0e0d2afc7e 100644 --- a/deps/npm/html/doc/cli/npm-ping.html +++ b/deps/npm/html/doc/cli/npm-ping.html @@ -36,5 +36,5 @@ If it works it will output something like:

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

       - + diff --git a/deps/npm/html/doc/cli/npm-profile.html b/deps/npm/html/doc/cli/npm-profile.html index 3d952205f4..60fece551e 100644 --- a/deps/npm/html/doc/cli/npm-profile.html +++ b/deps/npm/html/doc/cli/npm-profile.html @@ -90,4 +90,4 @@ available on non npmjs.com registries.

       - + diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html index f71aa0c212..1c3ce7eb02 100644 --- a/deps/npm/html/doc/cli/npm-prune.html +++ b/deps/npm/html/doc/cli/npm-prune.html @@ -11,7 +11,7 @@

npm-prune

Remove extraneous packages

SYNOPSIS

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

DESCRIPTION

This command removes "extraneous" packages. If a package name is provided, then only packages matching one of the supplied names are @@ -20,8 +20,16 @@ removed.

package's dependencies list.

If the --production flag is specified or the NODE_ENV environment variable is set to production, this command will remove the packages -specified in your devDependencies. Setting --production=false will +specified in your devDependencies. Setting --no-production will negate NODE_ENV being set to production.

+

If the --dry-run flag is used then no changes will actually be made.

+

If the --json flag is used then the changes npm prune made (or would +have made with --dry-run) are printed as a JSON object.

+

In normal operation with package-locks enabled, extraneous modules are +pruned automatically when modules are installed and you'll only need +this command with the --production flag.

+

If you've disabled package-locks then extraneous modules will not be removed +and it's up to you to run npm prune from time-to-time to remove them.

SEE ALSO

Then npm update will install `dep1@1.2.2, because1.2.2islatestand1.2.2satisfies^1.1.1`.

Tilde Dependencies

However, if app's package.json contains:

"dependencies": {
   "dep1": "~1.1.1"
 }
-

In this case, running npm update will install dep1@1.1.2. Even though the latest -tag points to 1.2.2, this version does not satisfy ~1.1.1, which is equivalent -to >=1.1.1 <1.2.0. So the highest-sorting version that satisfies ~1.1.1 is used, -which is 1.1.2.

+

In this case, running npm update will install `dep1@1.1.2. Even though thelatesttag points to1.2.2, this version does not satisfy~1.1.1, which is equivalent +to>=1.1.1 <1.2.0. So the highest-sorting version that satisfies~1.1.1is used, +which is1.1.2`.

Caret Dependencies below 1.0.0

Suppose app has a caret dependency on a version below 1.0.0, for example:

"dependencies": {
   "dep1": "^0.2.0"
 }
-

npm update will install dep1@0.2.0, because there are no other -versions which satisfy ^0.2.0.

+

npm update will install `dep1@0.2.0, because there are no other +versions which satisfy^0.2.0`.

If the dependence were on ^0.4.0:

"dependencies": {
   "dep1": "^0.4.0"
 }
-

Then npm update will install dep1@0.4.1, because that is the highest-sorting -version that satisfies ^0.4.0 (>= 0.4.0 <0.5.0)

-

Recording Updates with --save

-

When you want to update a package and save the new version as -the minimum required dependency in package.json, you can use -npm update -S or npm update --save. For example if -package.json contains:

-
"dependencies": {
-  "dep1": "^1.1.1"
-}
-

Then npm update --save will install dep1@1.2.2 (i.e., latest), -and package.json will be modified:

-
"dependencies": {
-  "dep1": "^1.2.2"
-}
-

Note that npm will only write an updated version to package.json -if it installs a new package.

+

Then npm update will install `dep1@0.4.1, because that is the highest-sorting +version that satisfies^0.4.0(>= 0.4.0 <0.5.0`)

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 @@ -118,5 +104,5 @@ be downgraded.

       - + diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html index e8da71b67a..3349206a76 100644 --- a/deps/npm/html/doc/cli/npm-version.html +++ b/deps/npm/html/doc/cli/npm-version.html @@ -18,7 +18,7 @@ 'npm ls' to inspect current package/dependency versions

DESCRIPTION

Run this in a package directory to bump the version and write the new -data back to package.json and, if present, npm-shrinkwrap.json.

+data back to package.json, package-lock.json, and, if present, npm-shrinkwrap.json.

The newversion argument should be a valid semver string, a valid second argument to semver.inc (one of patch, minor, major, prepatch, preminor, premajor, prerelease), or from-git. In the second case, @@ -120,5 +120,5 @@ to the same value as the current version.

       - + diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html index a94ea56271..bde97a8e15 100644 --- a/deps/npm/html/doc/cli/npm-view.html +++ b/deps/npm/html/doc/cli/npm-view.html @@ -86,5 +86,5 @@ the field name.

       - + diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html index 5995b1e11c..3fe3ff115c 100644 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ b/deps/npm/html/doc/cli/npm-whoami.html @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html index 52f4a22544..50114e79e7 100644 --- a/deps/npm/html/doc/cli/npm.html +++ b/deps/npm/html/doc/cli/npm.html @@ -13,7 +13,7 @@

SYNOPSIS

npm <command> [args]
 

VERSION

-

5.6.0

+

6.1.0

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 @@ -79,7 +79,7 @@ Use the npm publish command to upload your code to the registry.

  • Command line switches:
    Set a config with --key val. All keys take a value, even if they are booleans (the config parser doesn't know what the options are at -the time of parsing.) If no value is provided, then the option is set +the time of parsing). If no value is provided, then the option is set to boolean true.
  • Environment Variables:
    Set any config by prefixing the name in an environment variable with npm_config_. For example, export npm_config_key=val.
  • @@ -126,7 +126,7 @@ will no doubt tell you to put the output in a gist or email.

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

    +i@izs.me

    SEE ALSO

    • npm-help(1)
    • @@ -150,5 +150,5 @@ will no doubt tell you to put the output in a gist or email.

             - + diff --git a/deps/npm/html/doc/files/npm-folders.html b/deps/npm/html/doc/files/npm-folders.html index ff8a247b5a..0f85f255b2 100644 --- a/deps/npm/html/doc/files/npm-folders.html +++ b/deps/npm/html/doc/files/npm-folders.html @@ -58,7 +58,7 @@ when you run npm test.)

      Man pages are not installed on Windows systems.

      Cache

      See npm-cache(1). Cache files are stored in ~/.npm on Posix, or -~/npm-cache on Windows.

      +%AppData%/npm-cache on Windows.

      This is controlled by the cache configuration param.

      Temp Files

      Temporary files are stored by default in the folder specified by the @@ -135,15 +135,15 @@ highest level possible, below the localized "target" folder.

      `-- baz (1.2.3) <---[D] `-- node_modules `-- quux (3.2.0) <---[E] -

      Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are -installed in foo's node_modules folder.

      +

      Since foo depends directly on `bar@1.2.3andbaz@1.2.3, those are +installed in foo'snode_modules` folder.

      Even though the latest copy of blerg is 1.3.7, foo has a specific dependency on version 1.2.5. So, that gets installed at [A]. Since the -parent installation of blerg satisfies bar's dependency on blerg@1.x, +parent installation of blerg satisfies bar's dependency on `blerg@1.x`, it does not install another copy under [B].

      Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's node_modules folder. Because it depends on baz@2.x, it cannot -re-use the baz@1.2.3 installed in the parent node_modules folder [D], +bar's node_modules folder. Because it depends on `baz@2.x, it cannot +re-use thebaz@1.2.3installed in the parentnode_modules` folder [D], and must install its own copy [C].

      Underneath bar, the baz -> quux -> bar dependency creates a cycle. However, because bar is already in quux's ancestry [B], it does not @@ -181,5 +181,5 @@ cannot be found elsewhere. See packa        -

      + diff --git a/deps/npm/html/doc/files/npm-global.html b/deps/npm/html/doc/files/npm-global.html index ff8a247b5a..0f85f255b2 100644 --- a/deps/npm/html/doc/files/npm-global.html +++ b/deps/npm/html/doc/files/npm-global.html @@ -58,7 +58,7 @@ when you run npm test.)

      Man pages are not installed on Windows systems.

      Cache

      See npm-cache(1). Cache files are stored in ~/.npm on Posix, or -~/npm-cache on Windows.

      +%AppData%/npm-cache on Windows.

      This is controlled by the cache configuration param.

      Temp Files

      Temporary files are stored by default in the folder specified by the @@ -135,15 +135,15 @@ highest level possible, below the localized "target" folder.

      `-- baz (1.2.3) <---[D] `-- node_modules `-- quux (3.2.0) <---[E] -

      Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are -installed in foo's node_modules folder.

      +

      Since foo depends directly on `bar@1.2.3andbaz@1.2.3, those are +installed in foo'snode_modules` folder.

      Even though the latest copy of blerg is 1.3.7, foo has a specific dependency on version 1.2.5. So, that gets installed at [A]. Since the -parent installation of blerg satisfies bar's dependency on blerg@1.x, +parent installation of blerg satisfies bar's dependency on `blerg@1.x`, it does not install another copy under [B].

      Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's node_modules folder. Because it depends on baz@2.x, it cannot -re-use the baz@1.2.3 installed in the parent node_modules folder [D], +bar's node_modules folder. Because it depends on `baz@2.x, it cannot +re-use thebaz@1.2.3installed in the parentnode_modules` folder [D], and must install its own copy [C].

      Underneath bar, the baz -> quux -> bar dependency creates a cycle. However, because bar is already in quux's ancestry [B], it does not @@ -181,5 +181,5 @@ cannot be found elsewhere. See packa        -

      + diff --git a/deps/npm/html/doc/files/npm-json.html b/deps/npm/html/doc/files/npm-json.html index 3a6e77c981..42e47069f2 100644 --- a/deps/npm/html/doc/files/npm-json.html +++ b/deps/npm/html/doc/files/npm-json.html @@ -16,11 +16,11 @@ file. It must be actual JSON, not just a JavaScript object literal.

      A lot of the behavior described in this document is affected by the config settings described in npm-config(7).

      name

      -

      The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

      +

      If you plan to publish your package, the most important things in your +package.json are the name and version fields as they will be required. The name +and version together form an identifier that is assumed to be completely unique. +Changes to the package should come along with changes to the version. If you don't +plan to publish your package, the name and version fields are optional.

      The name is what your thing is called.

      Some rules:

        @@ -45,11 +45,11 @@ already, before you get too attached to it. htt

        A name can be optionally prefixed by a scope, e.g. @myorg/mypackage. See npm-scope(7) for more detail.

        version

        -

        The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

        +

        If you plan to publish your package, the most important things in your +package.json are the name and version fields as they will be required. The name +and version together form an identifier that is assumed to be completely unique. +Changes to the package should come along with changes to the version. If you don't +plan to publish your package, the name and version fields are optional.

        Version must be parseable by node-semver, which is bundled with npm as a dependency. (npm install semver to use it yourself.)

        @@ -62,7 +62,9 @@ package, as it's listed in npm search.

        discover your package as it's listed in npm search.

        homepage

        The url to the project homepage.

        -

        bugs

        +

        Example:

        +
        "homepage": "https://github.com/owner/project#readme"
        +

        bugs

        The url to your project's issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.

        @@ -129,13 +131,14 @@ is an object with a "name" field and optionally "url" and &q

        Both email and url are optional either way.

        npm also sets a top-level "maintainers" field with your npm user info.

        files

        -

        The optional "files" field is an array of file patterns that describes +

        The optional files field is an array of file patterns that describes the entries to be included when your package is installed as a -dependency. If the files array is omitted, everything except -automatically-excluded files will be included in your publish. If you -name a folder in the array, then it will also include the files inside -that folder (unless they would be ignored by another rule in this -section.).

        +dependency. File patterns follow a similar syntax to .gitignore, but +reversed: including a file, directory, or glob pattern (*, **/*, and such) +will make it so that file is included in the tarball when it's packed. Omitting +the field will make it default to ["*"], which means it will include all files.

        +

        Some special files and directories are also included or excluded regardless of +whether they exist in the files array (see below).

        You can also provide a .npmignore file in the root of your package or in subdirectories, which will keep files from being included. At the root of your package it will not override the "files" field, but in @@ -179,6 +182,10 @@ That is, if your package is named foo, and a user installs it, and

        This should be a module ID relative to the root of your package folder.

        For most modules, it makes the most sense to have a main script and often not much else.

        +

        browser

        +

        If your module is meant to be used client-side the browser field should be +used instead of the main field. This is helpful to hint users that it might +rely on primitives that aren't available in Node.js modules. (e.g. window)

        bin

        A lot of packages have one or more executable files that they'd like to install into the PATH. npm makes this pretty easy (in fact, it uses this @@ -557,8 +564,8 @@ param at publish-time.

        especially handy if you want to set the tag, registry or access, so that you can ensure that a given package is not tagged with "latest", published to the global public registry or that a scoped module is private by default.

        -

        Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing.

        +

        Any config values can be overridden, but only "tag", "registry" and "access" +probably matter for the purposes of publishing.

        See npm-config(7) to see the list of config options that can be overridden.

        DEFAULT VALUES

        @@ -603,5 +610,5 @@ ignored.

               - + diff --git a/deps/npm/html/doc/files/npm-package-locks.html b/deps/npm/html/doc/files/npm-package-locks.html index 775c6b4ca2..fe9115c14a 100644 --- a/deps/npm/html/doc/files/npm-package-locks.html +++ b/deps/npm/html/doc/files/npm-package-locks.html @@ -53,7 +53,7 @@ registry, then a normal npm install A will install:

        A@0.1.0
         `-- B@0.0.1
             `-- C@0.0.1
        -

        However, if B@0.0.2 is published, then a fresh npm install A will +

        However, if B@0.0.2 is published, then a fresh npm install A will install:

        A@0.1.0
         `-- B@0.0.2
        @@ -61,7 +61,7 @@ install:

        assuming the new version did not modify B's dependencies. Of course, the new version of B could include a new version of C and any number of new dependencies. If such changes are undesirable, the author of A -could specify a dependency on B@0.0.1. However, if A's author and B's +could specify a dependency on B@0.0.1. However, if A's author and B's author are not the same person, there's no way for A's author to say that he or she does not want to pull in newly published versions of C when B hasn't changed at all.

        @@ -125,6 +125,19 @@ package source to get the exact same dependency tree that you were developing on. Additionally, the diffs from these changes are human-readable and will inform you of any changes npm has made to your node_modules, so you can notice if any transitive dependencies were updated, hoisted, etc.

        +

        Resolving lockfile conflicts

        +

        Occasionally, two separate npm install will create package locks that cause +merge conflicts in source control systems. As of `npm@5.7.0, these conflicts +can be resolved by manually fixing anypackage.jsonconflicts, and then +runningnpm install [--package-lock-only]again. npm will automatically +resolve any conflicts for you and write a merged package lock that includes all +the dependencies from both branches in a reasonable tree. If--package-lock-onlyis provided, it will do this without also modifying your +localnode_modules/`.

        +

        To make this process seamless on git, consider installing +npm-merge-driver, which will teach git how +to do this itself without any user interaction. In short: $ npx +npm-merge-driver install -g will let you do this, and even works with +pre-`npm@5.7.0versions of npm 5, albeit a bit more noisily. Note that ifpackage.jsonitself conflicts, you will have to resolve that by hand and runnpm install` manually, even with the merge driver.

        SEE ALSO

        • https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527
        • @@ -145,4 +158,4 @@ if any transitive dependencies were updated, hoisted, etc.

                 - + diff --git a/deps/npm/html/doc/files/npm-shrinkwrap.json.html b/deps/npm/html/doc/files/npm-shrinkwrap.json.html index 50718ad9fd..1fca199c38 100644 --- a/deps/npm/html/doc/files/npm-shrinkwrap.json.html +++ b/deps/npm/html/doc/files/npm-shrinkwrap.json.html @@ -42,4 +42,4 @@ to the manual page for package-lock.js        - + diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html index 7441c92b7e..e821a43090 100644 --- a/deps/npm/html/doc/files/npmrc.html +++ b/deps/npm/html/doc/files/npmrc.html @@ -85,5 +85,5 @@ manner.

                 - + diff --git a/deps/npm/html/doc/files/package-lock.json.html b/deps/npm/html/doc/files/package-lock.json.html index 3f6a2e21f5..fcce7979d7 100644 --- a/deps/npm/html/doc/files/package-lock.json.html +++ b/deps/npm/html/doc/files/package-lock.json.html @@ -103,12 +103,18 @@ dependencies that are both an optional dependency of the top level and a transitive dependency of a non-optional dependency of the top level.

          All optional dependencies should be included even if they're uninstallable on the current platform.

          +

          requires

          +

          This is a mapping of module name to version. This is a list of everything +this module requires, regardless of where it will be installed. The version +should match via normal matching rules a dependency either in our +dependencies or in a level higher than us.

          dependencies

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

          SEE ALSO

          @@ -124,4 +130,4 @@ on the current platform.

                 - + diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html index 3a6e77c981..42e47069f2 100644 --- a/deps/npm/html/doc/files/package.json.html +++ b/deps/npm/html/doc/files/package.json.html @@ -16,11 +16,11 @@ file. It must be actual JSON, not just a JavaScript object literal.

          A lot of the behavior described in this document is affected by the config settings described in npm-config(7).

          name

          -

          The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

          +

          If you plan to publish your package, the most important things in your +package.json are the name and version fields as they will be required. The name +and version together form an identifier that is assumed to be completely unique. +Changes to the package should come along with changes to the version. If you don't +plan to publish your package, the name and version fields are optional.

          The name is what your thing is called.

          Some rules:

            @@ -45,11 +45,11 @@ already, before you get too attached to it. htt

            A name can be optionally prefixed by a scope, e.g. @myorg/mypackage. See npm-scope(7) for more detail.

            version

            -

            The most important things in your package.json are the name and version fields. -Those are actually required, and your package won't install without -them. The name and version together form an identifier that is assumed -to be completely unique. Changes to the package should come along with -changes to the version.

            +

            If you plan to publish your package, the most important things in your +package.json are the name and version fields as they will be required. The name +and version together form an identifier that is assumed to be completely unique. +Changes to the package should come along with changes to the version. If you don't +plan to publish your package, the name and version fields are optional.

            Version must be parseable by node-semver, which is bundled with npm as a dependency. (npm install semver to use it yourself.)

            @@ -62,7 +62,9 @@ package, as it's listed in npm search.

            discover your package as it's listed in npm search.

            homepage

            The url to the project homepage.

            -

            bugs

            +

            Example:

            +
            "homepage": "https://github.com/owner/project#readme"
            +

            bugs

            The url to your project's issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.

            @@ -129,13 +131,14 @@ is an object with a "name" field and optionally "url" and &q

            Both email and url are optional either way.

            npm also sets a top-level "maintainers" field with your npm user info.

            files

            -

            The optional "files" field is an array of file patterns that describes +

            The optional files field is an array of file patterns that describes the entries to be included when your package is installed as a -dependency. If the files array is omitted, everything except -automatically-excluded files will be included in your publish. If you -name a folder in the array, then it will also include the files inside -that folder (unless they would be ignored by another rule in this -section.).

            +dependency. File patterns follow a similar syntax to .gitignore, but +reversed: including a file, directory, or glob pattern (*, **/*, and such) +will make it so that file is included in the tarball when it's packed. Omitting +the field will make it default to ["*"], which means it will include all files.

            +

            Some special files and directories are also included or excluded regardless of +whether they exist in the files array (see below).

            You can also provide a .npmignore file in the root of your package or in subdirectories, which will keep files from being included. At the root of your package it will not override the "files" field, but in @@ -179,6 +182,10 @@ That is, if your package is named foo, and a user installs it, and

            This should be a module ID relative to the root of your package folder.

            For most modules, it makes the most sense to have a main script and often not much else.

            +

            browser

            +

            If your module is meant to be used client-side the browser field should be +used instead of the main field. This is helpful to hint users that it might +rely on primitives that aren't available in Node.js modules. (e.g. window)

            bin

            A lot of packages have one or more executable files that they'd like to install into the PATH. npm makes this pretty easy (in fact, it uses this @@ -557,8 +564,8 @@ param at publish-time.

            especially handy if you want to set the tag, registry or access, so that you can ensure that a given package is not tagged with "latest", published to the global public registry or that a scoped module is private by default.

            -

            Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing.

            +

            Any config values can be overridden, but only "tag", "registry" and "access" +probably matter for the purposes of publishing.

            See npm-config(7) to see the list of config options that can be overridden.

            DEFAULT VALUES

            @@ -603,5 +610,5 @@ ignored.

                   - + diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html index 914307420c..7a0db0c538 100644 --- a/deps/npm/html/doc/index.html +++ b/deps/npm/html/doc/index.html @@ -20,6 +20,8 @@

            Set access level on published packages

            npm-adduser(1)

            Add a registry user account

            +

            npm-audit(1)

            +

            Run a security audit

            npm-bin(1)

            Display npm bin folder

            npm-bugs(1)

            @@ -30,6 +32,8 @@

            REMOVED

            npm-cache(1)

            Manipulates packages cache

            +

            npm-ci(1)

            +

            Install a project with a clean slate

            npm-completion(1)

            Tab Completion for npm

            npm-config(1)

            @@ -52,8 +56,12 @@

            Search npm help documentation

            npm-help(1)

            Get help on npm

            +

            npm-hook(1)

            +

            Manage registry hooks

            npm-init(1)

            -

            Interactively create a package.json file

            +

            create a package.json file

            +

            npm-install-ci-test(1)

            +

            Install a project with a clean slate and run tests

            npm-install-test(1)

            Install package(s) and run tests

            npm-install(1)

            @@ -172,5 +180,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html index f96dd270bf..204556e25a 100644 --- a/deps/npm/html/doc/misc/npm-coding-style.html +++ b/deps/npm/html/doc/misc/npm-coding-style.html @@ -91,7 +91,7 @@ final token in the list on a line by itself. For example:

            var ok = 'String contains "double" quotes'
             var alsoOk = "String contains 'single' quotes or apostrophe"
             

            Whitespace

            -

            Put a single space in front of ( for anything other than a function call. +

            Put a single space in front of ( for anything other than a function call. Also use a single space wherever it makes things more readable.

            Don't leave trailing whitespace at the end of lines. Don't indent empty lines. Don't use more spaces than are helpful.

            @@ -153,5 +153,5 @@ set to anything."

                   - + diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html index a23b10727a..0abd19a970 100644 --- a/deps/npm/html/doc/misc/npm-config.html +++ b/deps/npm/html/doc/misc/npm-config.html @@ -134,6 +134,14 @@ even for GET requests.

          When "dev" or "development" and running local npm shrinkwrap, npm outdated, or npm update, is an alias for --dev.

          +

          audit

          +
            +
          • Default: true
          • +
          • Type: Boolean
          • +
          +

          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(1) for details on what is submitted.

          auth-type

          • Default: 'legacy'
          • @@ -239,6 +247,8 @@ PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newl

          If false, never shows colors. If "always" then always shows colors. If true, then only prints color codes for tty file descriptors.

          +

          This option can also be changed using the environment: colors are +disabled when the environment variable NO_COLOR is set to any value.

          depth

          • Default: Infinity
          • @@ -560,7 +570,7 @@ combination). Passed to the http Agent used to make th

            Any "%s" in the message will be replaced with the version number.

            metrics-registry

            The registry you want to send cli metrics to if send-metrics is true.

            @@ -578,6 +588,12 @@ impact how lifecycle scripts are called.

          • Type: semver or false

          The node version to use when checking a package's engines map.

          +

          no-proxy

          +
            +
          • Default: null
          • +
          • Type: String or Array
          • +
          +

          A comma-separated string or an array of domain extensions that a proxy should not be used for.

          offline

          • Default: false
          • @@ -628,13 +644,16 @@ when publishing or changing package permissions with npm access.

            If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

            +

            When package package-locks are disabled, automatic pruning of extraneous +modules will also be disabled. To remove extraneous modules with +package-locks disabled use npm prune.

            This option is an alias for --shrinkwrap.

            package-lock-only

            • Default: false
            • Type: Boolean
            -

            If set to true, it will update only the package-json, +

            If set to true, it will update only the package-lock.json, instead of checking node_modules and downloading dependencies.

            parseable

              @@ -718,7 +737,7 @@ honored by the underlying request library.

              Remove failed installs.

              save

                -
              • Default: false
              • +
              • Default: true
              • Type: Boolean

              Save installed packages to a package.json file as dependencies.

              @@ -1024,5 +1043,5 @@ exit successfully.

                     - + diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html index bdf212ed4b..526bcc6d34 100644 --- a/deps/npm/html/doc/misc/npm-developers.html +++ b/deps/npm/html/doc/misc/npm-developers.html @@ -20,7 +20,7 @@ that your users will do to install your program.

              These are man pages. If you install npm, you should be able to then do man npm-thing to get the documentation on a particular topic, or npm help thing to see the same information.

              -

              What is a package

              +

              What is a package

              A package is:

              • a) a folder containing a program described by a package.json file
              • @@ -53,7 +53,7 @@ This should be a string that identifies your project. Please do not use the name to specify that it runs on node, or is in JavaScript. You can use the "engines" field to explicitly state the versions of node (or whatever else) that your program requires, and it's pretty -well assumed that it's javascript.

                +well assumed that it's JavaScript.

                It does not necessarily need to match your github repository name.

                So, node-foo and bar-js are bad names. foo or bar are better.

                @@ -204,5 +204,5 @@ from a fresh checkout.

                       - + diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html index fdf53fcad0..543a601979 100644 --- a/deps/npm/html/doc/misc/npm-disputes.html +++ b/deps/npm/html/doc/misc/npm-disputes.html @@ -20,7 +20,7 @@ Conduct.

                TL;DR

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

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

                @@ -44,7 +44,7 @@ publishes it to the npm registry. Being a simple little thing, it never really has to be updated. Alice works for Foo Inc, the makers of the critically acclaimed and widely-marketed foo JavaScript toolkit framework. They publish it to npm as foojs, but people are routinely confused when -npm installfoo`` is some different thing. +npm installfoo is some different thing.
              • Yusuf writes a parser for the widely-known foo file format, because he needs it for work. Then, he gets a new job, and never updates the prototype. Later on, Alice writes a much more complete foo parser, but can't publish, @@ -55,12 +55,12 @@ because Yusuf's foo is in the way.

              • Alice emails Yusuf, explaining the situation as respectfully as possible, and what she would like to do with the module name. She adds the npm support -staff support@npmjs.com to the CC list of the email. Mention in the email +staff support@npmjs.com to the CC list of the email. Mention in the email that Yusuf can run npm owner add alice foo to add Alice as an owner of the foo package.
              • After a reasonable amount of time, if Yusuf has not responded, or if Yusuf and Alice can't come to any sort of resolution, email support -support@npmjs.com and we'll sort it out. ("Reasonable" is usually at least +support@npmjs.com and we'll sort it out. ("Reasonable" is usually at least 4 weeks.)
              • REASONING

                @@ -96,12 +96,12 @@ application database or otherwise putting non-packagey things into it. Code of Conduct such as hateful language, pornographic content, or harassment. -

                If you see bad behavior like this, please report it to abuse@npmjs.com right +

                If you see bad behavior like this, please report it to abuse@npmjs.com right away. You are never expected to resolve abusive behavior on your own. We are here to help.

                TRADEMARKS

                If you think another npm publisher is infringing your trademark, such as by -using a confusingly similar package name, email abuse@npmjs.com with a link to +using a confusingly similar package name, email abuse@npmjs.com with a link to the package or user account on https://npmjs.com. Attach a copy of your trademark registration certificate.

                If we see that the package's publisher is intentionally misleading others by @@ -134,5 +134,5 @@ License.

                       - + diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html index 927748e176..d3c382a203 100644 --- a/deps/npm/html/doc/misc/npm-index.html +++ b/deps/npm/html/doc/misc/npm-index.html @@ -20,6 +20,8 @@

                Set access level on published packages

                npm-adduser(1)

                Add a registry user account

                +

                npm-audit(1)

                +

                Run a security audit

                npm-bin(1)

                Display npm bin folder

                npm-bugs(1)

                @@ -30,6 +32,8 @@

                REMOVED

                npm-cache(1)

                Manipulates packages cache

                +

                npm-ci(1)

                +

                Install a project with a clean slate

                npm-completion(1)

                Tab Completion for npm

                npm-config(1)

                @@ -52,8 +56,12 @@

                Search npm help documentation

                npm-help(1)

                Get help on npm

                +

                npm-hook(1)

                +

                Manage registry hooks

                npm-init(1)

                -

                Interactively create a package.json file

                +

                create a package.json file

                +

                npm-install-ci-test(1)

                +

                Install a project with a clean slate and run tests

                npm-install-test(1)

                Install package(s) and run tests

                npm-install(1)

                @@ -172,5 +180,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-orgs.html b/deps/npm/html/doc/misc/npm-orgs.html index 5a11a10ca8..3ed6709f33 100644 --- a/deps/npm/html/doc/misc/npm-orgs.html +++ b/deps/npm/html/doc/misc/npm-orgs.html @@ -86,5 +86,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html index cfa610d0e8..f3f9704a87 100644 --- a/deps/npm/html/doc/misc/npm-registry.html +++ b/deps/npm/html/doc/misc/npm-registry.html @@ -90,5 +90,5 @@ effectively implement the entire CouchDB API anyway.

                       - + diff --git a/deps/npm/html/doc/misc/npm-scope.html b/deps/npm/html/doc/misc/npm-scope.html index e610f3e9e3..7c285406b2 100644 --- a/deps/npm/html/doc/misc/npm-scope.html +++ b/deps/npm/html/doc/misc/npm-scope.html @@ -60,7 +60,7 @@ the initial publication. This will publish the package and set access to public as if you had run npm access public after publishing.

                Publishing private scoped packages to the npm registry

                To publish a private scoped package to the npm registry, you must have -an npm Private Modules +an npm Private Modules account.

                You can then publish the module with npm publish or npm publish --access restricted, and it will be present in the npm registry, with @@ -99,5 +99,5 @@ that registry instead.

                       - + diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html index bc43c028f1..43b0ca63e0 100644 --- a/deps/npm/html/doc/misc/npm-scripts.html +++ b/deps/npm/html/doc/misc/npm-scripts.html @@ -64,15 +64,15 @@ names will be run for those as well (e.g. premyscript, myscri

                -- npm run `.

                PREPUBLISH AND PREPARE

                DEPRECATION NOTE

                -

                Since npm@1.1.71, the npm CLI has run the prepublish script for both npm -publish and npm install, because it's a convenient way to prepare a package +

                Since `npm@1.1.71, the npm CLI has run theprepublishscript for bothnpm +publishandnpm install, because it's a convenient way to prepare a package for use (some common use cases are described in the section below). It has -also turned out to be, in practice, very -confusing. As of npm@4.0.0, a new -event has been introduced, prepare, that preserves this existing behavior. A -new event, prepublishOnly has been added as a transitional strategy to +also turned out to be, in practice, [very +confusing](https://github.com/npm/npm/issues/10074). As ofnpm@4.0.0, a new +event has been introduced,prepare, that preserves this existing behavior. A +_new_ event,prepublishOnlyhas been added as a transitional strategy to allow users to avoid the confusing behavior of existing npm versions and only -run on npm publish (for instance, running the tests one last time to ensure +run onnpm publish` (for instance, running the tests one last time to ensure they're in good shape).

                See https://github.com/npm/npm/issues/10074 for a much lengthier justification, with further reading, for this change.

                @@ -239,5 +239,5 @@ scripts is for compilation which must be done on the target architecture.        - + diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html index 1727455c62..15077119ab 100644 --- a/deps/npm/html/doc/misc/removing-npm.html +++ b/deps/npm/html/doc/misc/removing-npm.html @@ -57,5 +57,5 @@ modules. To track those down, you can do the following:

                       - + diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html index afe72d3099..b3a69fbce3 100644 --- a/deps/npm/html/doc/misc/semver.html +++ b/deps/npm/html/doc/misc/semver.html @@ -24,6 +24,8 @@ semver.clean(' =v1.2.3 ') // '1.2.3' semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true semver.gt('1.2.3', '9.8.7') // false semver.lt('1.2.3', '9.8.7') // true +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7'

                As a command-line utility:

                $ semver -h
                @@ -53,6 +55,10 @@ Options:
                 -l --loose
                         Interpret versions and ranges loosely
                 
                +-c --coerce
                +        Coerce a string into SemVer if possible
                +        (does not imply --loose)
                +
                 Program exits successfully if any valid version satisfies
                 all supplied ranges, and prints all satisfying versions.
                 
                @@ -133,7 +139,7 @@ will append the value of the string as a prerelease identifier:

                deterministic ways.

                Advanced ranges may be combined in the same way as primitive comparators using white space or ||.

                -

                Hyphen Ranges X.Y.Z - A.B.C

                +

                Hyphen Ranges X.Y.Z - A.B.C

                Specifies an inclusive set.

                • 1.2.3 - 2.3.4 := >=1.2.3 <=2.3.4
                • @@ -166,7 +172,7 @@ character is in fact optional.

                • 1 := 1.x.x := >=1.0.0 <2.0.0
                • 1.2 := 1.2.x := >=1.2.0 <1.3.0
                -

                Tilde Ranges ~1.2.3 ~1.2 ~1

                +

                Tilde Ranges ~1.2.3 ~1.2 ~1

                Allows patch-level changes if a minor version is specified on the comparator. Allows minor-level changes if not.

                  @@ -182,7 +188,7 @@ equal to beta.2. So, 1.2.3-beta.4 would be allowed, b 1.2.4-beta.2 would not, because it is a prerelease of a different [major, minor, patch] tuple.
                -

                Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4

                +

                Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4

                Allows changes that do not modify the left-most non-zero digit in the [major, minor, patch] tuple. In other words, this allows patch and minor updates for versions 1.0.0 and above, patch updates for @@ -324,6 +330,21 @@ range (since 1.2.8 satisfies, which is lower), and it also does not satisfy the range.

                If you want to know if a version satisfies or does not satisfy a range, use the satisfies(version, range) function.

                +

                Coercion

                +
                  +
                • coerce(version): Coerces a string to semver if possible
                • +
                +

                This aims to provide a very forgiving translation of a non-semver +string to semver. It looks for the first digit in a string, and +consumes all remaining characters which satisfy at least a partial semver +(e.g., 1, 1.2, 1.2.3) up to the max permitted length (256 characters). +Longer versions are simply truncated (4.6.3.9.2-alpha2 becomes 4.6.3). +All surrounding text is simply ignored (v3.4 replaces v3.3.1 becomes 3.4.0). +Only text which lacks digits will fail coercion (version one is not valid). +The maximum length for any semver component considered for coercion is 16 characters; +longer components will be ignored (10000000000000000.4.7.4 becomes 4.7.4). +The maximum value for any semver component is Integer.MAX_SAFE_INTEGER || (2**53 - 1); +higher value components are invalid (9999999999999999.4.7.4 is likely invalid).

    @@ -336,5 +357,5 @@ range, use the satisfies(version, range) function.

           - + diff --git a/deps/npm/lib/access.js b/deps/npm/lib/access.js index ad7a1f54bd..164ea3b7d7 100644 --- a/deps/npm/lib/access.js +++ b/deps/npm/lib/access.js @@ -1,4 +1,5 @@ 'use strict' +/* eslint-disable standard/no-callback-literal */ var resolve = require('path').resolve @@ -21,7 +22,7 @@ access.usage = 'npm access edit []' access.subcommands = ['public', 'restricted', 'grant', 'revoke', - 'ls-packages', 'ls-collaborators', 'edit'] + 'ls-packages', 'ls-collaborators', 'edit'] access.completion = function (opts, cb) { var argv = opts.conf.argv.remain diff --git a/deps/npm/lib/adduser.js b/deps/npm/lib/adduser.js index 0aac6b7fbb..e1c2210325 100644 --- a/deps/npm/lib/adduser.js +++ b/deps/npm/lib/adduser.js @@ -17,7 +17,7 @@ adduser.usage = usage( function adduser (args, cb) { if (!crypto) { return cb(new Error( - 'You must compile node with ssl support to use the adduser feature' + 'You must compile node with ssl support to use the adduser feature' )) } diff --git a/deps/npm/lib/audit.js b/deps/npm/lib/audit.js new file mode 100644 index 0000000000..18add4c646 --- /dev/null +++ b/deps/npm/lib/audit.js @@ -0,0 +1,264 @@ +'use strict' + +const Bluebird = require('bluebird') + +const audit = require('./install/audit.js') +const fs = require('graceful-fs') +const Installer = require('./install.js').Installer +const lockVerify = require('lock-verify') +const log = require('npmlog') +const npa = require('npm-package-arg') +const npm = require('./npm.js') +const output = require('./utils/output.js') +const parseJson = require('json-parse-better-errors') + +const readFile = Bluebird.promisify(fs.readFile) + +module.exports = auditCmd + +auditCmd.usage = + 'npm audit\n' + + 'npm audit fix\n' + +auditCmd.completion = function (opts, cb) { + const argv = opts.conf.argv.remain + + switch (argv[2]) { + case 'audit': + return cb(null, []) + default: + return cb(new Error(argv[2] + ' not recognized')) + } +} + +class Auditor extends Installer { + constructor (where, dryrun, args, opts) { + super(where, dryrun, args, opts) + this.deepArgs = (opts && opts.deepArgs) || [] + this.runId = opts.runId || '' + this.audit = false + } + + loadAllDepsIntoIdealTree (cb) { + Bluebird.fromNode(cb => super.loadAllDepsIntoIdealTree(cb)).then(() => { + if (this.deepArgs && this.deepArgs.length) { + this.deepArgs.forEach(arg => { + arg.reduce((acc, child, ii) => { + if (!acc) { + // We might not always be able to find `target` through the given + // path. If we can't we'll just ignore it. + return + } + const spec = npa(child) + const target = ( + acc.requires.find(n => n.package.name === spec.name) || + acc.requires.find( + n => audit.scrub(n.package.name, this.runId) === spec.name + ) + ) + if (target && ii === arg.length - 1) { + target.loaded = false + // This kills `hasModernMeta()` and forces a re-fetch + target.package = { + name: spec.name, + version: spec.fetchSpec, + _requested: target.package._requested + } + delete target.fakeChild + let parent = target.parent + while (parent) { + parent.loaded = false + parent = parent.parent + } + target.requiredBy.forEach(par => { + par.loaded = false + delete par.fakeChild + }) + } + return target + }, this.idealTree) + }) + return Bluebird.fromNode(cb => super.loadAllDepsIntoIdealTree(cb)) + } + }).nodeify(cb) + } + + // no top level lifecycles on audit + runPreinstallTopLevelLifecycles (cb) { cb() } + runPostinstallTopLevelLifecycles (cb) { cb() } +} + +function maybeReadFile (name) { + const file = `${npm.prefix}/${name}` + return readFile(file) + .then((data) => { + try { + return parseJson(data) + } catch (ex) { + ex.code = 'EJSONPARSE' + throw ex + } + }) + .catch({code: 'ENOENT'}, () => null) + .catch(ex => { + ex.file = file + throw ex + }) +} + +function filterEnv (action) { + const includeDev = npm.config.get('dev') || + (!/^prod(uction)?$/.test(npm.config.get('only')) && !npm.config.get('production')) || + /^dev(elopment)?$/.test(npm.config.get('only')) || + /^dev(elopment)?$/.test(npm.config.get('also')) + const includeProd = !/^dev(elopment)?$/.test(npm.config.get('only')) + const resolves = action.resolves.filter(({dev}) => { + return (dev && includeDev) || (!dev && includeProd) + }) + if (resolves.length) { + return Object.assign({}, action, {resolves}) + } +} + +function auditCmd (args, cb) { + if (npm.config.get('global')) { + const err = new Error('`npm audit` does not support testing globals') + err.code = 'EAUDITGLOBAL' + throw err + } + if (args.length && args[0] !== 'fix') { + return cb(new Error('Invalid audit subcommand: `' + args[0] + '`\n\nUsage:\n' + auditCmd.usage)) + } + return Bluebird.all([ + maybeReadFile('npm-shrinkwrap.json'), + maybeReadFile('package-lock.json'), + maybeReadFile('package.json') + ]).spread((shrinkwrap, lockfile, pkgJson) => { + const sw = shrinkwrap || lockfile + if (!pkgJson) { + const err = new Error('No package.json found: Cannot audit a project without a package.json') + err.code = 'EAUDITNOPJSON' + throw err + } + if (!sw) { + const err = new Error('Neither npm-shrinkwrap.json nor package-lock.json found: Cannot audit a project without a lockfile') + err.code = 'EAUDITNOLOCK' + throw err + } else if (shrinkwrap && lockfile) { + log.warn('audit', 'Both npm-shrinkwrap.json and package-lock.json exist, using npm-shrinkwrap.json.') + } + const requires = Object.assign( + {}, + (pkgJson && pkgJson.dependencies) || {}, + (pkgJson && pkgJson.devDependencies) || {} + ) + return lockVerify(npm.prefix).then(result => { + if (result.status) return audit.generate(sw, requires) + + const lockFile = shrinkwrap ? 'npm-shrinkwrap.json' : 'package-lock.json' + const err = new Error(`Errors were found in your ${lockFile}, run npm install to fix them.\n ` + + result.errors.join('\n ')) + err.code = 'ELOCKVERIFY' + throw err + }) + }).then((auditReport) => { + return audit.submitForFullReport(auditReport) + }).catch(err => { + if (err.statusCode === 404 || err.statusCode >= 500) { + const ne = new Error(`Your configured registry (${npm.config.get('registry')}) does not support audit requests.`) + ne.code = 'ENOAUDIT' + ne.wrapped = err + throw ne + } + throw err + }).then((auditResult) => { + if (args[0] === 'fix') { + const actions = (auditResult.actions || []).reduce((acc, action) => { + action = filterEnv(action) + if (!action) { return acc } + if (action.isMajor) { + acc.major.add(`${action.module}@${action.target}`) + action.resolves.forEach(({id, path}) => acc.majorFixes.add(`${id}::${path}`)) + } else if (action.action === 'install') { + acc.install.add(`${action.module}@${action.target}`) + action.resolves.forEach(({id, path}) => acc.installFixes.add(`${id}::${path}`)) + } else if (action.action === 'update') { + const name = action.module + const version = action.target + action.resolves.forEach(vuln => { + acc.updateFixes.add(`${vuln.id}::${vuln.path}`) + const modPath = vuln.path.split('>') + const newPath = modPath.slice( + 0, modPath.indexOf(name) + ).concat(`${name}@${version}`) + if (newPath.length === 1) { + acc.install.add(newPath[0]) + } else { + acc.update.add(newPath.join('>')) + } + }) + } else if (action.action === 'review') { + action.resolves.forEach(({id, path}) => acc.review.add(`${id}::${path}`)) + } + return acc + }, { + install: new Set(), + installFixes: new Set(), + update: new Set(), + updateFixes: new Set(), + major: new Set(), + majorFixes: new Set(), + review: new Set() + }) + return Bluebird.try(() => { + const installMajor = npm.config.get('force') + const installCount = actions.install.size + (installMajor ? actions.major.size : 0) + actions.update.size + const vulnFixCount = new Set([...actions.installFixes, ...actions.updateFixes, ...(installMajor ? actions.majorFixes : [])]).size + const metavuln = auditResult.metadata.vulnerabilities + const total = Object.keys(metavuln).reduce((acc, key) => acc + metavuln[key], 0) + if (installCount) { + log.verbose( + 'audit', + 'installing', + [...actions.install, ...(installMajor ? actions.major : []), ...actions.update] + ) + } + return Bluebird.fromNode(cb => { + new Auditor( + npm.prefix, + !!npm.config.get('dry-run'), + [...actions.install, ...(installMajor ? actions.major : [])], + { + runId: auditResult.runId, + deepArgs: [...actions.update].map(u => u.split('>')) + } + ).run(cb) + }).then(() => { + const numScanned = auditResult.metadata.totalDependencies + if (!npm.config.get('json') && !npm.config.get('parseable')) { + output(`fixed ${vulnFixCount} of ${total} vulnerabilit${total === 1 ? 'y' : 'ies'} in ${numScanned} scanned package${numScanned === 1 ? '' : 's'}`) + if (actions.review.size) { + output(` ${actions.review.size} vulnerabilit${actions.review.size === 1 ? 'y' : 'ies'} required manual review and could not be updated`) + } + if (actions.major.size) { + output(` ${actions.major.size} package update${actions.major.size === 1 ? '' : 's'} for ${actions.majorFixes.size} vuln${actions.majorFixes.size === 1 ? '' : 's'} involved breaking changes`) + if (installMajor) { + output(' (installed due to `--force` option)') + } else { + output(' (use `npm audit fix --force` to install breaking changes; or do it by hand)') + } + } + } + }) + }) + } else { + const vulns = + auditResult.metadata.vulnerabilities.low + + auditResult.metadata.vulnerabilities.moderate + + auditResult.metadata.vulnerabilities.high + + auditResult.metadata.vulnerabilities.critical + if (vulns > 0) process.exitCode = 1 + return audit.printFullReport(auditResult) + } + }).asCallback(cb) +} diff --git a/deps/npm/lib/auth/legacy.js b/deps/npm/lib/auth/legacy.js index 92bf44c119..9aa3696625 100644 --- a/deps/npm/lib/auth/legacy.js +++ b/deps/npm/lib/auth/legacy.js @@ -6,52 +6,74 @@ const npm = require('../npm.js') const output = require('../utils/output.js') const pacoteOpts = require('../config/pacote') const fetchOpts = require('../config/fetch-opts') +const openUrl = require('../utils/open-url') -module.exports.login = function login (creds, registry, scope, cb) { - let username = creds.username || '' - let password = creds.password || '' - let email = creds.email || '' - const auth = {} - if (npm.config.get('otp')) auth.otp = npm.config.get('otp') +const openerPromise = (url) => new Promise((resolve, reject) => { + openUrl(url, 'to complete your login please visit', (er) => er ? reject(er) : resolve()) +}) - return read.username('Username:', username, {log: log}).then((u) => { - username = u - return read.password('Password: ', password) +const loginPrompter = (creds) => { + const opts = { log: log } + return read.username('Username:', creds.username, opts).then((u) => { + creds.username = u + return read.password('Password:', creds.password) }).then((p) => { - password = p - return read.email('Email: (this IS public) ', email, {log: log}) + creds.password = p + return read.email('Email: (this IS public) ', creds.email, opts) }).then((e) => { - email = e - return profile.login(username, password, {registry: registry, auth: auth}).catch((err) => { + creds.email = e + return creds + }) +} + +module.exports.login = (creds, registry, scope, cb) => { + const conf = { + log: log, + creds: creds, + registry: registry, + auth: { + otp: npm.config.get('otp') + }, + scope: scope, + opts: fetchOpts.fromPacote(pacoteOpts()) + } + login(conf).then((newCreds) => cb(null, newCreds)).catch(cb) +} + +function login (conf) { + return profile.login(openerPromise, loginPrompter, conf) + .catch((err) => { if (err.code === 'EOTP') throw err - return profile.adduser(username, email, password, { - registry: registry, - opts: fetchOpts.fromPacote(pacoteOpts()) + const u = conf.creds.username + const p = conf.creds.password + const e = conf.creds.email + if (!(u && p && e)) throw err + return profile.adduserCouch(u, e, p, conf) + }) + .catch((err) => { + if (err.code !== 'EOTP') throw err + return read.otp('Authenticator provided OTP:').then((otp) => { + conf.auth.otp = otp + const u = conf.creds.username + const p = conf.creds.password + return profile.loginCouch(u, p, conf) }) - }).catch((err) => { - if (err.code === 'EOTP' && !auth.otp) { - return read.otp('Authenticator provided OTP:').then((otp) => { - auth.otp = otp - return profile.login(username, password, {registry: registry, auth: auth}) - }) + }).then((result) => { + const newCreds = {} + if (result && result.token) { + newCreds.token = result.token } else { - throw err + newCreds.username = conf.creds.username + newCreds.password = conf.creds.password + newCreds.email = conf.creds.email + newCreds.alwaysAuth = npm.config.get('always-auth') } - }) - }).then((result) => { - const newCreds = {} - if (result && result.token) { - newCreds.token = result.token - } else { - newCreds.username = username - newCreds.password = password - newCreds.email = email - newCreds.alwaysAuth = npm.config.get('always-auth') - } - log.info('adduser', 'Authorized user %s', username) - const scopeMessage = scope ? ' to scope ' + scope : '' - output('Logged in as %s%s on %s.', username, scopeMessage, registry) - cb(null, newCreds) - }).catch(cb) + const usermsg = conf.creds.username ? ' user ' + conf.creds.username : '' + conf.log.info('login', 'Authorized' + usermsg) + const scopeMessage = conf.scope ? ' to scope ' + conf.scope : '' + const userout = conf.creds.username ? ' as ' + conf.creds.username : '' + output('Logged in%s%s on %s.', userout, scopeMessage, conf.registry) + return newCreds + }) } diff --git a/deps/npm/lib/auth/sso.js b/deps/npm/lib/auth/sso.js index faffe2fa59..519ca8496c 100644 --- a/deps/npm/lib/auth/sso.js +++ b/deps/npm/lib/auth/sso.js @@ -1,7 +1,7 @@ var log = require('npmlog') var npm = require('../npm.js') var output = require('../utils/output') -var opener = require('opener') +var openUrl = require('../utils/open-url') module.exports.login = function login (creds, registry, scope, cb) { var ssoType = npm.config.get('sso-type') @@ -22,10 +22,7 @@ module.exports.login = function login (creds, registry, scope, cb) { if (!doc || !doc.token) return cb(new Error('no SSO token returned')) if (!doc.sso) return cb(new Error('no SSO URL returned by services')) - output('If your browser doesn\'t open, visit ' + - doc.sso + - ' to complete authentication') - opener(doc.sso, { command: npm.config.get('browser') }, function () { + openUrl(doc.sso, 'to complete your login please visit', function () { pollForSession(registry, doc.token, function (err, username) { if (err) return cb(err) diff --git a/deps/npm/lib/bugs.js b/deps/npm/lib/bugs.js index 5f166c33f6..10300d1e13 100644 --- a/deps/npm/lib/bugs.js +++ b/deps/npm/lib/bugs.js @@ -1,8 +1,7 @@ module.exports = bugs -var npm = require('./npm.js') var log = require('npmlog') -var opener = require('opener') +var openUrl = require('./utils/open-url') var fetchPackageMetadata = require('./fetch-package-metadata.js') var usage = require('./utils/usage') @@ -27,6 +26,6 @@ function bugs (args, cb) { url = 'https://www.npmjs.org/package/' + d.name } log.silly('bugs', 'url', url) - opener(url, { command: npm.config.get('browser') }, cb) + openUrl(url, 'bug list available at the following URL', cb) }) } diff --git a/deps/npm/lib/build.js b/deps/npm/lib/build.js index 395f9437b4..f8b3c4933e 100644 --- a/deps/npm/lib/build.js +++ b/deps/npm/lib/build.js @@ -106,7 +106,7 @@ function rebuildBundles (pkg, folder, cb) { if (!npm.config.get('rebuild-bundle')) return cb() var deps = Object.keys(pkg.dependencies || {}) - .concat(Object.keys(pkg.devDependencies || {})) + .concat(Object.keys(pkg.devDependencies || {})) var bundles = pkg.bundleDependencies || pkg.bundledDependencies || [] fs.readdir(path.resolve(folder, 'node_modules'), function (er, files) { @@ -119,7 +119,7 @@ function rebuildBundles (pkg, folder, cb) { chain(files.filter(function (file) { // rebuild if: // not a .folder, like .bin or .hooks - return !file.match(/^[\._-]/) && + return !file.match(/^[._-]/) && // not some old 0.x style bundle file.indexOf('@') === -1 && // either not a dep, or explicitly bundled diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js index 8bd2d5fcb1..d80f196c89 100644 --- a/deps/npm/lib/cache.js +++ b/deps/npm/lib/cache.js @@ -1,4 +1,5 @@ 'use strict' +/* eslint-disable standard/no-callback-literal */ const BB = require('bluebird') diff --git a/deps/npm/lib/ci.js b/deps/npm/lib/ci.js new file mode 100644 index 0000000000..e71d89cfdd --- /dev/null +++ b/deps/npm/lib/ci.js @@ -0,0 +1,40 @@ +'use strict' + +const Installer = require('libcipm') +const lifecycleOpts = require('./config/lifecycle.js') +const npm = require('./npm.js') +const npmlog = require('npmlog') +const pacoteOpts = require('./config/pacote.js') + +ci.usage = 'npm ci' + +ci.completion = (cb) => cb(null, []) + +Installer.CipmConfig.impl(npm.config, { + get: npm.config.get, + set: npm.config.set, + toLifecycle (moreOpts) { + return lifecycleOpts(moreOpts) + }, + toPacote (moreOpts) { + return pacoteOpts(moreOpts) + } +}) + +module.exports = ci +function ci (args, cb) { + return new Installer({ + config: npm.config, + log: npmlog + }) + .run() + .then( + (details) => { + npmlog.disableProgress() + console.error(`added ${details.pkgCount} packages in ${ + details.runTime / 1000 + }s`) + } + ) + .then(() => cb(), cb) +} diff --git a/deps/npm/lib/completion.js b/deps/npm/lib/completion.js index 3157255bfb..a682c134a7 100644 --- a/deps/npm/lib/completion.js +++ b/deps/npm/lib/completion.js @@ -49,7 +49,7 @@ function completion (args, cb) { if (isWindowsShell) { var e = new Error('npm completion supported only in MINGW / Git bash on Windows') e.code = 'ENOTSUP' - e.errno = require('constants').ENOTSUP + e.errno = require('constants').ENOTSUP // eslint-disable-line node/no-deprecated-api return cb(e) } @@ -150,7 +150,7 @@ function dumpScript (cb) { fs.readFile(p, 'utf8', function (er, d) { if (er) return cb(er) - d = d.replace(/^\#\!.*?\n/, '') + d = d.replace(/^#!.*?\n/, '') process.stdout.write(d, function () { cb() }) process.stdout.on('error', function (er) { diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js index d260c04a54..0d4161d3b5 100644 --- a/deps/npm/lib/config.js +++ b/deps/npm/lib/config.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ module.exports = config var log = require('npmlog') @@ -9,6 +10,8 @@ var types = npmconf.defs.types var ini = require('ini') var editor = require('editor') var os = require('os') +var path = require('path') +var mkdirp = require('mkdirp') var umask = require('./utils/umask') var usage = require('./utils/usage') var output = require('./utils/output') @@ -39,7 +42,7 @@ config.completion = function (opts, cb) { // todo: complete with valid values, if possible. if (argv.length > 3) return cb(null, []) // fallthrough - /*eslint no-fallthrough:0*/ + /* eslint no-fallthrough:0 */ case 'get': case 'delete': case 'rm': @@ -89,7 +92,7 @@ function edit (cb) { data = [ ';;;;', '; npm ' + (npm.config.get('global') - ? 'globalconfig' : 'userconfig') + ' file', + ? 'globalconfig' : 'userconfig') + ' file', '; this is a simple ini-formatted file', '; lines that start with semi-colons are comments.', '; read `npm help config` for help on the various options', @@ -111,16 +114,19 @@ function edit (cb) { .replace(/\n/g, '\n; ') .split('\n')) }, [])) - .concat(['']) - .join(os.EOL) - writeFileAtomic( - f, - data, - function (er) { - if (er) return cb(er) - editor(f, { editor: e }, noProgressTillDone(cb)) - } - ) + .concat(['']) + .join(os.EOL) + mkdirp(path.dirname(f), function (er) { + if (er) return cb(er) + writeFileAtomic( + f, + data, + function (er) { + if (er) return cb(er) + editor(f, { editor: e }, noProgressTillDone(cb)) + } + ) + }) }) }) } diff --git a/deps/npm/lib/config/cmd-list.js b/deps/npm/lib/config/cmd-list.js index 49c445a4f0..2069b5ea33 100644 --- a/deps/npm/lib/config/cmd-list.js +++ b/deps/npm/lib/config/cmd-list.js @@ -4,8 +4,10 @@ var shorthands = { 'rb': 'rebuild', 'list': 'ls', 'ln': 'link', + 'create': 'init', 'i': 'install', 'it': 'install-test', + 'cit': 'install-ci-test', 'up': 'update', 'c': 'config', 's': 'search', @@ -22,6 +24,8 @@ var affordances = { 'la': 'ls', 'll': 'ls', 'verison': 'version', + 'ic': 'ci', + 'innit': 'init', 'isntall': 'install', 'dist-tags': 'dist-tag', 'apihelp': 'help', @@ -41,11 +45,14 @@ var affordances = { 'remove': 'uninstall', 'rm': 'uninstall', 'r': 'uninstall', - 'rum': 'run-script' + 'rum': 'run-script', + 'sit': 'cit', + 'urn': 'run-script' } // these are filenames in . var cmdList = [ + 'ci', 'install', 'install-test', 'uninstall', @@ -58,6 +65,7 @@ var cmdList = [ 'prune', 'pack', 'dedupe', + 'hook', 'rebuild', 'link', @@ -76,6 +84,7 @@ var cmdList = [ 'shrinkwrap', 'token', 'profile', + 'audit', 'help', 'help-search', diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js index 50cf4772e7..b9851f98d0 100644 --- a/deps/npm/lib/config/core.js +++ b/deps/npm/lib/config/core.js @@ -21,18 +21,20 @@ exports.defs = configDefs Object.defineProperty(exports, 'defaults', { get: function () { return configDefs.defaults -}, enumerable: true }) +}, +enumerable: true }) Object.defineProperty(exports, 'types', { get: function () { return configDefs.types -}, enumerable: true }) +}, +enumerable: true }) exports.validate = validate var myUid = process.env.SUDO_UID !== undefined - ? process.env.SUDO_UID : (process.getuid && process.getuid()) + ? process.env.SUDO_UID : (process.getuid && process.getuid()) var myGid = process.env.SUDO_GID !== undefined - ? process.env.SUDO_GID : (process.getgid && process.getgid()) + ? process.env.SUDO_GID : (process.getgid && process.getgid()) var loading = false var loadCbs = [] @@ -153,17 +155,10 @@ function load_ (builtin, rc, cli, cb) { // annoying humans and their expectations! if (conf.get('prefix')) { var etc = path.resolve(conf.get('prefix'), 'etc') - mkdirp(etc, function () { - defaults.globalconfig = path.resolve(etc, 'npmrc') - defaults.globalignorefile = path.resolve(etc, 'npmignore') - afterUserContinuation() - }) - } else { - afterUserContinuation() + defaults.globalconfig = path.resolve(etc, 'npmrc') + defaults.globalignorefile = path.resolve(etc, 'npmignore') } - } - function afterUserContinuation () { conf.addFile(conf.get('globalconfig'), 'global') // move the builtin into the conf stack now. @@ -274,7 +269,7 @@ Conf.prototype.save = function (where, cb) { if (cb) return cb(er) else return this.emit('error', er) } - this._saving -- + this._saving-- if (this._saving === 0) { if (cb) cb() this.emit('save') @@ -283,7 +278,7 @@ Conf.prototype.save = function (where, cb) { then = then.bind(this) done = done.bind(this) - this._saving ++ + this._saving++ var mode = where === 'user' ? '0600' : '0666' if (!data.trim()) { @@ -331,7 +326,10 @@ Conf.prototype.parse = function (content, file) { Conf.prototype.add = function (data, marker) { try { Object.keys(data).forEach(function (k) { - data[k] = parseField(data[k], k) + const newKey = envReplace(k) + const newField = parseField(data[k], newKey) + delete data[k] + data[newKey] = newField }) } catch (e) { this.emit('error', e) @@ -351,8 +349,8 @@ Conf.prototype.addEnv = function (env) { // leave first char untouched, even if // it is a '_' - convert all other to '-' var p = k.toLowerCase() - .replace(/^npm_config_/, '') - .replace(/(?!^)_/g, '-') + .replace(/^npm_config_/, '') + .replace(/(?!^)_/g, '-') conf[p] = env[k] }) return CC.prototype.addEnv.call(this, '', conf, 'env') diff --git a/deps/npm/lib/config/defaults.js b/deps/npm/lib/config/defaults.js index c049f213fa..8e0d7e4fd5 100644 --- a/deps/npm/lib/config/defaults.js +++ b/deps/npm/lib/config/defaults.js @@ -82,7 +82,7 @@ if (home) process.env.HOME = home else home = path.resolve(temp, 'npm-' + uidOrPid) var cacheExtra = process.platform === 'win32' ? 'npm-cache' : '.npm' -var cacheRoot = process.platform === 'win32' && process.env.APPDATA || home +var cacheRoot = (process.platform === 'win32' && process.env.APPDATA) || home var cache = path.resolve(cacheRoot, cacheExtra) var globalPrefix @@ -109,6 +109,7 @@ Object.defineProperty(exports, 'defaults', {get: function () { 'allow-same-version': false, 'always-auth': false, also: null, + audit: true, 'auth-type': 'legacy', 'bin-links': true, @@ -130,7 +131,7 @@ Object.defineProperty(exports, 'defaults', {get: function () { cidr: null, - color: true, + color: process.env.NO_COLOR == null, depth: Infinity, description: true, dev: false, @@ -152,7 +153,7 @@ Object.defineProperty(exports, 'defaults', {get: function () { globalconfig: path.resolve(globalPrefix, 'etc', 'npmrc'), 'global-style': false, group: process.platform === 'win32' ? 0 - : process.env.SUDO_GID || (process.getgid && process.getgid()), + : process.env.SUDO_GID || (process.getgid && process.getgid()), 'ham-it-up': false, heading: 'npm', 'if-present': false, @@ -193,6 +194,7 @@ Object.defineProperty(exports, 'defaults', {get: function () { 'progress': !process.env.TRAVIS && !process.env.CI, proxy: null, 'https-proxy': null, + 'no-proxy': null, 'user-agent': 'npm/{npm-version} ' + 'node/{node-version} ' + '{platform} ' + @@ -251,6 +253,7 @@ exports.types = { 'allow-same-version': Boolean, 'always-auth': Boolean, also: [null, 'dev', 'development'], + audit: Boolean, 'auth-type': ['legacy', 'sso', 'saml', 'oauth'], 'bin-links': Boolean, browser: [null, String], @@ -312,12 +315,13 @@ exports.types = { 'metrics-registry': [null, String], 'node-options': [null, String], 'node-version': [null, semver], + 'no-proxy': [null, String, Array], offline: Boolean, 'onload-script': [null, String], only: [null, 'dev', 'development', 'prod', 'production'], optional: Boolean, 'package-lock': Boolean, - otp: Number, + otp: [null, String], 'package-lock-only': Boolean, parseable: Boolean, 'prefer-offline': Boolean, @@ -382,9 +386,9 @@ function getLocalAddresses () { return interfaces[nic].filter(function (addr) { return addr.family === 'IPv4' }) - .map(function (addr) { - return addr.address - }) + .map(function (addr) { + return addr.address + }) }).reduce(function (curr, next) { return curr.concat(next) }, []).concat(undefined) diff --git a/deps/npm/lib/config/fetch-opts.js b/deps/npm/lib/config/fetch-opts.js index 1a030c378e..213c293d6c 100644 --- a/deps/npm/lib/config/fetch-opts.js +++ b/deps/npm/lib/config/fetch-opts.js @@ -26,12 +26,12 @@ function fromPacote (opts) { function getCacheMode (opts) { return opts.offline - ? 'only-if-cached' - : opts.preferOffline - ? 'force-cache' - : opts.preferOnline - ? 'no-cache' - : 'default' + ? 'only-if-cached' + : opts.preferOffline + ? 'force-cache' + : opts.preferOnline + ? 'no-cache' + : 'default' } function getHeaders (uri, registry, opts) { diff --git a/deps/npm/lib/config/get-credentials-by-uri.js b/deps/npm/lib/config/get-credentials-by-uri.js index d04f6137de..5e672696b2 100644 --- a/deps/npm/lib/config/get-credentials-by-uri.js +++ b/deps/npm/lib/config/get-credentials-by-uri.js @@ -40,14 +40,14 @@ function getCredentialsByURI (uri) { var userDef = this.get('username') var passDef = this.get('_password') if (authDef && !(userDef && passDef)) { - authDef = new Buffer(authDef, 'base64').toString() + authDef = Buffer.from(authDef, 'base64').toString() authDef = authDef.split(':') userDef = authDef.shift() passDef = authDef.join(':') } if (this.get(nerfed + ':_password')) { - c.password = new Buffer(this.get(nerfed + ':_password'), 'base64').toString('utf8') + c.password = Buffer.from(this.get(nerfed + ':_password'), 'base64').toString('utf8') } else if (nerfed === defnerf && passDef) { c.password = passDef } @@ -65,7 +65,7 @@ function getCredentialsByURI (uri) { } if (c.username && c.password) { - c.auth = new Buffer(c.username + ':' + c.password).toString('base64') + c.auth = Buffer.from(c.username + ':' + c.password).toString('base64') } return c diff --git a/deps/npm/lib/config/load-prefix.js b/deps/npm/lib/config/load-prefix.js index c2af00c7f6..090865d215 100644 --- a/deps/npm/lib/config/load-prefix.js +++ b/deps/npm/lib/config/load-prefix.js @@ -34,7 +34,7 @@ function loadPrefix (cb) { Object.defineProperty(this, 'localPrefix', { set: function (prefix) { p = prefix }, get: function () { return p }, - enumerable: true }) + enumerable: true }) // try to guess at a good node_modules location. // If we are *explicitly* given a prefix on the cli, then diff --git a/deps/npm/lib/config/pacote.js b/deps/npm/lib/config/pacote.js index ec43178c77..b9c651d883 100644 --- a/deps/npm/lib/config/pacote.js +++ b/deps/npm/lib/config/pacote.js @@ -26,6 +26,7 @@ function pacoteOpts (moreOpts) { defaultTag: npm.config.get('tag'), dirPacker: pack.packGitDep, hashAlgorithm: 'sha1', + includeDeprecated: false, key: npm.config.get('key'), localAddress: npm.config.get('local-address'), log: log, @@ -37,6 +38,7 @@ function pacoteOpts (moreOpts) { preferOnline: npm.config.get('prefer-online') || npm.config.get('cache-max') <= 0, projectScope: npm.projectScope, proxy: npm.config.get('https-proxy') || npm.config.get('proxy'), + noProxy: npm.config.get('no-proxy'), refer: npm.registry.refer, registry: npm.config.get('registry'), retry: { diff --git a/deps/npm/lib/config/set-credentials-by-uri.js b/deps/npm/lib/config/set-credentials-by-uri.js index 74211380d8..4723d561a8 100644 --- a/deps/npm/lib/config/set-credentials-by-uri.js +++ b/deps/npm/lib/config/set-credentials-by-uri.js @@ -23,7 +23,7 @@ function setCredentialsByURI (uri, c) { this.del(nerfed + ':_authToken', 'user') - var encoded = new Buffer(c.password, 'utf8').toString('base64') + var encoded = Buffer.from(c.password, 'utf8').toString('base64') this.set(nerfed + ':_password', encoded, 'user') this.set(nerfed + ':username', c.username, 'user') this.set(nerfed + ':email', c.email, 'user') diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js index 71e60619c4..325faeaabc 100644 --- a/deps/npm/lib/dedupe.js +++ b/deps/npm/lib/dedupe.js @@ -134,7 +134,7 @@ function hoistChildren_ (tree, diff, seen, next) { if (seen.has(tree)) return next() seen.add(tree) asyncMap(tree.children, function (child, done) { - if (!tree.parent) return hoistChildren_(child, diff, seen, done) + if (!tree.parent || child.fromBundle || child.package._inBundle) return hoistChildren_(child, diff, seen, done) var better = findRequirement(tree.parent, moduleName(child), getRequested(child) || npa(packageId(child))) if (better) { return chain([ @@ -142,7 +142,7 @@ function hoistChildren_ (tree, diff, seen, next) { [andComputeMetadata(tree)] ], done) } - var hoistTo = earliestInstallable(tree, tree.parent, child.package) + var hoistTo = earliestInstallable(tree, tree.parent, child.package, log) if (hoistTo) { move(child, hoistTo, diff) chain([ diff --git a/deps/npm/lib/deprecate.js b/deps/npm/lib/deprecate.js index 15ae58e014..9b71d1de49 100644 --- a/deps/npm/lib/deprecate.js +++ b/deps/npm/lib/deprecate.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ var npm = require('./npm.js') var mapToRegistry = require('./utils/map-to-registry.js') var npa = require('npm-package-arg') diff --git a/deps/npm/lib/dist-tag.js b/deps/npm/lib/dist-tag.js index 7c20ea9901..bd0c5ae8a2 100644 --- a/deps/npm/lib/dist-tag.js +++ b/deps/npm/lib/dist-tag.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ module.exports = distTag var log = require('npmlog') diff --git a/deps/npm/lib/docs.js b/deps/npm/lib/docs.js index 2248702a46..6d67da4e12 100644 --- a/deps/npm/lib/docs.js +++ b/deps/npm/lib/docs.js @@ -1,7 +1,6 @@ module.exports = docs -var npm = require('./npm.js') -var opener = require('opener') +var openUrl = require('./utils/open-url') var log = require('npmlog') var fetchPackageMetadata = require('./fetch-package-metadata.js') var usage = require('./utils/usage') @@ -37,6 +36,6 @@ function getDoc (project, cb) { if (er) return cb(er) var url = d.homepage if (!url) url = 'https://www.npmjs.org/package/' + d.name - return opener(url, {command: npm.config.get('browser')}, cb) + return openUrl(url, 'docs available at the following URL', cb) }) } diff --git a/deps/npm/lib/edit.js b/deps/npm/lib/edit.js index 8e9bbd1797..48bcd5d346 100644 --- a/deps/npm/lib/edit.js +++ b/deps/npm/lib/edit.js @@ -22,8 +22,8 @@ function edit (args, cb) { )) } p = p.split('/') - .join('/node_modules/') - .replace(/(\/node_modules)+/, '/node_modules') + .join('/node_modules/') + .replace(/(\/node_modules)+/, '/node_modules') var f = path.resolve(npm.dir, p) fs.lstat(f, function (er) { if (er) return cb(er) diff --git a/deps/npm/lib/help-search.js b/deps/npm/lib/help-search.js index ffbe554b7b..475f305e49 100644 --- a/deps/npm/lib/help-search.js +++ b/deps/npm/lib/help-search.js @@ -70,7 +70,7 @@ function searchFiles (args, files, cb) { if (nextLine) { for (a = 0, ll = args.length; a < ll && !match; a++) { match = nextLine.toLowerCase() - .indexOf(args[a].toLowerCase()) !== -1 + .indexOf(args[a].toLowerCase()) !== -1 } if (match) { // skip over the next line, and the line after it. @@ -107,7 +107,7 @@ function searchFiles (args, files, cb) { lines.forEach(function (line) { args.forEach(function (arg) { var hit = (line || '').toLowerCase() - .split(arg.toLowerCase()).length - 1 + .split(arg.toLowerCase()).length - 1 if (hit > 0) { found[arg] = (found[arg] || 0) + hit totalHits += hit @@ -144,12 +144,12 @@ function searchFiles (args, files, cb) { // then by number of matching lines results = results.sort(function (a, b) { return a.found.length > b.found.length ? -1 - : a.found.length < b.found.length ? 1 - : a.totalHits > b.totalHits ? -1 - : a.totalHits < b.totalHits ? 1 - : a.lines.length > b.lines.length ? -1 - : a.lines.length < b.lines.length ? 1 - : 0 + : a.found.length < b.found.length ? 1 + : a.totalHits > b.totalHits ? -1 + : a.totalHits < b.totalHits ? 1 + : a.lines.length > b.lines.length ? -1 + : a.lines.length < b.lines.length ? 1 + : 0 }) cb(null, results) @@ -170,7 +170,7 @@ function formatResults (args, results, cb) { }).join(' ') out += ((new Array(Math.max(1, cols - out.length - r.length))) - .join(' ')) + r + .join(' ')) + r if (!npm.config.get('long')) return out diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js index 64c80f7874..d996a36e39 100644 --- a/deps/npm/lib/help.js +++ b/deps/npm/lib/help.js @@ -10,7 +10,7 @@ var path = require('path') var spawn = require('./utils/spawn') var npm = require('./npm.js') var log = require('npmlog') -var opener = require('opener') +var openUrl = require('./utils/open-url') var glob = require('glob') var didYouMean = require('./utils/did-you-mean') var cmdList = require('./config/cmd-list').cmdList @@ -97,8 +97,8 @@ function pickMan (mans, pref_) { var an = a.match(nre)[1] var bn = b.match(nre)[1] return an === bn ? (a > b ? -1 : 1) - : pref[an] < pref[bn] ? -1 - : 1 + : pref[an] < pref[bn] ? -1 + : 1 }) return mans[0] } @@ -127,7 +127,7 @@ function viewMan (man, cb) { break case 'browser': - opener(htmlMan(man), { command: npm.config.get('browser') }, cb) + openUrl(htmlMan(man), 'help available at the following URL', cb) break default: @@ -168,7 +168,7 @@ function npmUsage (valid, cb) { '', 'where is one of:', npm.config.get('long') ? usages() - : ' ' + wrap(commands), + : ' ' + wrap(commands), '', 'npm -h quick help on ', 'npm -l display full usage info', diff --git a/deps/npm/lib/hook.js b/deps/npm/lib/hook.js new file mode 100644 index 0000000000..011319c4d1 --- /dev/null +++ b/deps/npm/lib/hook.js @@ -0,0 +1,135 @@ +'use strict' + +const BB = require('bluebird') + +const crypto = require('crypto') +const hookApi = require('libnpmhook') +const log = require('npmlog') +const npm = require('./npm.js') +const output = require('./utils/output.js') +const pudding = require('figgy-pudding') +const relativeDate = require('tiny-relative-date') +const Table = require('cli-table2') +const usage = require('./utils/usage.js') +const validate = require('aproba') + +hook.usage = usage([ + 'npm hook add [--type=]', + 'npm hook ls [pkg]', + 'npm hook rm ', + 'npm hook update ' +]) + +hook.completion = (opts, cb) => { + validate('OF', [opts, cb]) + return cb(null, []) // fill in this array with completion values +} + +const npmSession = crypto.randomBytes(8).toString('hex') +const hookConfig = pudding() +function config () { + return hookConfig({ + refer: npm.refer, + projectScope: npm.projectScope, + log, + npmSession + }, npm.config) +} + +module.exports = (args, cb) => BB.try(() => hook(args)).nodeify(cb) +function hook (args) { + switch (args[0]) { + case 'add': + return add(args[1], args[2], args[3]) + case 'ls': + return ls(args[1]) + case 'rm': + return rm(args[1]) + case 'update': + case 'up': + return update(args[1], args[2], args[3]) + } +} + +function add (pkg, uri, secret) { + return hookApi.add(pkg, uri, secret, config()) + .then((hook) => { + if (npm.config.get('json')) { + output(JSON.stringify(hook, null, 2)) + } else { + output(`+ ${hookName(hook)} ${ + npm.config.get('unicode') ? ' āžœ ' : ' -> ' + } ${hook.endpoint}`) + } + }) +} + +function ls (pkg) { + return hookApi.ls(pkg, config()) + .then((hooks) => { + if (npm.config.get('json')) { + output(JSON.stringify(hooks, null, 2)) + } else if (!hooks.length) { + output("You don't have any hooks configured yet.") + } else { + if (hooks.length === 1) { + output('You have one hook configured.') + } else { + output(`You have ${hooks.length} hooks configured.`) + } + const table = new Table({head: ['id', 'target', 'endpoint']}) + hooks.forEach((hook) => { + table.push([ + {rowSpan: 2, content: hook.id}, + hookName(hook), + hook.endpoint + ]) + if (hook.last_delivery) { + table.push([ + { + colSpan: 1, + content: `triggered ${relativeDate(hook.last_delivery)}` + }, + hook.response_code + ]) + } else { + table.push([{colSpan: 2, content: 'never triggered'}]) + } + }) + output(table.toString()) + } + }) +} + +function rm (id) { + return hookApi.rm(id, config()) + .then((hook) => { + if (npm.config.get('json')) { + output(JSON.stringify(hook, null, 2)) + } else { + output(`- ${hookName(hook)} ${ + npm.config.get('unicode') ? ' āœ˜ ' : ' X ' + } ${hook.endpoint}`) + } + }) +} + +function update (id, uri, secret) { + return hookApi.update(id, uri, secret, config()) + .then((hook) => { + if (npm.config.get('json')) { + output(JSON.stringify(hook, null, 2)) + } else { + output(`+ ${hookName(hook)} ${ + npm.config.get('unicode') ? ' āžœ ' : ' -> ' + } ${hook.endpoint}`) + } + }) +} + +function hookName (hook) { + let target = hook.name + if (hook.type === 'scope') { target = '@' + target } + if (hook.type === 'owner') { target = '~' + target } + return target +} diff --git a/deps/npm/lib/init.js b/deps/npm/lib/init.js index 000fa1a5b6..9d873689f6 100644 --- a/deps/npm/lib/init.js +++ b/deps/npm/lib/init.js @@ -2,15 +2,59 @@ module.exports = init +var path = require('path') var log = require('npmlog') +var npa = require('npm-package-arg') var npm = require('./npm.js') +var npx = require('libnpx') var initJson = require('init-package-json') +var isRegistry = require('./utils/is-registry.js') var output = require('./utils/output.js') var noProgressTillDone = require('./utils/no-progress-while-running').tillDone +var usage = require('./utils/usage') -init.usage = 'npm init [--force|-f|--yes|-y]' +init.usage = usage( + 'init', + '\nnpm init [--force|-f|--yes|-y|--scope]' + + '\nnpm init <@scope> (same as `npx <@scope>/create`)' + + '\nnpm init [<@scope>/] (same as `npx [<@scope>/]create-`)' +) function init (args, cb) { + if (args.length) { + var NPM_PATH = path.resolve(__dirname, '../bin/npm-cli.js') + var initerName = args[0] + var packageName = initerName + if (/^@[^/]+$/.test(initerName)) { + packageName = initerName + '/create' + } else { + var req = npa(initerName) + if (req.type === 'git' && req.hosted) { + var { user, project } = req.hosted + packageName = initerName + .replace(user + '/' + project, user + '/create-' + project) + } else if (isRegistry(req)) { + packageName = req.name.replace(/^(@[^/]+\/)?/, '$1create-') + if (req.rawSpec) { + packageName += '@' + req.rawSpec + } + } else { + var err = new Error( + 'Unrecognized initializer: ' + initerName + + '\nFor more package binary executing power check out `npx`:' + + '\nhttps://www.npmjs.com/package/npx' + ) + err.code = 'EUNSUPPORTED' + throw err + } + } + var npxArgs = [process.argv0, '[fake arg]', '--always-spawn', packageName, ...process.argv.slice(4)] + var parsed = npx.parseArgs(npxArgs, NPM_PATH) + + return npx(parsed) + .then(() => cb()) + .catch(cb) + } var dir = process.cwd() log.pause() var initFile = npm.config.get('init-module') diff --git a/deps/npm/lib/install-ci-test.js b/deps/npm/lib/install-ci-test.js new file mode 100644 index 0000000000..26120f4a21 --- /dev/null +++ b/deps/npm/lib/install-ci-test.js @@ -0,0 +1,26 @@ +'use strict' + +// npm install-ci-test +// Runs `npm ci` and then runs `npm test` + +module.exports = installTest +var ci = require('./ci.js') +var test = require('./test.js') +var usage = require('./utils/usage') + +installTest.usage = usage( + 'install-ci-test', + '\nnpm install-ci-test [args]' + + '\nSame args as `npm ci`' +) + +installTest.completion = ci.completion + +function installTest (args, cb) { + ci(args, function (er) { + if (er) { + return cb(er) + } + test([], cb) + }) +} diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js index 42906f2394..66f85d80a4 100644 --- a/deps/npm/lib/install.js +++ b/deps/npm/lib/install.js @@ -1,4 +1,6 @@ 'use strict' +/* eslint-disable camelcase */ +/* eslint-disable standard/no-callback-literal */ // npm install // // See doc/cli/npm-install.md for more description @@ -135,6 +137,7 @@ var validateTree = require('./install/validate-tree.js') var validateArgs = require('./install/validate-args.js') var saveRequested = require('./install/save.js').saveRequested var saveShrinkwrap = require('./install/save.js').saveShrinkwrap +var audit = require('./install/audit.js') var getSaveType = require('./install/save.js').getSaveType var doSerialActions = require('./install/actions.js').doSerial var doReverseSerialActions = require('./install/actions.js').doReverseSerial @@ -181,8 +184,8 @@ function install (where, args, cb) { var globalTop = path.resolve(npm.globalDir, '..') if (!where) { where = npm.config.get('global') - ? globalTop - : npm.prefix + ? globalTop + : npm.prefix } validate('SAF', [where, args, cb]) // the /path/to/node_modules/.. @@ -220,6 +223,8 @@ function Installer (where, dryrun, args, opts) { this.noPackageJsonOk = !!args.length this.topLevelLifecycles = !args.length + this.autoPrune = npm.config.get('package-lock') + const dev = npm.config.get('dev') const only = npm.config.get('only') const onlyProd = /^prod(uction)?$/.test(only) @@ -234,6 +239,7 @@ function Installer (where, dryrun, args, opts) { this.link = opts.link != null ? opts.link : npm.config.get('link') this.saveOnlyLock = opts.saveOnlyLock this.global = opts.global != null ? opts.global : this.where === path.resolve(npm.globalDir, '..') + this.audit = npm.config.get('audit') && !this.global this.started = Date.now() } Installer.prototype = {} @@ -294,7 +300,9 @@ Installer.prototype.run = function (_cb) { [this, this.finishTracker, 'generateActionsToTake'], [this, this.debugActions, 'diffTrees', 'differences'], - [this, this.debugActions, 'decomposeActions', 'todo']) + [this, this.debugActions, 'decomposeActions', 'todo'], + [this, this.startAudit] + ) if (this.packageLockOnly) { postInstallSteps.push( @@ -436,8 +444,8 @@ Installer.prototype.pruneIdealTree = function (cb) { // if our lock file didn't have the requires field and there // are any fake children then forgo pruning until we have more info. if (!this.idealTree.hasRequiresFromLock && this.idealTree.children.some((n) => n.fakeChild)) return cb() - var toPrune = this.idealTree.children - .filter(isExtraneous) + const toPrune = this.idealTree.children + .filter((child) => isExtraneous(child) && (this.autoPrune || child.removing)) .map((n) => ({name: moduleName(n)})) return removeExtraneous(toPrune, this.idealTree, cb) } @@ -456,21 +464,13 @@ Installer.prototype.loadAllDepsIntoIdealTree = function (cb) { steps.push([loadRequestedDeps, this.args, this.idealTree, saveDeps, cg.newGroup('loadRequestedDeps')]) } else { const depsToPreload = Object.assign({}, - this.dev ? this.idealTree.package.devDependencies : {}, - this.prod ? this.idealTree.package.dependencies : {} + this.idealTree.package.devDependencies, + this.idealTree.package.dependencies ) - if (this.prod || this.dev) { - steps.push( - [prefetchDeps, this.idealTree, depsToPreload, cg.newGroup('prefetchDeps')]) - } - if (this.prod) { - steps.push( - [loadDeps, this.idealTree, cg.newGroup('loadDeps')]) - } - if (this.dev) { - steps.push( - [loadDevDeps, this.idealTree, cg.newGroup('loadDevDeps')]) - } + steps.push( + [prefetchDeps, this.idealTree, depsToPreload, cg.newGroup('prefetchDeps')], + [loadDeps, this.idealTree, cg.newGroup('loadDeps')], + [loadDevDeps, this.idealTree, cg.newGroup('loadDevDeps')]) } steps.push( [loadExtraneous.andResolveDeps, this.idealTree, cg.newGroup('loadExtraneous')]) @@ -630,6 +630,16 @@ Installer.prototype.runPostinstallTopLevelLifecycles = function (cb) { chain(steps, cb) } +Installer.prototype.startAudit = function (cb) { + if (!this.audit) return cb() + this.auditSubmission = Bluebird.try(() => { + return audit.generateFromInstall(this.idealTree, this.differences, this.args, this.remove) + }).then((auditData) => { + return audit.submitForInstallReport(auditData) + }).catch(_ => {}) + cb() +} + Installer.prototype.saveToDependencies = function (cb) { validate('F', arguments) if (this.failing) return cb() @@ -692,27 +702,19 @@ Installer.prototype.readLocalPackageData = function (cb) { Installer.prototype.cloneCurrentTreeToIdealTree = function (cb) { validate('F', arguments) log.silly('install', 'cloneCurrentTreeToIdealTree') - this.idealTree = copyTree(this.currentTree, (child) => { - // Filter out any children we didn't install ourselves. They need to be - // reinstalled in order for things to be correct. - return child.isTop || isLink(child) || ( - child.package && - child.package._resolved && - (child.package._integrity || child.package._shasum) - ) - }) + + this.idealTree = copyTree(this.currentTree) this.idealTree.warnings = [] cb() } -function isLink (child) { - return child.isLink || (child.parent && isLink(child.parent)) -} - Installer.prototype.loadShrinkwrap = function (cb) { validate('F', arguments) log.silly('install', 'loadShrinkwrap') - readShrinkwrap.andInflate(this.idealTree, cb) + readShrinkwrap.andInflate(this.idealTree, iferr(cb, () => { + computeMetadata(this.idealTree) + cb() + })) } Installer.prototype.getInstalledModules = function () { @@ -760,20 +762,29 @@ Installer.prototype.printInstalled = function (cb) { diffs.push(['remove', r]) }) } - if (npm.config.get('json')) { - return this.printInstalledForJSON(diffs, cb) - } else if (npm.config.get('parseable')) { - return this.printInstalledForParseable(diffs, cb) - } else { - return this.printInstalledForHuman(diffs, cb) - } + return Bluebird.try(() => { + if (!this.auditSubmission) return + return Bluebird.resolve(this.auditSubmission).timeout(10000).catch(() => null) + }).then((auditResult) => { + // maybe write audit report w/ hash of pjson & shrinkwrap for later reading by `npm audit` + if (npm.config.get('json')) { + return this.printInstalledForJSON(diffs, auditResult) + } else if (npm.config.get('parseable')) { + return this.printInstalledForParseable(diffs, auditResult) + } else { + return this.printInstalledForHuman(diffs, auditResult) + } + }).asCallback(cb) } -Installer.prototype.printInstalledForHuman = function (diffs, cb) { +Installer.prototype.printInstalledForHuman = function (diffs, auditResult) { var removed = 0 var added = 0 var updated = 0 var moved = 0 + // Count the number of contributors to packages added, tracking + // contributors we've seen, so we can produce a running unique count. + var contributors = new Set() diffs.forEach(function (action) { var mutation = action[0] var pkg = action[1] @@ -784,6 +795,26 @@ Installer.prototype.printInstalledForHuman = function (diffs, cb) { ++moved } else if (mutation === 'add') { ++added + // Count contributors to added packages. Start by combining `author` + // and `contributors` data into a single array of contributor-people + // for this package. + var people = [] + var meta = pkg.package + if (meta.author) people.push(meta.author) + if (meta.contributors && Array.isArray(meta.contributors)) { + people = people.concat(meta.contributors) + } + // Make sure a normalized string for every person behind this + // package is in `contributors`. + people.forEach(function (person) { + // Ignore errors from malformed `author` and `contributors`. + try { + var normalized = normalizePerson(person) + } catch (error) { + return + } + if (!contributors.has(normalized)) contributors.add(normalized) + }) } else if (mutation === 'update' || mutation === 'update-linked') { ++updated } @@ -795,10 +826,17 @@ Installer.prototype.printInstalledForHuman = function (diffs, cb) { }).join('\n') + '\n' } var actions = [] - if (added) actions.push('added ' + packages(added)) + if (added) { + var action = 'added ' + packages(added) + if (contributors.size) action += from(contributors.size) + actions.push(action) + } if (removed) actions.push('removed ' + packages(removed)) if (updated) actions.push('updated ' + packages(updated)) if (moved) actions.push('moved ' + packages(moved)) + if (auditResult && auditResult.metadata.totalDependencies) { + actions.push('audited ' + packages(auditResult.metadata.totalDependencies)) + } if (actions.length === 0) { report += 'up to date' } else if (actions.length === 1) { @@ -810,14 +848,31 @@ Installer.prototype.printInstalledForHuman = function (diffs, cb) { report += ' in ' + ((Date.now() - this.started) / 1000) + 's' output(report) - return cb() + return auditResult && audit.printInstallReport(auditResult) function packages (num) { return num + ' package' + (num > 1 ? 's' : '') } + + function from (num) { + return ' from ' + num + ' contributor' + (num > 1 ? 's' : '') + } + + // Values of `author` and elements of `contributors` in `package.json` + // files can be e-mail style strings or Objects with `name`, `email, + // and `url` String properties. Convert Objects to Strings so that + // we can efficiently keep a set of contributors we have already seen. + function normalizePerson (argument) { + if (typeof argument === 'string') return argument + var returned = '' + if (argument.name) returned += argument.name + if (argument.email) returned += ' <' + argument.email + '>' + if (argument.url) returned += ' (' + argument.email + ')' + return returned + } } -Installer.prototype.printInstalledForJSON = function (diffs, cb) { +Installer.prototype.printInstalledForJSON = function (diffs, auditResult) { var result = { added: [], removed: [], @@ -825,6 +880,7 @@ Installer.prototype.printInstalledForJSON = function (diffs, cb) { moved: [], failed: [], warnings: [], + audit: auditResult, elapsed: Date.now() - this.started } var self = this @@ -855,7 +911,6 @@ Installer.prototype.printInstalledForJSON = function (diffs, cb) { } }) output(JSON.stringify(result, null, 2)) - cb() function flattenMessage (msg) { return msg.map(function (logline) { return logline.slice(1).join(' ') }).join('\n') @@ -879,7 +934,7 @@ Installer.prototype.printInstalledForJSON = function (diffs, cb) { } } -Installer.prototype.printInstalledForParseable = function (diffs, cb) { +Installer.prototype.printInstalledForParseable = function (diffs) { var self = this diffs.forEach(function (action) { var mutation = action[0] @@ -897,7 +952,6 @@ Installer.prototype.printInstalledForParseable = function (diffs, cb) { (previousVersion || '') + '\t' + (previousPath || '')) }) - return cb() } Installer.prototype.debugActions = function (name, actionListName, cb) { diff --git a/deps/npm/lib/install/action/extract-worker.js b/deps/npm/lib/install/action/extract-worker.js index 24508c7804..2b082b4a57 100644 --- a/deps/npm/lib/install/action/extract-worker.js +++ b/deps/npm/lib/install/action/extract-worker.js @@ -10,9 +10,9 @@ module.exports = (args, cb) => { const spec = parsed[0] const extractTo = parsed[1] const opts = parsed[2] - if (!opts.log && opts.loglevel) { + if (!opts.log) { opts.log = npmlog - opts.log.level = opts.loglevel } + opts.log.level = opts.loglevel || opts.log.level BB.resolve(extract(spec, extractTo, opts)).nodeify(cb) } diff --git a/deps/npm/lib/install/action/extract.js b/deps/npm/lib/install/action/extract.js index 6b827f36ea..e8d7a6c4f6 100644 --- a/deps/npm/lib/install/action/extract.js +++ b/deps/npm/lib/install/action/extract.js @@ -4,9 +4,7 @@ const BB = require('bluebird') const stat = BB.promisify(require('graceful-fs').stat) const gentlyRm = BB.promisify(require('../../utils/gently-rm.js')) -const log = require('npmlog') const mkdirp = BB.promisify(require('mkdirp')) -const moduleName = require('../../utils/module-name.js') const moduleStagingPath = require('../module-staging-path.js') const move = require('../../utils/move.js') const npa = require('npm-package-arg') @@ -59,12 +57,11 @@ function extract (staging, pkg, log) { pacoteOpts = require('../../config/pacote') } const opts = pacoteOpts({ - integrity: pkg.package._integrity + integrity: pkg.package._integrity, + resolved: pkg.package._resolved }) const args = [ - pkg.package._resolved - ? npa.resolve(pkg.package.name, pkg.package._resolved) - : pkg.package._requested, + pkg.package._requested, extractTo, opts ] @@ -112,18 +109,6 @@ function readBundled (pkg, staging, extractTo) { }, {concurrency: 10}) } -function getTree (pkg) { - while (pkg.parent) pkg = pkg.parent - return pkg -} - -function warn (pkg, code, msg) { - const tree = getTree(pkg) - const err = new Error(msg) - err.code = code - tree.warnings.push(err) -} - function stageBundledModule (bundler, child, staging, parentPath) { const stageFrom = path.join(parentPath, 'node_modules', child.package.name) const stageTo = moduleStagingPath(staging, child) @@ -146,15 +131,6 @@ function finishModule (bundler, child, stageTo, stageFrom) { return move(stageFrom, stageTo) }) } else { - return stat(stageFrom).then(() => { - const bundlerId = packageId(bundler) - if (!getTree(bundler).warnings.some((w) => { - return w.code === 'EBUNDLEOVERRIDE' - })) { - warn(bundler, 'EBUNDLEOVERRIDE', `${bundlerId} had bundled packages that do not match the required version(s). They have been replaced with non-bundled versions.`) - } - log.verbose('bundle', `EBUNDLEOVERRIDE: Replacing ${bundlerId}'s bundled version of ${moduleName(child)} with ${packageId(child)}.`) - return gentlyRm(stageFrom) - }, () => {}) + return stat(stageFrom).then(() => gentlyRm(stageFrom), () => {}) } } diff --git a/deps/npm/lib/install/action/fetch.js b/deps/npm/lib/install/action/fetch.js index a4d760fe82..5ad34e29dd 100644 --- a/deps/npm/lib/install/action/fetch.js +++ b/deps/npm/lib/install/action/fetch.js @@ -12,5 +12,5 @@ function fetch (staging, pkg, log, next) { log.silly('fetch', packageId(pkg)) const opts = pacoteOpts({integrity: pkg.package._integrity}) return finished(pacote.tarball.stream(pkg.package._requested, opts)) - .then(() => next(), next) + .then(() => next(), next) } diff --git a/deps/npm/lib/install/actions.js b/deps/npm/lib/install/actions.js index 9608a943a5..a34d03ffe2 100644 --- a/deps/npm/lib/install/actions.js +++ b/deps/npm/lib/install/actions.js @@ -118,7 +118,7 @@ function doParallel (type, staging, actionsToRun, log, next) { } return acc }, []) - log.silly('doParallel', type + ' ' + actionsToRun.length) + log.silly('doParallel', type + ' ' + acts.length) time(log) if (!acts.length) { return next() } return withInit(actions[type], () => { diff --git a/deps/npm/lib/install/audit.js b/deps/npm/lib/install/audit.js new file mode 100644 index 0000000000..4be59ca7c5 --- /dev/null +++ b/deps/npm/lib/install/audit.js @@ -0,0 +1,272 @@ +'use strict' +exports.generate = generate +exports.generateFromInstall = generateFromInstall +exports.submitForInstallReport = submitForInstallReport +exports.submitForFullReport = submitForFullReport +exports.printInstallReport = printInstallReport +exports.printFullReport = printFullReport + +const Bluebird = require('bluebird') +const auditReport = require('npm-audit-report') +const treeToShrinkwrap = require('../shrinkwrap.js').treeToShrinkwrap +const packageId = require('../utils/package-id.js') +const output = require('../utils/output.js') +const npm = require('../npm.js') +const qw = require('qw') +const registryFetch = require('npm-registry-fetch') +const zlib = require('zlib') +const gzip = Bluebird.promisify(zlib.gzip) +const log = require('npmlog') +const perf = require('../utils/perf.js') +const url = require('url') +const npa = require('npm-package-arg') +const uuid = require('uuid') +const ssri = require('ssri') +const cloneDeep = require('lodash.clonedeep') +const pacoteOpts = require('../config/pacote.js') + +// used when scrubbing module names/specifiers +const runId = uuid.v4() + +function submitForInstallReport (auditData) { + const cfg = npm.config // avoid the no-dynamic-lookups test + const scopedRegistries = cfg.keys.filter(_ => /:registry$/.test(_)).map(_ => cfg.get(_)) + perf.emit('time', 'audit compress') + // TODO: registryFetch will be adding native support for `Content-Encoding: gzip` at which point + // we'll pass in something like `gzip: true` and not need to JSON stringify, gzip or headers. + return gzip(JSON.stringify(auditData)).then(body => { + perf.emit('timeEnd', 'audit compress') + log.info('audit', 'Submitting payload of ' + body.length + 'bytes') + scopedRegistries.forEach(reg => { + // we don't care about the response so destroy the stream if we can, or leave it flowing + // so it can eventually finish and clean up after itself + fetchAudit(url.resolve(reg, '/-/npm/v1/security/audits/quick')) + .then(_ => { + _.body.on('error', () => {}) + if (_.body.destroy) { + _.body.destroy() + } else { + _.body.resume() + } + }, _ => {}) + }) + perf.emit('time', 'audit submit') + return fetchAudit('/-/npm/v1/security/audits/quick', body).then(response => { + perf.emit('timeEnd', 'audit submit') + perf.emit('time', 'audit body') + return response.json() + }).then(result => { + perf.emit('timeEnd', 'audit body') + return result + }) + }) +} + +function submitForFullReport (auditData) { + perf.emit('time', 'audit compress') + // TODO: registryFetch will be adding native support for `Content-Encoding: gzip` at which point + // we'll pass in something like `gzip: true` and not need to JSON stringify, gzip or headers. + return gzip(JSON.stringify(auditData)).then(body => { + perf.emit('timeEnd', 'audit compress') + log.info('audit', 'Submitting payload of ' + body.length + ' bytes') + perf.emit('time', 'audit submit') + return fetchAudit('/-/npm/v1/security/audits', body).then(response => { + perf.emit('timeEnd', 'audit submit') + perf.emit('time', 'audit body') + return response.json() + }).then(result => { + perf.emit('timeEnd', 'audit body') + result.runId = runId + return result + }) + }) +} + +function fetchAudit (href, body) { + const opts = pacoteOpts() + return registryFetch(href, { + method: 'POST', + headers: { 'Content-Encoding': 'gzip', 'Content-Type': 'application/json' }, + config: npm.config, + npmSession: opts.npmSession, + projectScope: npm.projectScope, + log: log, + body: body + }) +} + +function printInstallReport (auditResult) { + return auditReport(auditResult, { + reporter: 'install', + withColor: npm.color, + withUnicode: npm.config.get('unicode') + }).then(result => output(result.report)) +} + +function printFullReport (auditResult) { + return auditReport(auditResult, { + log: output, + reporter: npm.config.get('json') ? 'json' : 'detail', + withColor: npm.color, + withUnicode: npm.config.get('unicode') + }).then(result => output(result.report)) +} + +function generate (shrinkwrap, requires, diffs, install, remove) { + const sw = cloneDeep(shrinkwrap) + delete sw.lockfileVersion + sw.requires = scrubRequires(requires) + scrubDeps(sw.dependencies) + + // sw.diffs = diffs || {} + sw.install = (install || []).map(scrubArg) + sw.remove = (remove || []).map(scrubArg) + return generateMetadata().then((md) => { + sw.metadata = md + return sw + }) +} + +const scrubKeys = qw`version` +const deleteKeys = qw`from resolved` + +function scrubDeps (deps) { + if (!deps) return + Object.keys(deps).forEach(name => { + if (!shouldScrubName(name) && !shouldScrubSpec(name, deps[name].version)) return + const value = deps[name] + delete deps[name] + deps[scrub(name)] = value + }) + Object.keys(deps).forEach(name => { + for (let toScrub of scrubKeys) { + if (!deps[name][toScrub]) continue + deps[name][toScrub] = scrubSpec(name, deps[name][toScrub]) + } + for (let toDelete of deleteKeys) delete deps[name][toDelete] + + scrubRequires(deps[name].requires) + scrubDeps(deps[name].dependencies) + }) +} + +function scrubRequires (reqs) { + if (!reqs) return reqs + Object.keys(reqs).forEach(name => { + const spec = reqs[name] + if (shouldScrubName(name) || shouldScrubSpec(name, spec)) { + delete reqs[name] + reqs[scrub(name)] = scrubSpec(name, spec) + } else { + reqs[name] = scrubSpec(name, spec) + } + }) + return reqs +} + +function getScope (name) { + if (name[0] === '@') return name.slice(0, name.indexOf('/')) +} + +function shouldScrubName (name) { + const scope = getScope(name) + const cfg = npm.config // avoid the no-dynamic-lookups test + return Boolean(scope && cfg.get(scope + ':registry')) +} +function shouldScrubSpec (name, spec) { + const req = npa.resolve(name, spec) + return !req.registry +} + +function scrubArg (arg) { + const req = npa(arg) + let name = req.name + if (shouldScrubName(name) || shouldScrubSpec(name, req.rawSpec)) { + name = scrubName(name) + } + const spec = scrubSpec(req.name, req.rawSpec) + return name + '@' + spec +} + +function scrubName (name) { + return shouldScrubName(name) ? scrub(name) : name +} + +function scrubSpec (name, spec) { + const req = npa.resolve(name, spec) + if (req.registry) return spec + if (req.type === 'git') { + return 'git+ssh://' + scrub(spec) + } else if (req.type === 'remote') { + return 'https://' + scrub(spec) + } else if (req.type === 'directory') { + return 'file:' + scrub(spec) + } else if (req.type === 'file') { + return 'file:' + scrub(spec) + '.tar' + } else { + return scrub(spec) + } +} + +module.exports.scrub = scrub +function scrub (value, rid) { + return ssri.fromData((rid || runId) + ' ' + value, {algorithms: ['sha256']}).hexDigest() +} + +function generateMetadata () { + const meta = {} + meta.npm_version = npm.version + meta.node_version = process.version + meta.platform = process.platform + meta.node_env = process.env.NODE_ENV + + return Promise.resolve(meta) +} +/* + const head = path.resolve(npm.prefix, '.git/HEAD') + return readFile(head, 'utf8').then((head) => { + if (!head.match(/^ref: /)) { + meta.commit_hash = head.trim() + return + } + const headFile = head.replace(/^ref: /, '').trim() + meta.branch = headFile.replace(/^refs[/]heads[/]/, '') + return readFile(path.resolve(npm.prefix, '.git', headFile), 'utf8') + }).then((commitHash) => { + meta.commit_hash = commitHash.trim() + const proc = spawn('git', qw`diff --quiet --exit-code package.json package-lock.json`, {cwd: npm.prefix, stdio: 'ignore'}) + return new Promise((resolve, reject) => { + proc.once('error', reject) + proc.on('exit', (code, signal) => { + if (signal == null) meta.state = code === 0 ? 'clean' : 'dirty' + resolve() + }) + }) + }).then(() => meta, () => meta) +*/ + +function generateFromInstall (tree, diffs, install, remove) { + const requires = {} + tree.requires.forEach((pkg) => { + requires[pkg.package.name] = tree.package.dependencies[pkg.package.name] || tree.package.devDependencies[pkg.package.name] || pkg.package.version + }) + + const auditInstall = (install || []).filter((a) => a.name).map(packageId) + const auditRemove = (remove || []).filter((a) => a.name).map(packageId) + const auditDiffs = {} + diffs.forEach((action) => { + const mutation = action[0] + const child = action[1] + if (mutation !== 'add' && mutation !== 'update' && mutation !== 'remove') return + if (!auditDiffs[mutation]) auditDiffs[mutation] = [] + if (mutation === 'add') { + auditDiffs[mutation].push({location: child.location}) + } else if (mutation === 'update') { + auditDiffs[mutation].push({location: child.location, previous: packageId(child.oldPkg)}) + } else if (mutation === 'remove') { + auditDiffs[mutation].push({previous: packageId(child)}) + } + }) + + return generate(treeToShrinkwrap(tree), requires, auditDiffs, auditInstall, auditRemove) +} diff --git a/deps/npm/lib/install/copy-tree.js b/deps/npm/lib/install/copy-tree.js index a5b558cf59..2bf7064f33 100644 --- a/deps/npm/lib/install/copy-tree.js +++ b/deps/npm/lib/install/copy-tree.js @@ -1,27 +1,26 @@ 'use strict' var createNode = require('./node.js').create -module.exports = function (tree, filter) { - return copyTree(tree, {}, filter) +module.exports = function (tree) { + return copyTree(tree, {}) } -function copyTree (tree, cache, filter) { - if (filter && !filter(tree)) { return null } +function copyTree (tree, cache) { if (cache[tree.path]) { return cache[tree.path] } var newTree = cache[tree.path] = createNode(Object.assign({}, tree)) - copyModuleList(newTree, 'children', cache, filter) + copyModuleList(newTree, 'children', cache) newTree.children.forEach(function (child) { child.parent = newTree }) - copyModuleList(newTree, 'requires', cache, filter) - copyModuleList(newTree, 'requiredBy', cache, filter) + copyModuleList(newTree, 'requires', cache) + copyModuleList(newTree, 'requiredBy', cache) return newTree } -function copyModuleList (tree, key, cache, filter) { +function copyModuleList (tree, key, cache) { var newList = [] if (tree[key]) { tree[key].forEach(function (child) { - const copy = copyTree(child, cache, filter) + const copy = copyTree(child, cache) if (copy) { newList.push(copy) } diff --git a/deps/npm/lib/install/decompose-actions.js b/deps/npm/lib/install/decompose-actions.js index 57dc7cd687..ba08e6e768 100644 --- a/deps/npm/lib/install/decompose-actions.js +++ b/deps/npm/lib/install/decompose-actions.js @@ -1,72 +1,79 @@ 'use strict' var validate = require('aproba') -var asyncMap = require('slide').asyncMap var npm = require('../npm.js') module.exports = function (differences, decomposed, next) { validate('AAF', arguments) - asyncMap(differences, function (action, done) { + differences.forEach((action) => { var cmd = action[0] var pkg = action[1] switch (cmd) { case 'add': - addSteps(decomposed, pkg, done) + addSteps(decomposed, pkg) break case 'update': - updateSteps(decomposed, pkg, done) + updateSteps(decomposed, pkg) break case 'move': - moveSteps(decomposed, pkg, done) + moveSteps(decomposed, pkg) break case 'remove': - removeSteps(decomposed, pkg, done) + removeSteps(decomposed, pkg) break default: - defaultSteps(decomposed, cmd, pkg, done) + defaultSteps(decomposed, cmd, pkg) } - }, next) + }) + next() +} + +function addAction (decomposed, action, pkg) { + if (decomposed.some((_) => _[0] === action && _[1] === pkg)) return + decomposed.push([action, pkg]) } -function addSteps (decomposed, pkg, done) { +function addSteps (decomposed, pkg) { + if (pkg.fromBundle) { + // make sure our source module exists to extract ourselves from + // if we're installing our source module anyway, the duplication + // of these steps will be elided by `addAction` automatically + addAction(decomposed, 'fetch', pkg.fromBundle) + addAction(decomposed, 'extract', pkg.fromBundle) + } if (!pkg.fromBundle && !pkg.isLink) { - decomposed.push(['fetch', pkg]) - decomposed.push(['extract', pkg]) + addAction(decomposed, 'fetch', pkg) + addAction(decomposed, 'extract', pkg) } if (!pkg.fromBundle || npm.config.get('rebuild-bundle')) { - decomposed.push(['preinstall', pkg]) - decomposed.push(['build', pkg]) - decomposed.push(['install', pkg]) - decomposed.push(['postinstall', pkg]) + addAction(decomposed, 'preinstall', pkg) + addAction(decomposed, 'build', pkg) + addAction(decomposed, 'install', pkg) + addAction(decomposed, 'postinstall', pkg) } if (!pkg.fromBundle || !pkg.isLink) { - decomposed.push(['finalize', pkg]) + addAction(decomposed, 'finalize', pkg) } - decomposed.push(['refresh-package-json', pkg]) - done() + addAction(decomposed, 'refresh-package-json', pkg) } -function updateSteps (decomposed, pkg, done) { - removeSteps(decomposed, pkg.oldPkg, () => { - addSteps(decomposed, pkg, done) - }) +function updateSteps (decomposed, pkg) { + removeSteps(decomposed, pkg.oldPkg) + addSteps(decomposed, pkg) } -function removeSteps (decomposed, pkg, done) { - decomposed.push(['unbuild', pkg]) - decomposed.push(['remove', pkg]) - done() +function removeSteps (decomposed, pkg) { + addAction(decomposed, 'unbuild', pkg) + addAction(decomposed, 'remove', pkg) } -function moveSteps (decomposed, pkg, done) { - decomposed.push(['move', pkg]) - decomposed.push(['build', pkg]) - decomposed.push(['install', pkg]) - decomposed.push(['postinstall', pkg]) - decomposed.push(['refresh-package-json', pkg]) - done() +function moveSteps (decomposed, pkg) { + addAction(decomposed, 'move', pkg) + addAction(decomposed, 'build', pkg) + addAction(decomposed, 'install', pkg) + addAction(decomposed, 'postinstall', pkg) + addAction(decomposed, 'refresh-package-json', pkg) } -function defaultSteps (decomposed, cmd, pkg, done) { - decomposed.push([cmd, pkg]) - done() +function defaultSteps (decomposed, cmd, pkg) { + addAction(decomposed, cmd, pkg) } diff --git a/deps/npm/lib/install/deps.js b/deps/npm/lib/install/deps.js index 93c4adffd7..c36265093b 100644 --- a/deps/npm/lib/install/deps.js +++ b/deps/npm/lib/install/deps.js @@ -33,6 +33,7 @@ var getSaveType = require('./save.js').getSaveType var unixFormatPath = require('../utils/unix-format-path.js') var isExtraneous = require('./is-extraneous.js') var isRegistry = require('../utils/is-registry.js') +var hasModernMeta = require('./has-modern-meta.js') // The export functions in this module mutate a dependency tree, adding // items to them. @@ -50,6 +51,12 @@ function doesChildVersionMatch (child, requested, requestor) { return path.relative(child.realpath, requested.fetchSpec) === '' } + if (requested.type === 'git' && child.fromShrinkwrap) { + const fromSw = child.package._from ? npa(child.package._from) : child.fromShrinkwrap + fromSw.name = requested.name // we're only checking specifiers here + if (fromSw.toString() === requested.toString()) return true + } + if (!registryTypes[requested.type]) { var childReq = child.package._requested if (childReq) { @@ -65,7 +72,7 @@ function doesChildVersionMatch (child, requested, requestor) { // You'll see this scenario happen with at least tags and git dependencies. // Some buggy clients will write spaces into the module name part of a _from. if (child.package._from) { - var fromReq = npa.resolve(moduleName(child), child.package._from.replace(new RegExp('^\s*' + moduleName(child) + '\s*@'), '')) + var fromReq = npa.resolve(moduleName(child), child.package._from.replace(new RegExp('^\\s*' + moduleName(child) + '\\s*@'), '')) if (fromReq.rawSpec === requested.rawSpec) return true if (fromReq.type === requested.type && fromReq.saveSpec && fromReq.saveSpec === requested.saveSpec) return true } @@ -78,8 +85,8 @@ function doesChildVersionMatch (child, requested, requestor) { } } -function childDependencySpecifier (tree, name, spec) { - return npa.resolve(name, spec, packageRelativePath(tree)) +function childDependencySpecifier (tree, name, spec, where) { + return npa.resolve(name, spec, where || packageRelativePath(tree)) } exports.computeMetadata = computeMetadata @@ -104,14 +111,13 @@ function computeMetadata (tree, seen) { resolveWithExistingModule(child, tree) return true } - return } const deps = tree.package.dependencies || {} const reqs = tree.swRequires || {} for (let name of Object.keys(deps)) { if (findChild(name, deps[name])) continue - if (findChild(name, reqs[name])) continue + if (name in reqs && findChild(name, reqs[name])) continue tree.missingDeps[name] = deps[name] } if (tree.isTop) { @@ -186,15 +192,14 @@ function packageRelativePath (tree) { var requested = tree.package._requested || {} var isLocal = requested.type === 'directory' || requested.type === 'file' return isLocal ? requested.fetchSpec - : (tree.isLink || tree.isInLink) && !preserveSymlinks() ? tree.realpath - : tree.path + : (tree.isLink || tree.isInLink) && !preserveSymlinks() ? tree.realpath + : tree.path } function matchingDep (tree, name) { if (!tree || !tree.package) return if (tree.package.dependencies && tree.package.dependencies[name]) return tree.package.dependencies[name] if (tree.package.devDependencies && tree.package.devDependencies[name]) return tree.package.devDependencies[name] - return } exports.getAllMetadata = function (args, tree, where, next) { @@ -261,6 +266,7 @@ exports.loadRequestedDeps = function (args, tree, saveToDependencies, log, next) delete tree.package[saveType][childName] } } + if (child.save === 'optionalDependencies') tree.package.dependencies[childName] = child.saveSpec } // For things the user asked to install, that aren't a dependency (or @@ -282,10 +288,12 @@ function computeVersionSpec (tree, child) { validate('OO', arguments) var requested var childReq = child.package._requested - if (childReq && (isNotEmpty(childReq.saveSpec) || (isNotEmpty(childReq.rawSpec) && isNotEmpty(childReq.fetchSpec)))) { + if (child.isLink) { + requested = npa.resolve(child.package.name, 'file:' + child.realpath, getTop(tree).path) + } else if (childReq && (isNotEmpty(childReq.saveSpec) || (isNotEmpty(childReq.rawSpec) && isNotEmpty(childReq.fetchSpec)))) { requested = child.package._requested } else if (child.package._from) { - requested = npa(child.package._from) + requested = npa(child.package._from, tree.path) } else { requested = npa.resolve(child.package.name, child.package.version) } @@ -299,7 +307,7 @@ function computeVersionSpec (tree, child) { } return rangeDescriptor + version } else if (requested.type === 'directory' || requested.type === 'file') { - return 'file:' + unixFormatPath(path.relative(tree.path, requested.fetchSpec)) + return 'file:' + unixFormatPath(path.relative(getTop(tree).path, requested.fetchSpec)) } else { return requested.saveSpec || requested.rawSpec } @@ -332,9 +340,21 @@ exports.removeDeps = function (args, tree, saveToDependencies, next) { parent.requires = parent.requires.filter((child) => child !== pkgToRemove) } pkgToRemove.requiredBy = pkgToRemove.requiredBy.filter((parent) => parent !== tree) + flagAsRemoving(pkgToRemove) } next() } + +function flagAsRemoving (toRemove, seen) { + if (!seen) seen = new Set() + if (seen.has(toRemove)) return + seen.add(toRemove) + toRemove.removing = true + toRemove.requires.forEach((required) => { + flagAsRemoving(required, seen) + }) +} + exports.removeExtraneous = function (args, tree, next) { for (let pkg of args) { var pkgName = moduleName(pkg) @@ -369,8 +389,22 @@ function andForEachChild (load, next) { function isDepOptional (tree, name, pkg) { if (pkg.package && pkg.package._optional) return true - if (!tree.package.optionalDependencies) return false - if (tree.package.optionalDependencies[name] != null) return true + const optDeps = tree.package.optionalDependencies + if (optDeps && optDeps[name] != null) return true + + const devDeps = tree.package.devDependencies + if (devDeps && devDeps[name] != null) { + const includeDev = npm.config.get('dev') || + (!/^prod(uction)?$/.test(npm.config.get('only')) && !npm.config.get('production')) || + /^dev(elopment)?$/.test(npm.config.get('only')) || + /^dev(elopment)?$/.test(npm.config.get('also')) + return !includeDev + } + const prodDeps = tree.package.dependencies + if (prodDeps && prodDeps[name] != null) { + const includeProd = !/^dev(elopment)?$/.test(npm.config.get('only')) + return !includeProd + } return false } @@ -461,12 +495,6 @@ function loadDeps (tree, log, next) { if (!tree.package.dependencies) tree.package.dependencies = {} asyncMap(Object.keys(tree.package.dependencies), function (dep, done) { var version = tree.package.dependencies[dep] - if (tree.package.optionalDependencies && - tree.package.optionalDependencies[dep] && - !npm.config.get('optional')) { - return done() - } - addDependency(dep, version, tree, log.newGroup('loadDep:' + dep), andHandleOptionalErrors(log, tree, dep, done)) }, andForEachChild(loadDeps, andFinishTracker(log, next))) } @@ -481,7 +509,7 @@ exports.loadDevDeps = function (tree, log, next) { if (tree.package.dependencies[dep]) return done() var logGroup = log.newGroup('loadDevDep:' + dep) - addDependency(dep, tree.package.devDependencies[dep], tree, logGroup, done) + addDependency(dep, tree.package.devDependencies[dep], tree, logGroup, andHandleOptionalErrors(log, tree, dep, done)) }, andForEachChild(loadDeps, andFinishTracker(log, next))) } @@ -519,14 +547,14 @@ function addDependency (name, versionSpec, tree, log, done) { try { var req = childDependencySpecifier(tree, name, versionSpec) if (tree.swRequires && tree.swRequires[name]) { - var swReq = childDependencySpecifier(tree, name, tree.swRequires[name]) + var swReq = childDependencySpecifier(tree, name, tree.swRequires[name], tree.package._where) } } catch (err) { return done(err) } var child = findRequirement(tree, name, req) if (!child && swReq) child = findRequirement(tree, name, swReq) - if (child) { + if (hasModernMeta(child)) { resolveWithExistingModule(child, tree) if (child.package._shrinkwrap === undefined) { readShrinkwrap.andInflate(child, function (er) { next(er, child, log) }) @@ -534,12 +562,42 @@ function addDependency (name, versionSpec, tree, log, done) { next(null, child, log) } } else { + if (child) { + if (req.registry) { + req = childDependencySpecifier(tree, name, child.package.version) + } + if (child.fromBundle) reportBundleOverride(child, log) + removeObsoleteDep(child, log) + } fetchPackageMetadata(req, packageRelativePath(tree), {tracker: log.newItem('fetchMetadata')}, iferr(next, function (pkg) { resolveWithNewModule(pkg, tree, log, next) })) } } +function getTop (pkg) { + const seen = new Set() + while (pkg.parent && !seen.has(pkg.parent)) { + pkg = pkg.parent + seen.add(pkg) + } + return pkg +} + +function reportBundleOverride (child, log) { + const code = 'EBUNDLEOVERRIDE' + const top = getTop(child.fromBundle) + const bundlerId = packageId(child.fromBundle) + if (!top.warnings.some((w) => { + return w.code === code + })) { + const err = new Error(`${bundlerId} had bundled packages that do not match the required version(s). They have been replaced with non-bundled versions.`) + err.code = code + top.warnings.push(err) + } + if (log) log.verbose('bundle', `${code}: Replacing ${bundlerId}'s bundled version of ${moduleName(child)} with ${packageId(child)}.`) +} + function resolveWithExistingModule (child, tree) { validate('OO', arguments) addRequiredDep(tree, child) @@ -592,7 +650,7 @@ function resolveWithNewModule (pkg, tree, log, next) { return isInstallable(pkg, (err) => { let installable = !err addBundled(pkg, (bundleErr) => { - var parent = earliestInstallable(tree, tree, pkg) || tree + var parent = earliestInstallable(tree, tree, pkg, log) || tree var isLink = pkg._requested.type === 'directory' var child = createChild({ package: pkg, @@ -609,7 +667,10 @@ function resolveWithNewModule (pkg, tree, log, next) { var hasBundled = child.children.length var replaced = replaceModuleByName(parent, 'children', child) - if (replaced) removeObsoleteDep(replaced) + if (replaced) { + if (replaced.fromBundle) reportBundleOverride(replaced, log) + removeObsoleteDep(replaced) + } addRequiredDep(tree, child) child.location = flatNameFromTree(child) @@ -694,12 +755,25 @@ function preserveSymlinks () { // Find the highest level in the tree that we can install this module in. // If the module isn't installed above us yet, that'd be the very top. // If it is, then it's the level below where its installed. -var earliestInstallable = exports.earliestInstallable = function (requiredBy, tree, pkg) { - validate('OOO', arguments) +var earliestInstallable = exports.earliestInstallable = function (requiredBy, tree, pkg, log) { + validate('OOOO', arguments) + function undeletedModuleMatches (child) { return !child.removed && moduleName(child) === pkg.name } - if (tree.children.some(undeletedModuleMatches)) return null + const undeletedMatches = tree.children.filter(undeletedModuleMatches) + if (undeletedMatches.length) { + // if there's a conflict with another child AT THE SAME level then we're replacing it, so + // mark it as removed and continue with resolution normally. + if (tree === requiredBy) { + undeletedMatches.forEach((pkg) => { + if (pkg.fromBundle) reportBundleOverride(pkg, log) + removeObsoleteDep(pkg, log) + }) + } else { + return null + } + } // If any of the children of this tree have conflicting // binaries then we need to decline to install this package here. @@ -738,5 +812,5 @@ var earliestInstallable = exports.earliestInstallable = function (requiredBy, tr if (!preserveSymlinks() && /^[.][.][\\/]/.test(path.relative(tree.parent.realpath, tree.realpath))) return tree - return (earliestInstallable(requiredBy, tree.parent, pkg) || tree) + return (earliestInstallable(requiredBy, tree.parent, pkg, log) || tree) } diff --git a/deps/npm/lib/install/diff-trees.js b/deps/npm/lib/install/diff-trees.js index 4316f351cc..346846fdc0 100644 --- a/deps/npm/lib/install/diff-trees.js +++ b/deps/npm/lib/install/diff-trees.js @@ -8,6 +8,7 @@ var log = require('npmlog') var path = require('path') var ssri = require('ssri') var moduleName = require('../utils/module-name.js') +var isOnlyOptional = require('./is-only-optional.js') // we don't use get-requested because we're operating on files on disk, and // we don't want to extropolate from what _should_ be there. @@ -50,7 +51,7 @@ function pkgIntegrity (pkg) { if (Object.keys(integrity).length === 0) return return integrity } catch (ex) { - return + } } @@ -70,6 +71,9 @@ function sriMatch (aa, bb) { function pkgAreEquiv (aa, bb) { // coming in we know they share a pathā€¦ + // if one is inside a link and the other is not, then they are not equivalent + // this happens when we're replacing a linked dep with a non-linked version + if (aa.isInLink !== bb.isInLink) return false // if they share package metadata _identity_, they're the same thing if (aa.package === bb.package) return true // if they share integrity information, they're the same thing @@ -162,6 +166,11 @@ var sortActions = module.exports.sortActions = function (differences) { sorted.unshift(action) } + // safety net, anything excluded above gets tacked on the end + differences.forEach((_) => { + if (sorted.indexOf(_) === -1) sorted.push(_) + }) + return sorted } @@ -213,9 +222,8 @@ var diffTrees = module.exports._diffTrees = function (oldTree, newTree) { pkg.fromPath = toMv.pkg.path setAction(differences, 'move', pkg) delete toRemove[toMv.flatname] - // we don't generate add actions for things found in links (which already exist on disk) or - // for bundled modules (which will be installed when we install their parent) - } else if (!(pkg.isInLink && pkg.fromBundle)) { + // we don't generate add actions for things found in links (which already exist on disk) + } else if (!pkg.isInLink || !(pkg.fromBundle && pkg.fromBundle.isLink)) { setAction(differences, 'add', pkg) } } @@ -227,18 +235,26 @@ var diffTrees = module.exports._diffTrees = function (oldTree, newTree) { .map((flatname) => toRemove[flatname]) .forEach((pkg) => setAction(differences, 'remove', pkg)) + return filterActions(differences) +} + +function filterActions (differences) { + const includeOpt = npm.config.get('optional') const includeDev = npm.config.get('dev') || (!/^prod(uction)?$/.test(npm.config.get('only')) && !npm.config.get('production')) || /^dev(elopment)?$/.test(npm.config.get('only')) || /^dev(elopment)?$/.test(npm.config.get('also')) const includeProd = !/^dev(elopment)?$/.test(npm.config.get('only')) - if (!includeProd || !includeDev) { - log.silly('diff-trees', 'filtering actions:', 'includeDev', includeDev, 'includeProd', includeProd) - differences = differences.filter((diff) => { - const pkg = diff[1] - const pkgIsOnlyDev = isOnlyDev(pkg) - return (!includeProd && pkgIsOnlyDev) || (includeDev && pkgIsOnlyDev) || (includeProd && !pkgIsOnlyDev) - }) - } - return differences + if (includeProd && includeDev && includeOpt) return differences + + log.silly('diff-trees', 'filtering actions:', 'includeDev', includeDev, 'includeProd', includeProd, 'includeOpt', includeOpt) + return differences.filter((diff) => { + const pkg = diff[1] + const pkgIsOnlyDev = isOnlyDev(pkg) + const pkgIsOnlyOpt = isOnlyOptional(pkg) + if (!includeProd && pkgIsOnlyDev) return true + if (includeDev && pkgIsOnlyDev) return true + if (includeProd && !pkgIsOnlyDev && (includeOpt || !pkgIsOnlyOpt)) return true + return false + }) } diff --git a/deps/npm/lib/install/get-requested.js b/deps/npm/lib/install/get-requested.js index f6c44d1463..ab410ffc9b 100644 --- a/deps/npm/lib/install/get-requested.js +++ b/deps/npm/lib/install/get-requested.js @@ -2,9 +2,9 @@ const npa = require('npm-package-arg') const moduleName = require('../utils/module-name.js') -module.exports = function (child) { +module.exports = function (child, reqBy) { if (!child.requiredBy.length) return - const reqBy = child.requiredBy[0] + if (!reqBy) reqBy = child.requiredBy[0] const deps = reqBy.package.dependencies || {} const devDeps = reqBy.package.devDependencies || {} const name = moduleName(child) diff --git a/deps/npm/lib/install/has-modern-meta.js b/deps/npm/lib/install/has-modern-meta.js new file mode 100644 index 0000000000..bf801d0d31 --- /dev/null +++ b/deps/npm/lib/install/has-modern-meta.js @@ -0,0 +1,20 @@ +'use strict' +module.exports = hasModernMeta + +const npa = require('npm-package-arg') +const moduleName = require('../utils/module-name.js') + +function isLink (child) { + return child.isLink || (child.parent && isLink(child.parent)) +} + +function hasModernMeta (child) { + if (!child) return false + const resolved = child.package._resolved && npa.resolve(moduleName(child), child.package._resolved) + const version = npa.resolve(moduleName(child), child.package.version) + return child.isTop || + isLink(child) || + child.fromBundle || child.package._inBundle || + child.package._integrity || child.package._shasum || + (resolved && resolved.type === 'git') || (version && version.type === 'git') +} diff --git a/deps/npm/lib/install/inflate-shrinkwrap.js b/deps/npm/lib/install/inflate-shrinkwrap.js index 43ac9136f0..bf1ab70657 100644 --- a/deps/npm/lib/install/inflate-shrinkwrap.js +++ b/deps/npm/lib/install/inflate-shrinkwrap.js @@ -14,6 +14,9 @@ const realizeShrinkwrapSpecifier = require('./realize-shrinkwrap-specifier.js') const validate = require('aproba') const path = require('path') const isRegistry = require('../utils/is-registry.js') +const hasModernMeta = require('./has-modern-meta.js') +const ssri = require('ssri') +const npa = require('npm-package-arg') module.exports = function (tree, sw, opts, finishInflating) { if (!fetchPackageMetadata) { @@ -66,11 +69,43 @@ function normalizePackageDataNoErrors (pkg) { } } +function quotemeta (str) { + return str.replace(/([^A-Za-z_0-9/])/g, '\\$1') +} + +function tarballToVersion (name, tb) { + const registry = quotemeta(npm.config.get('registry')) + .replace(/https?:/, 'https?:') + .replace(/([^/])$/, '$1/') + let matchRegTarball + if (name) { + const nameMatch = quotemeta(name) + matchRegTarball = new RegExp(`^${registry}${nameMatch}/-/${nameMatch}-(.*)[.]tgz$`) + } else { + matchRegTarball = new RegExp(`^${registry}(.*)?/-/\\1-(.*)[.]tgz$`) + } + const match = tb.match(matchRegTarball) + if (!match) return + return match[2] || match[1] +} + function inflatableChild (onDiskChild, name, topPath, tree, sw, requested, opts) { validate('OSSOOOO|ZSSOOOO', arguments) - if (onDiskChild && childIsEquivalent(sw, requested, onDiskChild)) { + const usesIntegrity = ( + requested.registry || + requested.type === 'remote' || + requested.type === 'file' + ) + const regTarball = tarballToVersion(name, sw.version) + if (regTarball) { + sw.resolved = sw.version + sw.version = regTarball + } + if (sw.requires) Object.keys(sw.requires).map(_ => { sw.requires[_] = tarballToVersion(_, sw.requires[_]) || sw.requires[_] }) + const modernLink = requested.type === 'directory' && !sw.from + if (hasModernMeta(onDiskChild) && childIsEquivalent(sw, requested, onDiskChild)) { // The version on disk matches the shrinkwrap entry. - if (!onDiskChild.fromShrinkwrap) onDiskChild.fromShrinkwrap = true + if (!onDiskChild.fromShrinkwrap) onDiskChild.fromShrinkwrap = requested onDiskChild.package._requested = requested onDiskChild.package._spec = requested.rawSpec onDiskChild.package._where = topPath @@ -88,7 +123,7 @@ function inflatableChild (onDiskChild, name, topPath, tree, sw, requested, opts) onDiskChild.swRequires = sw.requires tree.children.push(onDiskChild) return BB.resolve(onDiskChild) - } else if ((sw.version && sw.integrity) || sw.bundled) { + } else if ((sw.version && (sw.integrity || !usesIntegrity) && (requested.type !== 'directory' || modernLink)) || sw.bundled) { // The shrinkwrap entry has an integrity field. We can fake a pkg to get // the installer to do a content-address fetch from the cache, if possible. return BB.resolve(makeFakeChild(name, topPath, tree, sw, requested)) @@ -100,13 +135,18 @@ function inflatableChild (onDiskChild, name, topPath, tree, sw, requested, opts) } } +function isGit (sw) { + const version = npa.resolve(sw.name, sw.version) + return (version && version.type === 'git') +} + function makeFakeChild (name, topPath, tree, sw, requested) { const from = sw.from || requested.raw const pkg = { name: name, version: sw.version, _id: name + '@' + sw.version, - _resolved: adaptResolved(requested, sw.resolved), + _resolved: sw.resolved || (isGit(sw) && sw.version), _requested: requested, _optional: sw.optional, _development: sw.dev, @@ -127,15 +167,15 @@ function makeFakeChild (name, topPath, tree, sw, requested) { } const child = createChild({ package: pkg, - loaded: true, + loaded: false, parent: tree, children: [], - fromShrinkwrap: true, + fromShrinkwrap: requested, fakeChild: sw, fromBundle: sw.bundled ? tree.fromBundle || tree : null, path: childPath(tree.path, pkg), - realpath: childPath(tree.realpath, pkg), - location: tree.location + '/' + pkg.name, + realpath: requested.type === 'directory' ? requested.fetchSpec : childPath(tree.realpath, pkg), + location: (tree.location === '/' ? '' : tree.location + '/') + pkg.name, isLink: requested.type === 'directory', isInLink: tree.isLink, swRequires: sw.requires @@ -144,23 +184,6 @@ function makeFakeChild (name, topPath, tree, sw, requested) { return child } -function adaptResolved (requested, resolved) { - const registry = requested.scope - ? npm.config.get(`${requested.scope}:registry`) || npm.config.get('registry') - : npm.config.get('registry') - if (!isRegistry(requested) || (resolved && resolved.indexOf(registry) === 0)) { - // Nothing to worry about here. Pass it through. - return resolved - } else { - // We could fast-path for registry.npmjs.org here, but if we do, it - // would end up getting written back to the `resolved` field. By always - // returning `null` for other registries, `pacote.extract()` will take - // care of any required metadata fetches internally, without altering - // the tree we're going to write out to shrinkwrap/lockfile. - return null - } -} - function fetchChild (topPath, tree, sw, requested) { return fetchPackageMetadata(requested, topPath).then((pkg) => { pkg._from = sw.from || requested.raw @@ -178,7 +201,7 @@ function fetchChild (topPath, tree, sw, requested) { path: childPath(tree.path, pkg), realpath: isLink ? requested.fetchSpec : childPath(tree.realpath, pkg), children: pkg._bundled || [], - location: tree.location + '/' + pkg.name, + location: (tree.location === '/' ? '' : tree.location + '/') + pkg.name, fromBundle: null, isLink: isLink, isInLink: tree.isLink, @@ -196,7 +219,11 @@ function fetchChild (topPath, tree, sw, requested) { function childIsEquivalent (sw, requested, child) { if (!child) return false if (child.fromShrinkwrap) return true - if (sw.integrity && child.package._integrity === sw.integrity) return true + if ( + sw.integrity && + child.package._integrity && + ssri.parse(sw.integrity).match(child.package._integrity) + ) return true if (child.isLink && requested.type === 'directory') return path.relative(child.realpath, requested.fetchSpec) === '' if (sw.resolved) return child.package._resolved === sw.resolved diff --git a/deps/npm/lib/install/is-only-optional.js b/deps/npm/lib/install/is-only-optional.js index 7366e9abe1..72d6f065e6 100644 --- a/deps/npm/lib/install/is-only-optional.js +++ b/deps/npm/lib/install/is-only-optional.js @@ -11,8 +11,9 @@ function isOptional (node, seen) { return false } seen.add(node) - + const swOptional = node.fromShrinkwrap && node.package._optional return node.requiredBy.every(function (req) { + if (req.fakeChild && swOptional) return true return isOptDep(req, node.package.name) || isOptional(req, seen) }) } diff --git a/deps/npm/lib/install/read-shrinkwrap.js b/deps/npm/lib/install/read-shrinkwrap.js index 45e883caa2..7074678011 100644 --- a/deps/npm/lib/install/read-shrinkwrap.js +++ b/deps/npm/lib/install/read-shrinkwrap.js @@ -25,14 +25,7 @@ function readShrinkwrap (child, next) { log.warn('read-shrinkwrap', 'Ignoring package-lock.json because there is already an npm-shrinkwrap.json. Please use only one of the two.') } const name = shrinkwrap ? 'npm-shrinkwrap.json' : 'package-lock.json' - let parsed = null - if (shrinkwrap || lockfile) { - try { - parsed = parseJSON(shrinkwrap || lockfile) - } catch (ex) { - throw ex - } - } + const parsed = parsePkgLock(shrinkwrap || lockfile, name) if (parsed && parsed.lockfileVersion !== PKGLOCK_VERSION) { log.warn('read-shrinkwrap', `This version of npm is compatible with lockfileVersion@${PKGLOCK_VERSION}, but ${name} was generated for lockfileVersion@${parsed.lockfileVersion || 0}. I'll try to do my best with it!`) } @@ -43,7 +36,8 @@ function readShrinkwrap (child, next) { function maybeReadFile (name, child) { return readFileAsync( - path.join(child.path, name) + path.join(child.path, name), + 'utf8' ).catch({code: 'ENOENT'}, () => null) } @@ -56,3 +50,59 @@ module.exports.andInflate = function (child, next) { } })) } + +const PARENT_RE = /\|{7,}/g +const OURS_RE = /<{7,}/g +const THEIRS_RE = /={7,}/g +const END_RE = />{7,}/g + +module.exports._isDiff = isDiff +function isDiff (str) { + return str.match(OURS_RE) && str.match(THEIRS_RE) && str.match(END_RE) +} + +module.exports._parsePkgLock = parsePkgLock +function parsePkgLock (str, filename) { + if (!str) { return null } + try { + return parseJSON(str) + } catch (e) { + if (isDiff(str)) { + log.warn('conflict', `A git conflict was detected in ${filename}. Attempting to auto-resolve.`) + log.warn('conflict', 'To make this happen automatically on git rebase/merge, consider using the npm-merge-driver:') + log.warn('conflict', '$ npx npm-merge-driver install -g') + const pieces = str.split(/[\n\r]+/g).reduce((acc, line) => { + if (line.match(PARENT_RE)) acc.state = 'parent' + else if (line.match(OURS_RE)) acc.state = 'ours' + else if (line.match(THEIRS_RE)) acc.state = 'theirs' + else if (line.match(END_RE)) acc.state = 'top' + else { + if (acc.state === 'top' || acc.state === 'ours') acc.ours += line + if (acc.state === 'top' || acc.state === 'theirs') acc.theirs += line + if (acc.state === 'top' || acc.state === 'parent') acc.parent += line + } + return acc + }, { + state: 'top', + ours: '', + theirs: '', + parent: '' + }) + try { + const ours = parseJSON(pieces.ours) + const theirs = parseJSON(pieces.theirs) + return reconcileLockfiles(ours, theirs) + } catch (_e) { + log.error('conflict', `Automatic conflict resolution failed. Please manually resolve conflicts in ${filename} and try again.`) + log.silly('conflict', `Error during resolution: ${_e}`) + throw e + } + } else { + throw e + } + } +} + +function reconcileLockfiles (parent, ours, theirs) { + return Object.assign({}, ours, theirs) +} diff --git a/deps/npm/lib/install/save.js b/deps/npm/lib/install/save.js index f0c61f555d..8bafcbfc6b 100644 --- a/deps/npm/lib/install/save.js +++ b/deps/npm/lib/install/save.js @@ -1,8 +1,8 @@ 'use strict' -const createShrinkwrap = require('../shrinkwrap.js').createShrinkwrap const deepSortObject = require('../utils/deep-sort-object.js') const detectIndent = require('detect-indent') +const detectNewline = require('detect-newline') const fs = require('graceful-fs') const iferr = require('iferr') const log = require('npmlog') @@ -10,6 +10,7 @@ const moduleName = require('../utils/module-name.js') const npm = require('../npm.js') const parseJSON = require('../utils/parse-json.js') const path = require('path') +const stringifyPackage = require('../utils/stringify-package') const validate = require('aproba') const without = require('lodash.without') const writeFileAtomic = require('write-file-atomic') @@ -44,9 +45,9 @@ exports.saveShrinkwrap = saveShrinkwrap function saveShrinkwrap (tree, next) { validate('OF', arguments) if (!npm.config.get('shrinkwrap') || !npm.config.get('package-lock')) { - next() + return next() } - createShrinkwrap(tree, {silent: false}, next) + require('../shrinkwrap.js').createShrinkwrap(tree, {silent: false}, next) } function savePackageJson (tree, next) { @@ -60,7 +61,8 @@ function savePackageJson (tree, next) { // don't use readJson, because we don't want to do all the other // tricky npm-specific stuff that's in there. fs.readFile(saveTarget, 'utf8', iferr(next, function (packagejson) { - const indent = detectIndent(packagejson).indent || ' ' + const indent = detectIndent(packagejson).indent + const newline = detectNewline(packagejson) try { tree.package = parseJSON(packagejson) } catch (ex) { @@ -122,7 +124,7 @@ function savePackageJson (tree, next) { tree.package.bundleDependencies = deepSortObject(bundle) } - var json = JSON.stringify(tree.package, null, indent) + '\n' + var json = stringifyPackage(tree.package, indent, newline) if (json === packagejson) { log.verbose('shrinkwrap', 'skipping write for package.json because there were no changes.') next() diff --git a/deps/npm/lib/link.js b/deps/npm/lib/link.js index 158d9b0645..e05526c408 100644 --- a/deps/npm/lib/link.js +++ b/deps/npm/lib/link.js @@ -25,7 +25,7 @@ link.completion = function (opts, cb) { var dir = npm.globalDir fs.readdir(dir, function (er, files) { cb(er, files.filter(function (f) { - return !f.match(/^[\._-]/) + return !f.match(/^[._-]/) })) }) } @@ -37,7 +37,7 @@ function link (args, cb) { var msg = 'npm link not supported on windows prior to node 0.7.9' var e = new Error(msg) e.code = 'ENOTSUP' - e.errno = require('constants').ENOTSUP + e.errno = require('constants').ENOTSUP // eslint-disable-line node/no-deprecated-api return cb(e) } } @@ -148,8 +148,8 @@ function linkPkg (folder, cb_) { er = new Error('Package must have a name field to be linked') return cb(er) } - if (npm.config.get('dry-run')) return resultPrinter(path.basename(me), me, target, cb) var target = path.resolve(npm.globalDir, d.name) + if (npm.config.get('dry-run')) return resultPrinter(path.basename(me), me, target, cb) symlink(me, target, false, true, function (er) { if (er) return cb(er) log.verbose('link', 'build target', target) diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js index 7c0ea71e77..bb5e433f78 100644 --- a/deps/npm/lib/ls.js +++ b/deps/npm/lib/ls.js @@ -139,9 +139,9 @@ function filterByEnv (data) { return } - if ((dev && inList(devKeys, name)) || // only --dev - (production && inList(prodKeys, name)) || // only --production - (!dev && !production)) { // no --production|--dev|--only=xxx + if ((dev && inList(devKeys, name)) || // only --dev + (production && inList(prodKeys, name)) || // only --production + (!dev && !production)) { // no --production|--dev|--only=xxx dependencies[name] = data.dependencies[name] } }) @@ -165,7 +165,7 @@ function alphasort (a, b) { a = a.toLowerCase() b = b.toLowerCase() return a > b ? 1 - : a < b ? -1 : 0 + : a < b ? -1 : 0 } function isCruft (data) { @@ -520,16 +520,16 @@ function makeParseable_ (data, long, dir, depth, parent, d) { if (data.missing) { if (depth < npm.config.get('depth')) { data = npm.config.get('long') - ? path.resolve(parent.path, 'node_modules', d) + + ? path.resolve(parent.path, 'node_modules', d) + ':' + d + '@' + JSON.stringify(data.requiredBy) + ':INVALID:MISSING' - : '' + : '' } else { data = path.resolve(dir || '', 'node_modules', d || '') + (npm.config.get('long') - ? ':' + d + '@' + JSON.stringify(data.requiredBy) + + ? ':' + d + '@' + JSON.stringify(data.requiredBy) + ':' + // no realpath resolved ':MAXDEPTH' - : '') + : '') } return data diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js index e58712603b..da5a363602 100644 --- a/deps/npm/lib/npm.js +++ b/deps/npm/lib/npm.js @@ -1,6 +1,6 @@ ;(function () { // windows: running 'npm blah' in this folder will invoke WSH, not node. - /*globals WScript*/ + /* globals WScript */ if (typeof WScript !== 'undefined') { WScript.echo( 'npm does not work when run\n' + @@ -164,11 +164,13 @@ }) return commandCache[a] - }, enumerable: fullList.indexOf(c) !== -1, configurable: true }) + }, + enumerable: fullList.indexOf(c) !== -1, + configurable: true }) // make css-case commands callable via camelCase as well - if (c.match(/\-([a-z])/)) { - addCommand(c.replace(/\-([a-z])/g, function (a, b) { + if (c.match(/-([a-z])/)) { + addCommand(c.replace(/-([a-z])/g, function (a, b) { return b.toUpperCase() })) } @@ -189,7 +191,9 @@ } if (plumbing.indexOf(c) !== -1) return c var a = abbrevs[c] - if (aliases[a]) a = aliases[a] + while (aliases[a]) { + a = aliases[a] + } return a } @@ -288,7 +292,11 @@ var color = config.get('color') - log.level = config.get('loglevel') + if (npm.config.get('timing') && npm.config.get('loglevel') === 'notice') { + log.level = 'timing' + } else { + log.level = config.get('loglevel') + } log.heading = config.get('heading') || 'npm' log.stream = config.get('logstream') @@ -411,8 +419,8 @@ { get: function () { return (process.platform !== 'win32') - ? path.resolve(npm.globalPrefix, 'lib', 'node_modules') - : path.resolve(npm.globalPrefix, 'node_modules') + ? path.resolve(npm.globalPrefix, 'lib', 'node_modules') + : path.resolve(npm.globalPrefix, 'node_modules') }, enumerable: true }) @@ -455,7 +463,9 @@ } npm.commands[n](args, cb) } - }, enumerable: false, configurable: true }) + }, + enumerable: false, + configurable: true }) }) if (require.main === module) { diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js index a38137b66c..8b0a43d6ba 100644 --- a/deps/npm/lib/outdated.js +++ b/deps/npm/lib/outdated.js @@ -24,13 +24,14 @@ var os = require('os') var url = require('url') var path = require('path') var readPackageTree = require('read-package-tree') -var readJson = require('read-package-json') var asyncMap = require('slide').asyncMap var color = require('ansicolors') var styles = require('ansistyles') var table = require('text-table') var semver = require('semver') var npa = require('npm-package-arg') +var pickManifest = require('npm-pick-manifest') +var fetchPackageMetadata = require('./fetch-package-metadata.js') var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') var npm = require('./npm.js') var long = npm.config.get('long') @@ -41,7 +42,6 @@ var computeVersionSpec = require('./install/deps.js').computeVersionSpec var moduleName = require('./utils/module-name.js') var output = require('./utils/output.js') var ansiTrim = require('./utils/ansi-trim') -var fetchPackageMetadata = require('./fetch-package-metadata.js') function uniq (list) { // we maintain the array because we need an array, not iterator, return @@ -89,11 +89,11 @@ function outdated (args, silent, cb) { } else { var outList = list.map(makePretty) var outHead = [ 'Package', - 'Current', - 'Wanted', - 'Latest', - 'Location' - ] + 'Current', + 'Wanted', + 'Latest', + 'Location' + ] if (long) outHead.push('Package Type') var outTable = [outHead].concat(outList) @@ -117,25 +117,19 @@ function outdated (args, silent, cb) { // [[ dir, dep, has, want, latest, type ]] function makePretty (p) { - var dep = p[0] var depname = p[1] - var dir = dep.path var has = p[2] var want = p[3] var latest = p[4] var type = p[6] var deppath = p[7] - if (!npm.config.get('global')) { - dir = path.relative(process.cwd(), dir) - } - var columns = [ depname, - has || 'MISSING', - want, - latest, - deppath - ] + has || 'MISSING', + want, + latest, + deppath + ] if (long) columns[5] = type if (npm.color) { @@ -183,10 +177,10 @@ function makeJSON (list) { dir = path.relative(process.cwd(), dir) } out[depname] = { current: has, - wanted: want, - latest: latest, - location: dir - } + wanted: want, + latest: latest, + location: dir + } if (long) out[depname].type = type }) return JSON.stringify(out, null, 2) @@ -202,13 +196,15 @@ function outdated_ (args, path, tree, parentHas, depth, cb) { var types = {} var pkg = tree.package + if (!tree.children) tree.children = [] + var deps = tree.error ? tree.children : tree.children.filter((child) => !isExtraneous(child)) deps.forEach(function (dep) { types[moduleName(dep)] = 'dependencies' }) - Object.keys(tree.missingDeps).forEach(function (name) { + Object.keys(tree.missingDeps || {}).forEach(function (name) { deps.push({ package: { name: name }, path: tree.path, @@ -262,7 +258,7 @@ function outdated_ (args, path, tree, parentHas, depth, cb) { !npm.config.get('global') ) if (doUpdate) { - Object.keys(pkg.devDependencies).forEach(function (k) { + Object.keys(pkg.devDependencies || {}).forEach(function (k) { if (!(k in parentHas)) { deps[k] = pkg.devDependencies[k] types[k] = 'devDependencies' @@ -276,8 +272,8 @@ function outdated_ (args, path, tree, parentHas, depth, cb) { deps = deps.filter(function (dep) { return dep !== child }) } has[child.package.name] = { - version: child.package.version, - from: child.package._from + version: child.isLink ? 'linked' : child.package.version, + from: child.isLink ? 'file:' + child.path : child.package._from } }) @@ -286,11 +282,17 @@ function outdated_ (args, path, tree, parentHas, depth, cb) { // otherwise dive into the folder asyncMap(deps, function (dep, cb) { var name = moduleName(dep) - var required = (tree.package.dependencies)[name] || - (tree.package.optionalDependencies)[name] || - (tree.package.devDependencies)[name] || - computeVersionSpec(tree, dep) || - '*' + var required + if (tree.package.dependencies && name in tree.package.dependencies) { + required = tree.package.dependencies[name] + } else if (tree.package.optionalDependencies && name in tree.package.optionalDependencies) { + required = tree.package.optionalDependencies[name] + } else if (tree.package.devDependencies && name in tree.package.devDependencies) { + required = tree.package.devDependencies[name] + } else if (has[name]) { + required = computeVersionSpec(tree, dep) + } + if (!long) return shouldUpdate(args, dep, name, has, required, depth, path, cb) shouldUpdate(args, dep, name, has, required, depth, path, cb, types[name]) @@ -309,11 +311,11 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, cb, type) { // show user that no viable version can be found if (er) return cb(er) outdated_(args, - pkgpath, - tree, - has, - depth + 1, - cb) + pkgpath, + tree, + has, + depth + 1, + cb) } function doIt (wanted, latest) { @@ -324,23 +326,32 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, cb, type) { } if (args.length && args.indexOf(dep) === -1) return skip() + + if (tree.isLink && req == null) return skip() + + if (req == null || req === '') req = '*' + var parsed = npa.resolve(dep, req) - if (tree.isLink && tree.parent && tree.parent.isTop) { - return doIt('linked', 'linked') - } - if (parsed.type === 'git' || parsed.type === 'hosted') { + if (parsed.type === 'directory') { + if (tree.isLink) { + return skip() + } else { + return doIt('linked', 'linked') + } + } else if (parsed.type === 'git') { return doIt('git', 'git') - } + } else if (parsed.type === 'file') { + return updateLocalDeps() + } else { + return mapToRegistry(dep, npm.config, function (er, uri, auth) { + if (er) return cb(er) - // search for the latest package - mapToRegistry(dep, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth: auth }, updateDeps) - }) + npm.registry.get(uri, { auth: auth }, updateDeps) + }) + } function updateLocalDeps (latestRegistryVersion) { - readJson(path.resolve(parsed.fetchSpec, 'package.json'), function (er, localDependency) { + fetchPackageMetadata('file:' + parsed.fetchSpec, '.', (er, localDependency) => { if (er) return cb() var wanted = localDependency.version @@ -363,63 +374,31 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, cb, type) { } function updateDeps (er, d) { - if (er) { - if (parsed.type !== 'directory' && parsed.type !== 'file') return cb(er) - return updateLocalDeps() - } - - if (!d || !d['dist-tags'] || !d.versions) return cb() - var l = d.versions[d['dist-tags'].latest] - if (!l) return cb() - - var r = req - if (d['dist-tags'][req]) { - r = d['dist-tags'][req] - } - - if (semver.validRange(r, true)) { - // some kind of semver range. - // see if it's in the doc. - var vers = Object.keys(d.versions) - var v = semver.maxSatisfying(vers, r, true) - if (v) { - return onCacheAdd(null, d.versions[v]) - } - } + if (er) return cb(er) - // We didn't find the version in the doc. See if we can find it in metadata. - var spec = dep - if (req) { - spec = dep + '@' + req - } - fetchPackageMetadata(spec, '', onCacheAdd) - - function onCacheAdd (er, d) { - // if this fails, then it means we can't update this thing. - // it's probably a thing that isn't published. - if (er) { - if (er.code && er.code === 'ETARGET') { - // no viable version found - return skip(er) - } + try { + var l = pickManifest(d, 'latest') + var m = pickManifest(d, req) + } catch (er) { + if (er.code === 'ETARGET') { + return skip(er) + } else { return skip() } + } - // check that the url origin hasn't changed (#1727) and that - // there is no newer version available - var dFromUrl = d._from && url.parse(d._from).protocol - var cFromUrl = curr && curr.from && url.parse(curr.from).protocol - - if (!curr || - dFromUrl && cFromUrl && d._from !== curr.from || - d.version !== curr.version || - d.version !== l.version) { - if (parsed.type === 'file' || parsed.type === 'directory') return updateLocalDeps(l.version) - - doIt(d.version, l.version) - } else { - skip() - } + // check that the url origin hasn't changed (#1727) and that + // there is no newer version available + var dFromUrl = m._from && url.parse(m._from).protocol + var cFromUrl = curr && curr.from && url.parse(curr.from).protocol + + if (!curr || + (dFromUrl && cFromUrl && m._from !== curr.from) || + m.version !== curr.version || + m.version !== l.version) { + doIt(m.version, l.version) + } else { + skip() } } } diff --git a/deps/npm/lib/owner.js b/deps/npm/lib/owner.js index 64d086af78..3c2660ace1 100644 --- a/deps/npm/lib/owner.js +++ b/deps/npm/lib/owner.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ module.exports = owner var npm = require('./npm.js') @@ -53,7 +54,7 @@ owner.completion = function (opts, cb) { }) } // else fallthrough - /*eslint no-fallthrough:0*/ + /* eslint no-fallthrough:0 */ case 'add': if (argv.length > 3) { theUser = encodeURIComponent(argv[3]) diff --git a/deps/npm/lib/pack.js b/deps/npm/lib/pack.js index f6a0eff805..93c21ad559 100644 --- a/deps/npm/lib/pack.js +++ b/deps/npm/lib/pack.js @@ -6,7 +6,9 @@ const BB = require('bluebird') +const byteSize = require('byte-size') const cacache = require('cacache') +const columnify = require('columnify') const cp = require('child_process') const deprCheck = require('./utils/depr-check') const fpm = require('./fetch-package-metadata') @@ -28,6 +30,7 @@ const pinflight = require('promise-inflight') const readJson = BB.promisify(require('read-package-json')) const tar = require('tar') const packlist = require('npm-packlist') +const ssri = require('ssri') pack.usage = 'npm pack [[<@scope>/]...]' @@ -46,35 +49,64 @@ function pack (args, silent, cb) { BB.all( args.map((arg) => pack_(arg, cwd)) - ).then((files) => { - if (!silent) { - output(files.map((f) => path.relative(cwd, f)).join('\n')) + ).then((tarballs) => { + if (!silent && npm.config.get('json')) { + output(JSON.stringify(tarballs, null, 2)) + } else if (!silent) { + tarballs.forEach(logContents) + output(tarballs.map((f) => path.relative(cwd, f.filename)).join('\n')) } - cb(null, files) - }, cb) + return tarballs + }).nodeify(cb) } -// add to cache, then cp to the cwd function pack_ (pkg, dir) { return BB.fromNode((cb) => fpm(pkg, dir, cb)).then((mani) => { let name = mani.name[0] === '@' // scoped packages get special treatment - ? mani.name.substr(1).replace(/\//g, '-') - : mani.name + ? mani.name.substr(1).replace(/\//g, '-') + : mani.name const target = `${name}-${mani.version}.tgz` return pinflight(target, () => { if (mani._requested.type === 'directory') { - return prepareDirectory(mani._resolved).then(() => { - return packDirectory(mani, mani._resolved, target) + return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'packing'}, (tmp) => { + const tmpTarget = path.join(tmp, path.basename(target)) + return prepareDirectory(mani._resolved) + .then(() => { + return packDirectory(mani, mani._resolved, tmpTarget, target, true) + }) + .tap(() => { + if (npm.config.get('dry-run')) { + log.verbose('pack', '--dry-run mode enabled. Skipping write.') + } else { + return move(tmpTarget, target, {Promise: BB, fs}) + } + }) + }) + } else if (npm.config.get('dry-run')) { + log.verbose('pack', '--dry-run mode enabled. Skipping write.') + return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'packing'}, (tmp) => { + const tmpTarget = path.join(tmp, path.basename(target)) + return packFromPackage(pkg, tmpTarget, target) }) } else { - return pacote.tarball.toFile(pkg, target, pacoteOpts()) - .then(() => target) + return packFromPackage(pkg, target, target) } }) }) } +function packFromPackage (arg, target, filename) { + const opts = pacoteOpts() + return pacote.tarball.toFile(arg, target, pacoteOpts()) + .then(() => cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'unpacking'}, (tmp) => { + const tmpTarget = path.join(tmp, filename) + return pacote.extract(arg, tmpTarget, opts) + .then(() => readJson(path.join(tmpTarget, 'package.json'))) + })) + .then((pkg) => getContents(pkg, target, filename)) +} + module.exports.prepareDirectory = prepareDirectory function prepareDirectory (dir) { return readJson(path.join(dir, 'package.json')).then((pkg) => { @@ -105,7 +137,7 @@ function prepareDirectory (dir) { } module.exports.packDirectory = packDirectory -function packDirectory (mani, dir, target) { +function packDirectory (mani, dir, target, filename, logIt) { deprCheck(mani) return readJson(path.join(dir, 'package.json')).then((pkg) => { return lifecycle(pkg, 'prepack', dir) @@ -120,22 +152,122 @@ function packDirectory (mani, dir, target) { cwd: dir, prefix: 'package/', portable: true, - noMtime: true, + // Provide a specific date in the 1980s for the benefit of zip, + // which is confounded by files dated at the Unix epoch 0. + mtime: new Date('1985-10-26T08:15:00.000Z'), gzip: true } - return packlist({ path: dir }) + return BB.resolve(packlist({ path: dir })) // NOTE: node-tar does some Magic Stuff depending on prefixes for files // specifically with @ signs, so we just neutralize that one // and any such future "features" by prepending `./` .then((files) => tar.create(tarOpt, files.map((f) => `./${f}`))) - .then(() => move(tmpTarget, target, {Promise: BB, fs})) - .then(() => lifecycle(pkg, 'postpack', dir)) - .then(() => target) + .then(() => getContents(pkg, tmpTarget, filename, logIt)) + // thread the content info through + .tap(() => move(tmpTarget, target, {Promise: BB, fs})) + .tap(() => lifecycle(pkg, 'postpack', dir)) }) }) } +module.exports.logContents = logContents +function logContents (tarball) { + log.notice('') + log.notice('', `${npm.config.get('unicode') ? 'šŸ“¦ ' : 'package:'} ${tarball.name}@${tarball.version}`) + log.notice('=== Tarball Contents ===') + if (tarball.files.length) { + log.notice('', columnify(tarball.files.map((f) => { + const bytes = byteSize(f.size) + return {path: f.path, size: `${bytes.value}${bytes.unit}`} + }), { + include: ['size', 'path'], + showHeaders: false + })) + } + if (tarball.bundled.length) { + log.notice('=== Bundled Dependencies ===') + tarball.bundled.forEach((name) => log.notice('', name)) + } + log.notice('=== Tarball Details ===') + log.notice('', columnify([ + {name: 'name:', value: tarball.name}, + {name: 'version:', value: tarball.version}, + tarball.filename && {name: 'filename:', value: tarball.filename}, + {name: 'package size:', value: byteSize(tarball.size)}, + {name: 'unpacked size:', value: byteSize(tarball.unpackedSize)}, + {name: 'shasum:', value: tarball.shasum}, + { + name: 'integrity:', + value: tarball.integrity.toString().substr(0, 20) + '[...]' + tarball.integrity.toString().substr(80)}, + tarball.bundled.length && {name: 'bundled deps:', value: tarball.bundled.length}, + tarball.bundled.length && {name: 'bundled files:', value: tarball.entryCount - tarball.files.length}, + tarball.bundled.length && {name: 'own files:', value: tarball.files.length}, + {name: 'total files:', value: tarball.entryCount} + ].filter((x) => x), { + include: ['name', 'value'], + showHeaders: false + })) + log.notice('', '') +} + +module.exports.getContents = getContents +function getContents (pkg, target, filename, silent) { + const bundledWanted = new Set( + pkg.bundleDependencies || + pkg.bundledDependencies || + [] + ) + const files = [] + const bundled = new Set() + let totalEntries = 0 + let totalEntrySize = 0 + return tar.t({ + file: target, + onentry (entry) { + totalEntries++ + totalEntrySize += entry.size + const p = entry.path + if (p.startsWith('package/node_modules/')) { + const name = p.match(/^package\/node_modules\/((?:@[^/]+\/)?[^/]+)/)[1] + if (bundledWanted.has(name)) { + bundled.add(name) + } + } else { + files.push({ + path: entry.path.replace(/^package\//, ''), + size: entry.size, + mode: entry.mode + }) + } + }, + strip: 1 + }) + .then(() => BB.all([ + BB.fromNode((cb) => fs.stat(target, cb)), + ssri.fromStream(fs.createReadStream(target), { + algorithms: ['sha1', 'sha512'] + }) + ])) + .then(([stat, integrity]) => { + const shasum = integrity['sha1'][0].hexDigest() + return { + id: pkg._id, + name: pkg.name, + version: pkg.version, + from: pkg._from, + size: stat.size, + unpackedSize: totalEntrySize, + shasum, + integrity: ssri.parse(integrity['sha512'][0]), + filename, + files, + entryCount: totalEntries, + bundled: Array.from(bundled) + } + }) +} + const PASSTHROUGH_OPTS = [ 'always-auth', 'auth-type', @@ -170,7 +302,7 @@ function packGitDep (manifest, dir) { return acc }, []) const child = cp.spawn(process.env.NODE || process.execPath, [ - require.main.filename, + require.resolve('../bin/npm-cli.js'), 'install', '--dev', '--prod', diff --git a/deps/npm/lib/profile.js b/deps/npm/lib/profile.js index 587a26ca8b..f571239327 100644 --- a/deps/npm/lib/profile.js +++ b/deps/npm/lib/profile.js @@ -82,7 +82,18 @@ function config () { registry: npm.config.get('registry'), otp: npm.config.get('otp') } - conf.auth = npm.config.getCredentialsByURI(conf.registry) + const creds = npm.config.getCredentialsByURI(conf.registry) + if (creds.token) { + conf.auth = {token: creds.token} + } else if (creds.username) { + conf.auth = {basic: {username: creds.username, password: creds.password}} + } else if (creds.auth) { + const auth = Buffer.from(creds.auth, 'base64').toString().split(':', 2) + conf.auth = {basic: {username: auth[0], password: auth[1]}} + } else { + conf.auth = {} + } + if (conf.otp) conf.auth.otp = conf.otp return conf } @@ -126,7 +137,6 @@ function get (args) { output(`${key}\t${info[key]}`) } }) - return } else { const table = new Table() Object.keys(cleaned).forEach((k) => table.push({[ansistyles.bright(k)]: cleaned[k]})) @@ -155,12 +165,17 @@ function set (args) { return Promise.reject(Error(`"${prop}" is not a property we can set. Valid properties are: ` + writableProfileKeys.join(', '))) } return Bluebird.try(() => { - if (prop !== 'password') return - return readUserInfo.password('Current password: ').then((current) => { - return readPasswords().then((newpassword) => { - value = {old: current, new: newpassword} + if (prop === 'password') { + return readUserInfo.password('Current password: ').then((current) => { + return readPasswords().then((newpassword) => { + value = {old: current, new: newpassword} + }) }) - }) + } else if (prop === 'email') { + return readUserInfo.password('Password: ').then((current) => { + return {password: current, email: value} + }) + } function readPasswords () { return readUserInfo.password('New password: ').then((password1) => { return readUserInfo.password(' Again: ').then((password2) => { diff --git a/deps/npm/lib/prune.js b/deps/npm/lib/prune.js index 4ac8139576..010e471e4b 100644 --- a/deps/npm/lib/prune.js +++ b/deps/npm/lib/prune.js @@ -26,6 +26,7 @@ function prune (args, cb) { function Pruner (where, dryrun, args) { Installer.call(this, where, dryrun, args) + this.autoPrune = true } util.inherits(Pruner, Installer) @@ -64,3 +65,4 @@ Pruner.prototype.loadAllDepsIntoIdealTree = function (cb) { Pruner.prototype.runPreinstallTopLevelLifecycles = function (cb) { cb() } Pruner.prototype.runPostinstallTopLevelLifecycles = function (cb) { cb() } +Pruner.prototype.saveToDependencies = function (cb) { cb() } diff --git a/deps/npm/lib/publish.js b/deps/npm/lib/publish.js index 20bd2603e6..bff8e161b1 100644 --- a/deps/npm/lib/publish.js +++ b/deps/npm/lib/publish.js @@ -16,9 +16,9 @@ const pacote = require('pacote') const pacoteOpts = require('./config/pacote') const path = require('path') const readJson = BB.promisify(require('read-package-json')) +const readUserInfo = require('./utils/read-user-info.js') const semver = require('semver') const statAsync = BB.promisify(require('graceful-fs').stat) -const readUserInfo = require('./utils/read-user-info.js') publish.usage = 'npm publish [|] [--tag ] [--access ]' + "\n\nPublishes '.' if no argument supplied" + @@ -47,10 +47,16 @@ function publish (args, isRetry, cb) { return cb(new Error('Tag name must not be a valid SemVer range: ' + t)) } - publish_(args[0]).then((pkg) => { - output(`+ ${pkg._id}`) - cb() - }, cb) + return publish_(args[0]) + .then((tarball) => { + const silent = log.level === 'silent' + if (!silent && npm.config.get('json')) { + output(JSON.stringify(tarball, null, 2)) + } else if (!silent) { + output(`+ ${tarball.id}`) + } + }) + .nodeify(cb) } function publish_ (arg) { @@ -76,6 +82,7 @@ function publish_ (arg) { function publishFromDirectory (arg) { // All this readJson is because any of the given scripts might modify the // package.json in question, so we need to refresh after every step. + let contents return pack.prepareDirectory(arg).then(() => { return readJson(path.join(arg, 'package.json')) }).then((pkg) => { @@ -85,9 +92,10 @@ function publishFromDirectory (arg) { }).then((pkg) => { return cacache.tmp.withTmp(npm.tmp, {tmpPrefix: 'fromDir'}, (tmpDir) => { const target = path.join(tmpDir, 'package.tgz') - return pack.packDirectory(pkg, arg, target).then(() => { - return upload(arg, pkg, false, target) - }) + return pack.packDirectory(pkg, arg, target, null, true) + .tap((c) => { contents = c }) + .then((c) => !npm.config.get('json') && pack.logContents(c)) + .then(() => upload(arg, pkg, false, target)) }) }).then(() => { return readJson(path.join(arg, 'package.json')) @@ -96,6 +104,7 @@ function publishFromDirectory (arg) { }).tap((pkg) => { return lifecycle(pkg, 'postpublish', arg) }) + .then(() => contents) } function publishFromPackage (arg) { @@ -104,9 +113,13 @@ function publishFromPackage (arg) { const target = path.join(tmp, 'package.json') const opts = pacoteOpts() return pacote.tarball.toFile(arg, target, opts) - .then(() => pacote.extract(arg, extracted, opts)) - .then(() => readJson(path.join(extracted, 'package.json'))) - .tap((pkg) => upload(arg, pkg, false, target)) + .then(() => pacote.extract(arg, extracted, opts)) + .then(() => readJson(path.join(extracted, 'package.json'))) + .then((pkg) => { + return BB.resolve(pack.getContents(pkg, target)) + .tap((c) => !npm.config.get('json') && pack.logContents(c)) + .tap(() => upload(arg, pkg, false, target)) + }) }) } @@ -120,7 +133,6 @@ function upload (arg, pkg, isRetry, cached) { "Remove the 'private' field from the package.json to publish it." )) } - const mappedConfig = getPublishConfig( pkg.publishConfig, npm.config, @@ -151,7 +163,7 @@ function upload (arg, pkg, isRetry, cached) { const params = { metadata: pkg, - body: createReadStream(cached), + body: !npm.config.get('dry-run') && createReadStream(cached), auth: auth } @@ -165,6 +177,11 @@ function upload (arg, pkg, isRetry, cached) { params.access = config.get('access') } + if (npm.config.get('dry-run')) { + log.verbose('publish', '--dry-run mode enabled. Skipping upload.') + return BB.resolve() + } + log.showProgress('publish:' + pkg._id) return BB.fromNode((cb) => { registry.publish(registryBase, params, cb) @@ -192,7 +209,7 @@ function upload (arg, pkg, isRetry, cached) { if (err.code !== 'EOTP' && !(err.code === 'E401' && /one-time pass/.test(err.message))) throw err // we prompt on stdout and read answers from stdin, so they need to be ttys. if (!process.stdin.isTTY || !process.stdout.isTTY) throw err - return readUserInfo.otp('Enter OTP: ').then((otp) => { + return readUserInfo.otp().then((otp) => { npm.config.set('otp', otp) return upload(arg, pkg, isRetry, cached) }) diff --git a/deps/npm/lib/repo.js b/deps/npm/lib/repo.js index d7e79d76ab..d5aa81a6a0 100644 --- a/deps/npm/lib/repo.js +++ b/deps/npm/lib/repo.js @@ -2,8 +2,7 @@ module.exports = repo repo.usage = 'npm repo []' -var npm = require('./npm.js') -var opener = require('opener') +var openUrl = require('./utils/open-url') var hostedGitInfo = require('hosted-git-info') var url_ = require('url') var fetchPackageMetadata = require('./fetch-package-metadata.js') @@ -32,7 +31,7 @@ function getUrlAndOpen (d, cb) { if (!url) return cb(new Error('no repository: could not get url')) - opener(url, { command: npm.config.get('browser') }, cb) + openUrl(url, 'repository available at the following URL', cb) } function unknownHostedUrl (url) { @@ -43,8 +42,8 @@ function unknownHostedUrl (url) { } url = url_.parse(url) var protocol = url.protocol === 'https:' - ? 'https:' - : 'http:' + ? 'https:' + : 'http:' return protocol + '//' + (url.host || '') + url.path.replace(/\.git$/, '') } catch (e) {} diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js index fb7781f551..639917441c 100644 --- a/deps/npm/lib/run-script.js +++ b/deps/npm/lib/run-script.js @@ -32,7 +32,7 @@ runScript.completion = function (opts, cb) { if (scripts.indexOf(argv[2]) !== -1) return cb() // ok, try to find out which package it was, then var pref = npm.config.get('global') ? npm.config.get('prefix') - : npm.localPrefix + : npm.localPrefix var pkgDir = path.resolve(pref, 'node_modules', argv[2], 'package.json') readJson(pkgDir, function (er, d) { if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) diff --git a/deps/npm/lib/search/format-package-stream.js b/deps/npm/lib/search/format-package-stream.js index a312e3f483..bb0f552ba0 100644 --- a/deps/npm/lib/search/format-package-stream.js +++ b/deps/npm/lib/search/format-package-stream.js @@ -50,8 +50,8 @@ function prettify (data, num, opts) { var pkg = normalizePackage(data, opts) var columns = opts.description - ? ['name', 'description', 'author', 'date', 'version', 'keywords'] - : ['name', 'author', 'date', 'version', 'keywords'] + ? ['name', 'description', 'author', 'date', 'version', 'keywords'] + : ['name', 'author', 'date', 'version', 'keywords'] if (opts.parseable) { return columns.map(function (col) { @@ -157,16 +157,16 @@ function normalizePackage (data, opts) { return '=' + m.username }).join(' '), keywords: Array.isArray(data.keywords) - ? data.keywords.join(' ') - : typeof data.keywords === 'string' - ? data.keywords.replace(/[,\s]+/, ' ') - : '', + ? data.keywords.join(' ') + : typeof data.keywords === 'string' + ? data.keywords.replace(/[,\s]+/, ' ') + : '', version: data.version, - date: data.date && + date: (data.date && (data.date.toISOString() // remove time .split('T').join(' ') .replace(/:[0-9]{2}\.[0-9]{3}Z$/, '')) - .slice(0, -5) || + .slice(0, -5)) || 'prehistoric' } } diff --git a/deps/npm/lib/search/package-filter.js b/deps/npm/lib/search/package-filter.js index ac2950f46b..892adb08c9 100644 --- a/deps/npm/lib/search/package-filter.js +++ b/deps/npm/lib/search/package-filter.js @@ -8,16 +8,16 @@ function filter (data, include, exclude, opts) { function getWords (data, opts) { return [ data.name ] - .concat((opts && opts.description) ? data.description : []) - .concat((data.maintainers || []).map(function (m) { - return '=' + m.name - })) - .concat(data.versions && data.versions.length && data.url && ('<' + data.url + '>')) - .concat(data.keywords || []) - .map(function (f) { return f && f.trim && f.trim() }) - .filter(function (f) { return f }) - .join(' ') - .toLowerCase() + .concat((opts && opts.description) ? data.description : []) + .concat((data.maintainers || []).map(function (m) { + return '=' + m.name + })) + .concat(data.versions && data.versions.length && data.url && ('<' + data.url + '>')) + .concat(data.keywords || []) + .map(function (f) { return f && f.trim && f.trim() }) + .filter(function (f) { return f }) + .join(' ') + .toLowerCase() } function filterWords (data, include, exclude, opts) { diff --git a/deps/npm/lib/shrinkwrap.js b/deps/npm/lib/shrinkwrap.js index 1db39f00cb..36ca853cef 100644 --- a/deps/npm/lib/shrinkwrap.js +++ b/deps/npm/lib/shrinkwrap.js @@ -4,6 +4,7 @@ const BB = require('bluebird') const chain = require('slide').chain const detectIndent = require('detect-indent') +const detectNewline = require('detect-newline') const readFile = BB.promisify(require('graceful-fs').readFile) const getRequested = require('./install/get-requested.js') const id = require('./install/deps.js') @@ -18,6 +19,7 @@ const npm = require('./npm.js') const path = require('path') const readPackageTree = BB.promisify(require('read-package-tree')) const ssri = require('ssri') +const stringifyPackage = require('./utils/stringify-package') const validate = require('aproba') const writeFileAtomic = require('write-file-atomic') const unixFormatPath = require('./utils/unix-format-path.js') @@ -32,6 +34,8 @@ const PKGLOCK_VERSION = npm.lockfileVersion shrinkwrap.usage = 'npm shrinkwrap' module.exports = exports = shrinkwrap +exports.treeToShrinkwrap = treeToShrinkwrap + function shrinkwrap (args, silent, cb) { if (typeof cb !== 'function') { cb = silent @@ -103,14 +107,13 @@ function shrinkwrapDeps (deps, top, tree, seen) { if (seen.has(tree)) return seen.add(tree) sortModules(tree.children).forEach(function (child) { - if (child.fakeChild) { - deps[moduleName(child)] = child.fakeChild - return - } var childIsOnlyDev = isOnlyDev(child) var pkginfo = deps[moduleName(child)] = {} - var requested = child.package._requested || getRequested(child) || {} + var requested = getRequested(child) || child.package._requested || {} pkginfo.version = childVersion(top, child, requested) + if (requested.type === 'git' && child.package._from) { + pkginfo.from = child.package._from + } if (child.fromBundle || child.isInLink) { pkginfo.bundled = true } else { @@ -121,7 +124,7 @@ function shrinkwrapDeps (deps, top, tree, seen) { // tarball and we can't (yet) create consistent tarballs from a stable // source. if (requested.type !== 'git') { - pkginfo.integrity = child.package._integrity + pkginfo.integrity = child.package._integrity || undefined if (!pkginfo.integrity && child.package._shasum) { pkginfo.integrity = ssri.fromHex(child.package._shasum, 'sha1') } @@ -132,8 +135,8 @@ function shrinkwrapDeps (deps, top, tree, seen) { if (child.requires.length) { pkginfo.requires = {} sortModules(child.requires).forEach((required) => { - var requested = required.package._requested || getRequested(required) || {} - pkginfo.requires[moduleName(required)] = childVersion(top, required, requested) + var requested = getRequested(required, child) || required.package._requested || {} + pkginfo.requires[moduleName(required)] = childRequested(top, required, requested) }) } if (child.children.length) { @@ -161,6 +164,24 @@ function childVersion (top, child, req) { } } +function childRequested (top, child, requested) { + if (requested.type === 'directory' || requested.type === 'file') { + return 'file:' + unixFormatPath(path.relative(top.path, child.package._resolved || requested.fetchSpec)) + } else if (!isRegistry(requested) && !child.fromBundle) { + return child.package._resolved || requested.saveSpec || requested.rawSpec + } else if (requested.type === 'tag') { + // tags are not ranges we can match against, so we invent a "reasonable" + // one based on what we actually installed. + return npm.config.get('save-prefix') + child.package.version + } else if (requested.saveSpec || requested.rawSpec) { + return requested.saveSpec || requested.rawSpec + } else if (child.package._from || (child.package._requested && child.package._requested.rawSpec)) { + return child.package._from.replace(/^@?[^@]+@/, '') || child.package._requested.rawSpec + } else { + return child.package.version + } +} + function shrinkwrap_ (dir, pkginfo, opts, cb) { save(dir, pkginfo, opts, cb) } @@ -179,11 +200,12 @@ function save (dir, pkginfo, opts, cb) { { path: path.resolve(dir, opts.defaultFile || PKGLOCK), data: '{}', - indent: (pkg && pkg.indent) || 2 + indent: pkg && pkg.indent, + newline: pkg && pkg.newline } ) - const updated = updateLockfileMetadata(pkginfo, pkg && pkg.data) - const swdata = JSON.stringify(updated, null, info.indent) + '\n' + const updated = updateLockfileMetadata(pkginfo, pkg && JSON.parse(pkg.raw)) + const swdata = stringifyPackage(updated, info.indent, info.newline) if (swdata === info.raw) { // skip writing if file is identical log.verbose('shrinkwrap', `skipping write for ${path.basename(info.path)} because there were no changes.`) @@ -244,8 +266,8 @@ function checkPackageFile (dir, name) { return { path: file, raw: data, - data: JSON.parse(data), - indent: detectIndent(data).indent || 2 + indent: detectIndent(data).indent, + newline: detectNewline(data) } }).catch({code: 'ENOENT'}, () => {}) } diff --git a/deps/npm/lib/team.js b/deps/npm/lib/team.js index f99063b278..2d9e61cd43 100644 --- a/deps/npm/lib/team.js +++ b/deps/npm/lib/team.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ var mapToRegistry = require('./utils/map-to-registry.js') var npm = require('./npm') var output = require('./utils/output.js') @@ -41,7 +42,7 @@ function team (args, cb) { try { return npm.registry.team(cmd, uri, { auth: auth, - scope: entity[0], + scope: entity[0].replace(/^@/, ''), // '@' prefix on scope is optional. team: entity[1], user: args.shift() }, function (err, data) { diff --git a/deps/npm/lib/test.js b/deps/npm/lib/test.js index 06138ac00a..05bffed86d 100644 --- a/deps/npm/lib/test.js +++ b/deps/npm/lib/test.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ module.exports = test const testCmd = require('./utils/lifecycle-cmd.js')('test') diff --git a/deps/npm/lib/token.js b/deps/npm/lib/token.js index 2a3b65e6ad..2918f6a876 100644 --- a/deps/npm/lib/token.js +++ b/deps/npm/lib/token.js @@ -4,8 +4,8 @@ const npm = require('./npm.js') const output = require('./utils/output.js') const Table = require('cli-table2') const Bluebird = require('bluebird') -const isCidrV4 = require('is-cidr').isCidrV4 -const isCidrV6 = require('is-cidr').isCidrV6 +const isCidrV4 = require('is-cidr').v4 +const isCidrV6 = require('is-cidr').v6 const readUserInfo = require('./utils/read-user-info.js') const ansistyles = require('ansistyles') const log = require('npmlog') @@ -13,6 +13,8 @@ const pulseTillDone = require('./utils/pulse-till-done.js') module.exports = token +token._validateCIDRList = validateCIDRList + token.usage = 'npm token list\n' + 'npm token revoke \n' + @@ -81,7 +83,17 @@ function config () { registry: npm.config.get('registry'), otp: npm.config.get('otp') } - conf.auth = npm.config.getCredentialsByURI(conf.registry) + const creds = npm.config.getCredentialsByURI(conf.registry) + if (creds.token) { + conf.auth = {token: creds.token} + } else if (creds.username) { + conf.auth = {basic: {username: creds.username, password: creds.password}} + } else if (creds.auth) { + const auth = Buffer.from(creds.auth, 'base64').toString().split(':', 2) + conf.auth = {basic: {username: auth[0], password: auth[1]}} + } else { + conf.auth = {} + } if (conf.otp) conf.auth.otp = conf.otp return conf } @@ -149,8 +161,14 @@ function rm (args) { } }) return Bluebird.map(toRemove, (key) => { - progress.info('token', 'removing', key) - profile.removeToken(key, conf).then(() => profile.completeWork(1)) + return profile.removeToken(key, conf).catch((ex) => { + if (ex.code !== 'EOTP') throw ex + log.info('token', 'failed because revoking this token requires OTP') + return readUserInfo.otp('Authenticator provided OTP:').then((otp) => { + conf.auth.otp = otp + return profile.removeToken(key, conf) + }) + }) }) })).then(() => { if (conf.json) { @@ -205,7 +223,8 @@ function validateCIDR (cidr) { } function validateCIDRList (cidrs) { - const list = Array.isArray(cidrs) ? cidrs : cidrs ? cidrs.split(/,\s*/) : [] + const maybeList = cidrs ? (Array.isArray(cidrs) ? cidrs : [cidrs]) : [] + const list = maybeList.length === 1 ? maybeList[0].split(/,\s*/) : maybeList list.forEach(validateCIDR) return list } diff --git a/deps/npm/lib/unbuild.js b/deps/npm/lib/unbuild.js index 78293c9ca2..d527778e92 100644 --- a/deps/npm/lib/unbuild.js +++ b/deps/npm/lib/unbuild.js @@ -77,7 +77,7 @@ function rmBins (pkg, folder, parent, top, cb) { asyncMap(Object.keys(pkg.bin), function (b, cb) { if (process.platform === 'win32') { chain([ [gentlyRm, path.resolve(binRoot, b) + '.cmd', true, folder], - [gentlyRm, path.resolve(binRoot, b), true, folder] ], cb) + [gentlyRm, path.resolve(binRoot, b), true, folder] ], cb) } else { gentlyRm(path.resolve(binRoot, b), true, folder, cb) } diff --git a/deps/npm/lib/uninstall.js b/deps/npm/lib/uninstall.js index 333d3e9d69..c4bd23ea31 100644 --- a/deps/npm/lib/uninstall.js +++ b/deps/npm/lib/uninstall.js @@ -29,8 +29,8 @@ function uninstall (args, cb) { if (args.length === 1 && args[0] === '.') args = [] const where = npm.config.get('global') || !args.length - ? path.resolve(npm.globalDir, '..') - : npm.prefix + ? path.resolve(npm.globalDir, '..') + : npm.prefix args = args.filter(function (a) { return path.resolve(a) !== where diff --git a/deps/npm/lib/unpublish.js b/deps/npm/lib/unpublish.js index 4ea8187025..c2e9edd800 100644 --- a/deps/npm/lib/unpublish.js +++ b/deps/npm/lib/unpublish.js @@ -1,3 +1,4 @@ +/* eslint-disable standard/no-callback-literal */ module.exports = unpublish @@ -100,10 +101,10 @@ function gotProject (project, version, publishConfig, cb_) { // remove from the cache first // npm.commands.cache(['clean', project, version], function (er) { - // if (er) { - // log.error('unpublish', 'Failed to clean cache') - // return cb(er) - // } + // if (er) { + // log.error('unpublish', 'Failed to clean cache') + // return cb(er) + // } mapToRegistry(project, config, function (er, uri, auth) { if (er) return cb(er) diff --git a/deps/npm/lib/update.js b/deps/npm/lib/update.js index efb56f5e41..9b1345f9df 100644 --- a/deps/npm/lib/update.js +++ b/deps/npm/lib/update.js @@ -57,7 +57,7 @@ function update_ (args) { // use the initial installation method (repo, tar, git) for updating if (url.parse(ww.req).protocol) ww.what = ww.req - const where = ww.dep.parent && ww.dep.parent.path || ww.dep.path + const where = (ww.dep.parent && ww.dep.parent.path) || ww.dep.path const isTransitive = !(ww.dep.requiredBy || []).some((p) => p.isTop) const key = where + ':' + String(isTransitive) if (!toInstall[key]) toInstall[key] = {where: where, opts: {saveOnlyLock: isTransitive}, what: []} diff --git a/deps/npm/lib/utils/error-handler.js b/deps/npm/lib/utils/error-handler.js index b2fd45a5f3..6631c10743 100644 --- a/deps/npm/lib/utils/error-handler.js +++ b/deps/npm/lib/utils/error-handler.js @@ -247,6 +247,6 @@ function writeLogFile () { log.record.length = 0 wroteLogFile = true } catch (ex) { - return + } } diff --git a/deps/npm/lib/utils/error-message.js b/deps/npm/lib/utils/error-message.js index 85504f5edc..60f52bfc93 100644 --- a/deps/npm/lib/utils/error-message.js +++ b/deps/npm/lib/utils/error-message.js @@ -9,6 +9,17 @@ function errorMessage (er) { var short = [] var detail = [] switch (er.code) { + case 'ENOAUDIT': + short.push(['audit', er.message]) + break + case 'EAUDITNOPJSON': + short.push(['audit', er.message]) + break + case 'EAUDITNOLOCK': + short.push(['audit', er.message]) + detail.push(['audit', 'Try creating one first with: npm i --package-lock-only']) + break + case 'ECONNREFUSED': short.push(['', er]) detail.push([ @@ -23,8 +34,17 @@ function errorMessage (er) { case 'EACCES': case 'EPERM': short.push(['', er]) - detail.push(['', ['\nPlease try running this command again as root/Administrator.' - ].join('\n')]) + detail.push([ + '', + [ + '\nThe operation was rejected by your operating system.', + (process.platform === 'win32' + ? 'It\'s possible that the file was already in use (by a text editor or antivirus),\nor that you lack permissions to access it.' + : 'It is likely you do not have the permissions to access this file as the current user'), + '\nIf you believe this might be a permissions issue, please double-check the', + 'permissions of the file and its containing directories, or try running', + 'the command again as root/Administrator (though this is not recommended).' + ].join('\n')]) break case 'ELIFECYCLE': @@ -52,17 +72,32 @@ function errorMessage (er) { break case 'EJSONPARSE': - short.push(['', er.message]) - short.push(['', 'File: ' + er.file]) + const path = require('path') + // Check whether we ran into a conflict in our own package.json + if (er.file === path.join(npm.prefix, 'package.json')) { + const isDiff = require('../install/read-shrinkwrap.js')._isDiff + const txt = require('fs').readFileSync(er.file, 'utf8') + if (isDiff(txt)) { + detail.push([ + '', + [ + 'Merge conflict detected in your package.json.', + '', + 'Please resolve the package.json conflict and retry the command:', + '', + `$ ${process.argv.join(' ')}` + ].join('\n') + ]) + break + } + } + short.push(['JSON.parse', er.message]) detail.push([ - '', + 'JSON.parse', [ 'Failed to parse package.json data.', - 'package.json must be actual JSON, not just JavaScript.', - '', - 'Tell the package author to fix their package.json file.' - ].join('\n'), - 'JSON.parse' + 'package.json must be actual JSON, not just JavaScript.' + ].join('\n') ]) break @@ -70,7 +105,7 @@ function errorMessage (er) { case 'E401': // the E401 message checking is a hack till we replace npm-registry-client with something // OTP aware. - if (er.code === 'EOTP' || (er.code === 'E401' && /one-time pass/.test(er.message))) { + if (er.code === 'EOTP' || /one-time pass/.test(er.message)) { short.push(['', 'This operation requires a one-time password from your authenticator.']) detail.push([ '', @@ -80,42 +115,40 @@ function errorMessage (er) { 'it, or it timed out. Please try again.' ].join('\n') ]) - break } else { // npm ERR! code E401 // npm ERR! Unable to authenticate, need: Basic - if (er.headers && er.headers['www-authenticate']) { - const auth = er.headers['www-authenticate'].map((au) => au.split(/,\s*/))[0] || [] - if (auth.indexOf('Bearer') !== -1) { - short.push(['', 'Unable to authenticate, your authentication token seems to be invalid.']) - detail.push([ - '', - [ - 'To correct this please trying logging in again with:', - ' npm login' - ].join('\n') - ]) - break - } else if (auth.indexOf('Basic') !== -1) { - short.push(['', 'Incorrect or missing password.']) - detail.push([ + const auth = (er.headers && er.headers['www-authenticate'] && er.headers['www-authenticate'].map((au) => au.split(/,\s*/))[0]) || [] + if (auth.indexOf('Bearer') !== -1) { + short.push(['', 'Unable to authenticate, your authentication token seems to be invalid.']) + detail.push([ + '', + [ + 'To correct this please trying logging in again with:', + ' npm login' + ].join('\n') + ]) + } else if (auth.indexOf('Basic') !== -1) { + short.push(['', 'Incorrect or missing password.']) + detail.push([ + '', + [ + 'If you were trying to login, change your password, create an', + 'authentication token or enable two-factor authentication then', + 'that means you likely typed your password in incorrectly.', + 'Please try again, or recover your password at:', + ' https://www.npmjs.com/forgot', '', - [ - 'If you were trying to login, change your password, create an', - 'authentication token or enable two-factor authentication then', - 'that means you likely typed your password in incorrectly.', - 'Please try again, or recover your password at:', - ' https://www.npmjs.com/forgot', - '', - 'If you were doing some other operation then your saved credentials are', - 'probably out of date. To correct this please try logging in again with:', - ' npm login' - ].join('\n') - ]) - break - } + 'If you were doing some other operation then your saved credentials are', + 'probably out of date. To correct this please try logging in again with:', + ' npm login' + ].join('\n') + ]) + } else { + short.push(['', er.message || er]) } } + break case 'E404': // There's no need to have 404 in the message as well. @@ -271,7 +304,7 @@ function errorMessage (er) { ]) break } // else passthrough - /*eslint no-fallthrough:0*/ + /* eslint no-fallthrough:0 */ case 'ENOSPC': short.push(['nospc', er.message]) diff --git a/deps/npm/lib/utils/gunzip-maybe.js b/deps/npm/lib/utils/gunzip-maybe.js index db75f06017..adf7e4402a 100644 --- a/deps/npm/lib/utils/gunzip-maybe.js +++ b/deps/npm/lib/utils/gunzip-maybe.js @@ -11,8 +11,8 @@ function gunzip () { var stream = duplex() var peeker = through(function (chunk, enc, cb) { var newStream = hasGzipHeader(chunk) - ? zlib.createGunzip() - : through() + ? zlib.createGunzip() + : through() stream.setReadable(newStream) stream.setWritable(newStream) stream.write(chunk) diff --git a/deps/npm/lib/utils/metrics-launch.js b/deps/npm/lib/utils/metrics-launch.js index 821f8bc7e4..7e2a8d1cc9 100644 --- a/deps/npm/lib/utils/metrics-launch.js +++ b/deps/npm/lib/utils/metrics-launch.js @@ -1,4 +1,5 @@ 'use strict' +/* eslint-disable camelcase */ module.exports = launchSendMetrics var fs = require('graceful-fs') var child_process = require('child_process') diff --git a/deps/npm/lib/utils/open-url.js b/deps/npm/lib/utils/open-url.js new file mode 100644 index 0000000000..7a48d2e868 --- /dev/null +++ b/deps/npm/lib/utils/open-url.js @@ -0,0 +1,16 @@ +'use strict' +const npm = require('../npm.js') +const output = require('./output.js') +const opener = require('opener') + +// attempt to open URL in web-browser, print address otherwise: +module.exports = function open (url, errMsg, cb, browser = npm.config.get('browser')) { + opener(url, { command: npm.config.get('browser') }, (er) => { + if (er && er.code === 'ENOENT') { + output(`${errMsg}:\n\n${url}`) + return cb() + } else { + return cb(er) + } + }) +} diff --git a/deps/npm/lib/utils/parse-json.js b/deps/npm/lib/utils/parse-json.js index 5c0b959a0d..c2ebac3581 100644 --- a/deps/npm/lib/utils/parse-json.js +++ b/deps/npm/lib/utils/parse-json.js @@ -1,13 +1,14 @@ 'use strict' +var parseJsonWithErrors = require('json-parse-better-errors') var parseJSON = module.exports = function (content) { - return JSON.parse(stripBOM(content)) + return parseJsonWithErrors(stripBOM(content)) } parseJSON.noExceptions = function (content) { try { return parseJSON(content) } catch (ex) { - return + } } diff --git a/deps/npm/lib/utils/perf.js b/deps/npm/lib/utils/perf.js index 0423263225..d314860792 100644 --- a/deps/npm/lib/utils/perf.js +++ b/deps/npm/lib/utils/perf.js @@ -18,10 +18,9 @@ function time (name) { function timeEnd (name) { if (name in timings) { - process.emit('timing', name, Date.now() - timings[name]) + perf.emit('timing', name, Date.now() - timings[name]) delete timings[name] } else { log.silly('timing', "Tried to end timer that doesn't exist:", name) - return } } diff --git a/deps/npm/lib/utils/pick-manifest-from-registry-metadata.js b/deps/npm/lib/utils/pick-manifest-from-registry-metadata.js index e2c0d2e5aa..589cef207d 100644 --- a/deps/npm/lib/utils/pick-manifest-from-registry-metadata.js +++ b/deps/npm/lib/utils/pick-manifest-from-registry-metadata.js @@ -21,6 +21,6 @@ function pickManifestFromRegistryMetadata (spec, tag, versions, metadata) { } else if (spec === '*' && versions.length && tagged && metadata.versions[tagged]) { return {resolvedTo: tag, manifest: metadata.versions[tagged]} } else { - return + } } diff --git a/deps/npm/lib/utils/read-user-info.js b/deps/npm/lib/utils/read-user-info.js index 81bb44c98f..445bdfeea3 100644 --- a/deps/npm/lib/utils/read-user-info.js +++ b/deps/npm/lib/utils/read-user-info.js @@ -19,7 +19,15 @@ function read (opts) { } function readOTP (msg, otp, isRetry) { - if (!msg) msg = 'Enter OTP: ' + if (!msg) { + msg = [ + 'There was an error while trying authentication due to OTP (One-Time-Password).', + 'The One-Time-Password is generated via applications like Authy or', + 'Google Authenticator, for more information see:', + 'https://docs.npmjs.com/getting-started/using-two-factor-authentication', + 'Enter OTP: ' + ].join('\n') + } if (isRetry && otp && /^[\d ]+$|^[A-Fa-f0-9]{64,64}$/.test(otp)) return otp.replace(/\s+/g, '') return read({prompt: msg, default: otp || ''}) diff --git a/deps/npm/lib/utils/stringify-package.js b/deps/npm/lib/utils/stringify-package.js new file mode 100644 index 0000000000..0cc9de0a36 --- /dev/null +++ b/deps/npm/lib/utils/stringify-package.js @@ -0,0 +1,17 @@ +'use strict' + +module.exports = stringifyPackage + +const DEFAULT_INDENT = 2 +const CRLF = '\r\n' +const LF = '\n' + +function stringifyPackage (data, indent, newline) { + const json = JSON.stringify(data, null, indent || DEFAULT_INDENT) + + if (newline === CRLF) { + return json.replace(/\n/g, CRLF) + CRLF + } + + return json + LF +} diff --git a/deps/npm/lib/utils/unsupported.js b/deps/npm/lib/utils/unsupported.js index b586d035ce..09d7784dd5 100644 --- a/deps/npm/lib/utils/unsupported.js +++ b/deps/npm/lib/utils/unsupported.js @@ -1,12 +1,11 @@ 'use strict' var semver = require('semver') var supportedNode = [ - {ver: '4', min: '4.7.0'}, {ver: '6', min: '6.0.0'}, - {ver: '7', min: '7.0.0'}, {ver: '8', min: '8.0.0'}, {ver: '9', min: '9.0.0'}, - {ver: '10', min: '10.0.0'} + {ver: '10', min: '10.0.0'}, + {ver: '11', min: '11.0.0'} ] var knownBroken = '<4.7.0' @@ -26,7 +25,7 @@ exports.checkForBrokenNode = function () { supportedNode.forEach(function (rel) { if (semver.satisfies(nodejs.version, rel.ver)) { console.error('Node.js ' + rel.ver + " is supported but the specific version you're running has") - console.error(`a bug known to break npm. Please update to at least ${rel.min} to use this`) + console.error('a bug known to break npm. Please update to at least ' + rel.min + ' to use this') console.error('version of npm. You can find the latest release of Node.js at https://nodejs.org/') process.exit(1) } diff --git a/deps/npm/lib/version.js b/deps/npm/lib/version.js index edcd664f2a..a8bc3123a9 100644 --- a/deps/npm/lib/version.js +++ b/deps/npm/lib/version.js @@ -4,6 +4,7 @@ const BB = require('bluebird') const assert = require('assert') const chain = require('slide').chain const detectIndent = require('detect-indent') +const detectNewline = require('detect-newline') const fs = require('graceful-fs') const readFile = BB.promisify(require('graceful-fs').readFile) const git = require('./utils/git.js') @@ -14,6 +15,7 @@ const output = require('./utils/output.js') const parseJSON = require('./utils/parse-json.js') const path = require('path') const semver = require('semver') +const stringifyPackage = require('./utils/stringify-package') const writeFileAtomic = require('write-file-atomic') version.usage = 'npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]' + @@ -33,7 +35,7 @@ function version (args, silent, cb_) { } if (args.length > 1) return cb_(version.usage) - readPackage(function (er, data, indent) { + readPackage(function (er, data, indent, newline) { if (!args.length) return dump(data, cb_) if (er) { @@ -115,14 +117,16 @@ function readPackage (cb) { fs.readFile(packagePath, 'utf8', function (er, data) { if (er) return cb(new Error(er)) var indent + var newline try { - indent = detectIndent(data).indent || ' ' + indent = detectIndent(data).indent + newline = detectNewline(data) data = JSON.parse(data) } catch (e) { er = e data = null } - cb(er, data, indent) + cb(er, data, indent, newline) }) } @@ -132,10 +136,10 @@ function updatePackage (newVersion, silent, cb_) { cb_(er) } - readPackage(function (er, data, indent) { + readPackage(function (er, data, indent, newline) { if (er) return cb(new Error(er)) data.version = newVersion - write(data, 'package.json', indent, cb) + write(data, 'package.json', indent, newline, cb) }) } @@ -168,15 +172,17 @@ function updateShrinkwrap (newVersion, cb) { const file = shrinkwrap ? SHRINKWRAP : PKGLOCK let data let indent + let newline try { data = parseJSON(shrinkwrap || lockfile) - indent = detectIndent(shrinkwrap || lockfile).indent || ' ' + indent = detectIndent(shrinkwrap || lockfile).indent + newline = detectNewline(shrinkwrap || lockfile) } catch (err) { log.error('version', `Bad ${file} data.`) return cb(err) } data.version = newVersion - write(data, file, indent, (err) => { + write(data, file, indent, newline, (err) => { if (err) { log.error('version', `Failed to update version in ${file}`) return cb(err) @@ -307,9 +313,9 @@ function _commit (version, localData, cb) { function stagePackageFiles (localData, options) { return addLocalFile('package.json', options, false).then(() => { if (localData.hasShrinkwrap) { - return addLocalFile('npm-shrinkwrap.json', options, false) + return addLocalFile('npm-shrinkwrap.json', options, true) } else if (localData.hasPackageLock) { - return addLocalFile('package-lock.json', options, false) + return addLocalFile('package-lock.json', options, true) } }) } @@ -317,18 +323,18 @@ function stagePackageFiles (localData, options) { function addLocalFile (file, options, ignoreFailure) { const p = git.exec(['add', path.join(npm.localPrefix, file)], options) return ignoreFailure - ? p.catch(() => {}) - : p + ? p.catch(() => {}) + : p } -function write (data, file, indent, cb) { +function write (data, file, indent, newline, cb) { assert(data && typeof data === 'object', 'must pass data to version write') assert(typeof file === 'string', 'must pass filename to write to version write') log.verbose('version.write', 'data', data, 'to', file) writeFileAtomic( path.join(npm.localPrefix, file), - new Buffer(JSON.stringify(data, null, indent || 2) + '\n'), + stringifyPackage(data, indent, newline), cb ) } diff --git a/deps/npm/lib/view.js b/deps/npm/lib/view.js index e0904048df..88bd97c916 100644 --- a/deps/npm/lib/view.js +++ b/deps/npm/lib/view.js @@ -1,6 +1,15 @@ +'use strict' + // npm view [pkg [pkg ...]] module.exports = view +const BB = require('bluebird') + +const byteSize = require('byte-size') +const color = require('ansicolors') +const columns = require('cli-columns') +const relativeDate = require('tiny-relative-date') +const style = require('ansistyles') var npm = require('./npm.js') var readJson = require('read-package-json') var log = require('npmlog') @@ -111,7 +120,7 @@ function fetchAndRead (nv, args, silent, cb) { npm.registry.get(uri, { auth: auth }, function (er, data) { if (er) return cb(er) - if (data['dist-tags'] && data['dist-tags'].hasOwnProperty(version)) { + if (data['dist-tags'] && data['dist-tags'][version]) { version = data['dist-tags'][version] } @@ -146,20 +155,162 @@ function fetchAndRead (nv, args, silent, cb) { }) } }) - results = results.reduce(reducer, {}) - var retval = results + var retval = results.reduce(reducer, {}) if (args.length === 1 && args[0] === '') { retval = cleanBlanks(retval) log.silly('cleanup', retval) } - if (error || silent) cb(error, retval) - else printData(results, data._id, cb.bind(null, error, retval)) + if (error || silent) { + cb(error, retval) + } else if ( + !npm.config.get('json') && + args.length === 1 && + args[0] === '' + ) { + data.version = version + BB.all(results.map((v) => prettyView(data, v[Object.keys(v)[0]]['']))) + .nodeify(cb) + .then(() => retval) + } else { + printData(retval, data._id, cb.bind(null, error, retval)) + } }) }) } +function prettyView (packument, manifest) { + // More modern, pretty printing of default view + const unicode = npm.config.get('unicode') + return BB.try(() => { + if (!manifest) { + log.error( + 'view', + 'No matching versions.\n' + + 'To see a list of versions, run:\n' + + `> npm view ${packument.name} versions` + ) + return + } + const tags = [] + Object.keys(packument['dist-tags']).forEach((t) => { + const version = packument['dist-tags'][t] + tags.push(`${style.bright(color.green(t))}: ${version}`) + }) + const unpackedSize = manifest.dist.unpackedSize && + byteSize(manifest.dist.unpackedSize) + const licenseField = manifest.license || manifest.licence || 'Proprietary' + const info = { + name: color.green(manifest.name), + version: color.green(manifest.version), + bins: Object.keys(manifest.bin || {}).map(color.yellow), + versions: color.yellow(packument.versions.length + ''), + description: manifest.description, + deprecated: manifest.deprecated, + keywords: (packument.keywords || []).map(color.yellow), + license: typeof licenseField === 'string' + ? licenseField + : (licenseField.type || 'Proprietary'), + deps: Object.keys(manifest.dependencies || {}).map((dep) => { + return `${color.yellow(dep)}: ${manifest.dependencies[dep]}` + }), + publisher: manifest._npmUser && unparsePerson({ + name: color.yellow(manifest._npmUser.name), + email: color.cyan(manifest._npmUser.email) + }), + modified: color.yellow(relativeDate(packument.time[packument.version])), + maintainers: (packument.maintainers || []).map((u) => unparsePerson({ + name: color.yellow(u.name), + email: color.cyan(u.email) + })), + repo: ( + manifest.bugs && (manifest.bugs.url || manifest.bugs) + ) || ( + manifest.repository && (manifest.repository.url || manifest.repository) + ), + site: ( + manifest.homepage && (manifest.homepage.url || manifest.homepage) + ), + stars: color.yellow('' + packument.users ? Object.keys(packument.users || {}).length : 0), + tags, + tarball: color.cyan(manifest.dist.tarball), + shasum: color.yellow(manifest.dist.shasum), + integrity: manifest.dist.integrity && color.yellow(manifest.dist.integrity), + fileCount: manifest.dist.fileCount && color.yellow(manifest.dist.fileCount), + unpackedSize: unpackedSize && color.yellow(unpackedSize.value) + ' ' + unpackedSize.unit + } + if (info.license.toLowerCase().trim() === 'proprietary') { + info.license = style.bright(color.red(info.license)) + } else { + info.license = color.green(info.license) + } + console.log('') + console.log( + style.underline(style.bright(`${info.name}@${info.version}`)) + + ' | ' + info.license + + ' | deps: ' + (info.deps.length ? color.cyan(info.deps.length) : color.green('none')) + + ' | versions: ' + info.versions + ) + info.description && console.log(info.description) + if (info.repo || info.site) { + info.site && console.log(color.cyan(info.site)) + } + + const warningSign = unicode ? ' āš ļø ' : '!!' + info.deprecated && console.log( + `\n${style.bright(color.red('DEPRECATED'))}${ + warningSign + } - ${info.deprecated}` + ) + + if (info.keywords.length) { + console.log('') + console.log('keywords:', info.keywords.join(', ')) + } + + if (info.bins.length) { + console.log('') + console.log('bin:', info.bins.join(', ')) + } + + console.log('') + console.log('dist') + console.log('.tarball', info.tarball) + console.log('.shasum:', info.shasum) + info.integrity && console.log('.integrity:', info.integrity) + info.unpackedSize && console.log('.unpackedSize:', info.unpackedSize) + + const maxDeps = 24 + if (info.deps.length) { + console.log('') + console.log('dependencies:') + console.log(columns(info.deps.slice(0, maxDeps), {padding: 1})) + if (info.deps.length > maxDeps) { + console.log(`(...and ${info.deps.length - maxDeps} more.)`) + } + } + + if (info.maintainers && info.maintainers.length) { + console.log('') + console.log('maintainers:') + info.maintainers.forEach((u) => console.log('-', u)) + } + + console.log('') + console.log('dist-tags:') + console.log(columns(info.tags)) + + if (info.publisher || info.modified) { + let publishInfo = 'published' + if (info.modified) { publishInfo += ` ${info.modified}` } + if (info.publisher) { publishInfo += ` by ${info.publisher}` } + console.log('') + console.log(publishInfo) + } + }) +} + function cleanBlanks (obj) { var clean = {} Object.keys(obj).forEach(function (version) { @@ -323,8 +474,8 @@ function cleanup (data) { if (keys.length <= 3 && data.name && (keys.length === 1 || - keys.length === 3 && data.email && data.url || - keys.length === 2 && (data.email || data.url))) { + (keys.length === 3 && data.email && data.url) || + (keys.length === 2 && (data.email || data.url)))) { data = unparsePerson(data) } return data diff --git a/deps/npm/lib/xmas.js b/deps/npm/lib/xmas.js index 25535533e1..65c0c131ab 100644 --- a/deps/npm/lib/xmas.js +++ b/deps/npm/lib/xmas.js @@ -48,7 +48,7 @@ module.exports = function (args, cb) { w('\n\n') log.heading = '' log.addLevel('npm', 100000, log.headingStyle) - log.npm('loves you', 'Happy Xmas, Noders!') + log.npm('loves you', 'Happy Xmas, JavaScripters!') cb() } var dg = false diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 index a878813f91..fd188b0c39 100644 --- a/deps/npm/man/man1/npm-README.1 +++ b/deps/npm/man/man1/npm-README.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "December 2017" "" "" +.TH "NPM" "1" "May 2018" "" "" .SH "NAME" \fBnpm\fR \- a JavaScript package manager .P @@ -10,9 +10,9 @@ This is just enough info to get you up and running\. Much more info available via \fBnpm help\fP once it's installed\. .SH IMPORTANT .P -\fBYou need node v4 or higher to run this program\.\fR +\fBYou need node v6 or higher to run this program\.\fR .P -To install an old \fBand unsupported\fR version of npm that works on node v0\.12 +To install an old \fBand unsupported\fR version of npm that works on node v5 and prior, clone the git repo and dig through the old tags and branches\. .P \fBnpm is configured to use npm, Inc\.'s public package registry at @@ -162,7 +162,7 @@ https://github\.com/npm/npm/issues Be sure to include \fIall\fR of the output from the npm command that didn't work as expected\. The \fBnpm\-debug\.log\fP file is also helpful to provide\. .P -You can also find npm people in \fB#npm\fP on https://package\.community/ or +You can also find npm people in \fB#npm\fP on https:// or on Twitter \fIhttps://twitter\.com/npm_support\fR\|\. Whoever responds will no doubt tell you to put the output in a gist or email\. .SH SEE ALSO diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1 index 124fb542ef..58fdf36de1 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" "December 2017" "" "" +.TH "NPM\-ACCESS" "1" "May 2018" "" "" .SH "NAME" \fBnpm-access\fR \- Set access level on published packages .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index 1d0dc7d63f..a8d27d0736 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ADDUSER" "1" "December 2017" "" "" +.TH "NPM\-ADDUSER" "1" "May 2018" "" "" .SH "NAME" \fBnpm-adduser\fR \- Add a registry user account .SH SYNOPSIS @@ -31,7 +31,7 @@ your existing record\. .SH CONFIGURATION .SS registry .P -Default: https://registry\.npmjs\.org/ +Default: https:// .P The base URL of the npm package registry\. If \fBscope\fP is also specified, this registry will only be used for packages with that scope\. \fBscope\fP defaults diff --git a/deps/npm/man/man1/npm-audit.1 b/deps/npm/man/man1/npm-audit.1 new file mode 100644 index 0000000000..8a4283d4cf --- /dev/null +++ b/deps/npm/man/man1/npm-audit.1 @@ -0,0 +1,132 @@ +.TH "NPM\-AUDIT" "1" "May 2018" "" "" +.SH "NAME" +\fBnpm-audit\fR \- Run a security audit +.SH SYNOPSIS +.P +.RS 2 +.nf +npm audit [\-\-json] +npm audit fix [\-\-force|\-\-package\-lock\-only|\-\-dry\-run|\-\-production|\-\-only=dev] +.fi +.RE +.SH EXAMPLES +.P +Scan your project for vulnerabilities and automatically install any compatible +updates to vulnerable dependencies: +.P +.RS 2 +.nf +$ npm audit fix +.fi +.RE +.P +Run \fBaudit fix\fP without modifying \fBnode_modules\fP, but still updating the +pkglock: +.P +.RS 2 +.nf +$ npm audit fix \-\-package\-lock\-only +.fi +.RE +.P +Skip updating \fBdevDependencies\fP: +.P +.RS 2 +.nf +$ npm audit fix \-\-only=prod +.fi +.RE +.P +Have \fBaudit fix\fP install semver\-major updates to toplevel dependencies, not just +semver\-compatible ones: +.P +.RS 2 +.nf +$ npm audit fix \-\-force +.fi +.RE +.P +Do a dry run to get an idea of what \fBaudit fix\fP will do, and \fIalso\fR output +install information in JSON format: +.P +.RS 2 +.nf +$ npm audit fix \-\-dry\-run \-\-json +.fi +.RE +.P +Scan your project for vulnerabilities and just show the details, without fixing +anything: +.P +.RS 2 +.nf +$ npm audit +.fi +.RE +.P +Get the detailed audit report in JSON format: +.P +.RS 2 +.nf +$ npm audit \-\-json +.fi +.RE +.SH DESCRIPTION +.P +The audit command submits a description of the dependencies configured in +your project to your default registry and asks for a report of known +vulnerabilities\. The report returned includes instructions on how to act on +this information\. +.P +You can also have npm automatically fix the vulnerabilities by running \fBnpm +audit fix\fP\|\. Note that some vulnerabilities cannot be fixed automatically and +will require manual intervention or review\. Also note that since \fBnpm audit fix\fP +runs a full\-fledged \fBnpm install\fP under the hood, all configs that apply to the +installer will also apply to \fBnpm install\fP \-\- so things like \fBnpm audit fix +\-\-package\-lock\-only\fP will work as expected\. +.SH CONTENT SUBMITTED +.RS 0 +.IP \(bu 2 +npm_version +.IP \(bu 2 +node_version +.IP \(bu 2 +platform +.IP \(bu 2 +node_env +.IP \(bu 2 +A scrubbed version of your package\-lock\.json or npm\-shrinkwrap\.json + +.RE +.SS SCRUBBING +.P +In order to ensure that potentially sensitive information is not included in +the audit data bundle, some dependencies may have their names (and sometimes +versions) replaced with opaque non\-reversible identifiers\. It is done for +the following dependency types: +.RS 0 +.IP \(bu 2 +Any module referencing a scope that is configured for a non\-default +registry has its name scrubbed\. (That is, a scope you did a \fBnpm login \-\-scope=@ourscope\fP for\.) +.IP \(bu 2 +All git dependencies have their names and specifiers scrubbed\. +.IP \(bu 2 +All remote tarball dependencies have their names and specifiers scrubbed\. +.IP \(bu 2 +All local directory and tarball dependencies have their names and specifiers scrubbed\. + +.RE +.P +The non\-reversible identifiers are a sha256 of a session\-specific UUID and the +value being replaced, ensuring a consistent value within the payload that is +different between runs\. +.SH SEE ALSO +.RS 0 +.IP \(bu 2 +npm help install +.IP \(bu 2 +npm help 5 package\-locks +.IP \(bu 2 +npm help 7 config + +.RE diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 index a146ed8ce2..402d1de096 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" "December 2017" "" "" +.TH "NPM\-BIN" "1" "May 2018" "" "" .SH "NAME" \fBnpm-bin\fR \- Display npm bin folder .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index e4a7489178..c7ee3cb52b 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" "December 2017" "" "" +.TH "NPM\-BUGS" "1" "May 2018" "" "" .SH "NAME" \fBnpm-bugs\fR \- Bugs for a package in a web browser maybe .SH SYNOPSIS @@ -30,7 +30,7 @@ The browser that is called by the \fBnpm bugs\fP command to open websites\. .SS registry .RS 0 .IP \(bu 2 -Default: https://registry\.npmjs\.org/ +Default: https:// .IP \(bu 2 Type: url diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 index 6ea78934f1..fe947c9707 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" "December 2017" "" "" +.TH "NPM\-BUILD" "1" "May 2018" "" "" .SH "NAME" \fBnpm-build\fR \- Build a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1 index 6eb57d7c10..2730fbf80b 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" "December 2017" "" "" +.TH "NPM\-BUNDLE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-bundle\fR \- REMOVED .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index 133b61730f..9cf603114c 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" "December 2017" "" "" +.TH "NPM\-CACHE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-cache\fR \- Manipulates packages cache .SH SYNOPSIS @@ -88,9 +88,9 @@ npm help publish .IP \(bu 2 npm help pack .IP \(bu 2 -https://npm\.im/cacache +https:// .IP \(bu 2 -https://npm\.im/pacote +https:// .RE diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1 new file mode 100644 index 0000000000..02d4c07538 --- /dev/null +++ b/deps/npm/man/man1/npm-ci.1 @@ -0,0 +1,76 @@ +.TH "NPM\-CI" "1" "May 2018" "" "" +.SH "NAME" +\fBnpm-ci\fR \- Install a project with a clean slate +.SH SYNOPSIS +.P +.RS 2 +.nf +npm ci +.fi +.RE +.SH EXAMPLE +.P +Make sure you have a package\-lock and an up\-to\-date install: +.P +.RS 2 +.nf +$ cd \./my/npm/project +$ npm install +added 154 packages in 10s +$ ls | grep package\-lock +.fi +.RE +.P +Run \fBnpm ci\fP in that project +.P +.RS 2 +.nf +$ npm ci +added 154 packages in 5s +.fi +.RE +.P +Configure Travis to build using \fBnpm ci\fP instead of \fBnpm install\fP: +.P +.RS 2 +.nf +# \.travis\.yml +install: +\- npm ci +# keep the npm cache around to speed up installs +cache: + directories: + \- "$HOME/\.npm" +.fi +.RE +.SH DESCRIPTION +.P +This command is similar to npm help \fBnpm\-install\fP, except it's meant to be used in +automated environments such as test platforms, continuous integration, and +deployment\. It can be significantly faster than a regular npm install by +skipping certain user\-oriented features\. It is also more strict than a regular +install, which can help catch errors or inconsistencies caused by the +incrementally\-installed local environments of most npm users\. +.P +In short, the main differences between using \fBnpm install\fP and \fBnpm ci\fP are: +.RS 0 +.IP \(bu 2 +The project \fBmust\fR have an existing \fBpackage\-lock\.json\fP or \fBnpm\-shrinkwrap\.json\fP\|\. +.IP \(bu 2 +If dependencies in the package lock do not match those in \fBpackage\.json\fP, \fBnpm ci\fP will exit with an error, instead of updating the package lock\. +.IP \(bu 2 +\fBnpm ci\fP can only install entire projects at a time: individual dependencies cannot be added with this command\. +.IP \(bu 2 +If a \fBnode_modules\fP is already present, it will be automatically removed before \fBnpm ci\fP begins its install\. +.IP \(bu 2 +It will never write to \fBpackage\.json\fP or any of the package\-locks: installs are essentially frozen\. + +.RE +.SH SEE ALSO +.RS 0 +.IP \(bu 2 +npm help install +.IP \(bu 2 +npm help 5 package\-locks + +.RE diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index 131cd3f0d6..a26740f617 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" "December 2017" "" "" +.TH "NPM\-COMPLETION" "1" "May 2018" "" "" .SH "NAME" \fBnpm-completion\fR \- Tab Completion for npm .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index c284370d3f..228ff1d397 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" "December 2017" "" "" +.TH "NPM\-CONFIG" "1" "May 2018" "" "" .SH "NAME" \fBnpm-config\fR \- Manage the npm configuration files .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index c1ccfc6bf2..c4b47d6477 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" "December 2017" "" "" +.TH "NPM\-DEDUPE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-dedupe\fR \- Reduce duplication .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index d50b3eb39a..9bf53cdae4 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" "December 2017" "" "" +.TH "NPM\-DEPRECATE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-deprecate\fR \- Deprecate a version of a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 index ba49d77fa8..adf8cb1b80 100644 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ b/deps/npm/man/man1/npm-dist-tag.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DIST\-TAG" "1" "December 2017" "" "" +.TH "NPM\-DIST\-TAG" "1" "May 2018" "" "" .SH "NAME" \fBnpm-dist-tag\fR \- Modify package distribution tags .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index f913d4ee51..66ef57a79e 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" "December 2017" "" "" +.TH "NPM\-DOCS" "1" "May 2018" "" "" .SH "NAME" \fBnpm-docs\fR \- Docs for a package in a web browser maybe .SH SYNOPSIS @@ -32,7 +32,7 @@ The browser that is called by the \fBnpm docs\fP command to open websites\. .SS registry .RS 0 .IP \(bu 2 -Default: https://registry\.npmjs\.org/ +Default: https:// .IP \(bu 2 Type: url diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1 index 649b81f2e7..fe8a185f42 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" "December 2017" "" "" +.TH "NPM\-DOCTOR" "1" "May 2018" "" "" .SH "NAME" \fBnpm-doctor\fR \- Check your environments .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 96275a8d9a..c3c0d8ad62 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" "December 2017" "" "" +.TH "NPM\-EDIT" "1" "May 2018" "" "" .SH "NAME" \fBnpm-edit\fR \- Edit an installed package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index 9ed823aeef..bda151d67a 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -1,4 +1,4 @@ -.TH "NPM\-EXPLORE" "1" "December 2017" "" "" +.TH "NPM\-EXPLORE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-explore\fR \- Browse an installed package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 4252dff698..e31049e657 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" "December 2017" "" "" +.TH "NPM\-HELP\-SEARCH" "1" "May 2018" "" "" .SH "NAME" \fBnpm-help-search\fR \- Search npm help documentation .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index dea51fb5dc..bfdf384a5b 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" "December 2017" "" "" +.TH "NPM\-HELP" "1" "May 2018" "" "" .SH "NAME" \fBnpm-help\fR \- Get help on npm .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-hook.1 b/deps/npm/man/man1/npm-hook.1 new file mode 100644 index 0000000000..c4844c5a53 --- /dev/null +++ b/deps/npm/man/man1/npm-hook.1 @@ -0,0 +1,97 @@ +.TH "NPM\-HOOK" "1" "May 2018" "" "" +.SH "NAME" +\fBnpm-hook\fR \- Manage registry hooks +.SH SYNOPSIS +.P +.RS 2 +.nf +npm hook ls [pkg] +npm hook add +npm hook update [secret] +npm hook rm +.fi +.RE +.SH EXAMPLE +.P +Add a hook to watch a package for changes: +.P +.RS 2 +.nf +$ npm hook add lodash https://example\.com/ my\-shared\-secret +.fi +.RE +.P +Add a hook to watch packages belonging to the user \fBsubstack\fP: +.P +.RS 2 +.nf +$ npm hook add ~substack https://example\.com/ my\-shared\-secret +.fi +.RE +.P +Add a hook to watch packages in the scope \fB@npm\fP +.P +.RS 2 +.nf +$ npm hook add @npm https://example\.com/ my\-shared\-secret +.fi +.RE +.P +List all your active hooks: +.P +.RS 2 +.nf +$ npm hook ls +.fi +.RE +.P +List your active hooks for the \fBlodash\fP package: +.P +.RS 2 +.nf +$ npm hook ls lodash +.fi +.RE +.P +Update an existing hook's url: +.P +.RS 2 +.nf +$ npm hook update id\-deadbeef https://my\-new\-website\.here/ +.fi +.RE +.P +Remove a hook: +.P +.RS 2 +.nf +$ npm hook rm id\-deadbeef +.fi +.RE +.SH DESCRIPTION +.P +Allows you to manage npm +hooks \fIhttp://blog\.npmjs\.org/post/145260155635/introducing\-hooks\-get\-notifications\-of\-npm\fR, +including adding, removing, listing, and updating\. +.P +Hooks allow you to configure URL endpoints that will be notified whenever a +change happens to any of the supported entity types\. Three different types of +entities can be watched by hooks: packages, owners, and scopes\. +.P +To create a package hook, simply reference the package name\. +.P +To create an owner hook, prefix the owner name with \fB~\fP (as in, \fB~youruser\fP)\. +.P +To create a scope hook, prefix the scope name with \fB@\fP (as in, \fB@yourscope\fP)\. +.P +The hook \fBid\fP used by \fBupdate\fP and \fBrm\fP are the IDs listed in \fBnpm hook ls\fP for +that particular hook\. +.P +The shared secret will be sent along to the URL endpoint so you can verify the +request came from your own configured hook\. +.SH SEE ALSO +.RS 0 +.IP \(bu 2 +"Introducing Hooks" blog post \fIhttp://blog\.npmjs\.org/post/145260155635/introducing\-hooks\-get\-notifications\-of\-npm\fR + +.RE diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 3395281ac7..91562d6421 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,39 +1,81 @@ -.TH "NPM\-INIT" "1" "December 2017" "" "" +.TH "NPM\-INIT" "1" "May 2018" "" "" .SH "NAME" -\fBnpm-init\fR \- Interactively create a package\.json file +\fBnpm-init\fR \- create a package\.json file .SH SYNOPSIS .P .RS 2 .nf -npm init [\-f|\-\-force|\-y|\-\-yes] +npm init [\-\-force|\-f|\-\-yes|\-y|\-\-scope] +npm init <@scope> (same as `npx <@scope>/create`) +npm init [<@scope>/] (same as `npx [<@scope>/]create\-`) +.fi +.RE +.SH EXAMPLES +.P +Create a new React\-based project using \fBcreate\-react\-app\fP \fIhttps://npm\.im/create\-react\-app\fR: +.P +.RS 2 +.nf +$ npm init react\-app \./my\-react\-app +.fi +.RE +.P +Create a new \fBesm\fP\-compatible package using \fBcreate\-esm\fP \fIhttps://npm\.im/create\-esm\fR: +.P +.RS 2 +.nf +$ mkdir my\-esm\-lib && cd my\-esm\-lib +$ npm init esm \-\-yes .fi .RE -.SH DESCRIPTION .P -This will ask you a bunch of questions, and then write a package\.json for you\. +Generate a plain old package\.json using legacy init: .P -It attempts to make reasonable guesses about what you want things to be set to, -and then writes a package\.json file with the options you've selected\. +.RS 2 +.nf +$ mkdir my\-npm\-pkg && cd my\-npm\-pkg +$ git init +$ npm init +.fi +.RE .P -If you already have a package\.json file, it'll read that first, and default to -the options in there\. +Generate it without having it ask any questions: .P -It is strictly additive, so it does not delete options from your package\.json -without a really good reason to do so\. +.RS 2 +.nf +$ npm init \-y +.fi +.RE +.SH DESCRIPTION +.P +\fBnpm init \fP can be used to set up a new or existing npm package\. .P -If you invoke it with \fB\-f\fP, \fB\-\-force\fP, \fB\-y\fP, or \fB\-\-yes\fP, it will use only -defaults and not prompt you for any options\. -.SH CONFIGURATION -.SS scope +\fBinitializer\fP in this case is an npm package named \fBcreate\-\fP, which +will be installed by npm help \fBnpx\fP \fIhttps://npm\.im/npx\fR, and then have its main bin +executed \-\- presumably creating or updating \fBpackage\.json\fP and running any other +initialization\-related operations\. +.P +The init command is transformed to a corresponding \fBnpx\fP operation as follows: .RS 0 .IP \(bu 2 -Default: none +\fBnpm init foo\fP \-> \fBnpx create\-foo\fP +.IP \(bu 2 +\fBnpm init @usr/foo\fP \-> \fBnpx @usr/create\-foo\fP .IP \(bu 2 -Type: String +\fBnpm init @usr\fP \-> \fBnpx @usr/create\fP .RE .P -The scope under which the new module should be created\. +Any additional options will be passed directly to the command, so \fBnpm init foo +\-\-hello\fP will map to \fBnpx create\-foo \-\-hello\fP\|\. +.P +If the initializer is omitted (by just calling \fBnpm init\fP), init will fall back +to legacy init behavior\. It will ask you a bunch of questions, and then write a +package\.json for you\. It will attempt to make reasonable guesses based on +existing fields, dependencies, and options selected\. It is strictly additive, so +it will keep any fields and values that were already set\. You can also use +\fB\-y\fP/\fB\-\-yes\fP to skip the questionnaire altogether\. If you pass \fB\-\-scope\fP, it +will create a scoped package\. .SH SEE ALSO .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1 new file mode 100644 index 0000000000..29171fe5c6 --- /dev/null +++ b/deps/npm/man/man1/npm-install-ci-test.1 @@ -0,0 +1,23 @@ +.TH "NPM" "" "May 2018" "" "" +.SH "NAME" +\fBnpm\fR +.SH SYNOPSIS +.P +.RS 2 +.nf +npm install\-ci\-test + +alias: npm cit +.fi +.RE +.SH DESCRIPTION +.P +This command runs an \fBnpm ci\fP followed immediately by an \fBnpm test\fP\|\. +.SH SEE ALSO +.RS 0 +.IP \(bu 2 +npm help ci +.IP \(bu 2 +npm help test + +.RE diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1 index 34a306b520..2aef6db229 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" "" "December 2017" "" "" +.TH "NPM" "" "May 2018" "" "" .SH "NAME" \fBnpm\fR .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index bdbc6794c9..cd5dc40941 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" "December 2017" "" "" +.TH "NPM\-INSTALL" "1" "May 2018" "" "" .SH "NAME" \fBnpm-install\fR \- Install a package .SH SYNOPSIS @@ -62,6 +62,11 @@ after packing it up into a tarball (b)\. With the \fB\-\-production\fP flag (or when the \fBNODE_ENV\fP environment variable is set to \fBproduction\fP), npm will not install modules listed in \fBdevDependencies\fP\|\. +.QP +NOTE: The \fB\-\-production\fP flag has no particular meaning when adding a + dependency to a project\. + +. .IP \(bu 2 \fBnpm install \fP: Install the package in the directory as a symlink in the current project\. @@ -397,7 +402,8 @@ The \fB\-\-no\-shrinkwrap\fP argument, which will ignore an available package lock or shrinkwrap file and use the package\.json instead\. .P The \fB\-\-no\-package\-lock\fP argument will prevent npm from creating a -\fBpackage\-lock\.json\fP file\. +\fBpackage\-lock\.json\fP file\. When running with package\-lock's disabled npm +will not automatically prune your node modules when installing\. .P The \fB\-\-nodedir=/path/to/node/source\fP argument will allow npm to find the node source code so that npm can compile native modules\. @@ -405,6 +411,9 @@ node source code so that npm can compile native modules\. The \fB\-\-only={prod[uction]|dev[elopment]}\fP argument will cause either only \fBdevDependencies\fP or only non\-\fBdevDependencies\fP to be installed regardless of the \fBNODE_ENV\fP\|\. .P +The \fB\-\-no\-audit\fP argument can be used to disable sending of audit reports to +the configured registries\. See npm help \fBnpm\-audit\fP for details on what is sent\. +.P See npm help 7 \fBnpm\-config\fP\|\. Many of the configuration params have some effect on installation, since that's most of what npm does\. .SH ALGORITHM @@ -496,6 +505,8 @@ npm help 5 folders .IP \(bu 2 npm help update .IP \(bu 2 +npm help audit +.IP \(bu 2 npm help link .IP \(bu 2 npm help rebuild diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index 471db86d33..218ccadeb3 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" "December 2017" "" "" +.TH "NPM\-LINK" "1" "May 2018" "" "" .SH "NAME" \fBnpm-link\fR \- Symlink a package folder .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 index fab4c6c135..c0e282b053 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" "December 2017" "" "" +.TH "NPM\-LOGOUT" "1" "May 2018" "" "" .SH "NAME" \fBnpm-logout\fR \- Log out of the registry .SH SYNOPSIS @@ -23,7 +23,7 @@ connected to that scope, if set\. .SH CONFIGURATION .SS registry .P -Default: https://registry\.npmjs\.org/ +Default: https:// .P The base URL of the npm package registry\. If \fBscope\fP is also specified, it takes precedence\. diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index c28056f2d0..5c9a3578d0 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" "December 2017" "" "" +.TH "NPM\-LS" "1" "May 2018" "" "" .SH "NAME" \fBnpm-ls\fR \- List installed packages .SH SYNOPSIS @@ -22,7 +22,7 @@ For example, running \fBnpm ls promzard\fP in npm's source tree will show: .P .RS 2 .nf -npm@5.6.0 /path/to/npm +npm@6.1.0 /path/to/npm ā””ā”€ā”¬ init\-package\-json@0\.0\.4 ā””ā”€ā”€ promzard@0\.1\.5 .fi @@ -98,7 +98,7 @@ Default: false .RE .P Display only the dependency tree for packages in \fBdependencies\fP\|\. -.SS dev +.SS dev / development .RS 0 .IP \(bu 2 Type: Boolean diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index e301f08e44..8938e45db6 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" "December 2017" "" "" +.TH "NPM\-OUTDATED" "1" "May 2018" "" "" .SH "NAME" \fBnpm-outdated\fR \- Check for outdated packages .SH SYNOPSIS @@ -34,6 +34,10 @@ always be seeing only top\-level dependencies that are outdated\. \fBpackage type\fP (when using \fB\-\-long\fP / \fB\-l\fP) tells you whether this package is a \fBdependency\fP or a \fBdevDependency\fP\|\. Packages not included in \fBpackage\.json\fP are always marked \fBdependencies\fP\|\. +.IP \(bu 2 +Red means there's a newer version matching your semver requirements, so you should update now\. +.IP \(bu 2 +Yellow indicates that there's a newer version above your semver requirements (usually new major, or new 0\.x minor) so proceed with caution\. .RE .SS An example @@ -75,10 +79,9 @@ something immutable, like a commit SHA), or it might not, so \fBnpm outdated\fP \fBnpm update\fP have to fetch Git repos to check\. This is why currently doing a reinstall of a Git dependency always forces a new clone and install\. .IP \(bu 2 -\fBnpm@3\.5\.2\fP is marked as "wanted", but "latest" is \fBnpm@3\.5\.1\fP because npm -uses dist\-tags to manage its \fBlatest\fP and \fBnext\fP release channels\. \fBnpm update\fP -will install the \fInewest\fR version, but \fBnpm install npm\fP (with no semver range) -will install whatever's tagged as \fBlatest\fP\|\. +\fBis marked as "wanted", but "latest" is\fP\fBbecause npm +uses dist\-tags to manage its\fPlatest\fBand\fPnext\fBrelease channels\.\fPnpm update\fBwill install the _newest_ version, but\fPnpm install npm\fB(with no semver range) +will install whatever's tagged as\fPlatest`\. .IP \(bu 2 \fBonce\fP is just plain out of date\. Reinstalling \fBnode_modules\fP from scratch or running \fBnpm update\fP will bring it up to spec\. diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index 8e0617d6e7..6c910db02b 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" "December 2017" "" "" +.TH "NPM\-OWNER" "1" "May 2018" "" "" .SH "NAME" \fBnpm-owner\fR \- Manage package owners .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index 633ceac020..b2a23ec1f9 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" "December 2017" "" "" +.TH "NPM\-PACK" "1" "May 2018" "" "" .SH "NAME" \fBnpm-pack\fR \- Create a tarball from a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1 index 3c5a3ed999..3d861b66fd 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" "December 2017" "" "" +.TH "NPM\-PING" "1" "May 2018" "" "" .SH "NAME" \fBnpm-ping\fR \- Ping npm registry .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index f69b65b9ca..9243d892c2 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" "December 2017" "" "" +.TH "NPM\-PREFIX" "1" "May 2018" "" "" .SH "NAME" \fBnpm-prefix\fR \- Display prefix .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1 index 37252a530e..0bf0ba4464 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" "December 2017" "" "" +.TH "NPM\-PROFILE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-profile\fR \- Change settings on your registry profile .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index f84d2e41ec..7b0a438ed7 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,11 +1,11 @@ -.TH "NPM\-PRUNE" "1" "December 2017" "" "" +.TH "NPM\-PRUNE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-prune\fR \- Remove extraneous packages .SH SYNOPSIS .P .RS 2 .nf -npm prune [[<@scope>/]\.\.\.] [\-\-production] +npm prune [[<@scope>/]\.\.\.] [\-\-production] [\-\-dry\-run] [\-\-json] .fi .RE .SH DESCRIPTION @@ -19,8 +19,20 @@ package's dependencies list\. .P If the \fB\-\-production\fP flag is specified or the \fBNODE_ENV\fP environment variable is set to \fBproduction\fP, this command will remove the packages -specified in your \fBdevDependencies\fP\|\. Setting \fB\-\-production=false\fP will +specified in your \fBdevDependencies\fP\|\. Setting \fB\-\-no\-production\fP will negate \fBNODE_ENV\fP being set to \fBproduction\fP\|\. +.P +If the \fB\-\-dry\-run\fP flag is used then no changes will actually be made\. +.P +If the \fB\-\-json\fP flag is used then the changes \fBnpm prune\fP made (or would +have made with \fB\-\-dry\-run\fP) are printed as a JSON object\. +.P +In normal operation with package\-locks enabled, extraneous modules are +pruned automatically when modules are installed and you'll only need +this command with the \fB\-\-production\fP flag\. +.P +If you've disabled package\-locks then extraneous modules will not be removed +and it's up to you to run \fBnpm prune\fP from time\-to\-time to remove them\. .SH SEE ALSO .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index 2764e9e4c4..536ca1fe07 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" "December 2017" "" "" +.TH "NPM\-PUBLISH" "1" "May 2018" "" "" .SH "NAME" \fBnpm-publish\fR \- Publish a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index ab2b80391a..29b14b4ce1 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" "December 2017" "" "" +.TH "NPM\-REBUILD" "1" "May 2018" "" "" .SH "NAME" \fBnpm-rebuild\fR \- Rebuild a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 85b22ead2d..bd09d42531 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" "December 2017" "" "" +.TH "NPM\-REPO" "1" "May 2018" "" "" .SH "NAME" \fBnpm-repo\fR \- Open package repository page in the browser .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index b269a5fb75..cd564b0b11 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" "December 2017" "" "" +.TH "NPM\-RESTART" "1" "May 2018" "" "" .SH "NAME" \fBnpm-restart\fR \- Restart a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index 63901eef3c..623e947741 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" "December 2017" "" "" +.TH "NPM\-ROOT" "1" "May 2018" "" "" .SH "NAME" \fBnpm-root\fR \- Display npm root .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index 2cdde2a46c..8b124e91e5 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" "December 2017" "" "" +.TH "NPM\-RUN\-SCRIPT" "1" "May 2018" "" "" .SH "NAME" \fBnpm-run-script\fR \- Run arbitrary package scripts .SH SYNOPSIS @@ -18,7 +18,7 @@ used by the test, start, restart, and stop commands, but can be called directly, as well\. When the scripts in the package are printed out, they're separated into lifecycle (test, start, restart) and directly\-run scripts\. .P -As of \fBnpm@2\.0\.0\fP \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can +As of ` \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can use custom arguments when executing scripts\. The special option \fB\-\-\fP is used by getopt \fIhttp://goo\.gl/KxMmtG\fR to delimit the end of the options\. npm will pass all the arguments after the \fB\-\-\fP directly to your script: @@ -62,7 +62,7 @@ to run your tests\. The actual shell your script is run within is platform dependent\. By default, on Unix\-like systems it is the \fB/bin/sh\fP command, on Windows it is the \fBcmd\.exe\fP\|\. The actual shell referred to by \fB/bin/sh\fP also depends on the system\. -As of \fBnpm@5\.1\.0\fP \fIhttps://github\.com/npm/npm/releases/tag/v5\.1\.0\fR you can +As of ` \fIhttps://github\.com/npm/npm/releases/tag/v5\.1\.0\fR you can customize the shell with the \fBscript\-shell\fP configuration\. .P Scripts are run from the root of the module, regardless of what your current @@ -82,6 +82,10 @@ If you try to run a script without having a \fBnode_modules\fP directory and it you will be given a warning to run \fBnpm install\fP, just in case you've forgotten\. .P You can use the \fB\-\-silent\fP flag to prevent showing \fBnpm ERR!\fP output on error\. +.P +You can use the \fB\-\-if\-present\fP flag to avoid exiting with a non\-zero exit code +when the script is undefined\. This lets you run potentially undefined scripts +without breaking the execution chain\. .SH SEE ALSO .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index f175c8628c..af6924f0d3 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" "December 2017" "" "" +.TH "NPM\-SEARCH" "1" "May 2018" "" "" .SH "NAME" \fBnpm-search\fR \- Search for packages .SH SYNOPSIS @@ -110,7 +110,7 @@ The age of the cache, in seconds, before another registry request is made\. .SS registry .RS 0 .IP \(bu 2 -Default: https://registry\.npmjs\.org/ +Default: https:// .IP \(bu 2 Type: url diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 00347defa6..4554851803 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" "December 2017" "" "" +.TH "NPM\-SHRINKWRAP" "1" "May 2018" "" "" .SH "NAME" \fBnpm-shrinkwrap\fR \- Lock down dependency versions for publication .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index 44e5147205..7186e4b596 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" "December 2017" "" "" +.TH "NPM\-STAR" "1" "May 2018" "" "" .SH "NAME" \fBnpm-star\fR \- Mark your favorite packages .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index c5a7de3cc3..a28881489c 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" "December 2017" "" "" +.TH "NPM\-STARS" "1" "May 2018" "" "" .SH "NAME" \fBnpm-stars\fR \- View packages marked as favorites .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 index 57b75de5b8..37039b5f66 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" "December 2017" "" "" +.TH "NPM\-START" "1" "May 2018" "" "" .SH "NAME" \fBnpm-start\fR \- Start a package .SH SYNOPSIS @@ -14,7 +14,7 @@ This runs an arbitrary command specified in the package's \fB"start"\fP property its \fB"scripts"\fP object\. If no \fB"start"\fP property is specified on the \fB"scripts"\fP object, it will run \fBnode server\.js\fP\|\. .P -As of \fBnpm@2\.0\.0\fP \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can +As of ` \fIhttp://blog\.npmjs\.org/post/98131109725/npm\-2\-0\-0\fR, you can use custom arguments when executing scripts\. Refer to npm help run\-script for more details\. .SH SEE ALSO diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 index 674ed9a530..94f2e16800 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" "December 2017" "" "" +.TH "NPM\-STOP" "1" "May 2018" "" "" .SH "NAME" \fBnpm-stop\fR \- Stop a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1 index cb75eeeec9..405595ebf7 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" "December 2017" "" "" +.TH "NPM\-TEAM" "1" "May 2018" "" "" .SH "NAME" \fBnpm-team\fR \- Manage organization teams and team memberships .SH SYNOPSIS @@ -37,6 +37,9 @@ ls: If performed on an organization name, will return a list of existing teams under that organization\. If performed on a team, it will instead return a list of all users belonging to that particular team\. +.IP \(bu 2 +edit: +Edit a current team\. .RE .SH DETAILS diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 index 2b03620434..f345ab2c9a 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" "December 2017" "" "" +.TH "NPM\-TEST" "1" "May 2018" "" "" .SH "NAME" \fBnpm-test\fR \- Test a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1 index 8eb645e9fa..b47fe1da35 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" "December 2017" "" "" +.TH "NPM\-TOKEN" "1" "May 2018" "" "" .SH "NAME" \fBnpm-token\fR \- Manage your authentication tokens .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index be83b3f7a8..ade2aa770a 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" "December 2017" "" "" +.TH "NPM\-UNINSTALL" "1" "May 2018" "" "" .SH "NAME" \fBnpm-uninstall\fR \- Remove a package .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index 224e04f1bb..cd4dd2bcfa 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -1,4 +1,4 @@ -.TH "NPM\-UNPUBLISH" "1" "December 2017" "" "" +.TH "NPM\-UNPUBLISH" "1" "May 2018" "" "" .SH "NAME" \fBnpm-unpublish\fR \- Remove a package from the registry .SH SYNOPSIS @@ -32,7 +32,7 @@ package again, a new version number must be used\. With the default registry (\fBregistry\.npmjs\.org\fP), unpublish is only allowed with versions published in the last 24 hours\. If you are trying to unpublish a version published longer ago than that, -contact support@npmjs\.com\. +contact \|\. .P The scope is optional and follows the usual rules for npm help 7 \fBnpm\-scope\fP\|\. .SH SEE ALSO diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index d8ae500df0..70e7d7676c 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" "December 2017" "" "" +.TH "NPM\-UPDATE" "1" "May 2018" "" "" .SH "NAME" \fBnpm-update\fR \- Update a package .SH SYNOPSIS @@ -25,13 +25,17 @@ packages\. If no package name is specified, all packages in the specified location (global or local) will be updated\. .P -As of \fBnpm@2\.6\.1\fP, the \fBnpm update\fP will only inspect top\-level packages\. -Prior versions of \fBnpm\fP would also recursively inspect all dependencies\. -To get the old behavior, use \fBnpm \-\-depth 9999 update\fP\|\. +As of \fB, the\fPnpm update\fBwill only inspect top\-level packages\. +Prior versions of\fPnpm\fBwould also recursively inspect all dependencies\. +To get the old behavior, use\fPnpm \-\-depth 9999 update`\. +.P +As of \fB, the\fPnpm update\fBwill change\fPpackage\.json\fBto save the +new version as the minimum required dependency\. To get the old behavior, +use\fPnpm update \-\-no\-save`\. .SH EXAMPLES .P -IMPORTANT VERSION NOTE: these examples assume \fBnpm@2\.6\.1\fP or later\. For -older versions of \fBnpm\fP, you must specify \fB\-\-depth 0\fP to get the behavior +IMPORTANT VERSION NOTE: these examples assume \fBor later\. For +older versions of\fPnpm\fB, you must specify\fP\-\-depth 0` to get the behavior described below\. .P For the examples below, assume that the current package is \fBapp\fP and it depends @@ -67,8 +71,7 @@ If \fBapp\fP\|'s \fBpackage\.json\fP contains: .fi .RE .P -Then \fBnpm update\fP will install \fBdep1@1\.2\.2\fP, because \fB1\.2\.2\fP is \fBlatest\fP and -\fB1\.2\.2\fP satisfies \fB^1\.1\.1\fP\|\. +Then \fBnpm update\fP will install \fB, because\fP1\.2\.2\fBis\fPlatest\fBand\fP1\.2\.2\fBsatisfies\fP^1\.1\.1`\. .SS Tilde Dependencies .P However, if \fBapp\fP\|'s \fBpackage\.json\fP contains: @@ -81,10 +84,9 @@ However, if \fBapp\fP\|'s \fBpackage\.json\fP contains: .fi .RE .P -In this case, running \fBnpm update\fP will install \fBdep1@1\.1\.2\fP\|\. Even though the \fBlatest\fP -tag points to \fB1\.2\.2\fP, this version does not satisfy \fB~1\.1\.1\fP, which is equivalent -to \fB>=1\.1\.1 <1\.2\.0\fP\|\. So the highest\-sorting version that satisfies \fB~1\.1\.1\fP is used, -which is \fB1\.1\.2\fP\|\. +In this case, running \fBnpm update\fP will install \fB\|\. Even though the\fPlatest\fBtag points to\fP1\.2\.2\fB, this version does not satisfy\fP~1\.1\.1\fB, which is equivalent +to\fP>=1\.1\.1 <1\.2\.0\fB\|\. So the highest\-sorting version that satisfies\fP~1\.1\.1\fBis used, +which is\fP1\.1\.2`\. .SS Caret Dependencies below 1\.0\.0 .P Suppose \fBapp\fP has a caret dependency on a version below \fB1\.0\.0\fP, for example: @@ -97,8 +99,8 @@ Suppose \fBapp\fP has a caret dependency on a version below \fB1\.0\.0\fP, for e .fi .RE .P -\fBnpm update\fP will install \fBdep1@0\.2\.0\fP, because there are no other -versions which satisfy \fB^0\.2\.0\fP\|\. +\fBnpm update\fP will install \fB, because there are no other +versions which satisfy\fP^0\.2\.0`\. .P If the dependence were on \fB^0\.4\.0\fP: .P @@ -110,36 +112,8 @@ If the dependence were on \fB^0\.4\.0\fP: .fi .RE .P -Then \fBnpm update\fP will install \fBdep1@0\.4\.1\fP, because that is the highest\-sorting -version that satisfies \fB^0\.4\.0\fP (\fB>= 0\.4\.0 <0\.5\.0\fP) -.SS Recording Updates with \fB\-\-save\fP -.P -When you want to update a package and save the new version as -the minimum required dependency in \fBpackage\.json\fP, you can use -\fBnpm update \-S\fP or \fBnpm update \-\-save\fP\|\. For example if -\fBpackage\.json\fP contains: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^1\.1\.1" -} -.fi -.RE -.P -Then \fBnpm update \-\-save\fP will install \fBdep1@1\.2\.2\fP (i\.e\., \fBlatest\fP), -and \fBpackage\.json\fP will be modified: -.P -.RS 2 -.nf -"dependencies": { - "dep1": "^1\.2\.2" -} -.fi -.RE -.P -Note that \fBnpm\fP will only write an updated version to \fBpackage\.json\fP -if it installs a new package\. +Then \fBnpm update\fP will install \fB, because that is the highest\-sorting +version that satisfies\fP^0\.4\.0\fB(\fP>= 0\.4\.0 <0\.5\.0`) .SS Updating Globally\-Installed Packages .P \fBnpm update \-g\fP will apply the \fBupdate\fP action to each globally installed diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 9601e4f188..c86e8e5d0b 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" "December 2017" "" "" +.TH "NPM\-VERSION" "1" "May 2018" "" "" .SH "NAME" \fBnpm-version\fR \- Bump a package version .SH SYNOPSIS @@ -15,7 +15,7 @@ npm version [ | major | minor | patch | premajor | preminor | prepat .SH DESCRIPTION .P Run this in a package directory to bump the version and write the new -data back to \fBpackage\.json\fP and, if present, \fBnpm\-shrinkwrap\.json\fP\|\. +data back to \fBpackage\.json\fP, \fBpackage\-lock\.json\fP, and, if present, \fBnpm\-shrinkwrap\.json\fP\|\. .P The \fBnewversion\fP argument should be a valid semver string, a valid second argument to semver\.inc \fIhttps://github\.com/npm/node\-semver#functions\fR (one of \fBpatch\fP, \fBminor\fP, \fBmajor\fP, diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index 2c18268271..b17739904f 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" "December 2017" "" "" +.TH "NPM\-VIEW" "1" "May 2018" "" "" .SH "NAME" \fBnpm-view\fR \- View registry info .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index 2f096ac2a0..4e375a9ab7 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" "December 2017" "" "" +.TH "NPM\-WHOAMI" "1" "May 2018" "" "" .SH "NAME" \fBnpm-whoami\fR \- Display npm username .SH SYNOPSIS diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index 42eb296250..c77fae3a3c 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "December 2017" "" "" +.TH "NPM" "1" "May 2018" "" "" .SH "NAME" \fBnpm\fR \- javascript package manager .SH SYNOPSIS @@ -10,7 +10,7 @@ npm [args] .RE .SH VERSION .P -5.6.0 +6.1.0 .SH DESCRIPTION .P npm is the package manager for the Node JavaScript platform\. It puts @@ -105,7 +105,7 @@ Command line switches: .br Set a config with \fB\-\-key val\fP\|\. All keys take a value, even if they are booleans (the config parser doesn't know what the options are at -the time of parsing\.) If no value is provided, then the option is set +the time of parsing)\. If no value is provided, then the option is set to boolean \fBtrue\fP\|\. .IP \(bu 2 Environment Variables: @@ -156,7 +156,7 @@ If you would like to contribute, but don't know what to work on, read the contributing guidelines and check the issues list\. .RS 0 .IP \(bu 2 -https://github\.com/npm/npm/wiki/Contributing\-Guidelines +https:// .IP \(bu 2 https://github\.com/npm/npm/issues diff --git a/deps/npm/man/man1/npx.1 b/deps/npm/man/man1/npx.1 index 912effdc3b..d00c489c39 100644 --- a/deps/npm/man/man1/npx.1 +++ b/deps/npm/man/man1/npx.1 @@ -1,4 +1,4 @@ -.TH "NPX" "1" "October 2017" "npx@9.7.0" "User Commands" +.TH "NPX" "1" "April 2018" "npx@10.1.1" "User Commands" .SH "NAME" \fBnpx\fR \- execute npm package binaries .SH SYNOPSIS @@ -101,6 +101,13 @@ $ npx \-\-node\-arg=\-\-inspect cowsay Debugger listening on ws://127\.0\.0\.1:9229/\.\.\.\. .fi .RE +.SS Specify a node version to run npm scripts (or anything else!) +.P +.RS 2 +.nf +npx \-p node@8 npm run build +.fi +.RE .SH SHELL AUTO FALLBACK .P You can configure \fBnpx\fP to run as your default fallback command when you type something in the command line with an \fB@\fP but the command is not found\. This includes installing packages that were not found in the local prefix either\. diff --git a/deps/npm/man/man5/npm-folders.5 b/deps/npm/man/man5/npm-folders.5 index a252685bd0..32abfe6956 100644 --- a/deps/npm/man/man5/npm-folders.5 +++ b/deps/npm/man/man5/npm-folders.5 @@ -1,4 +1,4 @@ -.TH "NPM\-FOLDERS" "5" "December 2017" "" "" +.TH "NPM\-FOLDERS" "5" "May 2018" "" "" .SH "NAME" \fBnpm-folders\fR \- Folder Structures Used by npm .SH DESCRIPTION @@ -69,7 +69,7 @@ Man pages are not installed on Windows systems\. .SS Cache .P See npm help \fBnpm\-cache\fP\|\. Cache files are stored in \fB~/\.npm\fP on Posix, or -\fB~/npm\-cache\fP on Windows\. +\fB%AppData%/npm\-cache\fP on Windows\. .P This is controlled by the \fBcache\fP configuration param\. .SS Temp Files @@ -173,17 +173,17 @@ foo .fi .RE .P -Since foo depends directly on \fBbar@1\.2\.3\fP and \fBbaz@1\.2\.3\fP, those are -installed in foo's \fBnode_modules\fP folder\. +Since foo depends directly on \fBand\fP\fB, those are +installed in foo's\fPnode_modules` folder\. .P Even though the latest copy of blerg is 1\.3\.7, foo has a specific dependency on version 1\.2\.5\. So, that gets installed at [A]\. Since the -parent installation of blerg satisfies bar's dependency on \fBblerg@1\.x\fP, +parent installation of blerg satisfies bar's dependency on `, it does not install another copy under [B]\. .P Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's \fBnode_modules\fP folder\. Because it depends on \fBbaz@2\.x\fP, it cannot -re\-use the \fBbaz@1\.2\.3\fP installed in the parent \fBnode_modules\fP folder [D], +bar's \fBnode_modules\fP folder\. Because it depends on \fB, it cannot +re\-use the\fP\fBinstalled in the parent\fPnode_modules` folder [D], and must install its own copy [C]\. .P Underneath bar, the \fBbaz \-> quux \-> bar\fP dependency creates a cycle\. diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5 index a252685bd0..32abfe6956 100644 --- a/deps/npm/man/man5/npm-global.5 +++ b/deps/npm/man/man5/npm-global.5 @@ -1,4 +1,4 @@ -.TH "NPM\-FOLDERS" "5" "December 2017" "" "" +.TH "NPM\-FOLDERS" "5" "May 2018" "" "" .SH "NAME" \fBnpm-folders\fR \- Folder Structures Used by npm .SH DESCRIPTION @@ -69,7 +69,7 @@ Man pages are not installed on Windows systems\. .SS Cache .P See npm help \fBnpm\-cache\fP\|\. Cache files are stored in \fB~/\.npm\fP on Posix, or -\fB~/npm\-cache\fP on Windows\. +\fB%AppData%/npm\-cache\fP on Windows\. .P This is controlled by the \fBcache\fP configuration param\. .SS Temp Files @@ -173,17 +173,17 @@ foo .fi .RE .P -Since foo depends directly on \fBbar@1\.2\.3\fP and \fBbaz@1\.2\.3\fP, those are -installed in foo's \fBnode_modules\fP folder\. +Since foo depends directly on \fBand\fP\fB, those are +installed in foo's\fPnode_modules` folder\. .P Even though the latest copy of blerg is 1\.3\.7, foo has a specific dependency on version 1\.2\.5\. So, that gets installed at [A]\. Since the -parent installation of blerg satisfies bar's dependency on \fBblerg@1\.x\fP, +parent installation of blerg satisfies bar's dependency on `, it does not install another copy under [B]\. .P Bar [B] also has dependencies on baz and asdf, so those are installed in -bar's \fBnode_modules\fP folder\. Because it depends on \fBbaz@2\.x\fP, it cannot -re\-use the \fBbaz@1\.2\.3\fP installed in the parent \fBnode_modules\fP folder [D], +bar's \fBnode_modules\fP folder\. Because it depends on \fB, it cannot +re\-use the\fP\fBinstalled in the parent\fPnode_modules` folder [D], and must install its own copy [C]\. .P Underneath bar, the \fBbaz \-> quux \-> bar\fP dependency creates a cycle\. diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 index 0a4328f73f..2c24a01ab7 100644 --- a/deps/npm/man/man5/npm-json.5 +++ b/deps/npm/man/man5/npm-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\.JSON" "5" "December 2017" "" "" +.TH "PACKAGE\.JSON" "5" "May 2018" "" "" .SH "NAME" \fBpackage.json\fR \- Specifics of npm's package\.json handling .SH DESCRIPTION @@ -10,11 +10,11 @@ A lot of the behavior described in this document is affected by the config settings described in npm help 7 \fBnpm\-config\fP\|\. .SH name .P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. +If you plan to publish your package, the \fImost\fR important things in your +package\.json are the name and version fields as they will be required\. The name +and version together form an identifier that is assumed to be completely unique\. +Changes to the package should come along with changes to the version\. If you don't +plan to publish your package, the name and version fields are optional\. .P The name is what your thing is called\. .P @@ -54,11 +54,11 @@ A name can be optionally prefixed by a scope, e\.g\. \fB@myorg/mypackage\fP\|\. npm help 7 \fBnpm\-scope\fP for more detail\. .SH version .P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. +If you plan to publish your package, the \fImost\fR important things in your +package\.json are the name and version fields as they will be required\. The name +and version together form an identifier that is assumed to be completely unique\. +Changes to the package should come along with changes to the version\. If you don't +plan to publish your package, the name and version fields are optional\. .P Version must be parseable by node\-semver \fIhttps://github\.com/isaacs/node\-semver\fR, which is bundled @@ -76,6 +76,14 @@ discover your package as it's listed in \fBnpm search\fP\|\. .SH homepage .P The url to the project homepage\. +.P +Example: +.P +.RS 2 +.nf +"homepage": "https://github\.com/owner/project#readme" +.fi +.RE .SH bugs .P The url to your project's issue tracker and / or the email address to which @@ -207,13 +215,15 @@ Both email and url are optional either way\. npm also sets a top\-level "maintainers" field with your npm user info\. .SH files .P -The optional "files" field is an array of file patterns that describes +The optional \fBfiles\fP field is an array of file patterns that describes the entries to be included when your package is installed as a -dependency\. If the files array is omitted, everything except -automatically\-excluded files will be included in your publish\. If you -name a folder in the array, then it will also include the files inside -that folder (unless they would be ignored by another rule in this -section\.)\. +dependency\. File patterns follow a similar syntax to \fB\|\.gitignore\fP, but +reversed: including a file, directory, or glob pattern (\fB*\fP, \fB**/*\fP, and such) +will make it so that file is included in the tarball when it's packed\. Omitting +the field will make it default to \fB["*"]\fP, which means it will include all files\. +.P +Some special files and directories are also included or excluded regardless of +whether they exist in the \fBfiles\fP array (see below)\. .P You can also provide a \fB\|\.npmignore\fP file in the root of your package or in subdirectories, which will keep files from being included\. At the @@ -288,6 +298,11 @@ This should be a module ID relative to the root of your package folder\. .P For most modules, it makes the most sense to have a main script and often not much else\. +.SH browser +.P +If your module is meant to be used client\-side the browser field should be +used instead of the main field\. This is helpful to hint users that it might +rely on primitives that aren't available in Node\.js modules\. (e\.g\. \fBwindow\fP) .SH bin .P A lot of packages have one or more executable files that they'd like to @@ -901,8 +916,8 @@ especially handy if you want to set the tag, registry or access, so that you can ensure that a given package is not tagged with "latest", published to the global public registry or that a scoped module is private by default\. .P -Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing\. +Any config values can be overridden, but only "tag", "registry" and "access" +probably matter for the purposes of publishing\. .P See npm help 7 \fBnpm\-config\fP to see the list of config options that can be overridden\. diff --git a/deps/npm/man/man5/npm-package-locks.5 b/deps/npm/man/man5/npm-package-locks.5 index 241a45d9bb..91f43b921c 100644 --- a/deps/npm/man/man5/npm-package-locks.5 +++ b/deps/npm/man/man5/npm-package-locks.5 @@ -1,4 +1,4 @@ -.TH "NPM\-PACKAGE\-LOCKS" "5" "December 2017" "" "" +.TH "NPM\-PACKAGE\-LOCKS" "5" "May 2018" "" "" .SH "NAME" \fBnpm-package-locks\fR \- An explanation of npm lockfiles .SH DESCRIPTION @@ -71,7 +71,7 @@ A@0\.1\.0 .fi .RE .P -However, if B@0\.0\.2 is published, then a fresh \fBnpm install A\fP will +However, if is published, then a fresh \fBnpm install A\fP will install: .P .RS 2 @@ -85,7 +85,7 @@ A@0\.1\.0 assuming the new version did not modify B's dependencies\. Of course, the new version of B could include a new version of C and any number of new dependencies\. If such changes are undesirable, the author of A -could specify a dependency on B@0\.0\.1\. However, if A's author and B's +could specify a dependency on \|\. However, if A's author and B's author are not the same person, there's no way for A's author to say that he or she does not want to pull in newly published versions of C when B hasn't changed at all\. @@ -167,10 +167,25 @@ package source to get the exact same dependency tree that you were developing on\. Additionally, the diffs from these changes are human\-readable and will inform you of any changes npm has made to your \fBnode_modules\fP, so you can notice if any transitive dependencies were updated, hoisted, etc\. +.SS Resolving lockfile conflicts +.P +Occasionally, two separate npm install will create package locks that cause +merge conflicts in source control systems\. As of \fB, these conflicts +can be resolved by manually fixing any\fPpackage\.json\fBconflicts, and then +running\fPnpm install [\-\-package\-lock\-only]\fBagain\. npm will automatically +resolve any conflicts for you and write a merged package lock that includes all +the dependencies from both branches in a reasonable tree\. If\fP\-\-package\-lock\-only\fBis provided, it will do this without also modifying your +local\fPnode_modules/`\. +.P +To make this process seamless on git, consider installing +\fBnpm\-merge\-driver\fP \fIhttps://npm\.im/npm\-merge\-driver\fR, which will teach git how +to do this itself without any user interaction\. In short: \fB$ npx +npm\-merge\-driver install \-g\fP will let you do this, and even works with +\fBversions of npm 5, albeit a bit more noisily\. Note that if\fPpackage\.json\fBitself conflicts, you will have to resolve that by hand and run\fPnpm install` manually, even with the merge driver\. .SH SEE ALSO .RS 0 .IP \(bu 2 -https://medium\.com/@sdboyer/so\-you\-want\-to\-write\-a\-package\-manager\-4ae9c17d9527 +https:// .IP \(bu 2 npm help 5 package\.json .IP \(bu 2 diff --git a/deps/npm/man/man5/npm-shrinkwrap.json.5 b/deps/npm/man/man5/npm-shrinkwrap.json.5 index a832963dc6..6efde4a7d9 100644 --- a/deps/npm/man/man5/npm-shrinkwrap.json.5 +++ b/deps/npm/man/man5/npm-shrinkwrap.json.5 @@ -1,4 +1,4 @@ -.TH "NPM\-SHRINKWRAP\.JSON" "5" "December 2017" "" "" +.TH "NPM\-SHRINKWRAP\.JSON" "5" "May 2018" "" "" .SH "NAME" \fBnpm-shrinkwrap.json\fR \- A publishable lockfile .SH DESCRIPTION diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 index 26d65c2598..d9d90e1465 100644 --- a/deps/npm/man/man5/npmrc.5 +++ b/deps/npm/man/man5/npmrc.5 @@ -1,4 +1,4 @@ -.TH "NPMRC" "5" "December 2017" "" "" +.TH "NPMRC" "5" "May 2018" "" "" .SH "NAME" \fBnpmrc\fR \- The npm config files .SH DESCRIPTION diff --git a/deps/npm/man/man5/package-lock.json.5 b/deps/npm/man/man5/package-lock.json.5 index 0196cc87e6..c67cd1f0cc 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" "December 2017" "" "" +.TH "PACKAGE\-LOCK\.JSON" "5" "May 2018" "" "" .SH "NAME" \fBpackage-lock.json\fR \- A manifestation of the manifest .SH DESCRIPTION @@ -127,6 +127,12 @@ transitive dependency of a non\-optional dependency of the top level\. .P All optional dependencies should be included even if they're uninstallable on the current platform\. +.SS requires +.P +This is a mapping of module name to version\. This is a list of everything +this module requires, regardless of where it will be installed\. The version +should match via normal matching rules a dependency either in our +\fBdependencies\fP or in a level higher than us\. .SS dependencies .P The dependencies of this dependency, exactly as at the top level\. @@ -137,6 +143,8 @@ npm help shrinkwrap .IP \(bu 2 npm help 5 shrinkwrap\.json .IP \(bu 2 +npm help 5 package\-locks +.IP \(bu 2 npm help 5 package\.json .IP \(bu 2 npm help install diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5 index 0a4328f73f..2c24a01ab7 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" "December 2017" "" "" +.TH "PACKAGE\.JSON" "5" "May 2018" "" "" .SH "NAME" \fBpackage.json\fR \- Specifics of npm's package\.json handling .SH DESCRIPTION @@ -10,11 +10,11 @@ A lot of the behavior described in this document is affected by the config settings described in npm help 7 \fBnpm\-config\fP\|\. .SH name .P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. +If you plan to publish your package, the \fImost\fR important things in your +package\.json are the name and version fields as they will be required\. The name +and version together form an identifier that is assumed to be completely unique\. +Changes to the package should come along with changes to the version\. If you don't +plan to publish your package, the name and version fields are optional\. .P The name is what your thing is called\. .P @@ -54,11 +54,11 @@ A name can be optionally prefixed by a scope, e\.g\. \fB@myorg/mypackage\fP\|\. npm help 7 \fBnpm\-scope\fP for more detail\. .SH version .P -The \fImost\fR important things in your package\.json are the name and version fields\. -Those are actually required, and your package won't install without -them\. The name and version together form an identifier that is assumed -to be completely unique\. Changes to the package should come along with -changes to the version\. +If you plan to publish your package, the \fImost\fR important things in your +package\.json are the name and version fields as they will be required\. The name +and version together form an identifier that is assumed to be completely unique\. +Changes to the package should come along with changes to the version\. If you don't +plan to publish your package, the name and version fields are optional\. .P Version must be parseable by node\-semver \fIhttps://github\.com/isaacs/node\-semver\fR, which is bundled @@ -76,6 +76,14 @@ discover your package as it's listed in \fBnpm search\fP\|\. .SH homepage .P The url to the project homepage\. +.P +Example: +.P +.RS 2 +.nf +"homepage": "https://github\.com/owner/project#readme" +.fi +.RE .SH bugs .P The url to your project's issue tracker and / or the email address to which @@ -207,13 +215,15 @@ Both email and url are optional either way\. npm also sets a top\-level "maintainers" field with your npm user info\. .SH files .P -The optional "files" field is an array of file patterns that describes +The optional \fBfiles\fP field is an array of file patterns that describes the entries to be included when your package is installed as a -dependency\. If the files array is omitted, everything except -automatically\-excluded files will be included in your publish\. If you -name a folder in the array, then it will also include the files inside -that folder (unless they would be ignored by another rule in this -section\.)\. +dependency\. File patterns follow a similar syntax to \fB\|\.gitignore\fP, but +reversed: including a file, directory, or glob pattern (\fB*\fP, \fB**/*\fP, and such) +will make it so that file is included in the tarball when it's packed\. Omitting +the field will make it default to \fB["*"]\fP, which means it will include all files\. +.P +Some special files and directories are also included or excluded regardless of +whether they exist in the \fBfiles\fP array (see below)\. .P You can also provide a \fB\|\.npmignore\fP file in the root of your package or in subdirectories, which will keep files from being included\. At the @@ -288,6 +298,11 @@ This should be a module ID relative to the root of your package folder\. .P For most modules, it makes the most sense to have a main script and often not much else\. +.SH browser +.P +If your module is meant to be used client\-side the browser field should be +used instead of the main field\. This is helpful to hint users that it might +rely on primitives that aren't available in Node\.js modules\. (e\.g\. \fBwindow\fP) .SH bin .P A lot of packages have one or more executable files that they'd like to @@ -901,8 +916,8 @@ especially handy if you want to set the tag, registry or access, so that you can ensure that a given package is not tagged with "latest", published to the global public registry or that a scoped module is private by default\. .P -Any config values can be overridden, but of course only "tag", "registry" and -"access" probably matter for the purposes of publishing\. +Any config values can be overridden, but only "tag", "registry" and "access" +probably matter for the purposes of publishing\. .P See npm help 7 \fBnpm\-config\fP to see the list of config options that can be overridden\. diff --git a/deps/npm/man/man7/npm-coding-style.7 b/deps/npm/man/man7/npm-coding-style.7 index 508198722d..5af2d71a04 100644 --- a/deps/npm/man/man7/npm-coding-style.7 +++ b/deps/npm/man/man7/npm-coding-style.7 @@ -1,4 +1,4 @@ -.TH "NPM\-CODING\-STYLE" "7" "December 2017" "" "" +.TH "NPM\-CODING\-STYLE" "7" "May 2018" "" "" .SH "NAME" \fBnpm-coding-style\fR \- npm's "funny" coding style .SH DESCRIPTION @@ -147,7 +147,7 @@ var alsoOk = "String contains 'single' quotes or apostrophe" .RE .SH Whitespace .P -Put a single space in front of ( for anything other than a function call\. +Put a single space in front of \fB(\fP for anything other than a function call\. Also use a single space wherever it makes things more readable\. .P Don't leave trailing whitespace at the end of lines\. Don't indent empty diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7 index aec6d8014c..c2e7748798 100644 --- a/deps/npm/man/man7/npm-config.7 +++ b/deps/npm/man/man7/npm-config.7 @@ -1,4 +1,4 @@ -.TH "NPM\-CONFIG" "7" "December 2017" "" "" +.TH "NPM\-CONFIG" "7" "May 2018" "" "" .SH "NAME" \fBnpm-config\fR \- More than you probably want to know about npm configuration .SH DESCRIPTION @@ -211,6 +211,18 @@ Type: String .P When "dev" or "development" and running local \fBnpm shrinkwrap\fP, \fBnpm outdated\fP, or \fBnpm update\fP, is an alias for \fB\-\-dev\fP\|\. +.SS audit +.RS 0 +.IP \(bu 2 +Default: true +.IP \(bu 2 +Type: Boolean + +.RE +.P +When "true" submit audit reports alongside \fBnpm install\fP runs to the default +registry and all registries configured for scopes\. See the documentation +for npm help audit for details on what is submitted\. .SS auth\-type .RS 0 .IP \(bu 2 @@ -394,6 +406,9 @@ Type: Boolean or \fB"always"\fP .P If false, never shows colors\. If \fB"always"\fP then always shows colors\. If true, then only prints color codes for tty file descriptors\. +.P +This option can also be changed using the environment: colors are +disabled when the environment variable \fBNO_COLOR\fP is set to any value\. .SS depth .RS 0 .IP \(bu 2 @@ -902,7 +917,7 @@ Any "%s" in the message will be replaced with the version number\. .SS metrics\-registry .RS 0 .IP \(bu 2 -Default: The value of \fBregistry\fP (which defaults to "https://registry\.npmjs\.org/") +Default: The value of \fBregistry\fP (which defaults to "https:// .IP \(bu 2 Type: String @@ -931,6 +946,16 @@ Type: semver or false .RE .P The node version to use when checking a package's \fBengines\fP map\. +.SS no\-proxy +.RS 0 +.IP \(bu 2 +Default: null +.IP \(bu 2 +Type: String or Array + +.RE +.P +A comma\-separated string or an array of domain extensions that a proxy should not be used for\. .SS offline .RS 0 .IP \(bu 2 @@ -1009,6 +1034,10 @@ Type: Boolean If set to false, then ignore \fBpackage\-lock\.json\fP files when installing\. This will also prevent \fIwriting\fR \fBpackage\-lock\.json\fP if \fBsave\fP is true\. .P +When package package\-locks are disabled, automatic pruning of extraneous +modules will also be disabled\. To remove extraneous modules with +package\-locks disabled use \fBnpm prune\fP\|\. +.P This option is an alias for \fB\-\-shrinkwrap\fP\|\. .SS package\-lock\-only .RS 0 @@ -1019,7 +1048,7 @@ Type: Boolean .RE .P -If set to true, it will update only the \fBpackage\-json\fP, +If set to true, it will update only the \fBpackage\-lock\.json\fP, instead of checking \fBnode_modules\fP and downloading dependencies\. .SS parseable .RS 0 @@ -1133,7 +1162,7 @@ Rebuild bundled dependencies after installation\. .SS registry .RS 0 .IP \(bu 2 -Default: https://registry\.npmjs\.org/ +Default: https:// .IP \(bu 2 Type: url @@ -1153,7 +1182,7 @@ Remove failed installs\. .SS save .RS 0 .IP \(bu 2 -Default: false +Default: true .IP \(bu 2 Type: Boolean diff --git a/deps/npm/man/man7/npm-developers.7 b/deps/npm/man/man7/npm-developers.7 index d9e483206a..9d10c9cc4d 100644 --- a/deps/npm/man/man7/npm-developers.7 +++ b/deps/npm/man/man7/npm-developers.7 @@ -1,4 +1,4 @@ -.TH "NPM\-DEVELOPERS" "7" "December 2017" "" "" +.TH "NPM\-DEVELOPERS" "7" "May 2018" "" "" .SH "NAME" \fBnpm-developers\fR \- Developer Guide .SH DESCRIPTION @@ -68,7 +68,7 @@ This should be a string that identifies your project\. Please do not use the name to specify that it runs on node, or is in JavaScript\. You can use the "engines" field to explicitly state the versions of node (or whatever else) that your program requires, and it's pretty -well assumed that it's javascript\. +well assumed that it's JavaScript\. It does not necessarily need to match your github repository name\. So, \fBnode\-foo\fP and \fBbar\-js\fP are bad names\. \fBfoo\fP or \fBbar\fP are better\. .IP \(bu 2 diff --git a/deps/npm/man/man7/npm-disputes.7 b/deps/npm/man/man7/npm-disputes.7 index 642abcf178..ccdaed5975 100644 --- a/deps/npm/man/man7/npm-disputes.7 +++ b/deps/npm/man/man7/npm-disputes.7 @@ -1,4 +1,4 @@ -.TH "NPM\-DISPUTES" "7" "December 2017" "" "" +.TH "NPM\-DISPUTES" "7" "May 2018" "" "" .SH "NAME" \fBnpm-disputes\fR \- Handling Module Name Disputes .P @@ -46,7 +46,7 @@ publishes it to the npm registry\. Being a simple little thing, it never really has to be updated\. Alice works for Foo Inc, the makers of the critically acclaimed and widely\-marketed \fBfoo\fP JavaScript toolkit framework\. They publish it to npm as \fBfoojs\fP, but people are routinely confused when -\fBnpm install\fPfoo`` is some different thing\. +\fBnpm install\fPfoo\fB\fP is some different thing\. .IP 4. 3 Yusuf writes a parser for the widely\-known \fBfoo\fP file format, because he needs it for work\. Then, he gets a new job, and never updates the prototype\. @@ -120,7 +120,7 @@ here to help\.\fR .P If you think another npm publisher is infringing your trademark, such as by using a confusingly similar package name, email abuse@npmjs\.com with a link to -the package or user account on \fIhttps://npmjs\.com\fR\|\. Attach a +the package or user account on https:// \fIhttps://npmjs\.com\fR\|\. Attach a copy of your trademark registration certificate\. .P If we see that the package's publisher is intentionally misleading others by diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7 index 77a70e6cc6..23327c713c 100644 --- a/deps/npm/man/man7/npm-index.7 +++ b/deps/npm/man/man7/npm-index.7 @@ -1,4 +1,4 @@ -.TH "NPM\-INDEX" "7" "December 2017" "" "" +.TH "NPM\-INDEX" "7" "May 2018" "" "" .SH "NAME" \fBnpm-index\fR \- Index of all npm documentation .SS npm help README @@ -16,6 +16,9 @@ Set access level on published packages .SS npm help adduser .P Add a registry user account +.SS npm help audit +.P +Run a security audit .SS npm help bin .P Display npm bin folder @@ -31,6 +34,9 @@ REMOVED .SS npm help cache .P Manipulates packages cache +.SS npm help ci +.P +Install a project with a clean slate .SS npm help completion .P Tab Completion for npm @@ -64,9 +70,15 @@ Search npm help documentation .SS npm help help .P Get help on npm +.SS npm help hook +.P +Manage registry hooks .SS npm help init .P -Interactively create a package\.json file +create a package\.json file +.SS npm help install\-ci\-test +.P +Install a project with a clean slate and run tests .SS npm help install\-test .P Install package(s) and run tests diff --git a/deps/npm/man/man7/npm-orgs.7 b/deps/npm/man/man7/npm-orgs.7 index d1c3588ad8..fa4d2aa0d6 100644 --- a/deps/npm/man/man7/npm-orgs.7 +++ b/deps/npm/man/man7/npm-orgs.7 @@ -1,4 +1,4 @@ -.TH "NPM\-ORGS" "7" "December 2017" "" "" +.TH "NPM\-ORGS" "7" "May 2018" "" "" .SH "NAME" \fBnpm-orgs\fR \- Working with Teams & Orgs .SH DESCRIPTION diff --git a/deps/npm/man/man7/npm-registry.7 b/deps/npm/man/man7/npm-registry.7 index a51170a387..e04928610f 100644 --- a/deps/npm/man/man7/npm-registry.7 +++ b/deps/npm/man/man7/npm-registry.7 @@ -1,4 +1,4 @@ -.TH "NPM\-REGISTRY" "7" "December 2017" "" "" +.TH "NPM\-REGISTRY" "7" "May 2018" "" "" .SH "NAME" \fBnpm-registry\fR \- The JavaScript Package Registry .SH DESCRIPTION diff --git a/deps/npm/man/man7/npm-scope.7 b/deps/npm/man/man7/npm-scope.7 index 16e42f4bf0..9a7a1809bd 100644 --- a/deps/npm/man/man7/npm-scope.7 +++ b/deps/npm/man/man7/npm-scope.7 @@ -1,4 +1,4 @@ -.TH "NPM\-SCOPE" "7" "December 2017" "" "" +.TH "NPM\-SCOPE" "7" "May 2018" "" "" .SH "NAME" \fBnpm-scope\fR \- Scoped packages .SH DESCRIPTION @@ -86,7 +86,7 @@ to \fBpublic\fP as if you had run \fBnpm access public\fP after publishing\. .SS Publishing private scoped packages to the npm registry .P To publish a private scoped package to the npm registry, you must have -an npm Private Modules \fIhttps://www\.npmjs\.com/private\-modules\fR +an npm Private Modules \fIhttps://docs\.npmjs\.com/private\-modules/intro\fR account\. .P You can then publish the module with \fBnpm publish\fP or \fBnpm publish diff --git a/deps/npm/man/man7/npm-scripts.7 b/deps/npm/man/man7/npm-scripts.7 index bd0383116b..4b9e666bae 100644 --- a/deps/npm/man/man7/npm-scripts.7 +++ b/deps/npm/man/man7/npm-scripts.7 @@ -1,4 +1,4 @@ -.TH "NPM\-SCRIPTS" "7" "December 2017" "" "" +.TH "NPM\-SCRIPTS" "7" "May 2018" "" "" .SH "NAME" \fBnpm-scripts\fR \- How npm handles the "scripts" field .SH DESCRIPTION @@ -78,15 +78,15 @@ names will be run for those as well (e\.g\. \fBpremyscript\fP, \fBmyscript\fP, .SH PREPUBLISH AND PREPARE .SS DEPRECATION NOTE .P -Since \fBnpm@1\.1\.71\fP, the npm CLI has run the \fBprepublish\fP script for both \fBnpm -publish\fP and \fBnpm install\fP, because it's a convenient way to prepare a package +Since \fB, the npm CLI has run the\fPprepublish\fBscript for both\fPnpm +publish\fBand\fPnpm install\fB, because it's a convenient way to prepare a package for use (some common use cases are described in the section below)\. It has -also turned out to be, in practice, very -confusing \fIhttps://github\.com/npm/npm/issues/10074\fR\|\. As of \fBnpm@4\.0\.0\fP, a new -event has been introduced, \fBprepare\fP, that preserves this existing behavior\. A -\fInew\fR event, \fBprepublishOnly\fP has been added as a transitional strategy to +also turned out to be, in practice, [very +confusing](https://github\.com/npm/npm/issues/10074)\. As of\fP\fB, a new +event has been introduced,\fPprepare\fB, that preserves this existing behavior\. A +_new_ event,\fPprepublishOnly\fBhas been added as a transitional strategy to allow users to avoid the confusing behavior of existing npm versions and only -run on \fBnpm publish\fP (for instance, running the tests one last time to ensure +run on\fPnpm publish` (for instance, running the tests one last time to ensure they're in good shape)\. .P See https://github\.com/npm/npm/issues/10074 for a much lengthier diff --git a/deps/npm/man/man7/removing-npm.7 b/deps/npm/man/man7/removing-npm.7 index 62c5ae4261..46bf9bbf9a 100644 --- a/deps/npm/man/man7/removing-npm.7 +++ b/deps/npm/man/man7/removing-npm.7 @@ -1,4 +1,4 @@ -.TH "NPM\-REMOVAL" "1" "December 2017" "" "" +.TH "NPM\-REMOVAL" "1" "May 2018" "" "" .SH "NAME" \fBnpm-removal\fR \- Cleaning the Slate .SH SYNOPSIS diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7 index 23c1e018d5..dcb3b0f330 100644 --- a/deps/npm/man/man7/semver.7 +++ b/deps/npm/man/man7/semver.7 @@ -1,4 +1,4 @@ -.TH "SEMVER" "7" "December 2017" "" "" +.TH "SEMVER" "7" "May 2018" "" "" .SH "NAME" \fBsemver\fR \- The semantic versioner for npm .SH Install @@ -23,6 +23,8 @@ semver\.clean(' =v1\.2\.3 ') // '1\.2\.3' semver\.satisfies('1\.2\.3', '1\.x || >=2\.5\.0 || 5\.0\.0 \- 7\.2\.3') // true semver\.gt('1\.2\.3', '9\.8\.7') // false semver\.lt('1\.2\.3', '9\.8\.7') // true +semver\.valid(semver\.coerce('v2')) // '2\.0\.0' +semver\.valid(semver\.coerce('42\.6\.7\.9\.3\-alpha')) // '42\.6\.7' .fi .RE .P @@ -57,6 +59,10 @@ Options: \-l \-\-loose Interpret versions and ranges loosely +\-c \-\-coerce + Coerce a string into SemVer if possible + (does not imply \-\-loose) + Program exits successfully if any valid version satisfies all supplied ranges, and prints all satisfying versions\. @@ -455,4 +461,22 @@ satisfy the range\. .P If you want to know if a version satisfies or does not satisfy a range, use the \fBsatisfies(version, range)\fP function\. +.SS Coercion +.RS 0 +.IP \(bu 2 +\fBcoerce(version)\fP: Coerces a string to semver if possible + +.RE +.P +This aims to provide a very forgiving translation of a non\-semver +string to semver\. It looks for the first digit in a string, and +consumes all remaining characters which satisfy at least a partial semver +(e\.g\., \fB1\fP, \fB1\.2\fP, \fB1\.2\.3\fP) up to the max permitted length (256 characters)\. +Longer versions are simply truncated (\fB4\.6\.3\.9\.2\-alpha2\fP becomes \fB4\.6\.3\fP)\. +All surrounding text is simply ignored (\fBv3\.4 replaces v3\.3\.1\fP becomes \fB3\.4\.0\fP)\. +Only text which lacks digits will fail coercion (\fBversion one\fP is not valid)\. +The maximum length for any semver component considered for coercion is 16 characters; +longer components will be ignored (\fB10000000000000000\.4\.7\.4\fP becomes \fB4\.7\.4\fP)\. +The maximum value for any semver component is \fBInteger\.MAX_SAFE_INTEGER || (2**53 \- 1)\fP; +higher value components are invalid (\fB9999999999999999\.4\.7\.4\fP is likely invalid)\. diff --git a/deps/npm/node_modules/JSONStream/bin.js b/deps/npm/node_modules/JSONStream/bin.js new file mode 100755 index 0000000000..32209630f2 --- /dev/null +++ b/deps/npm/node_modules/JSONStream/bin.js @@ -0,0 +1,10 @@ +#! /usr/bin/env node + +var JSONStream = require('./') + +if(!module.parent && process.title !== 'browser') { + process.stdin + .pipe(JSONStream.parse(process.argv[2])) + .pipe(JSONStream.stringify('[', ',\n', ']\n', 2)) + .pipe(process.stdout) +} diff --git a/deps/npm/node_modules/JSONStream/index.js b/deps/npm/node_modules/JSONStream/index.js index 2cc9fff071..4e3b0ef678 100755 --- a/deps/npm/node_modules/JSONStream/index.js +++ b/deps/npm/node_modules/JSONStream/index.js @@ -1,5 +1,3 @@ -#! /usr/bin/env node - 'use strict' var Parser = require('jsonparse') @@ -244,9 +242,3 @@ exports.stringifyObject = function (op, sep, cl, indent) { return stream } -if(!module.parent && process.title !== 'browser') { - process.stdin - .pipe(exports.parse(process.argv[2])) - .pipe(exports.stringify('[', ',\n', ']\n', 2)) - .pipe(process.stdout) -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore deleted file mode 100644 index b512c09d47..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE deleted file mode 100644 index ed1e50c3d3..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2012 Tim Caswell - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown deleted file mode 100644 index c5425f8c3a..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown +++ /dev/null @@ -1,10 +0,0 @@ -This is a streaming JSON parser. For a simpler, sax-based version see this gist: https://gist.github.com/1821394 - -The MIT License (MIT) -Copyright (c) 2011-2012 Tim Caswell - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js deleted file mode 100644 index b36d92f7e3..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js +++ /dev/null @@ -1,26 +0,0 @@ -var fs = require('fs'), - Parser = require('./jsonparse'); - - -var json = fs.readFileSync("samplejson/basic.json"); - - -while (true) { - var start = Date.now(); - for (var i = 0; i < 1000; i++) { - JSON.parse(json); - } - var first = Date.now() - start; - - start = Date.now(); - var p = new Parser(); - for (var i = 0; i < 1000; i++) { - p.write(json); - } - var second = Date.now() - start; - - - console.log("JSON.parse took %s", first); - console.log("streaming parser took %s", second); - console.log("streaming is %s times slower", second / first); -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js deleted file mode 100644 index 10210d470b..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js +++ /dev/null @@ -1,30 +0,0 @@ -var Parser = require('../jsonparse'); -var Http = require('http'); -require('./colors'); -var p = new Parser(); -var cred = require('./credentials'); -var client = Http.createClient(80, "stream.twitter.com"); -var request = client.request("GET", "/1/statuses/sample.json", { - "Host": "stream.twitter.com", - "Authorization": (new Buffer(cred.username + ":" + cred.password)).toString("base64") -}); -request.on('response', function (response) { - console.log(response.statusCode); - console.dir(response.headers); - response.on('data', function (chunk) { - p.write(chunk); - }); - response.on('end', function () { - console.log("END"); - }); -}); -request.end(); -var text = "", name = ""; -p.onValue = function (value) { - if (this.stack.length === 1 && this.key === 'text') { text = value; } - if (this.stack.length === 2 && this.key === 'name' && this.stack[1].key === 'user') { name = value; } - if (this.stack.length === 0) { - console.log(text.blue + " - " + name.yellow); - text = name = ""; - } -}; diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js deleted file mode 100644 index 39910608b3..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +++ /dev/null @@ -1,413 +0,0 @@ -/*global Buffer*/ -// Named constants with unique integer values -var C = {}; -// Tokens -var LEFT_BRACE = C.LEFT_BRACE = 0x1; -var RIGHT_BRACE = C.RIGHT_BRACE = 0x2; -var LEFT_BRACKET = C.LEFT_BRACKET = 0x3; -var RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4; -var COLON = C.COLON = 0x5; -var COMMA = C.COMMA = 0x6; -var TRUE = C.TRUE = 0x7; -var FALSE = C.FALSE = 0x8; -var NULL = C.NULL = 0x9; -var STRING = C.STRING = 0xa; -var NUMBER = C.NUMBER = 0xb; -// Tokenizer States -var START = C.START = 0x11; -var STOP = C.STOP = 0x12; -var TRUE1 = C.TRUE1 = 0x21; -var TRUE2 = C.TRUE2 = 0x22; -var TRUE3 = C.TRUE3 = 0x23; -var FALSE1 = C.FALSE1 = 0x31; -var FALSE2 = C.FALSE2 = 0x32; -var FALSE3 = C.FALSE3 = 0x33; -var FALSE4 = C.FALSE4 = 0x34; -var NULL1 = C.NULL1 = 0x41; -var NULL2 = C.NULL2 = 0x42; -var NULL3 = C.NULL3 = 0x43; -var NUMBER1 = C.NUMBER1 = 0x51; -var NUMBER3 = C.NUMBER3 = 0x53; -var STRING1 = C.STRING1 = 0x61; -var STRING2 = C.STRING2 = 0x62; -var STRING3 = C.STRING3 = 0x63; -var STRING4 = C.STRING4 = 0x64; -var STRING5 = C.STRING5 = 0x65; -var STRING6 = C.STRING6 = 0x66; -// Parser States -var VALUE = C.VALUE = 0x71; -var KEY = C.KEY = 0x72; -// Parser Modes -var OBJECT = C.OBJECT = 0x81; -var ARRAY = C.ARRAY = 0x82; -// Character constants -var BACK_SLASH = "\\".charCodeAt(0); -var FORWARD_SLASH = "\/".charCodeAt(0); -var BACKSPACE = "\b".charCodeAt(0); -var FORM_FEED = "\f".charCodeAt(0); -var NEWLINE = "\n".charCodeAt(0); -var CARRIAGE_RETURN = "\r".charCodeAt(0); -var TAB = "\t".charCodeAt(0); - -var STRING_BUFFER_SIZE = 64 * 1024; - -function Parser() { - this.tState = START; - this.value = undefined; - - this.string = undefined; // string data - this.stringBuffer = Buffer.alloc ? Buffer.alloc(STRING_BUFFER_SIZE) : new Buffer(STRING_BUFFER_SIZE); - this.stringBufferOffset = 0; - this.unicode = undefined; // unicode escapes - this.highSurrogate = undefined; - - this.key = undefined; - this.mode = undefined; - this.stack = []; - this.state = VALUE; - this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary - this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read - this.temp_buffs = { "2": new Buffer(2), "3": new Buffer(3), "4": new Buffer(4) }; // for rebuilding chars split before boundary is reached - - // Stream offset - this.offset = -1; -} - -// Slow code to string converter (only used when throwing syntax errors) -Parser.toknam = function (code) { - var keys = Object.keys(C); - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - if (C[key] === code) { return key; } - } - return code && ("0x" + code.toString(16)); -}; - -var proto = Parser.prototype; -proto.onError = function (err) { throw err; }; -proto.charError = function (buffer, i) { - this.tState = STOP; - this.onError(new Error("Unexpected " + JSON.stringify(String.fromCharCode(buffer[i])) + " at position " + i + " in state " + Parser.toknam(this.tState))); -}; -proto.appendStringChar = function (char) { - if (this.stringBufferOffset >= STRING_BUFFER_SIZE) { - this.string += this.stringBuffer.toString('utf8'); - this.stringBufferOffset = 0; - } - - this.stringBuffer[this.stringBufferOffset++] = char; -}; -proto.appendStringBuf = function (buf, start, end) { - var size = buf.length; - if (typeof start === 'number') { - if (typeof end === 'number') { - if (end < 0) { - // adding a negative end decreeses the size - size = buf.length - start + end; - } else { - size = end - start; - } - } else { - size = buf.length - start; - } - } - - if (size < 0) { - size = 0; - } - - if (this.stringBufferOffset + size > STRING_BUFFER_SIZE) { - this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset); - this.stringBufferOffset = 0; - } - - buf.copy(this.stringBuffer, this.stringBufferOffset, start, end); - this.stringBufferOffset += size; -}; -proto.write = function (buffer) { - if (typeof buffer === "string") buffer = new Buffer(buffer); - var n; - for (var i = 0, l = buffer.length; i < l; i++) { - if (this.tState === START){ - n = buffer[i]; - this.offset++; - if(n === 0x7b){ this.onToken(LEFT_BRACE, "{"); // { - }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, "}"); // } - }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, "["); // [ - }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, "]"); // ] - }else if(n === 0x3a){ this.onToken(COLON, ":"); // : - }else if(n === 0x2c){ this.onToken(COMMA, ","); // , - }else if(n === 0x74){ this.tState = TRUE1; // t - }else if(n === 0x66){ this.tState = FALSE1; // f - }else if(n === 0x6e){ this.tState = NULL1; // n - }else if(n === 0x22){ // " - this.string = ""; - this.stringBufferOffset = 0; - this.tState = STRING1; - }else if(n === 0x2d){ this.string = "-"; this.tState = NUMBER1; // - - }else{ - if (n >= 0x30 && n < 0x40) { // 1-9 - this.string = String.fromCharCode(n); this.tState = NUMBER3; - } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) { - // whitespace - } else { - return this.charError(buffer, i); - } - } - }else if (this.tState === STRING1){ // After open quote - n = buffer[i]; // get current byte from buffer - // check for carry over of a multi byte char split between data chunks - // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration - if (this.bytes_remaining > 0) { - for (var j = 0; j < this.bytes_remaining; j++) { - this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j]; - } - - this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]); - this.bytes_in_sequence = this.bytes_remaining = 0; - i = i + j - 1; - } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time - if (n <= 193 || n > 244) { - return this.onError(new Error("Invalid UTF-8 character at position " + i + " in state " + Parser.toknam(this.tState))); - } - if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2; - if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3; - if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4; - if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split - for (var k = 0; k <= (buffer.length - 1 - i); k++) { - this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk - } - this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length; - i = buffer.length - 1; - } else { - this.appendStringBuf(buffer, i, i + this.bytes_in_sequence); - i = i + this.bytes_in_sequence - 1; - } - } else if (n === 0x22) { - this.tState = START; - this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset); - this.stringBufferOffset = 0; - this.onToken(STRING, this.string); - this.offset += Buffer.byteLength(this.string, 'utf8') + 1; - this.string = undefined; - } - else if (n === 0x5c) { - this.tState = STRING2; - } - else if (n >= 0x20) { this.appendStringChar(n); } - else { - return this.charError(buffer, i); - } - }else if (this.tState === STRING2){ // After backslash - n = buffer[i]; - if(n === 0x22){ this.appendStringChar(n); this.tState = STRING1; - }else if(n === 0x5c){ this.appendStringChar(BACK_SLASH); this.tState = STRING1; - }else if(n === 0x2f){ this.appendStringChar(FORWARD_SLASH); this.tState = STRING1; - }else if(n === 0x62){ this.appendStringChar(BACKSPACE); this.tState = STRING1; - }else if(n === 0x66){ this.appendStringChar(FORM_FEED); this.tState = STRING1; - }else if(n === 0x6e){ this.appendStringChar(NEWLINE); this.tState = STRING1; - }else if(n === 0x72){ this.appendStringChar(CARRIAGE_RETURN); this.tState = STRING1; - }else if(n === 0x74){ this.appendStringChar(TAB); this.tState = STRING1; - }else if(n === 0x75){ this.unicode = ""; this.tState = STRING3; - }else{ - return this.charError(buffer, i); - } - }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes - n = buffer[i]; - // 0-9 A-F a-f - if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) { - this.unicode += String.fromCharCode(n); - if (this.tState++ === STRING6) { - var intVal = parseInt(this.unicode, 16); - this.unicode = undefined; - if (this.highSurrogate !== undefined && intVal >= 0xDC00 && intVal < (0xDFFF + 1)) { //<56320,57343> - lowSurrogate - this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate, intVal))); - this.highSurrogate = undefined; - } else if (this.highSurrogate === undefined && intVal >= 0xD800 && intVal < (0xDBFF + 1)) { //<55296,56319> - highSurrogate - this.highSurrogate = intVal; - } else { - if (this.highSurrogate !== undefined) { - this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate))); - this.highSurrogate = undefined; - } - this.appendStringBuf(new Buffer(String.fromCharCode(intVal))); - } - this.tState = STRING1; - } - } else { - return this.charError(buffer, i); - } - } else if (this.tState === NUMBER1 || this.tState === NUMBER3) { - n = buffer[i]; - - switch (n) { - case 0x30: // 0 - case 0x31: // 1 - case 0x32: // 2 - case 0x33: // 3 - case 0x34: // 4 - case 0x35: // 5 - case 0x36: // 6 - case 0x37: // 7 - case 0x38: // 8 - case 0x39: // 9 - case 0x2e: // . - case 0x65: // e - case 0x45: // E - case 0x2b: // + - case 0x2d: // - - this.string += String.fromCharCode(n); - this.tState = NUMBER3; - break; - default: - this.tState = START; - var result = Number(this.string); - - if (isNaN(result)){ - return this.charError(buffer, i); - } - - if ((this.string.match(/[0-9]+/) == this.string) && (result.toString() != this.string)) { - // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number - this.onToken(STRING, this.string); - } else { - this.onToken(NUMBER, result); - } - - this.offset += this.string.length - 1; - this.string = undefined; - i--; - break; - } - }else if (this.tState === TRUE1){ // r - if (buffer[i] === 0x72) { this.tState = TRUE2; } - else { return this.charError(buffer, i); } - }else if (this.tState === TRUE2){ // u - if (buffer[i] === 0x75) { this.tState = TRUE3; } - else { return this.charError(buffer, i); } - }else if (this.tState === TRUE3){ // e - if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE1){ // a - if (buffer[i] === 0x61) { this.tState = FALSE2; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE2){ // l - if (buffer[i] === 0x6c) { this.tState = FALSE3; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE3){ // s - if (buffer[i] === 0x73) { this.tState = FALSE4; } - else { return this.charError(buffer, i); } - }else if (this.tState === FALSE4){ // e - if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; } - else { return this.charError(buffer, i); } - }else if (this.tState === NULL1){ // u - if (buffer[i] === 0x75) { this.tState = NULL2; } - else { return this.charError(buffer, i); } - }else if (this.tState === NULL2){ // l - if (buffer[i] === 0x6c) { this.tState = NULL3; } - else { return this.charError(buffer, i); } - }else if (this.tState === NULL3){ // l - if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; } - else { return this.charError(buffer, i); } - } - } -}; -proto.onToken = function (token, value) { - // Override this to get events -}; - -proto.parseError = function (token, value) { - this.tState = STOP; - this.onError(new Error("Unexpected " + Parser.toknam(token) + (value ? ("(" + JSON.stringify(value) + ")") : "") + " in state " + Parser.toknam(this.state))); -}; -proto.push = function () { - this.stack.push({value: this.value, key: this.key, mode: this.mode}); -}; -proto.pop = function () { - var value = this.value; - var parent = this.stack.pop(); - this.value = parent.value; - this.key = parent.key; - this.mode = parent.mode; - this.emit(value); - if (!this.mode) { this.state = VALUE; } -}; -proto.emit = function (value) { - if (this.mode) { this.state = COMMA; } - this.onValue(value); -}; -proto.onValue = function (value) { - // Override me -}; -proto.onToken = function (token, value) { - if(this.state === VALUE){ - if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){ - if (this.value) { - this.value[this.key] = value; - } - this.emit(value); - }else if(token === LEFT_BRACE){ - this.push(); - if (this.value) { - this.value = this.value[this.key] = {}; - } else { - this.value = {}; - } - this.key = undefined; - this.state = KEY; - this.mode = OBJECT; - }else if(token === LEFT_BRACKET){ - this.push(); - if (this.value) { - this.value = this.value[this.key] = []; - } else { - this.value = []; - } - this.key = 0; - this.mode = ARRAY; - this.state = VALUE; - }else if(token === RIGHT_BRACE){ - if (this.mode === OBJECT) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else if(token === RIGHT_BRACKET){ - if (this.mode === ARRAY) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else{ - return this.parseError(token, value); - } - }else if(this.state === KEY){ - if (token === STRING) { - this.key = value; - this.state = COLON; - } else if (token === RIGHT_BRACE) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else if(this.state === COLON){ - if (token === COLON) { this.state = VALUE; } - else { return this.parseError(token, value); } - }else if(this.state === COMMA){ - if (token === COMMA) { - if (this.mode === ARRAY) { this.key++; this.state = VALUE; } - else if (this.mode === OBJECT) { this.state = KEY; } - - } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) { - this.pop(); - } else { - return this.parseError(token, value); - } - }else{ - return this.parseError(token, value); - } -}; - -Parser.C = C; - -module.exports = Parser; diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json deleted file mode 100644 index fe0cfcd1f4..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "_from": "jsonparse@^1.2.0", - "_id": "jsonparse@1.3.1", - "_inBundle": false, - "_integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "_location": "/JSONStream/jsonparse", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "jsonparse@^1.2.0", - "name": "jsonparse", - "escapedName": "jsonparse", - "rawSpec": "^1.2.0", - "saveSpec": null, - "fetchSpec": "^1.2.0" - }, - "_requiredBy": [ - "/JSONStream" - ], - "_resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "_shasum": "3f4dae4a91fac315f71062f8521cc239f1366280", - "_spec": "jsonparse@^1.2.0", - "_where": "/Users/rebecca/code/npm/node_modules/JSONStream", - "author": { - "name": "Tim Caswell", - "email": "tim@creationix.com" - }, - "bugs": { - "url": "http://github.com/creationix/jsonparse/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "This is a pure-js JSON streaming parser for node.js", - "devDependencies": { - "tap": "~0.3.3", - "tape": "~0.1.1" - }, - "engines": [ - "node >= 0.2.0" - ], - "homepage": "https://github.com/creationix/jsonparse#readme", - "license": "MIT", - "main": "jsonparse.js", - "name": "jsonparse", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/creationix/jsonparse.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "tags": [ - "json", - "stream" - ], - "version": "1.3.1" -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json deleted file mode 100644 index 950dff9e9d..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - }, - { - "image": [ - {"shape": "rect", "fill": "#333", "stroke": "#999", "x": 0.5e+1, "y": 0.5, "z": 0.8e-0, "w": 0.5e5, "u": 2E10, "foo": 2E+1, "bar": 2E-0, "width": 47, "height": 47} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,47.5],[47.5,47.5],[47.5,0.5]]} - ], - "solid": { - "1": [2,4], - "2": [1], - "3": [2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,0.5],[47.5,47.5],[0.5,47.5]]} - ], - "solid": { - "1": [2], - "2": [3], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [7], - "9": [6,8] - }, - "corners": {"1": false,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[0.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [9], - "9": [6,8] - }, - "corners": {"1": true,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,47.5],[0.5,23.5],[24.5,23.5],[24.5,0.5],[47.5,0.5],[47.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [6,2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [9], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,0.5],[23.5,0.5],[23.5,24.5],[47.5,24.5],[47.5,47.5],[0.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [4,2], - "2": [], - "3": [2,6], - "4": [7], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "circle", "fill": "#ff0", "stroke": "#ff8", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - }, - { - "image": [ - {"shape": "polygon", "fill": "#842", "stroke": "#f84", "points": [[4.5,0.5],[14.5,0.5],[14.5,17.5],[34,17.5],[33.5,0.5],[43.5,0.5],[43.5,47.5],[33.5,47.5],[33.5,30.5],[14.5,30.5],[14.5,47.5],[4.5,47.5]]} - ], - "jumpable": 3 - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,0.5],[24,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": false,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "rect", "fill": "#114acb", "x": 0.5, "y": 0.5, "width": 47, "height": 47}, - {"shape": "polygon", "fill": "rgba(255,255,255,0.30)", "points": [[0.5,0.5],[47.5,0.5],[40,8],[8,8],[8,40],[0.5,47.5]]}, - {"shape": "polygon", "fill": "rgba(0,0,0,0.30)", "points": [[47.5,0.5],[48,48],[0.5,47.5],[8,40],[40,40],[40,8]]}, - {"shape": "polygon", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "points": [[24,9],[35,20],[26,29],[26,33],[22,33],[22,27],[29,20],[24,15],[16,23],[13,20]]}, - {"shape": "rect", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "x": 22, "y":35, "width": 4, "height": 4} - ] - } -] diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json deleted file mode 100644 index 3a6919b2ea..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json +++ /dev/null @@ -1,180 +0,0 @@ -[ - { - }, - { - "image": [ - {"shape": "rect", "fill": "#333", "stroke": "#999", "x": 0.5, "y": 0.5, "width": 47, "height": 47} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,47.5],[47.5,47.5],[47.5,0.5]]} - ], - "solid": { - "1": [2,4], - "2": [1], - "3": [2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#248", "stroke": "#48f", "points": [[0.5,0.5],[47.5,47.5],[0.5,47.5]]} - ], - "solid": { - "1": [2], - "2": [3], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [7], - "9": [6,8] - }, - "corners": {"1": false,"3": true,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[0.5,47.5],[47.5,0.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [9], - "9": [6,8] - }, - "corners": {"1": true,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,47.5],[0.5,23.5],[24.5,23.5],[24.5,0.5],[47.5,0.5],[47.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [6,2], - "4": [], - "5": [2,8,1,3,7,9,4,6], - "6": [9], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": false,"9": true} - }, - { - "image": [ - {"shape": "polygon", "fill": "#482", "stroke": "#8f4", "points": [[0.5,0.5],[23.5,0.5],[23.5,24.5],[47.5,24.5],[47.5,47.5],[0.5,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [4,2], - "2": [], - "3": [2,6], - "4": [7], - "5": [2,8,1,3,7,9,4,6], - "6": [], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": true,"3": true,"7": true,"9": false} - }, - { - "image": [ - {"shape": "circle", "fill": "#ff0", "stroke": "#ff8", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - }, - { - "image": [ - {"shape": "polygon", "fill": "#842", "stroke": "#f84", "points": [[4.5,0.5],[14.5,0.5],[14.5,17.5],[34,17.5],[33.5,0.5],[43.5,0.5],[43.5,47.5],[33.5,47.5],[33.5,30.5],[14.5,30.5],[14.5,47.5],[4.5,47.5]]} - ], - "jumpable": 3 - }, - { - "image": [ - {"shape": "polygon", "fill": "#333", "stroke": "#999", "points": [[0.5,0.5],[47.5,0.5],[24,47.5]]} - ], - "jumpable": 3, - "solid": { - "1": [2,4], - "2": [], - "3": [2,6], - "4": [1], - "5": [2,8,1,3,7,9,4,6], - "6": [3], - "7": [4,8], - "8": [], - "9": [6,8] - }, - "corners": {"1": false,"3": false,"7": true,"9": true} - }, - { - "image": [ - {"shape": "rect", "fill": "#114acb", "x": 0.5, "y": 0.5, "width": 47, "height": 47}, - {"shape": "polygon", "fill": "rgba(255,255,255,0.30)", "points": [[0.5,0.5],[47.5,0.5],[40,8],[8,8],[8,40],[0.5,47.5]]}, - {"shape": "polygon", "fill": "rgba(0,0,0,0.30)", "points": [[47.5,0.5],[48,48],[0.5,47.5],[8,40],[40,40],[40,8]]}, - {"shape": "polygon", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "points": [[24,9],[35,20],[26,29],[26,33],[22,33],[22,27],[29,20],[24,15],[16,23],[13,20]]}, - {"shape": "rect", "fill": "rgb(255,255,0)", "stroke": "rgba(255,255,0,0.5)", "x": 22, "y":35, "width": 4, "height": 4} - ], - "item": true - }, - { - "image": [ - {"shape": "circle", "fill": "#80f", "stroke": "#88f", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - }, - { - "image": [ - {"shape": "circle", "fill": "#4f4", "stroke": "#8f8", "cx": 24, "cy": 24, "r": 18} - ], - "item": true - } -] diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js deleted file mode 100644 index 36046317ee..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js +++ /dev/null @@ -1,24 +0,0 @@ -var stream = require('stream'); -var JsonParse = require('../jsonparse'); -var test = require('tape'); - -test('can handle large tokens without running out of memory', function (t) { - var parser = new JsonParse(); - var chunkSize = 1024; - var chunks = 1024 * 200; // 200mb - var quote = Buffer.from ? Buffer.from('"') : new Buffer('"'); - t.plan(1); - - parser.onToken = function (type, value) { - t.equal(value.length, chunkSize * chunks, 'token should be size of input json'); - t.end(); - }; - - parser.write(quote); - for (var i = 0; i < chunks; ++i) { - var buf = Buffer.alloc ? Buffer.alloc(chunkSize) : new Buffer(chunkSize); - buf.fill('a'); - parser.write(buf); - } - parser.write(quote); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js deleted file mode 100644 index 6671f5f930..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js +++ /dev/null @@ -1,110 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('2 byte utf8 \'De\' character: Š“', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'Š“'); - }; - - var de_buffer = new Buffer([0xd0, 0xb4]); - - p.write('"'); - p.write(de_buffer); - p.write('"'); - -}); - -test('3 byte utf8 \'Han\' character: ꈑ', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'ꈑ'); - }; - - var han_buffer = new Buffer([0xe6, 0x88, 0x91]); - p.write('"'); - p.write(han_buffer); - p.write('"'); -}); - -test('4 byte utf8 character (unicode scalar U+2070E): š œŽ', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'š œŽ'); - }; - - var Ux2070E_buffer = new Buffer([0xf0, 0xa0, 0x9c, 0x8e]); - p.write('"'); - p.write(Ux2070E_buffer); - p.write('"'); -}); - -test('3 byte utf8 \'Han\' character chunked inbetween 2nd and 3rd byte: ꈑ', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'ꈑ'); - }; - - var han_buffer_first = new Buffer([0xe6, 0x88]); - var han_buffer_second = new Buffer([0x91]); - p.write('"'); - p.write(han_buffer_first); - p.write(han_buffer_second); - p.write('"'); -}); - -test('4 byte utf8 character (unicode scalar U+2070E) chunked inbetween 2nd and 3rd byte: š œŽ', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'š œŽ'); - }; - - var Ux2070E_buffer_first = new Buffer([0xf0, 0xa0]); - var Ux2070E_buffer_second = new Buffer([0x9c, 0x8e]); - p.write('"'); - p.write(Ux2070E_buffer_first); - p.write(Ux2070E_buffer_second); - p.write('"'); -}); - -test('1-4 byte utf8 character string chunked inbetween random bytes: AŠ¶ę–‡š œ±B', function (t) { - t.plan(1); - -var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'AŠ¶ę–‡š œ±B'); - }; - - var eclectic_buffer = new Buffer([0x41, // A - 0xd0, 0xb6, // Š¶ - 0xe6, 0x96, 0x87, // ꖇ - 0xf0, 0xa0, 0x9c, 0xb1, // š œ± - 0x42]); // B - - var rand_chunk = Math.floor(Math.random() * (eclectic_buffer.length)); - var first_buffer = eclectic_buffer.slice(0, rand_chunk); - var second_buffer = eclectic_buffer.slice(rand_chunk); - - //console.log('eclectic_buffer: ' + eclectic_buffer) - //console.log('sliced from 0 to ' + rand_chunk); - //console.log(first_buffer); - //console.log('then sliced from ' + rand_chunk + ' to the end'); - //console.log(second_buffer); - - console.log('chunked after offset ' + rand_chunk); - p.write('"'); - p.write(first_buffer); - p.write(second_buffer); - p.write('"'); - -}); \ No newline at end of file diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js deleted file mode 100644 index 9a552ab059..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js +++ /dev/null @@ -1,67 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -var input = '{\n "string": "value",\n "number": 3,\n "object"'; -var input2 = ': {\n "key": "vŠ“"\n },\n "array": [\n -1,\n 12\n ]\n '; -var input3 = '"null": null, "true": true, "false": false, "frac": 3.14 }'; - -var offsets = [ - [ 0, Parser.C.LEFT_BRACE ], - [ 4, Parser.C.STRING ], - [ 12, Parser.C.COLON ], - [ 14, Parser.C.STRING ], - [ 21, Parser.C.COMMA ], - [ 25, Parser.C.STRING ], - [ 33, Parser.C.COLON ], - [ 35, Parser.C.NUMBER ], - [ 36, Parser.C.COMMA ], - [ 40, Parser.C.STRING ], - [ 48, Parser.C.COLON ], - [ 50, Parser.C.LEFT_BRACE ], - [ 54, Parser.C.STRING ], - [ 59, Parser.C.COLON ], - [ 61, Parser.C.STRING ], - [ 69, Parser.C.RIGHT_BRACE ], - [ 70, Parser.C.COMMA ], - [ 74, Parser.C.STRING ], - [ 81, Parser.C.COLON ], - [ 83, Parser.C.LEFT_BRACKET ], - [ 87, Parser.C.NUMBER ], - [ 89, Parser.C.COMMA ], - [ 93, Parser.C.NUMBER ], - [ 98, Parser.C.RIGHT_BRACKET ], - [ 102, Parser.C.STRING ], - [ 108, Parser.C.COLON ], - [ 110, Parser.C.NULL ], - [ 114, Parser.C.COMMA ], - [ 116, Parser.C.STRING ], - [ 122, Parser.C.COLON ], - [ 124, Parser.C.TRUE ], - [ 128, Parser.C.COMMA ], - [ 130, Parser.C.STRING ], - [ 137, Parser.C.COLON ], - [ 139, Parser.C.FALSE ], - [ 144, Parser.C.COMMA ], - [ 146, Parser.C.STRING ], - [ 152, Parser.C.COLON ], - [ 154, Parser.C.NUMBER ], - [ 159, Parser.C.RIGHT_BRACE ] -]; - -test('offset', function(t) { - t.plan(offsets.length * 2 + 1); - - var p = new Parser(); - var i = 0; - p.onToken = function (token) { - t.equal(p.offset, offsets[i][0]); - t.equal(token, offsets[i][1]); - i++; - }; - - p.write(input); - p.write(input2); - p.write(input3); - - t.equal(i, offsets.length); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js deleted file mode 100644 index 33cae169a2..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js +++ /dev/null @@ -1,57 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -var expected = [ - [ [], '' ], - [ [], 'Hello' ], - [ [], 'This"is' ], - [ [], '\r\n\f\t\\/"' ], - [ [], 'Ī›Ī¬Ī¼Ī²Ī“Ī±' ], - [ [], '\\' ], - [ [], '/' ], - [ [], '"' ], - [ [ 0 ], 0 ], - [ [ 1 ], 1 ], - [ [ 2 ], -1 ], - [ [], [ 0, 1, -1 ] ], - [ [ 0 ], 1 ], - [ [ 1 ], 1.1 ], - [ [ 2 ], -1.1 ], - [ [ 3 ], -1 ], - [ [], [ 1, 1.1, -1.1, -1 ] ], - [ [ 0 ], -1 ], - [ [], [ -1 ] ], - [ [ 0 ], -0.1 ], - [ [], [ -0.1 ] ], - [ [ 0 ], 6.02e+23 ], - [ [], [ 6.02e+23 ] ], - [ [ 0 ], '7161093205057351174' ], - [ [], [ '7161093205057351174'] ] -]; - -test('primitives', function (t) { - t.plan(25); - - var p = new Parser(); - p.onValue = function (value) { - var keys = this.stack - .slice(1) - .map(function (item) { return item.key }) - .concat(this.key !== undefined ? this.key : []) - ; - t.deepEqual( - [ keys, value ], - expected.shift() - ); - }; - - p.write('"""Hello""This\\"is""\\r\\n\\f\\t\\\\\\/\\""'); - p.write('"\\u039b\\u03ac\\u03bc\\u03b2\\u03b4\\u03b1"'); - p.write('"\\\\"'); - p.write('"\\/"'); - p.write('"\\""'); - p.write('[0,1,-1]'); - p.write('[1.0,1.1,-1.1,-1.0][-1][-0.1]'); - p.write('[6.02e23]'); - p.write('[7161093205057351174]'); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js deleted file mode 100644 index 33351c73cc..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js +++ /dev/null @@ -1,25 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('parse surrogate pair', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'šŸ˜‹'); - }; - - p.write('"\\uD83D\\uDE0B"'); -}); - -test('parse chunked surrogate pair', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'šŸ˜‹'); - }; - - p.write('"\\uD83D'); - p.write('\\uDE0B"'); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js deleted file mode 100644 index 7715cc0ef1..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js +++ /dev/null @@ -1,15 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('unvalid', function (t) { - var count = 0; - - var p = new Parser(); - p.onError = function (value) { - count++; - t.equal(1, count); - t.end(); - }; - - p.write('{"test": eer['); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js b/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js deleted file mode 100644 index 6cb842f3e7..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js +++ /dev/null @@ -1,38 +0,0 @@ -var test = require('tape'); -var Parser = require('../'); - -test('3 bytes of utf8', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'ā”œā”€ā”€'); - }; - - p.write('"ā”œā”€ā”€"'); -}); - -test('utf8 snowman', function (t) { - t.plan(1); - - var p = new Parser(); - p.onValue = function (value) { - t.equal(value, 'ā˜ƒ'); - }; - - p.write('"ā˜ƒ"'); -}); - -test('utf8 with regular ascii', function (t) { - t.plan(4); - - var p = new Parser(); - var expected = [ "snow: ā˜ƒ!", "xyz", "Ā”que!" ]; - expected.push(expected.slice()); - - p.onValue = function (value) { - t.deepEqual(value, expected.shift()); - }; - - p.write('["snow: ā˜ƒ!","xyz","Ā”que!"]'); -}); diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml b/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml deleted file mode 100644 index c693a939df..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 - - "0.10" diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 b/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 deleted file mode 100644 index 6366c04716..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 +++ /dev/null @@ -1,15 +0,0 @@ -Apache License, Version 2.0 - -Copyright (c) 2011 Dominic Tarr - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT b/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT deleted file mode 100644 index 49e7da41fe..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2011 Dominic Tarr - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/index.js b/deps/npm/node_modules/JSONStream/node_modules/through/index.js deleted file mode 100644 index 9f443ffd2b..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/index.js +++ /dev/null @@ -1,107 +0,0 @@ -var Stream = require('stream') - -// through -// -// a stream that does nothing but re-emit the input. -// useful for aggregating a series of changing but not ending streams into one stream) - -exports = module.exports = through -through.through = through - -//create a readable writable stream. - -function through (write, end, opts) { - write = write || function (data) { this.queue(data) } - end = end || function () { this.queue(null) } - - var ended = false, destroyed = false, buffer = [], _ended = false - var stream = new Stream() - stream.readable = stream.writable = true - stream.paused = false - -// stream.autoPause = !(opts && opts.autoPause === false) - stream.autoDestroy = !(opts && opts.autoDestroy === false) - - stream.write = function (data) { - write.call(this, data) - return !stream.paused - } - - function drain() { - while(buffer.length && !stream.paused) { - var data = buffer.shift() - if(null === data) - return stream.emit('end') - else - stream.emit('data', data) - } - } - - stream.queue = stream.push = function (data) { -// console.error(ended) - if(_ended) return stream - if(data === null) _ended = true - buffer.push(data) - drain() - return stream - } - - //this will be registered as the first 'end' listener - //must call destroy next tick, to make sure we're after any - //stream piped from here. - //this is only a problem if end is not emitted synchronously. - //a nicer way to do this is to make sure this is the last listener for 'end' - - stream.on('end', function () { - stream.readable = false - if(!stream.writable && stream.autoDestroy) - process.nextTick(function () { - stream.destroy() - }) - }) - - function _end () { - stream.writable = false - end.call(stream) - if(!stream.readable && stream.autoDestroy) - stream.destroy() - } - - stream.end = function (data) { - if(ended) return - ended = true - if(arguments.length) stream.write(data) - _end() // will emit or queue - return stream - } - - stream.destroy = function () { - if(destroyed) return - destroyed = true - ended = true - buffer.length = 0 - stream.writable = stream.readable = false - stream.emit('close') - return stream - } - - stream.pause = function () { - if(stream.paused) return - stream.paused = true - return stream - } - - stream.resume = function () { - if(stream.paused) { - stream.paused = false - stream.emit('resume') - } - drain() - //may have become paused again, - //as drain emits 'data'. - if(!stream.paused) - stream.emit('drain') - return stream - } - return stream -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/package.json b/deps/npm/node_modules/JSONStream/node_modules/through/package.json deleted file mode 100644 index 645e8a4f6a..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_from": "through@>=2.2.7 <3", - "_id": "through@2.3.8", - "_integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "_location": "/JSONStream/through", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "through@>=2.2.7 <3", - "name": "through", - "escapedName": "through", - "rawSpec": ">=2.2.7 <3", - "saveSpec": null, - "fetchSpec": ">=2.2.7 <3" - }, - "_requiredBy": [ - "/JSONStream" - ], - "_resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "_shasum": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "_shrinkwrap": null, - "_spec": "through@>=2.2.7 <3", - "_where": "/Users/zkat/Documents/code/npm/node_modules/JSONStream", - "author": { - "name": "Dominic Tarr", - "email": "dominic.tarr@gmail.com", - "url": "dominictarr.com" - }, - "bin": null, - "bugs": { - "url": "https://github.com/dominictarr/through/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "simplified stream construction", - "devDependencies": { - "from": "~0.1.3", - "stream-spec": "~0.3.5", - "tape": "~2.3.2" - }, - "homepage": "https://github.com/dominictarr/through", - "keywords": [ - "stream", - "streams", - "user-streams", - "pipe" - ], - "license": "MIT", - "main": "index.js", - "name": "through", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/dominictarr/through.git" - }, - "scripts": { - "test": "set -e; for t in test/*.js; do node $t; done" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "ff/15..latest", - "chrome/20..latest", - "safari/5.1..latest" - ], - "files": "test/*.js" - }, - "version": "2.3.8" -} diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown b/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown deleted file mode 100644 index 4939fffe42..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown +++ /dev/null @@ -1,64 +0,0 @@ -#through - -[![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through) -[![testling badge](https://ci.testling.com/dominictarr/through.png)](https://ci.testling.com/dominictarr/through) - -Easy way to create a `Stream` that is both `readable` and `writable`. - -* Pass in optional `write` and `end` methods. -* `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`. -* Use `this.pause()` and `this.resume()` to manage flow. -* Check `this.paused` to see current flow state. (`write` always returns `!this.paused`). - -This function is the basis for most of the synchronous streams in -[event-stream](http://github.com/dominictarr/event-stream). - -``` js -var through = require('through') - -through(function write(data) { - this.queue(data) //data *must* not be null - }, - function end () { //optional - this.queue(null) - }) -``` - -Or, can also be used _without_ buffering on pause, use `this.emit('data', data)`, -and this.emit('end') - -``` js -var through = require('through') - -through(function write(data) { - this.emit('data', data) - //this.pause() - }, - function end () { //optional - this.emit('end') - }) -``` - -## Extended Options - -You will probably not need these 99% of the time. - -### autoDestroy=false - -By default, `through` emits close when the writable -and readable side of the stream has ended. -If that is not desired, set `autoDestroy=false`. - -``` js -var through = require('through') - -//like this -var ts = through(write, end, {autoDestroy: false}) -//or like this -var ts = through(write, end) -ts.autoDestroy = false -``` - -## License - -MIT / Apache2 diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js deleted file mode 100644 index f6fc95f4ff..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js +++ /dev/null @@ -1,28 +0,0 @@ -var from = require('from') -var through = require('../') - -var tape = require('tape') - -tape('simple async example', function (t) { - - var n = 0, expected = [1,2,3,4,5], actual = [] - from(expected) - .pipe(through(function(data) { - this.pause() - n ++ - setTimeout(function(){ - console.log('pushing data', data) - this.push(data) - this.resume() - }.bind(this), 300) - })).pipe(through(function(data) { - console.log('pushing data second time', data); - this.push(data) - })).on('data', function (d) { - actual.push(d) - }).on('end', function() { - t.deepEqual(actual, expected) - t.end() - }) - -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js deleted file mode 100644 index 305fff23d3..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js +++ /dev/null @@ -1,29 +0,0 @@ -var test = require('tape') -var through = require('../') - -// must emit end before close. - -test('end before close', function (assert) { - var ts = through() - ts.autoDestroy = false - var ended = false, closed = false - - ts.on('end', function () { - assert.ok(!closed) - ended = true - }) - ts.on('close', function () { - assert.ok(ended) - closed = true - }) - - ts.write(1) - ts.write(2) - ts.write(3) - ts.end() - assert.ok(ended) - assert.notOk(closed) - ts.destroy() - assert.ok(closed) - assert.end() -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js deleted file mode 100644 index b0084bfc6e..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js +++ /dev/null @@ -1,71 +0,0 @@ -var test = require('tape') -var through = require('../') - -// must emit end before close. - -test('buffering', function(assert) { - var ts = through(function (data) { - this.queue(data) - }, function () { - this.queue(null) - }) - - var ended = false, actual = [] - - ts.on('data', actual.push.bind(actual)) - ts.on('end', function () { - ended = true - }) - - ts.write(1) - ts.write(2) - ts.write(3) - assert.deepEqual(actual, [1, 2, 3]) - ts.pause() - ts.write(4) - ts.write(5) - ts.write(6) - assert.deepEqual(actual, [1, 2, 3]) - ts.resume() - assert.deepEqual(actual, [1, 2, 3, 4, 5, 6]) - ts.pause() - ts.end() - assert.ok(!ended) - ts.resume() - assert.ok(ended) - assert.end() -}) - -test('buffering has data in queue, when ends', function (assert) { - - /* - * If stream ends while paused with data in the queue, - * stream should still emit end after all data is written - * on resume. - */ - - var ts = through(function (data) { - this.queue(data) - }, function () { - this.queue(null) - }) - - var ended = false, actual = [] - - ts.on('data', actual.push.bind(actual)) - ts.on('end', function () { - ended = true - }) - - ts.pause() - ts.write(1) - ts.write(2) - ts.write(3) - ts.end() - assert.deepEqual(actual, [], 'no data written yet, still paused') - assert.ok(!ended, 'end not emitted yet, still paused') - ts.resume() - assert.deepEqual(actual, [1, 2, 3], 'resumed, all data should be delivered') - assert.ok(ended, 'end should be emitted once all data was delivered') - assert.end(); -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js deleted file mode 100644 index fa113f58e0..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js +++ /dev/null @@ -1,45 +0,0 @@ -var test = require('tape') -var through = require('../') - -// must emit end before close. - -test('end before close', function (assert) { - var ts = through() - var ended = false, closed = false - - ts.on('end', function () { - assert.ok(!closed) - ended = true - }) - ts.on('close', function () { - assert.ok(ended) - closed = true - }) - - ts.write(1) - ts.write(2) - ts.write(3) - ts.end() - assert.ok(ended) - assert.ok(closed) - assert.end() -}) - -test('end only once', function (t) { - - var ts = through() - var ended = false, closed = false - - ts.on('end', function () { - t.equal(ended, false) - ended = true - }) - - ts.queue(null) - ts.queue(null) - ts.queue(null) - - ts.resume() - - t.end() -}) diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js b/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js deleted file mode 100644 index 1d9523f40e..0000000000 --- a/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js +++ /dev/null @@ -1,133 +0,0 @@ - -var test = require('tape') -var spec = require('stream-spec') -var through = require('../') - -/* - I'm using these two functions, and not streams and pipe - so there is less to break. if this test fails it must be - the implementation of _through_ -*/ - -function write(array, stream) { - array = array.slice() - function next() { - while(array.length) - if(stream.write(array.shift()) === false) - return stream.once('drain', next) - - stream.end() - } - - next() -} - -function read(stream, callback) { - var actual = [] - stream.on('data', function (data) { - actual.push(data) - }) - stream.once('end', function () { - callback(null, actual) - }) - stream.once('error', function (err) { - callback(err) - }) -} - -test('simple defaults', function(assert) { - - var l = 1000 - , expected = [] - - while(l--) expected.push(l * Math.random()) - - var t = through() - var s = spec(t).through().pausable() - - read(t, function (err, actual) { - assert.ifError(err) - assert.deepEqual(actual, expected) - assert.end() - }) - - t.on('close', s.validate) - - write(expected, t) -}); - -test('simple functions', function(assert) { - - var l = 1000 - , expected = [] - - while(l--) expected.push(l * Math.random()) - - var t = through(function (data) { - this.emit('data', data*2) - }) - var s = spec(t).through().pausable() - - - read(t, function (err, actual) { - assert.ifError(err) - assert.deepEqual(actual, expected.map(function (data) { - return data*2 - })) - assert.end() - }) - - t.on('close', s.validate) - - write(expected, t) -}) - -test('pauses', function(assert) { - - var l = 1000 - , expected = [] - - while(l--) expected.push(l) //Math.random()) - - var t = through() - - var s = spec(t) - .through() - .pausable() - - t.on('data', function () { - if(Math.random() > 0.1) return - t.pause() - process.nextTick(function () { - t.resume() - }) - }) - - read(t, function (err, actual) { - assert.ifError(err) - assert.deepEqual(actual, expected) - }) - - t.on('close', function () { - s.validate() - assert.end() - }) - - write(expected, t) -}) - -test('does not soft-end on `undefined`', function(assert) { - var stream = through() - , count = 0 - - stream.on('data', function (data) { - count++ - }) - - stream.write(undefined) - stream.write(undefined) - - assert.equal(count, 2) - - assert.end() -}) diff --git a/deps/npm/node_modules/JSONStream/package.json b/deps/npm/node_modules/JSONStream/package.json index 2086da717b..5f6be1368e 100644 --- a/deps/npm/node_modules/JSONStream/package.json +++ b/deps/npm/node_modules/JSONStream/package.json @@ -1,27 +1,31 @@ { - "_from": "JSONStream@~1.3.1", - "_id": "JSONStream@1.3.1", + "_args": [ + [ + "JSONStream@1.3.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "JSONStream@1.3.2", + "_id": "JSONStream@1.3.2", "_inBundle": false, - "_integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "_integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", "_location": "/JSONStream", "_phantomChildren": {}, "_requested": { - "type": "range", + "type": "version", "registry": true, - "raw": "JSONStream@~1.3.1", + "raw": "JSONStream@1.3.2", "name": "JSONStream", "escapedName": "JSONStream", - "rawSpec": "~1.3.1", + "rawSpec": "1.3.2", "saveSpec": null, - "fetchSpec": "~1.3.1" + "fetchSpec": "1.3.2" }, "_requiredBy": [ - "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "_shasum": "707f761e01dae9e16f1bcf93703b78c70966579a", - "_spec": "JSONStream@~1.3.1", + "_resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "_spec": "1.3.2", "_where": "/Users/rebecca/code/npm", "author": { "name": "Dominic Tarr", @@ -29,17 +33,15 @@ "url": "http://bit.ly/dominictarr" }, "bin": { - "JSONStream": "./index.js" + "JSONStream": "./bin.js" }, "bugs": { "url": "https://github.com/dominictarr/JSONStream/issues" }, - "bundleDependencies": false, "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" }, - "deprecated": false, "description": "rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)", "devDependencies": { "assertions": "~2.2.2", @@ -71,5 +73,5 @@ "scripts": { "test": "set -e; for t in test/*.js; do echo '***' $t '***'; node $t; done" }, - "version": "1.3.1" + "version": "1.3.2" } diff --git a/deps/npm/node_modules/abbrev/package.json b/deps/npm/node_modules/abbrev/package.json index 0c44f79d60..4c05db1efe 100644 --- a/deps/npm/node_modules/abbrev/package.json +++ b/deps/npm/node_modules/abbrev/package.json @@ -1,4 +1,10 @@ { + "_args": [ + [ + "abbrev@1.1.1", + "/Users/rebecca/code/npm" + ] + ], "_from": "abbrev@1.1.1", "_id": "abbrev@1.1.1", "_inBundle": false, @@ -16,14 +22,12 @@ "fetchSpec": "1.1.1" }, "_requiredBy": [ - "#USER", "/", "/node-gyp/nopt", "/nopt" ], "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "_shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8", - "_spec": "abbrev@1.1.1", + "_spec": "1.1.1", "_where": "/Users/rebecca/code/npm", "author": { "name": "Isaac Z. Schlueter", @@ -32,8 +36,6 @@ "bugs": { "url": "https://github.com/isaacs/abbrev-js/issues" }, - "bundleDependencies": false, - "deprecated": false, "description": "Like ruby's abbrev module, but in js", "devDependencies": { "tap": "^10.1" diff --git a/deps/npm/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/agent-base/.travis.yml new file mode 100644 index 0000000000..6ce862c6f6 --- /dev/null +++ b/deps/npm/node_modules/agent-base/.travis.yml @@ -0,0 +1,23 @@ +sudo: false + +language: node_js + +node_js: + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + +install: + - PATH="`npm bin`:`npm bin -g`:$PATH" + # Install dependencies and build + - npm install + +script: + # Output useful info for debugging + - node --version + - npm --version + # Run tests + - npm test diff --git a/deps/npm/node_modules/agent-base/History.md b/deps/npm/node_modules/agent-base/History.md new file mode 100644 index 0000000000..80c88dc401 --- /dev/null +++ b/deps/npm/node_modules/agent-base/History.md @@ -0,0 +1,113 @@ + +4.2.0 / 2018-01-15 +================== + + * Add support for returning an `http.Agent` instance + * Optimize promisifying logic + * Set `timeout` to null for proper cleanup + * Remove Node.js <= 0.11.3 special-casing from test case + +4.1.2 / 2017-11-20 +================== + + * test Node 9 on Travis + * ensure that `https.get()` uses the patched `https.request()` + +4.1.1 / 2017-07-20 +================== + + * Correct `https.request()` with a String (#9) + +4.1.0 / 2017-06-26 +================== + + * mix in Agent options into Request options + * throw when nothing is returned from agent-base callback + * do not modify the options object for https requests + +4.0.1 / 2017-06-13 +================== + + * add `this` context tests and fixes + +4.0.0 / 2017-06-06 +================== + + * drop support for Node.js < 4 + * drop old versions of Node.js from Travis-CI + * specify Node.js >= 4.0.0 in `engines.node` + * remove more old code + * remove "extend" dependency + * remove "semver" dependency + * make the Promise logic a bit cleaner + * add async function pseudo-example to README + * use direct return in README example + +3.0.0 / 2017-06-02 +================== + + * drop support for Node.js v0.8 and v0.10 + * add support for async, Promises, and direct return + * add a couple `options` test cases + * implement a `"timeout"` option + * rename main file to `index.js` + * test Node 8 on Travis + +2.1.1 / 2017-05-30 +================== + + * Revert [`fe2162e`](https://github.com/TooTallNate/node-agent-base/commit/fe2162e0ba18123f5b301cba4de1e9dd74e437cd) and [`270bdc9`](https://github.com/TooTallNate/node-agent-base/commit/270bdc92eb8e3bd0444d1e5266e8e9390aeb3095) (fixes #7) + +2.1.0 / 2017-05-26 +================== + + * unref is not supported for node < 0.9.1 (@pi0) + * add tests to dangling socket (@pi0) + * check unref() is supported (@pi0) + * fix dangling sockets problem (@pi0) + * add basic "ws" module tests + * make `Agent` be subclassable + * turn `addRequest()` into a named function + * test: Node.js v4 likes to call `cork` on the stream (#3, @tomhughes) + * travis: test node v4, v5, v6 and v7 + +2.0.1 / 2015-09-10 +================== + + * package: update "semver" to v5.0.1 for WebPack (#1, @vhpoet) + +2.0.0 / 2015-07-10 +================== + + * refactor to patch Node.js core for more consistent `opts` values + * ensure that HTTP(s) default port numbers are always given + * test: use ssl-cert-snakeoil SSL certs + * test: add tests for arbitrary options + * README: add API section + * README: make the Agent HTTP/HTTPS generic in the example + * README: use SVG for Travis-CI badge + +1.0.2 / 2015-06-27 +================== + + * agent: set `req._hadError` to true after emitting "error" + * package: update "mocha" to v2 + * test: add artificial HTTP GET request test + * test: add artificial data events test + * test: fix artifical GET response test on node > v0.11.3 + * test: use a real timeout for the async error test + +1.0.1 / 2013-09-09 +================== + + * Fix passing an "error" object to the callback function on the first tick + +1.0.0 / 2013-09-09 +================== + + * New API: now you pass a callback function directly + +0.0.1 / 2013-07-09 +================== + + * Initial release diff --git a/deps/npm/node_modules/agent-base/README.md b/deps/npm/node_modules/agent-base/README.md new file mode 100644 index 0000000000..dbeceab8a1 --- /dev/null +++ b/deps/npm/node_modules/agent-base/README.md @@ -0,0 +1,145 @@ +agent-base +========== +### Turn a function into an [`http.Agent`][http.Agent] instance +[![Build Status](https://travis-ci.org/TooTallNate/node-agent-base.svg?branch=master)](https://travis-ci.org/TooTallNate/node-agent-base) + +This module provides an `http.Agent` generator. That is, you pass it an async +callback function, and it returns a new `http.Agent` instance that will invoke the +given callback function when sending outbound HTTP requests. + +#### Some subclasses: + +Here's some more interesting uses of `agent-base`. +Send a pull request to list yours! + + * [`http-proxy-agent`][http-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTP endpoints + * [`https-proxy-agent`][https-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTPS endpoints + * [`pac-proxy-agent`][pac-proxy-agent]: A PAC file proxy `http.Agent` implementation for HTTP and HTTPS + * [`socks-proxy-agent`][socks-proxy-agent]: A SOCKS (v4a) proxy `http.Agent` implementation for HTTP and HTTPS + + +Installation +------------ + +Install with `npm`: + +``` bash +$ npm install agent-base +``` + + +Example +------- + +Here's a minimal example that creates a new `net.Socket` connection to the server +for every HTTP request (i.e. the equivalent of `agent: false` option): + +```js +var net = require('net'); +var tls = require('tls'); +var url = require('url'); +var http = require('http'); +var agent = require('agent-base'); + +var endpoint = 'http://nodejs.org/api/'; +var parsed = url.parse(endpoint); + +// This is the important part! +parsed.agent = agent(function (req, opts) { + var socket; + // `secureEndpoint` is true when using the https module + if (opts.secureEndpoint) { + socket = tls.connect(opts); + } else { + socket = net.connect(opts); + } + return socket; +}); + +// Everything else works just like normal... +http.get(parsed, function (res) { + console.log('"response" event!', res.headers); + res.pipe(process.stdout); +}); +``` + +Returning a Promise or using an `async` function is also supported: + +```js +agent(async function (req, opts) { + await sleep(1000); + // etcā€¦ +}); +``` + +Return another `http.Agent` instance to "pass through" the responsibility +for that HTTP request to that agent: + +```js +agent(function (req, opts) { + return opts.secureEndpoint ? https.globalAgent : http.globalAgent; +}); +``` + + +API +--- + +## Agent(Function callback[, Object options]) ā†’ [http.Agent][] + +Creates a base `http.Agent` that will execute the callback function `callback` +for every HTTP request that it is used as the `agent` for. The callback function +is responsible for creating a `stream.Duplex` instance of some kind that will be +used as the underlying socket in the HTTP request. + +The `options` object accepts the following properties: + + * `timeout` - Number - Timeout for the `callback()` function in milliseconds. Defaults to Infinity (optional). + +The callback function should have the following signature: + +### callback(http.ClientRequest req, Object options, Function cb) ā†’ undefined + +The ClientRequest `req` can be accessed to read request headers and +and the path, etc. The `options` object contains the options passed +to the `http.request()`/`https.request()` function call, and is formatted +to be directly passed to `net.connect()`/`tls.connect()`, or however +else you want a Socket to be created. Pass the created socket to +the callback function `cb` once created, and the HTTP request will +continue to proceed. + +If the `https` module is used to invoke the HTTP request, then the +`secureEndpoint` property on `options` _will be set to `true`_. + + +License +------- + +(The MIT License) + +Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +[http-proxy-agent]: https://github.com/TooTallNate/node-http-proxy-agent +[https-proxy-agent]: https://github.com/TooTallNate/node-https-proxy-agent +[pac-proxy-agent]: https://github.com/TooTallNate/node-pac-proxy-agent +[socks-proxy-agent]: https://github.com/TooTallNate/node-socks-proxy-agent +[http.Agent]: https://nodejs.org/api/http.html#http_class_http_agent diff --git a/deps/npm/node_modules/agent-base/index.js b/deps/npm/node_modules/agent-base/index.js new file mode 100644 index 0000000000..b1f42e6317 --- /dev/null +++ b/deps/npm/node_modules/agent-base/index.js @@ -0,0 +1,160 @@ +'use strict'; +require('./patch-core'); +const inherits = require('util').inherits; +const promisify = require('es6-promisify'); +const EventEmitter = require('events').EventEmitter; + +module.exports = Agent; + +function isAgent(v) { + return v && typeof v.addRequest === 'function'; +} + +/** + * Base `http.Agent` implementation. + * No pooling/keep-alive is implemented by default. + * + * @param {Function} callback + * @api public + */ +function Agent(callback, _opts) { + if (!(this instanceof Agent)) { + return new Agent(callback, _opts); + } + + EventEmitter.call(this); + + // The callback gets promisified if it has 3 parameters + // (i.e. it has a callback function) lazily + this._promisifiedCallback = false; + + let opts = _opts; + if ('function' === typeof callback) { + this.callback = callback; + } else if (callback) { + opts = callback; + } + + // timeout for the socket to be returned from the callback + this.timeout = (opts && opts.timeout) || null; + + this.options = opts; +} +inherits(Agent, EventEmitter); + +/** + * Override this function in your subclass! + */ +Agent.prototype.callback = function callback(req, opts) { + throw new Error( + '"agent-base" has no default implementation, you must subclass and override `callback()`' + ); +}; + +/** + * Called by node-core's "_http_client.js" module when creating + * a new HTTP request with this Agent instance. + * + * @api public + */ +Agent.prototype.addRequest = function addRequest(req, _opts) { + const ownOpts = Object.assign({}, _opts); + + // Set default `host` for HTTP to localhost + if (null == ownOpts.host) { + ownOpts.host = 'localhost'; + } + + // Set default `port` for HTTP if none was explicitly specified + if (null == ownOpts.port) { + ownOpts.port = ownOpts.secureEndpoint ? 443 : 80; + } + + const opts = Object.assign({}, this.options, ownOpts); + + if (opts.host && opts.path) { + // If both a `host` and `path` are specified then it's most likely the + // result of a `url.parse()` call... we need to remove the `path` portion so + // that `net.connect()` doesn't attempt to open that as a unix socket file. + delete opts.path; + } + + delete opts.agent; + delete opts.hostname; + delete opts._defaultAgent; + delete opts.defaultPort; + delete opts.createConnection; + + // Hint to use "Connection: close" + // XXX: non-documented `http` module API :( + req._last = true; + req.shouldKeepAlive = false; + + // Create the `stream.Duplex` instance + let timeout; + let timedOut = false; + const timeoutMs = this.timeout; + + function onerror(err) { + if (req._hadError) return; + req.emit('error', err); + // For Safety. Some additional errors might fire later on + // and we need to make sure we don't double-fire the error event. + req._hadError = true; + } + + function ontimeout() { + timeout = null; + timedOut = true; + const err = new Error( + 'A "socket" was not created for HTTP request before ' + timeoutMs + 'ms' + ); + err.code = 'ETIMEOUT'; + onerror(err); + } + + function callbackError(err) { + if (timedOut) return; + if (timeout != null) { + clearTimeout(timeout); + timeout = null; + } + onerror(err); + } + + function onsocket(socket) { + if (timedOut) return; + if (timeout != null) { + clearTimeout(timeout); + timeout = null; + } + if (isAgent(socket)) { + // `socket` is actually an http.Agent instance, so relinquish + // responsibility for this `req` to the Agent from here on + socket.addRequest(req, opts); + } else if (socket) { + req.onSocket(socket); + } else { + const err = new Error( + `no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\`` + ); + onerror(err); + } + } + + if (!this._promisifiedCallback && this.callback.length >= 3) { + // Legacy callback function - convert to a Promise + this.callback = promisify(this.callback, this); + this._promisifiedCallback = true; + } + + if (timeoutMs > 0) { + timeout = setTimeout(ontimeout, timeoutMs); + } + + try { + Promise.resolve(this.callback(req, opts)).then(onsocket, callbackError); + } catch (err) { + Promise.reject(err).catch(callbackError); + } +}; diff --git a/deps/npm/node_modules/agent-base/package.json b/deps/npm/node_modules/agent-base/package.json new file mode 100644 index 0000000000..59c5e0be25 --- /dev/null +++ b/deps/npm/node_modules/agent-base/package.json @@ -0,0 +1,69 @@ +{ + "_from": "agent-base@4", + "_id": "agent-base@4.2.0", + "_inBundle": false, + "_integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "_location": "/agent-base", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "agent-base@4", + "name": "agent-base", + "escapedName": "agent-base", + "rawSpec": "4", + "saveSpec": null, + "fetchSpec": "4" + }, + "_requiredBy": [ + "/http-proxy-agent", + "/https-proxy-agent", + "/npm-profile/socks-proxy-agent", + "/npm-registry-fetch/socks-proxy-agent", + "/socks-proxy-agent" + ], + "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "_shasum": "9838b5c3392b962bad031e6a4c5e1024abec45ce", + "_spec": "agent-base@4", + "_where": "/Users/rebecca/code/npm/node_modules/http-proxy-agent", + "author": { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io/" + }, + "bugs": { + "url": "https://github.com/TooTallNate/node-agent-base/issues" + }, + "bundleDependencies": false, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "deprecated": false, + "description": "Turn a function into an `http.Agent` instance", + "devDependencies": { + "mocha": "^3.4.2", + "ws": "^3.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "homepage": "https://github.com/TooTallNate/node-agent-base#readme", + "keywords": [ + "http", + "agent", + "base", + "barebones", + "https" + ], + "license": "MIT", + "main": "./index.js", + "name": "agent-base", + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/node-agent-base.git" + }, + "scripts": { + "test": "mocha --reporter spec" + }, + "version": "4.2.0" +} diff --git a/deps/npm/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/agent-base/patch-core.js new file mode 100644 index 0000000000..47d26a72b0 --- /dev/null +++ b/deps/npm/node_modules/agent-base/patch-core.js @@ -0,0 +1,37 @@ +'use strict'; +const url = require('url'); +const https = require('https'); + +/** + * This currently needs to be applied to all Node.js versions + * in order to determine if the `req` is an HTTP or HTTPS request. + * + * There is currently no PR attempting to move this property upstream. + */ +https.request = (function(request) { + return function(_options, cb) { + let options; + if (typeof _options === 'string') { + options = url.parse(_options); + } else { + options = Object.assign({}, _options); + } + if (null == options.port) { + options.port = 443; + } + options.secureEndpoint = true; + return request.call(https, options, cb); + }; +})(https.request); + +/** + * This is needed for Node.js >= 9.0.0 to make sure `https.get()` uses the + * patched `https.request()`. + * + * Ref: https://github.com/nodejs/node/commit/5118f31 + */ +https.get = function(options, cb) { + const req = https.request(options, cb); + req.end(); + return req; +}; diff --git a/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key new file mode 100644 index 0000000000..fd12501220 --- /dev/null +++ b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCzURxIqzer0ACAbX/lHdsn4Gd9PLKrf7EeDYfIdV0HZKPD8WDr +bBx2/fBu0OW2sjnzv/SVZbJ0DAuPE/p0+eT0qb2qC10iz9iTD7ribd7gxhirVb8y +b3fBjXsxc8V8p4Ny1LcvNSqCjwUbJqdRogfoJeTiqPM58z5sNzuv5iq7iwIDAQAB +AoGAPMQy4olrP0UotlzlJ36bowLP70ffgHCwU+/f4NWs5fF78c3du0oSx1w820Dd +Z7E0JF8bgnlJJTxjumPZz0RUCugrEHBKJmzEz3cxF5E3+7NvteZcjKn9D67RrM5x +1/uSZ9cqKE9cYvY4fSuHx18diyZ4axR/wB1Pea2utjjDM+ECQQDb9ZbmmaWMiRpQ +5Up+loxP7BZNPsEVsm+DVJmEFbaFgGfncWBqSIqnPNjMwTwj0OigTwCAEGPkfRVW +T0pbYWCxAkEA0LK7SCTwzyDmhASUalk0x+3uCAA6ryFdwJf/wd8TRAvVOmkTEldX +uJ7ldLvfrONYO3v56uKTU/SoNdZYzKtO+wJAX2KM4ctXYy5BXztPpr2acz4qHa1N +Bh+vBAC34fOYhyQ76r3b1btHhWZ5jbFuZwm9F2erC94Ps5IaoqcX07DSwQJAPKGw +h2U0EPkd/3zVIZCJJQya+vgWFIs9EZcXVtvYXQyTBkVApTN66MhBIYjzkub5205J +bVQmOV37AKklY1DhwQJAA1wos0cYxro02edzatxd0DIR2r4qqOqLkw6BhYHhq6HJ +ZvIcQkHqdSXzdETFc01I1znDGGIrJHcnvKWgBPoEUg== +-----END RSA PRIVATE KEY----- diff --git a/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem new file mode 100644 index 0000000000..b115a5e914 --- /dev/null +++ b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB1TCCAT4CCQDV5mPlzm9+izANBgkqhkiG9w0BAQUFADAvMS0wKwYDVQQDEyQ3 +NTI3YmQ3Ny1hYjNlLTQ3NGItYWNlNy1lZWQ2MDUzOTMxZTcwHhcNMTUwNzA2MjI0 +NTA3WhcNMjUwNzAzMjI0NTA3WjAvMS0wKwYDVQQDEyQ3NTI3YmQ3Ny1hYjNlLTQ3 +NGItYWNlNy1lZWQ2MDUzOTMxZTcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +ALNRHEirN6vQAIBtf+Ud2yfgZ308sqt/sR4Nh8h1XQdko8PxYOtsHHb98G7Q5bay +OfO/9JVlsnQMC48T+nT55PSpvaoLXSLP2JMPuuJt3uDGGKtVvzJvd8GNezFzxXyn +g3LUty81KoKPBRsmp1GiB+gl5OKo8znzPmw3O6/mKruLAgMBAAEwDQYJKoZIhvcN +AQEFBQADgYEACzoHUF8UV2Z6541Q2wKEA0UFUzmUjf/E1XwBO+1P15ZZ64uw34B4 +1RwMPtAo9RY/PmICTWtNxWGxkzwb2JtDWtnxVER/lF8k2XcXPE76fxTHJF/BKk9J +QU8OTD1dd9gHCBviQB9TqntRZ5X7axjtuWjb2umY+owBYzAHZkp1HKI= +-----END CERTIFICATE----- diff --git a/deps/npm/node_modules/agent-base/test/test.js b/deps/npm/node_modules/agent-base/test/test.js new file mode 100644 index 0000000000..da2e919835 --- /dev/null +++ b/deps/npm/node_modules/agent-base/test/test.js @@ -0,0 +1,673 @@ +/** + * Module dependencies. + */ + +var fs = require('fs'); +var url = require('url'); +var net = require('net'); +var tls = require('tls'); +var http = require('http'); +var https = require('https'); +var WebSocket = require('ws'); +var assert = require('assert'); +var events = require('events'); +var inherits = require('util').inherits; +var Agent = require('../'); + +var PassthroughAgent = Agent(function(req, opts) { + return opts.secureEndpoint ? https.globalAgent : http.globalAgent; +}); + +describe('Agent', function() { + describe('subclass', function() { + it('should be subclassable', function(done) { + function MyAgent() { + Agent.call(this); + } + inherits(MyAgent, Agent); + + MyAgent.prototype.callback = function(req, opts, fn) { + assert.equal(req.path, '/foo'); + assert.equal(req.getHeader('host'), '127.0.0.1:1234'); + assert.equal(opts.secureEndpoint, true); + done(); + }; + + var info = url.parse('https://127.0.0.1:1234/foo'); + info.agent = new MyAgent(); + https.get(info); + }); + }); + describe('options', function() { + it('should support an options Object as first argument', function() { + var agent = new Agent({ timeout: 1000 }); + assert.equal(1000, agent.timeout); + }); + it('should support an options Object as second argument', function() { + var agent = new Agent(function() {}, { timeout: 1000 }); + assert.equal(1000, agent.timeout); + }); + it('should be mixed in with HTTP request options', function(done) { + var agent = new Agent({ + host: 'my-proxy.com', + port: 3128, + foo: 'bar' + }); + agent.callback = function(req, opts, fn) { + assert.equal('bar', opts.foo); + assert.equal('a', opts.b); + + // `host` and `port` are special-cases, and should always be + // overwritten in the request `opts` inside the agent-base callback + assert.equal('localhost', opts.host); + assert.equal(80, opts.port); + done(); + }; + var opts = { + b: 'a', + agent: agent + }; + http.get(opts); + }); + }); + describe('`this` context', function() { + it('should be the Agent instance', function(done) { + var called = false; + var agent = new Agent(); + agent.callback = function() { + called = true; + assert.equal(this, agent); + }; + var info = url.parse('http://127.0.0.1/foo'); + info.agent = agent; + var req = http.get(info); + req.on('error', function(err) { + assert(/no Duplex stream was returned/.test(err.message)); + done(); + }); + }); + it('should be the Agent instance with callback signature', function(done) { + var called = false; + var agent = new Agent(); + agent.callback = function(req, opts, fn) { + called = true; + assert.equal(this, agent); + fn(); + }; + var info = url.parse('http://127.0.0.1/foo'); + info.agent = agent; + var req = http.get(info); + req.on('error', function(err) { + assert(/no Duplex stream was returned/.test(err.message)); + done(); + }); + }); + }); + describe('"error" event', function() { + it('should be invoked on `http.ClientRequest` instance if `callback()` has not been defined', function( + done + ) { + var agent = new Agent(); + var info = url.parse('http://127.0.0.1/foo'); + info.agent = agent; + var req = http.get(info); + req.on('error', function(err) { + assert.equal( + '"agent-base" has no default implementation, you must subclass and override `callback()`', + err.message + ); + done(); + }); + }); + it('should be invoked on `http.ClientRequest` instance if Error passed to callback function on the first tick', function( + done + ) { + var agent = new Agent(function(req, opts, fn) { + fn(new Error('is this caught?')); + }); + var info = url.parse('http://127.0.0.1/foo'); + info.agent = agent; + var req = http.get(info); + req.on('error', function(err) { + assert.equal('is this caught?', err.message); + done(); + }); + }); + it('should be invoked on `http.ClientRequest` instance if Error passed to callback function after the first tick', function( + done + ) { + var agent = new Agent(function(req, opts, fn) { + setTimeout(function() { + fn(new Error('is this caught?')); + }, 10); + }); + var info = url.parse('http://127.0.0.1/foo'); + info.agent = agent; + var req = http.get(info); + req.on('error', function(err) { + assert.equal('is this caught?', err.message); + done(); + }); + }); + }); + describe('artificial "streams"', function() { + it('should send a GET request', function(done) { + var stream = new events.EventEmitter(); + + // needed for the `http` module to call .write() on the stream + stream.writable = true; + + stream.write = function(str) { + assert(0 == str.indexOf('GET / HTTP/1.1')); + done(); + }; + + // needed for `http` module in Node.js 4 + stream.cork = function() {}; + + var opts = { + method: 'GET', + host: '127.0.0.1', + path: '/', + port: 80, + agent: new Agent(function(req, opts, fn) { + fn(null, stream); + }) + }; + var req = http.request(opts); + req.end(); + }); + it('should receive a GET response', function(done) { + var stream = new events.EventEmitter(); + var opts = { + method: 'GET', + host: '127.0.0.1', + path: '/', + port: 80, + agent: new Agent(function(req, opts, fn) { + fn(null, stream); + }) + }; + var req = http.request(opts, function(res) { + assert.equal('0.9', res.httpVersion); + assert.equal(111, res.statusCode); + assert.equal('bar', res.headers.foo); + done(); + }); + + // have to wait for the "socket" event since `http.ClientRequest` + // doesn't *actually* attach the listeners to the "stream" until + // this happens + req.once('socket', function() { + var buf = new Buffer( + 'HTTP/0.9 111\r\n' + + 'Foo: bar\r\n' + + 'Set-Cookie: 1\r\n' + + 'Set-Cookie: 2\r\n\r\n' + ); + stream.emit('data', buf); + }); + + req.end(); + }); + }); +}); + +describe('"http" module', function() { + var server; + var port; + + // setup test HTTP server + before(function(done) { + server = http.createServer(); + server.listen(0, function() { + port = server.address().port; + done(); + }); + }); + + // shut down test HTTP server + after(function(done) { + server.once('close', function() { + done(); + }); + server.close(); + }); + + it('should work for basic HTTP requests', function(done) { + var called = false; + var agent = new Agent(function(req, opts, fn) { + called = true; + var socket = net.connect(opts); + fn(null, socket); + }); + + // add HTTP server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Foo', 'bar'); + res.setHeader('X-Url', req.url); + res.end(); + }); + + var info = url.parse('http://127.0.0.1:' + port + '/foo'); + info.agent = agent; + http.get(info, function(res) { + assert.equal('bar', res.headers['x-foo']); + assert.equal('/foo', res.headers['x-url']); + assert(gotReq); + assert(called); + done(); + }); + }); + + it('should support direct return in `connect()`', function(done) { + var called = false; + var agent = new Agent(function(req, opts) { + called = true; + return net.connect(opts); + }); + + // add HTTP server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Foo', 'bar'); + res.setHeader('X-Url', req.url); + res.end(); + }); + + var info = url.parse('http://127.0.0.1:' + port + '/foo'); + info.agent = agent; + http.get(info, function(res) { + assert.equal('bar', res.headers['x-foo']); + assert.equal('/foo', res.headers['x-url']); + assert(gotReq); + assert(called); + done(); + }); + }); + + it('should support returning a Promise in `connect()`', function(done) { + var called = false; + var agent = new Agent(function(req, opts) { + return new Promise(function(resolve, reject) { + called = true; + resolve(net.connect(opts)); + }); + }); + + // add HTTP server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Foo', 'bar'); + res.setHeader('X-Url', req.url); + res.end(); + }); + + var info = url.parse('http://127.0.0.1:' + port + '/foo'); + info.agent = agent; + http.get(info, function(res) { + assert.equal('bar', res.headers['x-foo']); + assert.equal('/foo', res.headers['x-url']); + assert(gotReq); + assert(called); + done(); + }); + }); + + it('should set the `Connection: close` response header', function(done) { + var called = false; + var agent = new Agent(function(req, opts, fn) { + called = true; + var socket = net.connect(opts); + fn(null, socket); + }); + + // add HTTP server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Url', req.url); + assert.equal('close', req.headers.connection); + res.end(); + }); + + var info = url.parse('http://127.0.0.1:' + port + '/bar'); + info.agent = agent; + http.get(info, function(res) { + assert.equal('/bar', res.headers['x-url']); + assert.equal('close', res.headers.connection); + assert(gotReq); + assert(called); + done(); + }); + }); + + it('should pass through options from `http.request()`', function(done) { + var agent = new Agent(function(req, opts, fn) { + assert.equal('google.com', opts.host); + assert.equal('bar', opts.foo); + done(); + }); + + http.get({ + host: 'google.com', + foo: 'bar', + agent: agent + }); + }); + + it('should default to port 80', function(done) { + var agent = new Agent(function(req, opts, fn) { + assert.equal(80, opts.port); + done(); + }); + + // (probably) not hitting a real HTTP server here, + // so no need to add a httpServer request listener + http.get({ + host: '127.0.0.1', + path: '/foo', + agent: agent + }); + }); + + it('should support the "timeout" option', function(done) { + // ensure we timeout after the "error" event had a chance to trigger + this.timeout(1000); + this.slow(800); + + var agent = new Agent( + function(req, opts, fn) { + // this function will time out + }, + { timeout: 100 } + ); + + var opts = url.parse('http://nodejs.org'); + opts.agent = agent; + + var req = http.get(opts); + req.once('error', function(err) { + assert.equal('ETIMEOUT', err.code); + req.abort(); + done(); + }); + }); + + describe('PassthroughAgent', function() { + it('should pass through to `http.globalAgent`', function(done) { + // add HTTP server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Foo', 'bar'); + res.setHeader('X-Url', req.url); + res.end(); + }); + + var info = url.parse('http://127.0.0.1:' + port + '/foo'); + info.agent = PassthroughAgent; + http.get(info, function(res) { + assert.equal('bar', res.headers['x-foo']); + assert.equal('/foo', res.headers['x-url']); + assert(gotReq); + done(); + }); + }); + }); +}); + +describe('"https" module', function() { + var server; + var port; + + // setup test HTTPS server + before(function(done) { + var options = { + key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'), + cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem') + }; + server = https.createServer(options); + server.listen(0, function() { + port = server.address().port; + done(); + }); + }); + + // shut down test HTTP server + after(function(done) { + server.once('close', function() { + done(); + }); + server.close(); + }); + + it('should not modify the passed in Options object', function(done) { + var called = false; + var agent = new Agent(function(req, opts, fn) { + called = true; + assert.equal(true, opts.secureEndpoint); + assert.equal(443, opts.port); + assert.equal('localhost', opts.host); + }); + var opts = { agent: agent }; + var req = https.request(opts); + assert.equal(true, called); + assert.equal(false, 'secureEndpoint' in opts); + assert.equal(false, 'port' in opts); + done(); + }); + + it('should work with a String URL', function(done) { + var endpoint = 'https://127.0.0.1:' + port; + var req = https.get(endpoint); + + // it's gonna error out since `rejectUnauthorized` is not being passed in + req.on('error', function(err) { + assert.equal(err.code, 'DEPTH_ZERO_SELF_SIGNED_CERT'); + done(); + }); + }); + + it('should work for basic HTTPS requests', function(done) { + var called = false; + var agent = new Agent(function(req, opts, fn) { + called = true; + assert(opts.secureEndpoint); + var socket = tls.connect(opts); + fn(null, socket); + }); + + // add HTTPS server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Foo', 'bar'); + res.setHeader('X-Url', req.url); + res.end(); + }); + + var info = url.parse('https://127.0.0.1:' + port + '/foo'); + info.agent = agent; + info.rejectUnauthorized = false; + https.get(info, function(res) { + assert.equal('bar', res.headers['x-foo']); + assert.equal('/foo', res.headers['x-url']); + assert(gotReq); + assert(called); + done(); + }); + }); + + it('should pass through options from `https.request()`', function(done) { + var agent = new Agent(function(req, opts, fn) { + assert.equal('google.com', opts.host); + assert.equal('bar', opts.foo); + done(); + }); + + https.get({ + host: 'google.com', + foo: 'bar', + agent: agent + }); + }); + + it('should default to port 443', function(done) { + var agent = new Agent(function(req, opts, fn) { + assert.equal(true, opts.secureEndpoint); + assert.equal(false, opts.rejectUnauthorized); + assert.equal(443, opts.port); + done(); + }); + + // (probably) not hitting a real HTTPS server here, + // so no need to add a httpsServer request listener + https.get({ + host: '127.0.0.1', + path: '/foo', + agent: agent, + rejectUnauthorized: false + }); + }); + + describe('PassthroughAgent', function() { + it('should pass through to `https.globalAgent`', function(done) { + // add HTTP server "request" listener + var gotReq = false; + server.once('request', function(req, res) { + gotReq = true; + res.setHeader('X-Foo', 'bar'); + res.setHeader('X-Url', req.url); + res.end(); + }); + + var info = url.parse('https://127.0.0.1:' + port + '/foo'); + info.agent = PassthroughAgent; + info.rejectUnauthorized = false; + https.get(info, function(res) { + assert.equal('bar', res.headers['x-foo']); + assert.equal('/foo', res.headers['x-url']); + assert(gotReq); + done(); + }); + }); + }); +}); + +describe('"ws" server', function() { + var wss; + var server; + var port; + + // setup test HTTP server + before(function(done) { + server = http.createServer(); + wss = new WebSocket.Server({ server: server }); + server.listen(0, function() { + port = server.address().port; + done(); + }); + }); + + // shut down test HTTP server + after(function(done) { + server.once('close', function() { + done(); + }); + server.close(); + }); + + it('should work for basic WebSocket connections', function(done) { + function onconnection(ws) { + ws.on('message', function(data) { + assert.equal('ping', data); + ws.send('pong'); + }); + } + wss.on('connection', onconnection); + + var agent = new Agent(function(req, opts, fn) { + var socket = net.connect(opts); + fn(null, socket); + }); + + var client = new WebSocket('ws://127.0.0.1:' + port + '/', { + agent: agent + }); + + client.on('open', function() { + client.send('ping'); + }); + + client.on('message', function(data) { + assert.equal('pong', data); + client.close(); + wss.removeListener('connection', onconnection); + done(); + }); + }); +}); + +describe('"wss" server', function() { + var wss; + var server; + var port; + + // setup test HTTP server + before(function(done) { + var options = { + key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'), + cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem') + }; + server = https.createServer(options); + wss = new WebSocket.Server({ server: server }); + server.listen(0, function() { + port = server.address().port; + done(); + }); + }); + + // shut down test HTTP server + after(function(done) { + server.once('close', function() { + done(); + }); + server.close(); + }); + + it('should work for secure WebSocket connections', function(done) { + function onconnection(ws) { + ws.on('message', function(data) { + assert.equal('ping', data); + ws.send('pong'); + }); + } + wss.on('connection', onconnection); + + var agent = new Agent(function(req, opts, fn) { + var socket = tls.connect(opts); + fn(null, socket); + }); + + var client = new WebSocket('wss://127.0.0.1:' + port + '/', { + agent: agent, + rejectUnauthorized: false + }); + + client.on('open', function() { + client.send('ping'); + }); + + client.on('message', function(data) { + assert.equal('pong', data); + client.close(); + wss.removeListener('connection', onconnection); + done(); + }); + }); +}); diff --git a/deps/npm/node_modules/agentkeepalive/History.md b/deps/npm/node_modules/agentkeepalive/History.md new file mode 100644 index 0000000000..da67a1c4f6 --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/History.md @@ -0,0 +1,148 @@ + +3.4.1 / 2018-03-08 +================== + +**fixes** + * [[`4d3a3b1`](http://github.com/node-modules/agentkeepalive/commit/4d3a3b1f7b16595febbbd39eeed72b2663549014)] - fix: Handle ipv6 addresses in host-header correctly with TLS (#53) (Mattias Holmlund <>) + +**others** + * [[`55a7a5c`](http://github.com/node-modules/agentkeepalive/commit/55a7a5cd33e97f9a8370083dcb041c5552f10ac9)] - test: stop timer after test end (fengmk2 <>) + +3.4.0 / 2018-02-27 +================== + +**features** + * [[`bc7cadb`](http://github.com/node-modules/agentkeepalive/commit/bc7cadb30ecd2071e2b341ac53ae1a2b8155c43d)] - feat: use socket custom freeSocketKeepAliveTimeout first (#59) (fengmk2 <>) + +**others** + * [[`138eda8`](http://github.com/node-modules/agentkeepalive/commit/138eda81e10b632aaa87bea0cb66d8667124c4e8)] - doc: fix `keepAliveMsecs` params description (#55) (Hongcai Deng <>) + +3.3.0 / 2017-06-20 +================== + + * feat: add statusChanged getter (#51) + * chore: format License + +3.2.0 / 2017-06-10 +================== + + * feat: add expiring active sockets + * test: add node 8 (#49) + +3.1.0 / 2017-02-20 +================== + + * feat: timeout support humanize ms (#48) + +3.0.0 / 2016-12-20 +================== + + * fix: emit agent socket close event + * test: add remove excess calls to removeSocket + * test: use egg-ci + * test: refactor test with eslint rules + * feat: merge _http_agent.js from 7.2.1 + +2.2.0 / 2016-06-26 +================== + + * feat: Add browser shim (noop) for isomorphic use. (#39) + * chore: add security check badge + +2.1.1 / 2016-04-06 +================== + + * https: fix ssl socket leak when keepalive is used + * chore: remove circle ci image + +2.1.0 / 2016-04-02 +================== + + * fix: opened sockets number overflow maxSockets + +2.0.5 / 2016-03-16 +================== + + * fix: pick _evictSession to httpsAgent + +2.0.4 / 2016-03-13 +================== + + * test: add Circle ci + * test: add appveyor ci build + * refactor: make sure only one error listener + * chore: use codecov + * fix: handle idle socket error + * test: run on more node versions + +2.0.3 / 2015-08-03 +================== + + * fix: add default error handler to avoid Unhandled error event throw + +2.0.2 / 2015-04-25 +================== + + * fix: remove socket from freeSockets on 'timeout' (@pmalouin) + +2.0.1 / 2015-04-19 +================== + + * fix: add timeoutSocketCount to getCurrentStatus() + * feat(getCurrentStatus): add getCurrentStatus + +2.0.0 / 2015-04-01 +================== + + * fix: socket.destroyed always be undefined on 0.10.x + * Make it compatible with node v0.10.x (@lattmann) + +1.2.1 / 2015-03-23 +================== + + * patch from iojs: don't overwrite servername option + * patch commits from joyent/node + * add max sockets test case + * add nagle algorithm delayed link + +1.2.0 / 2014-09-02 +================== + + * allow set keepAliveTimeout = 0 + * support timeout on working socket. fixed #6 + +1.1.0 / 2014-08-28 +================== + + * add some socket counter for deep monitor + +1.0.0 / 2014-08-13 +================== + + * update _http_agent, only support 0.11+, only support node 0.11.0+ + +0.2.2 / 2013-11-19 +================== + + * support node 0.8 and node 0.10 + +0.2.1 / 2013-11-08 +================== + + * fix socket does not timeout bug, it will hang on life, must use 0.2.x on node 0.11 + +0.2.0 / 2013-11-06 +================== + + * use keepalive agent on node 0.11+ impl + +0.1.5 / 2013-06-24 +================== + + * support coveralls + * add node 0.10 test + * add 0.8.22 original https.js + * add original http.js module to diff + * update jscover + * mv pem to fixtures + * add https agent usage diff --git a/deps/npm/node_modules/agentkeepalive/README.md b/deps/npm/node_modules/agentkeepalive/README.md new file mode 100644 index 0000000000..ce067f10c7 --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/README.md @@ -0,0 +1,248 @@ +# agentkeepalive + +[![NPM version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![Appveyor status][appveyor-image]][appveyor-url] +[![Test coverage][codecov-image]][codecov-url] +[![David deps][david-image]][david-url] +[![Known Vulnerabilities][snyk-image]][snyk-url] +[![npm download][download-image]][download-url] + +[npm-image]: https://img.shields.io/npm/v/agentkeepalive.svg?style=flat +[npm-url]: https://npmjs.org/package/agentkeepalive +[travis-image]: https://img.shields.io/travis/node-modules/agentkeepalive.svg?style=flat +[travis-url]: https://travis-ci.org/node-modules/agentkeepalive +[appveyor-image]: https://ci.appveyor.com/api/projects/status/k7ct4s47di6m5uy2?svg=true +[appveyor-url]: https://ci.appveyor.com/project/fengmk2/agentkeepalive +[codecov-image]: https://codecov.io/gh/node-modules/agentkeepalive/branch/master/graph/badge.svg +[codecov-url]: https://codecov.io/gh/node-modules/agentkeepalive +[david-image]: https://img.shields.io/david/node-modules/agentkeepalive.svg?style=flat +[david-url]: https://david-dm.org/node-modules/agentkeepalive +[snyk-image]: https://snyk.io/test/npm/agentkeepalive/badge.svg?style=flat-square +[snyk-url]: https://snyk.io/test/npm/agentkeepalive +[download-image]: https://img.shields.io/npm/dm/agentkeepalive.svg?style=flat-square +[download-url]: https://npmjs.org/package/agentkeepalive + +The Node.js's missing `keep alive` `http.Agent`. Support `http` and `https`. + +## What's different from original `http.Agent`? + +- `keepAlive=true` by default +- Disable Nagle's algorithm: `socket.setNoDelay(true)` +- Add free socket timeout: avoid long time inactivity socket leak in the free-sockets queue. +- Add active socket timeout: avoid long time inactivity socket leak in the active-sockets queue. + +## Install + +```bash +$ npm install agentkeepalive --save +``` + +## new Agent([options]) + +* `options` {Object} Set of configurable options to set on the agent. + Can have the following fields: + * `keepAlive` {Boolean} Keep sockets around in a pool to be used by + other requests in the future. Default = `true`. + * `keepAliveMsecs` {Number} When using the keepAlive option, specifies the initial delay + for TCP Keep-Alive packets. Ignored when the keepAlive option is false or undefined. Defaults to 1000. + Default = `1000`. Only relevant if `keepAlive` is set to `true`. + * `freeSocketKeepAliveTimeout`: {Number} Sets the free socket to timeout + after `freeSocketKeepAliveTimeout` milliseconds of inactivity on the free socket. + Default is `15000`. + Only relevant if `keepAlive` is set to `true`. + * `timeout`: {Number} Sets the working socket to timeout + after `timeout` milliseconds of inactivity on the working socket. + Default is `freeSocketKeepAliveTimeout * 2`. + * `maxSockets` {Number} Maximum number of sockets to allow per + host. Default = `Infinity`. + * `maxFreeSockets` {Number} Maximum number of sockets to leave open + in a free state. Only relevant if `keepAlive` is set to `true`. + Default = `256`. + * `socketActiveTTL` {Number} Sets the socket active time to live, even if it's in use. + If not setted the behaviour continues the same (the socket will be released only when free) + Default = `null`. + +## Usage + +```js +const http = require('http'); +const Agent = require('agentkeepalive'); + +const keepaliveAgent = new Agent({ + maxSockets: 100, + maxFreeSockets: 10, + timeout: 60000, + freeSocketKeepAliveTimeout: 30000, // free socket keepalive for 30 seconds +}); + +const options = { + host: 'cnodejs.org', + port: 80, + path: '/', + method: 'GET', + agent: keepaliveAgent, +}; + +const req = http.request(options, res => { + console.log('STATUS: ' + res.statusCode); + console.log('HEADERS: ' + JSON.stringify(res.headers)); + res.setEncoding('utf8'); + res.on('data', function (chunk) { + console.log('BODY: ' + chunk); + }); +}); +req.on('error', e => { + console.log('problem with request: ' + e.message); +}); +req.end(); + +setTimeout(() => { + if (keepaliveAgent.statusChanged) { + console.log('[%s] agent status changed: %j', Date(), keepaliveAgent.getCurrentStatus()); + } +}, 2000); + +``` + +### `getter agent.statusChanged` + +counters have change or not after last checkpoint. + +### `agent.getCurrentStatus()` + +`agent.getCurrentStatus()` will return a object to show the status of this agent: + +```js +{ + createSocketCount: 10, + closeSocketCount: 5, + timeoutSocketCount: 0, + requestCount: 5, + freeSockets: { 'localhost:57479:': 3 }, + sockets: { 'localhost:57479:': 5 }, + requests: {} +} +``` + +### Support `https` + +```js +const https = require('https'); +const HttpsAgent = require('agentkeepalive').HttpsAgent; + +const keepaliveAgent = new HttpsAgent(); +// https://www.google.com/search?q=nodejs&sugexp=chrome,mod=12&sourceid=chrome&ie=UTF-8 +const options = { + host: 'www.google.com', + port: 443, + path: '/search?q=nodejs&sugexp=chrome,mod=12&sourceid=chrome&ie=UTF-8', + method: 'GET', + agent: keepaliveAgent, +}; + +const req = https.request(options, res => { + console.log('STATUS: ' + res.statusCode); + console.log('HEADERS: ' + JSON.stringify(res.headers)); + res.setEncoding('utf8'); + res.on('data', chunk => { + console.log('BODY: ' + chunk); + }); +}); + +req.on('error', e => { + console.log('problem with request: ' + e.message); +}); +req.end(); + +setTimeout(() => { + console.log('agent status: %j', keepaliveAgent.getCurrentStatus()); +}, 2000); +``` + +## [Benchmark](https://github.com/node-modules/agentkeepalive/tree/master/benchmark) + +run the benchmark: + +```bash +cd benchmark +sh start.sh +``` + +Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz + +node@v0.8.9 + +50 maxSockets, 60 concurrent, 1000 requests per concurrent, 5ms delay + +Keep alive agent (30 seconds): + +```js +Transactions: 60000 hits +Availability: 100.00 % +Elapsed time: 29.70 secs +Data transferred: 14.88 MB +Response time: 0.03 secs +Transaction rate: 2020.20 trans/sec +Throughput: 0.50 MB/sec +Concurrency: 59.84 +Successful transactions: 60000 +Failed transactions: 0 +Longest transaction: 0.15 +Shortest transaction: 0.01 +``` + +Normal agent: + +```js +Transactions: 60000 hits +Availability: 100.00 % +Elapsed time: 46.53 secs +Data transferred: 14.88 MB +Response time: 0.05 secs +Transaction rate: 1289.49 trans/sec +Throughput: 0.32 MB/sec +Concurrency: 59.81 +Successful transactions: 60000 +Failed transactions: 0 +Longest transaction: 0.45 +Shortest transaction: 0.00 +``` + +Socket created: + +``` +[proxy.js:120000] keepalive, 50 created, 60000 requestFinished, 1200 req/socket, 0 requests, 0 sockets, 0 unusedSockets, 50 timeout +{" <10ms":662," <15ms":17825," <20ms":20552," <30ms":17646," <40ms":2315," <50ms":567," <100ms":377," <150ms":56," <200ms":0," >=200ms+":0} +---------------------------------------------------------------- +[proxy.js:120000] normal , 53866 created, 84260 requestFinished, 1.56 req/socket, 0 requests, 0 sockets +{" <10ms":75," <15ms":1112," <20ms":10947," <30ms":32130," <40ms":8228," <50ms":3002," <100ms":4274," <150ms":181," <200ms":18," >=200ms+":33} +``` + +## License + +``` +(The MIT License) + +Copyright(c) node-modules and other contributors. +Copyright(c) 2012 - 2015 fengmk2 + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +``` diff --git a/deps/npm/node_modules/agentkeepalive/browser.js b/deps/npm/node_modules/agentkeepalive/browser.js new file mode 100644 index 0000000000..29c9398aa5 --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/browser.js @@ -0,0 +1,5 @@ +module.exports = noop; +module.exports.HttpsAgent = noop; + +// Noop function for browser since native api's don't use agents. +function noop () {} diff --git a/deps/npm/node_modules/agentkeepalive/index.js b/deps/npm/node_modules/agentkeepalive/index.js new file mode 100644 index 0000000000..6138131a9b --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/index.js @@ -0,0 +1,4 @@ +'use strict'; + +module.exports = require('./lib/agent'); +module.exports.HttpsAgent = require('./lib/https_agent'); diff --git a/deps/npm/node_modules/agentkeepalive/lib/_http_agent.js b/deps/npm/node_modules/agentkeepalive/lib/_http_agent.js new file mode 100644 index 0000000000..83f1d115ea --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/lib/_http_agent.js @@ -0,0 +1,416 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// patch from https://github.com/nodejs/node/blob/v7.2.1/lib/_http_agent.js + +'use strict'; + +const net = require('net'); +const util = require('util'); +const EventEmitter = require('events'); +const debug = util.debuglog('http'); + +// New Agent code. + +// The largest departure from the previous implementation is that +// an Agent instance holds connections for a variable number of host:ports. +// Surprisingly, this is still API compatible as far as third parties are +// concerned. The only code that really notices the difference is the +// request object. + +// Another departure is that all code related to HTTP parsing is in +// ClientRequest.onSocket(). The Agent is now *strictly* +// concerned with managing a connection pool. + +function Agent(options) { + if (!(this instanceof Agent)) + return new Agent(options); + + EventEmitter.call(this); + + var self = this; + + self.defaultPort = 80; + self.protocol = 'http:'; + + self.options = util._extend({}, options); + + // don't confuse net and make it think that we're connecting to a pipe + self.options.path = null; + self.requests = {}; + self.sockets = {}; + self.freeSockets = {}; + self.keepAliveMsecs = self.options.keepAliveMsecs || 1000; + self.keepAlive = self.options.keepAlive || false; + self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets; + self.maxFreeSockets = self.options.maxFreeSockets || 256; + + // [patch start] + // free keep-alive socket timeout. By default free socket do not have a timeout. + self.freeSocketKeepAliveTimeout = self.options.freeSocketKeepAliveTimeout || 0; + // working socket timeout. By default working socket do not have a timeout. + self.timeout = self.options.timeout || 0; + // the socket active time to live, even if it's in use + this.socketActiveTTL = this.options.socketActiveTTL || null; + // [patch end] + + self.on('free', function(socket, options) { + var name = self.getName(options); + debug('agent.on(free)', name); + + if (socket.writable && + self.requests[name] && self.requests[name].length) { + // [patch start] + debug('continue handle next request'); + // [patch end] + self.requests[name].shift().onSocket(socket); + if (self.requests[name].length === 0) { + // don't leak + delete self.requests[name]; + } + } else { + // If there are no pending requests, then put it in + // the freeSockets pool, but only if we're allowed to do so. + var req = socket._httpMessage; + if (req && + req.shouldKeepAlive && + socket.writable && + self.keepAlive) { + var freeSockets = self.freeSockets[name]; + var freeLen = freeSockets ? freeSockets.length : 0; + var count = freeLen; + if (self.sockets[name]) + count += self.sockets[name].length; + + if (count > self.maxSockets || freeLen >= self.maxFreeSockets) { + socket.destroy(); + } else { + freeSockets = freeSockets || []; + self.freeSockets[name] = freeSockets; + socket.setKeepAlive(true, self.keepAliveMsecs); + socket.unref(); + socket._httpMessage = null; + self.removeSocket(socket, options); + freeSockets.push(socket); + + // [patch start] + // Add a default error handler to avoid Unhandled 'error' event throw on idle socket + // https://github.com/node-modules/agentkeepalive/issues/25 + // https://github.com/nodejs/node/pull/4482 (fixed in >= 4.4.0 and >= 5.4.0) + if (socket.listeners('error').length === 0) { + socket.once('error', freeSocketErrorListener); + } + // set free keepalive timer + // try to use socket custom freeSocketKeepAliveTimeout first + const freeSocketKeepAliveTimeout = socket.freeSocketKeepAliveTimeout || self.freeSocketKeepAliveTimeout; + socket.setTimeout(freeSocketKeepAliveTimeout); + debug(`push to free socket queue and wait for ${freeSocketKeepAliveTimeout}ms`); + // [patch end] + } + } else { + socket.destroy(); + } + } + }); +} + +util.inherits(Agent, EventEmitter); +exports.Agent = Agent; + +// [patch start] +function freeSocketErrorListener(err) { + var socket = this; + debug('SOCKET ERROR on FREE socket:', err.message, err.stack); + socket.destroy(); + socket.emit('agentRemove'); +} +// [patch end] + +Agent.defaultMaxSockets = Infinity; + +Agent.prototype.createConnection = net.createConnection; + +// Get the key for a given set of request options +Agent.prototype.getName = function getName(options) { + var name = options.host || 'localhost'; + + name += ':'; + if (options.port) + name += options.port; + + name += ':'; + if (options.localAddress) + name += options.localAddress; + + // Pacify parallel/test-http-agent-getname by only appending + // the ':' when options.family is set. + if (options.family === 4 || options.family === 6) + name += ':' + options.family; + + return name; +}; + +// [patch start] +function handleSocketCreation(req) { + return function(err, newSocket) { + if (err) { + process.nextTick(function() { + req.emit('error', err); + }); + return; + } + req.onSocket(newSocket); + } +} +// [patch end] + +Agent.prototype.addRequest = function addRequest(req, options, port/*legacy*/, + localAddress/*legacy*/) { + // Legacy API: addRequest(req, host, port, localAddress) + if (typeof options === 'string') { + options = { + host: options, + port, + localAddress + }; + } + + options = util._extend({}, options); + options = util._extend(options, this.options); + + if (!options.servername) + options.servername = calculateServerName(options, req); + + var name = this.getName(options); + if (!this.sockets[name]) { + this.sockets[name] = []; + } + + var freeLen = this.freeSockets[name] ? this.freeSockets[name].length : 0; + var sockLen = freeLen + this.sockets[name].length; + + if (freeLen) { + // we have a free socket, so use that. + var socket = this.freeSockets[name].shift(); + debug('have free socket'); + + // [patch start] + // remove free socket error event handler + socket.removeListener('error', freeSocketErrorListener); + // restart the default timer + socket.setTimeout(this.timeout); + + if (this.socketActiveTTL && Date.now() - socket.createdTime > this.socketActiveTTL) { + debug(`socket ${socket.createdTime} expired`); + socket.destroy(); + return this.createSocket(req, options, handleSocketCreation(req)); + } + // [patch end] + + // don't leak + if (!this.freeSockets[name].length) + delete this.freeSockets[name]; + + socket.ref(); + req.onSocket(socket); + this.sockets[name].push(socket); + } else if (sockLen < this.maxSockets) { + debug('call onSocket', sockLen, freeLen); + // If we are under maxSockets create a new one. + // [patch start] + this.createSocket(req, options, handleSocketCreation(req)); + // [patch end] + } else { + debug('wait for socket'); + // We are over limit so we'll add it to the queue. + if (!this.requests[name]) { + this.requests[name] = []; + } + this.requests[name].push(req); + } +}; + +Agent.prototype.createSocket = function createSocket(req, options, cb) { + var self = this; + options = util._extend({}, options); + options = util._extend(options, self.options); + + if (!options.servername) + options.servername = calculateServerName(options, req); + + var name = self.getName(options); + options._agentKey = name; + + debug('createConnection', name, options); + options.encoding = null; + var called = false; + const newSocket = self.createConnection(options, oncreate); + // [patch start] + if (newSocket) { + oncreate(null, Object.assign(newSocket, { createdTime: Date.now() })); + } + // [patch end] + function oncreate(err, s) { + if (called) + return; + called = true; + if (err) + return cb(err); + if (!self.sockets[name]) { + self.sockets[name] = []; + } + self.sockets[name].push(s); + debug('sockets', name, self.sockets[name].length); + + function onFree() { + self.emit('free', s, options); + } + s.on('free', onFree); + + function onClose(err) { + debug('CLIENT socket onClose'); + // This is the only place where sockets get removed from the Agent. + // If you want to remove a socket from the pool, just close it. + // All socket errors end in a close event anyway. + self.removeSocket(s, options); + + // [patch start] + self.emit('close'); + // [patch end] + } + s.on('close', onClose); + + // [patch start] + // start socket timeout handler + function onTimeout() { + debug('CLIENT socket onTimeout'); + s.destroy(); + // Remove it from freeSockets immediately to prevent new requests from being sent through this socket. + self.removeSocket(s, options); + self.emit('timeout'); + } + s.on('timeout', onTimeout); + // set the default timer + s.setTimeout(self.timeout); + // [patch end] + + function onRemove() { + // We need this function for cases like HTTP 'upgrade' + // (defined by WebSockets) where we need to remove a socket from the + // pool because it'll be locked up indefinitely + debug('CLIENT socket onRemove'); + self.removeSocket(s, options); + s.removeListener('close', onClose); + s.removeListener('free', onFree); + s.removeListener('agentRemove', onRemove); + + // [patch start] + // remove socket timeout handler + s.setTimeout(0, onTimeout); + // [patch end] + } + s.on('agentRemove', onRemove); + cb(null, s); + } +}; + +function calculateServerName(options, req) { + let servername = options.host; + const hostHeader = req.getHeader('host'); + if (hostHeader) { + // abc => abc + // abc:123 => abc + // [::1] => ::1 + // [::1]:123 => ::1 + if (hostHeader.startsWith('[')) { + const index = hostHeader.indexOf(']'); + if (index === -1) { + // Leading '[', but no ']'. Need to do something... + servername = hostHeader; + } else { + servername = hostHeader.substr(1, index - 1); + } + } else { + servername = hostHeader.split(':', 1)[0]; + } + } + return servername; +} + +Agent.prototype.removeSocket = function removeSocket(s, options) { + var name = this.getName(options); + debug('removeSocket', name, 'writable:', s.writable); + var sets = [this.sockets]; + + // If the socket was destroyed, remove it from the free buffers too. + if (!s.writable) + sets.push(this.freeSockets); + + for (var sk = 0; sk < sets.length; sk++) { + var sockets = sets[sk]; + + if (sockets[name]) { + var index = sockets[name].indexOf(s); + if (index !== -1) { + sockets[name].splice(index, 1); + // Don't leak + if (sockets[name].length === 0) + delete sockets[name]; + } + } + } + + // [patch start] + var freeLen = this.freeSockets[name] ? this.freeSockets[name].length : 0; + var sockLen = freeLen + this.sockets[name] ? this.sockets[name].length : 0; + // [patch end] + + if (this.requests[name] && this.requests[name].length && sockLen < this.maxSockets) { + debug('removeSocket, have a request, make a socket'); + var req = this.requests[name][0]; + // If we have pending requests and a socket gets closed make a new one + this.createSocket(req, options, function(err, newSocket) { + if (err) { + process.nextTick(function() { + req.emit('error', err); + }); + return; + } + newSocket.emit('free'); + }); + } +}; + +Agent.prototype.destroy = function destroy() { + var sets = [this.freeSockets, this.sockets]; + for (var s = 0; s < sets.length; s++) { + var set = sets[s]; + var keys = Object.keys(set); + for (var v = 0; v < keys.length; v++) { + var setName = set[keys[v]]; + for (var n = 0; n < setName.length; n++) { + setName[n].destroy(); + } + } + } +}; + +exports.globalAgent = new Agent(); diff --git a/deps/npm/node_modules/agentkeepalive/lib/agent.js b/deps/npm/node_modules/agentkeepalive/lib/agent.js new file mode 100644 index 0000000000..a51ad597bc --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/lib/agent.js @@ -0,0 +1,133 @@ +/** + * refer: + * * @atimb "Real keep-alive HTTP agent": https://gist.github.com/2963672 + * * https://github.com/joyent/node/blob/master/lib/http.js + * * https://github.com/joyent/node/blob/master/lib/https.js + * * https://github.com/joyent/node/blob/master/lib/_http_agent.js + */ + +'use strict'; + +const OriginalAgent = require('./_http_agent').Agent; +const ms = require('humanize-ms'); + +class Agent extends OriginalAgent { + constructor(options) { + options = options || {}; + options.keepAlive = options.keepAlive !== false; + // default is keep-alive and 15s free socket timeout + if (options.freeSocketKeepAliveTimeout === undefined) { + options.freeSocketKeepAliveTimeout = 15000; + } + // Legacy API: keepAliveTimeout should be rename to `freeSocketKeepAliveTimeout` + if (options.keepAliveTimeout) { + options.freeSocketKeepAliveTimeout = options.keepAliveTimeout; + } + options.freeSocketKeepAliveTimeout = ms(options.freeSocketKeepAliveTimeout); + + // Sets the socket to timeout after timeout milliseconds of inactivity on the socket. + // By default is double free socket keepalive timeout. + if (options.timeout === undefined) { + options.timeout = options.freeSocketKeepAliveTimeout * 2; + // make sure socket default inactivity timeout >= 30s + if (options.timeout < 30000) { + options.timeout = 30000; + } + } + options.timeout = ms(options.timeout); + + super(options); + + this.createSocketCount = 0; + this.createSocketCountLastCheck = 0; + + this.createSocketErrorCount = 0; + this.createSocketErrorCountLastCheck = 0; + + this.closeSocketCount = 0; + this.closeSocketCountLastCheck = 0; + + // socket error event count + this.errorSocketCount = 0; + this.errorSocketCountLastCheck = 0; + + this.requestCount = 0; + this.requestCountLastCheck = 0; + + this.timeoutSocketCount = 0; + this.timeoutSocketCountLastCheck = 0; + + this.on('free', s => { + this.requestCount++; + // last enter free queue timestamp + s.lastFreeTime = Date.now(); + }); + this.on('timeout', () => { + this.timeoutSocketCount++; + }); + this.on('close', () => { + this.closeSocketCount++; + }); + this.on('error', () => { + this.errorSocketCount++; + }); + } + + createSocket(req, options, cb) { + super.createSocket(req, options, (err, socket) => { + if (err) { + this.createSocketErrorCount++; + return cb(err); + } + if (this.keepAlive) { + // Disable Nagle's algorithm: http://blog.caustik.com/2012/04/08/scaling-node-js-to-100k-concurrent-connections/ + // https://fengmk2.com/benchmark/nagle-algorithm-delayed-ack-mock.html + socket.setNoDelay(true); + } + this.createSocketCount++; + cb(null, socket); + }); + } + + get statusChanged() { + const changed = this.createSocketCount !== this.createSocketCountLastCheck || + this.createSocketErrorCount !== this.createSocketErrorCountLastCheck || + this.closeSocketCount !== this.closeSocketCountLastCheck || + this.errorSocketCount !== this.errorSocketCountLastCheck || + this.timeoutSocketCount !== this.timeoutSocketCountLastCheck || + this.requestCount !== this.requestCountLastCheck; + if (changed) { + this.createSocketCountLastCheck = this.createSocketCount; + this.createSocketErrorCountLastCheck = this.createSocketErrorCount; + this.closeSocketCountLastCheck = this.closeSocketCount; + this.errorSocketCountLastCheck = this.errorSocketCount; + this.timeoutSocketCountLastCheck = this.timeoutSocketCount; + this.requestCountLastCheck = this.requestCount; + } + return changed; + } + + getCurrentStatus() { + return { + createSocketCount: this.createSocketCount, + createSocketErrorCount: this.createSocketErrorCount, + closeSocketCount: this.closeSocketCount, + errorSocketCount: this.errorSocketCount, + timeoutSocketCount: this.timeoutSocketCount, + requestCount: this.requestCount, + freeSockets: inspect(this.freeSockets), + sockets: inspect(this.sockets), + requests: inspect(this.requests), + }; + } +} + +module.exports = Agent; + +function inspect(obj) { + const res = {}; + for (const key in obj) { + res[key] = obj[key].length; + } + return res; +} diff --git a/deps/npm/node_modules/agentkeepalive/lib/https_agent.js b/deps/npm/node_modules/agentkeepalive/lib/https_agent.js new file mode 100644 index 0000000000..e6d58a3df9 --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/lib/https_agent.js @@ -0,0 +1,42 @@ +/** + * Https Agent base on custom http agent + */ + +'use strict'; + +const https = require('https'); +const HttpAgent = require('./agent'); +const OriginalHttpsAgent = https.Agent; + +class HttpsAgent extends HttpAgent { + constructor(options) { + super(options); + + this.defaultPort = 443; + this.protocol = 'https:'; + this.maxCachedSessions = this.options.maxCachedSessions; + if (this.maxCachedSessions === undefined) { + this.maxCachedSessions = 100; + } + + this._sessionCache = { + map: {}, + list: [], + }; + } +} + +[ + 'createConnection', + 'getName', + '_getSession', + '_cacheSession', + // https://github.com/nodejs/node/pull/4982 + '_evictSession', +].forEach(function(method) { + if (typeof OriginalHttpsAgent.prototype[method] === 'function') { + HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method]; + } +}); + +module.exports = HttpsAgent; diff --git a/deps/npm/node_modules/agentkeepalive/package.json b/deps/npm/node_modules/agentkeepalive/package.json new file mode 100644 index 0000000000..c0ce0576bc --- /dev/null +++ b/deps/npm/node_modules/agentkeepalive/package.json @@ -0,0 +1,84 @@ +{ + "_from": "agentkeepalive@^3.4.1", + "_id": "agentkeepalive@3.4.1", + "_inBundle": false, + "_integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", + "_location": "/agentkeepalive", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "agentkeepalive@^3.4.1", + "name": "agentkeepalive", + "escapedName": "agentkeepalive", + "rawSpec": "^3.4.1", + "saveSpec": null, + "fetchSpec": "^3.4.1" + }, + "_requiredBy": [ + "/make-fetch-happen", + "/npm-profile/make-fetch-happen", + "/npm-registry-fetch/make-fetch-happen" + ], + "_resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", + "_shasum": "aa95aebc3a749bca5ed53e3880a09f5235b48f0c", + "_spec": "agentkeepalive@^3.4.1", + "_where": "/Users/rebecca/code/npm/node_modules/make-fetch-happen", + "author": { + "name": "fengmk2", + "email": "fengmk2@gmail.com", + "url": "https://fengmk2.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/node-modules/agentkeepalive/issues" + }, + "bundleDependencies": false, + "ci": { + "version": "4.3.2, 4, 6, 8, 9" + }, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "deprecated": false, + "description": "Missing keepalive http.Agent", + "devDependencies": { + "autod": "^2.8.0", + "egg-bin": "^1.10.3", + "egg-ci": "^1.7.0", + "eslint": "^3.19.0", + "eslint-config-egg": "^4.2.0", + "pedding": "^1.1.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "files": [ + "index.js", + "browser.js", + "lib" + ], + "homepage": "https://github.com/node-modules/agentkeepalive#readme", + "keywords": [ + "http", + "https", + "agent", + "keepalive", + "agentkeepalive" + ], + "license": "MIT", + "main": "index.js", + "name": "agentkeepalive", + "repository": { + "type": "git", + "url": "git://github.com/node-modules/agentkeepalive.git" + }, + "scripts": { + "autod": "autod", + "ci": "npm run lint && npm run cov", + "cov": "egg-bin cov", + "lint": "eslint lib test index.js", + "test": "egg-bin test" + }, + "version": "3.4.1" +} diff --git a/deps/npm/node_modules/ajv/.tonic_example.js b/deps/npm/node_modules/ajv/.tonic_example.js new file mode 100644 index 0000000000..aa11812d87 --- /dev/null +++ b/deps/npm/node_modules/ajv/.tonic_example.js @@ -0,0 +1,20 @@ +var Ajv = require('ajv'); +var ajv = new Ajv({allErrors: true}); + +var schema = { + "properties": { + "foo": { "type": "string" }, + "bar": { "type": "number", "maximum": 3 } + } +}; + +var validate = ajv.compile(schema); + +test({"foo": "abc", "bar": 2}); +test({"foo": 2, "bar": 4}); + +function test(data) { + var valid = validate(data); + if (valid) console.log('Valid!'); + else console.log('Invalid: ' + ajv.errorsText(validate.errors)); +} \ No newline at end of file diff --git a/deps/npm/node_modules/ajv/LICENSE b/deps/npm/node_modules/ajv/LICENSE new file mode 100644 index 0000000000..09f090263b --- /dev/null +++ b/deps/npm/node_modules/ajv/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/deps/npm/node_modules/ajv/README.md b/deps/npm/node_modules/ajv/README.md new file mode 100644 index 0000000000..63a265f04d --- /dev/null +++ b/deps/npm/node_modules/ajv/README.md @@ -0,0 +1,1327 @@ +Ajv logo + +# Ajv: Another JSON Schema Validator + +The fastest JSON Schema validator for Node.js and browser with draft 6 support. + + +[![Build Status](https://travis-ci.org/epoberezkin/ajv.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv) +[![npm version](https://badge.fury.io/js/ajv.svg)](https://www.npmjs.com/package/ajv) +[![npm@beta](https://img.shields.io/npm/v/ajv/beta.svg)](https://github.com/epoberezkin/ajv/tree/beta) +[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv) +[![Coverage Status](https://coveralls.io/repos/epoberezkin/ajv/badge.svg?branch=master&service=github)](https://coveralls.io/github/epoberezkin/ajv?branch=master) +[![Greenkeeper badge](https://badges.greenkeeper.io/epoberezkin/ajv.svg)](https://greenkeeper.io/) +[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) + + +__Please note__: Ajv [version 6](https://github.com/epoberezkin/ajv/tree/beta) with [JSON Schema draft-07](http://json-schema.org/work-in-progress) support is released. Use `npm install ajv@beta` to install. + + +## Using version 5 + +[JSON Schema draft-06](https://trac.tools.ietf.org/html/draft-wright-json-schema-validation-01) is published. + +[Ajv version 5.0.0](https://github.com/epoberezkin/ajv/releases/tag/5.0.0) that supports draft-06 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas). + +__Please note__: To use Ajv with draft-04 schemas you need to explicitly add meta-schema to the validator instance: + +```javascript +ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); +``` + + +## Contents + +- [Performance](#performance) +- [Features](#features) +- [Getting started](#getting-started) +- [Frequently Asked Questions](https://github.com/epoberezkin/ajv/blob/master/FAQ.md) +- [Using in browser](#using-in-browser) +- [Command line interface](#command-line-interface) +- Validation + - [Keywords](#validation-keywords) + - [Formats](#formats) + - [Combining schemas with $ref](#ref) + - [$data reference](#data-reference) + - NEW: [$merge and $patch keywords](#merge-and-patch-keywords) + - [Defining custom keywords](#defining-custom-keywords) + - [Asynchronous schema compilation](#asynchronous-schema-compilation) + - [Asynchronous validation](#asynchronous-validation) +- Modifying data during validation + - [Filtering data](#filtering-data) + - [Assigning defaults](#assigning-defaults) + - [Coercing data types](#coercing-data-types) +- API + - [Methods](#api) + - [Options](#options) + - [Validation errors](#validation-errors) +- [Related packages](#related-packages) +- [Packages using Ajv](#some-packages-using-ajv) +- [Tests, Contributing, History, License](#tests) + + +## Performance + +Ajv generates code using [doT templates](https://github.com/olado/doT) to turn JSON schemas into super-fast validation functions that are efficient for v8 optimization. + +Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks: + +- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place +- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster +- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html) +- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html) + + +Performance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark): + +[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance) + + +## Features + +- Ajv implements full JSON Schema [draft 6](http://json-schema.org/) and draft 4 standards: + - all validation keywords (see [JSON Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md)) + - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available) + - support of circular references between schemas + - correct string lengths for strings with unicode pairs (can be turned off) + - [formats](#formats) defined by JSON Schema draft 4 standard and custom formats (can be turned off) + - [validates schemas against meta-schema](#api-validateschema) +- supports [browsers](#using-in-browser) and Node.js 0.10-8.x +- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation +- "All errors" validation mode with [option allErrors](#options) +- [error messages with parameters](#validation-errors) describing error reasons to allow creating custom error messages +- i18n error messages support with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package +- [filtering data](#filtering-data) from additional properties +- [assigning defaults](#assigning-defaults) to missing properties and items +- [coercing data](#coercing-data-types) to the types specified in `type` keywords +- [custom keywords](#defining-custom-keywords) +- draft-6 keywords `const`, `contains` and `propertyNames` +- draft-6 boolean schemas (`true`/`false` as a schema to always pass/fail). +- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON-schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package +- [$data reference](#data-reference) to use values from the validated data as values for the schema keywords +- [asynchronous validation](#asynchronous-validation) of custom formats and keywords + +Currently Ajv is the only validator that passes all the tests from [JSON Schema Test Suite](https://github.com/json-schema/JSON-Schema-Test-Suite) (according to [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark), apart from the test that requires that `1.0` is not an integer that is impossible to satisfy in JavaScript). + + +## Install + +``` +npm install ajv +``` + +or to install [version 6](https://github.com/epoberezkin/ajv/tree/beta): + +``` +npm install ajv@beta +``` + + +## Getting started + +Try it in the Node.js REPL: https://tonicdev.com/npm/ajv + + +The fastest validation call: + +```javascript +var Ajv = require('ajv'); +var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true} +var validate = ajv.compile(schema); +var valid = validate(data); +if (!valid) console.log(validate.errors); +``` + +or with less code + +```javascript +// ... +var valid = ajv.validate(schema, data); +if (!valid) console.log(ajv.errors); +// ... +``` + +or + +```javascript +// ... +var valid = ajv.addSchema(schema, 'mySchema') + .validate('mySchema', data); +if (!valid) console.log(ajv.errorsText()); +// ... +``` + +See [API](#api) and [Options](#options) for more details. + +Ajv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or a custom function as a key), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again. + +The best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call). + +__Please note__: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors) + + +## Using in browser + +You can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle. + +If you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)). + +Then you need to load Ajv in the browser: +```html + +``` + +This bundle can be used with different module systems; it creates global `Ajv` if no module system is found. + +The browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv). + +Ajv is tested with these browsers: + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin) + +__Please note__: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/epoberezkin/ajv/issues/234)). + + +## Command line interface + +CLI is available as a separate npm package [ajv-cli](https://github.com/jessedc/ajv-cli). It supports: + +- compiling JSON-schemas to test their validity +- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/epoberezkin/ajv-pack)) +- migrate schemas to draft-06 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate)) +- validating data file(s) against JSON-schema +- testing expected validity of data against JSON-schema +- referenced schemas +- custom meta-schemas +- files in JSON and JavaScript format +- all Ajv options +- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format + + +## Validation keywords + +Ajv supports all validation keywords from draft 4 of JSON-schema standard: + +- [type](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#type) +- [for numbers](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf +- [for strings](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format +- [for arrays](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#contains) +- [for objects](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#propertynames) +- [for all types](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#const) +- [compound keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf + +With [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON-schema standard: + +- [switch](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#switch-proposed) - conditional validation with a sequence of if/then clauses +- [patternRequired](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match. +- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc. + +See [JSON Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md) for more details. + + +## Formats + +The following formats are supported for string validation with "format" keyword: + +- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). +- _time_: time with optional time-zone. +- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)). +- _uri_: full uri with optional protocol. +- _url_: [URL record](https://url.spec.whatwg.org/#concept-url). +- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570) +- _email_: email address. +- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5). +- _ipv4_: IP address v4. +- _ipv6_: IP address v6. +- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor. +- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122). +- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901). +- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00). + +There are two modes of format validation: `fast` and `full`. This mode affects formats `date`, `time`, `date-time`, `uri`, `email`, and `hostname`. See [Options](#options) for details. + +You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method. + +The option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can whitelist specific format(s) to be ignored. See [Options](#options) for details. + +You can find patterns used for format validation and the sources that were used in [formats.js](https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js). + + +## Combining schemas with $ref + +You can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword. + +Example: + +```javascript +var schema = { + "$id": "http://example.com/schemas/schema.json", + "type": "object", + "properties": { + "foo": { "$ref": "defs.json#/definitions/int" }, + "bar": { "$ref": "defs.json#/definitions/str" } + } +}; + +var defsSchema = { + "$id": "http://example.com/schemas/defs.json", + "definitions": { + "int": { "type": "integer" }, + "str": { "type": "string" } + } +}; +``` + +Now to compile your schema you can either pass all schemas to Ajv instance: + +```javascript +var ajv = new Ajv({schemas: [schema, defsSchema]}); +var validate = ajv.getSchema('http://example.com/schemas/schema.json'); +``` + +or use `addSchema` method: + +```javascript +var ajv = new Ajv; +var validate = ajv.addSchema(defsSchema) + .compile(schema); +``` + +See [Options](#options) and [addSchema](#api) method. + +__Please note__: +- `$ref` is resolved as the uri-reference using schema $id as the base URI (see the example). +- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.). +- You don't have to host your schema files at the URIs that you use as schema $id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs. +- The actual location of the schema file in the file system is not used. +- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema $id. +- You cannot have the same $id (or the schema identifier) used for more than one schema - the exception will be thrown. +- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation). + + +## $data reference + +With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema/json-schema/wiki/$data-(v5-proposal)) for more information about how it works. + +`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems. + +The value of "$data" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the $data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema). + +Examples. + +This schema requires that the value in property `smaller` is less or equal than the value in the property larger: + +```javascript +var ajv = new Ajv({$data: true}); + +var schema = { + "properties": { + "smaller": { + "type": "number", + "maximum": { "$data": "1/larger" } + }, + "larger": { "type": "number" } + } +}; + +var validData = { + smaller: 5, + larger: 7 +}; + +ajv.validate(schema, validData); // true +``` + +This schema requires that the properties have the same format as their field names: + +```javascript +var schema = { + "additionalProperties": { + "type": "string", + "format": { "$data": "0#" } + } +}; + +var validData = { + 'date-time': '1963-06-19T08:30:06.283185Z', + email: 'joe.bloggs@example.com' +} +``` + +`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails. + + +## $merge and $patch keywords + +With the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON-schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902). + +To add keywords `$merge` and `$patch` to Ajv instance use this code: + +```javascript +require('ajv-merge-patch')(ajv); +``` + +Examples. + +Using `$merge`: + +```json +{ + "$merge": { + "source": { + "type": "object", + "properties": { "p": { "type": "string" } }, + "additionalProperties": false + }, + "with": { + "properties": { "q": { "type": "number" } } + } + } +} +``` + +Using `$patch`: + +```json +{ + "$patch": { + "source": { + "type": "object", + "properties": { "p": { "type": "string" } }, + "additionalProperties": false + }, + "with": [ + { "op": "add", "path": "/properties/q", "value": { "type": "number" } } + ] + } +} +``` + +The schemas above are equivalent to this schema: + +```json +{ + "type": "object", + "properties": { + "p": { "type": "string" }, + "q": { "type": "number" } + }, + "additionalProperties": false +} +``` + +The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema. + +See the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) for more information. + + +## Defining custom keywords + +The advantages of using custom keywords are: + +- allow creating validation scenarios that cannot be expressed using JSON Schema +- simplify your schemas +- help bringing a bigger part of the validation logic to your schemas +- make your schemas more expressive, less verbose and closer to your application domain +- implement custom data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated + +If a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result). + +The concerns you have to be aware of when extending JSON-schema standard with custom keywords are the portability and understanding of your schemas. You will have to support these custom keywords on other platforms and to properly document these keywords so that everybody can understand them in your schemas. + +You can define custom keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords. + +Ajv allows defining keywords with: +- validation function +- compilation function +- macro function +- inline compilation function that should return code (as string) that will be inlined in the currently compiled schema. + +Example. `range` and `exclusiveRange` keywords using compiled schema: + +```javascript +ajv.addKeyword('range', { + type: 'number', + compile: function (sch, parentSchema) { + var min = sch[0]; + var max = sch[1]; + + return parentSchema.exclusiveRange === true + ? function (data) { return data > min && data < max; } + : function (data) { return data >= min && data <= max; } + } +}); + +var schema = { "range": [2, 4], "exclusiveRange": true }; +var validate = ajv.compile(schema); +console.log(validate(2.01)); // true +console.log(validate(3.99)); // true +console.log(validate(2)); // false +console.log(validate(4)); // false +``` + +Several custom keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package - they can be used for your schemas and as a starting point for your own custom keywords. + +See [Defining custom keywords](https://github.com/epoberezkin/ajv/blob/master/CUSTOM.md) for more details. + + +## Asynchronous schema compilation + +During asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options). + +Example: + +```javascript +var ajv = new Ajv({ loadSchema: loadSchema }); + +ajv.compileAsync(schema).then(function (validate) { + var valid = validate(data); + // ... +}); + +function loadSchema(uri) { + return request.json(uri).then(function (res) { + if (res.statusCode >= 400) + throw new Error('Loading error: ' + res.statusCode); + return res.body; + }); +} +``` + +__Please note__: [Option](#options) `missingRefs` should NOT be set to `"ignore"` or `"fail"` for asynchronous compilation to work. + + +## Asynchronous validation + +Example in Node.js REPL: https://tonicdev.com/esp/ajv-asynchronous-validation + +You can define custom formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [Defining custom keywords](#defining-custom-keywords)). + +If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation. + +__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail. + +Validation function for an asynchronous custom format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return custom errors from the keyword function). Ajv compiles asynchronous schemas to either [es7 async functions](http://tc39.github.io/ecmascript-asyncawait/) that can optionally be transpiled with [nodent](https://github.com/MatAtBread/nodent) or with [regenerator](https://github.com/facebook/regenerator) or to [generator functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*) that can be optionally transpiled with regenerator as well. You can also supply any other transpiler as a function. See [Options](#options). + +The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas. + +If you are using generators, the compiled validation function can be either wrapped with [co](https://github.com/tj/co) (default) or returned as generator function, that can be used directly, e.g. in [koa](http://koajs.com/) 1.0. `co` is a small library, it is included in Ajv (both as npm dependency and in the browser bundle). + +Async functions are currently supported in Chrome 55, Firefox 52, Node.js 7 (with --harmony-async-await) and MS Edge 13 (with flag). + +Generator functions are currently supported in Chrome, Firefox and Node.js. + +If you are using Ajv in other browsers or in older versions of Node.js you should use one of available transpiling options. All provided async modes use global Promise class. If your platform does not have Promise you should use a polyfill that defines it. + +Validation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property. + + +Example: + +```javascript +/** + * Default mode is non-transpiled generator function wrapped with `co`. + * Using package ajv-async (https://github.com/epoberezkin/ajv-async) + * you can auto-detect the best async mode. + * In this case, without "async" and "transpile" options + * (or with option {async: true}) + * Ajv will choose the first supported/installed option in this order: + * 1. native async function + * 2. native generator function wrapped with co + * 3. es7 async functions transpiled with nodent + * 4. es7 async functions transpiled with regenerator + */ + +var setupAsync = require('ajv-async'); +var ajv = setupAsync(new Ajv); + +ajv.addKeyword('idExists', { + async: true, + type: 'number', + validate: checkIdExists +}); + + +function checkIdExists(schema, data) { + return knex(schema.table) + .select('id') + .where('id', data) + .then(function (rows) { + return !!rows.length; // true if record is found + }); +} + +var schema = { + "$async": true, + "properties": { + "userId": { + "type": "integer", + "idExists": { "table": "users" } + }, + "postId": { + "type": "integer", + "idExists": { "table": "posts" } + } + } +}; + +var validate = ajv.compile(schema); + +validate({ userId: 1, postId: 19 }) +.then(function (data) { + console.log('Data is valid', data); // { userId: 1, postId: 19 } +}) +.catch(function (err) { + if (!(err instanceof Ajv.ValidationError)) throw err; + // data is invalid + console.log('Validation errors:', err.errors); +}); +``` + +### Using transpilers with asynchronous validation functions. + +To use a transpiler you should separately install it (or load its bundle in the browser). + +Ajv npm package includes minified browser bundles of regenerator and nodent in dist folder. + + +#### Using nodent + +```javascript +var setupAsync = require('ajv-async'); +var ajv = new Ajv({ /* async: 'es7', */ transpile: 'nodent' }); +setupAsync(ajv); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +`npm install nodent` or use `nodent.min.js` from dist folder of npm package. + + +#### Using regenerator + +```javascript +var setupAsync = require('ajv-async'); +var ajv = new Ajv({ /* async: 'es7', */ transpile: 'regenerator' }); +setupAsync(ajv); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +`npm install regenerator` or use `regenerator.min.js` from dist folder of npm package. + + +#### Using other transpilers + +```javascript +var ajv = new Ajv({ async: 'es7', processCode: transpileFunc }); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +See [Options](#options). + + +#### Comparison of async modes + +|mode|transpile
    speed*|run-time
    speed*|bundle
    size| +|---|:-:|:-:|:-:| +|es7 async
    (native)|-|0.75|-| +|generators
    (native)|-|1.0|-| +|es7.nodent|1.35|1.1|215Kb| +|es7.regenerator|1.0|2.7|1109Kb| +|regenerator|1.0|3.2|1109Kb| + +\* Relative performance in Node.js 7.x ā€” smaller is better. + +[nodent](https://github.com/MatAtBread/nodent) has several advantages: + +- much smaller browser bundle than regenerator +- almost the same performance of generated code as native generators in Node.js and the latest Chrome +- much better performance than native generators in other browsers +- works in IE 9 (regenerator does not) + + +## Filtering data + +With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation. + +This option modifies original data. + +Example: + +```javascript +var ajv = new Ajv({ removeAdditional: true }); +var schema = { + "additionalProperties": false, + "properties": { + "foo": { "type": "number" }, + "bar": { + "additionalProperties": { "type": "number" }, + "properties": { + "baz": { "type": "string" } + } + } + } +} + +var data = { + "foo": 0, + "additional1": 1, // will be removed; `additionalProperties` == false + "bar": { + "baz": "abc", + "additional2": 2 // will NOT be removed; `additionalProperties` != false + }, +} + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 0, "bar": { "baz": "abc", "additional2": 2 } +``` + +If `removeAdditional` option in the example above were `"all"` then both `additional1` and `additional2` properties would have been removed. + +If the option were `"failing"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed). + +__Please note__: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example: + +```json +{ + "type": "object", + "oneOf": [ + { + "properties": { + "foo": { "type": "string" } + }, + "required": [ "foo" ], + "additionalProperties": false + }, + { + "properties": { + "bar": { "type": "integer" } + }, + "required": [ "bar" ], + "additionalProperties": false + } + ] +} +``` + +The intention of the schema above is to allow objects with either the string property "foo" or the integer property "bar", but not with both and not with any other properties. + +With the option `removeAdditional: true` the validation will pass for the object `{ "foo": "abc"}` but will fail for the object `{"bar": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema). + +While this behaviour is unexpected (issues [#129](https://github.com/epoberezkin/ajv/issues/129), [#134](https://github.com/epoberezkin/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way: + +```json +{ + "type": "object", + "properties": { + "foo": { "type": "string" }, + "bar": { "type": "integer" } + }, + "additionalProperties": false, + "oneOf": [ + { "required": [ "foo" ] }, + { "required": [ "bar" ] } + ] +} +``` + +The schema above is also more efficient - it will compile into a faster function. + + +## Assigning defaults + +With [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items. + +This option modifies original data. + +__Please note__: by default the default value is inserted in the generated validation code as a literal (starting from v4.0), so the value inserted in the data will be the deep clone of the default in the schema. + +If you need to insert the default value in the data by reference pass the option `useDefaults: "shared"`. + +Inserting defaults by reference can be faster (in case you have an object in `default`) and it allows to have dynamic values in defaults, e.g. timestamp, without recompiling the schema. The side effect is that modifying the default value in any validated data instance will change the default in the schema and in other validated data instances. See example 3 below. + + +Example 1 (`default` in `properties`): + +```javascript +var ajv = new Ajv({ useDefaults: true }); +var schema = { + "type": "object", + "properties": { + "foo": { "type": "number" }, + "bar": { "type": "string", "default": "baz" } + }, + "required": [ "foo", "bar" ] +}; + +var data = { "foo": 1 }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 1, "bar": "baz" } +``` + +Example 2 (`default` in `items`): + +```javascript +var schema = { + "type": "array", + "items": [ + { "type": "number" }, + { "type": "string", "default": "foo" } + ] +} + +var data = [ 1 ]; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // [ 1, "foo" ] +``` + +Example 3 (inserting "defaults" by reference): + +```javascript +var ajv = new Ajv({ useDefaults: 'shared' }); + +var schema = { + properties: { + foo: { + default: { bar: 1 } + } + } +} + +var validate = ajv.compile(schema); + +var data = {}; +console.log(validate(data)); // true +console.log(data); // { foo: { bar: 1 } } + +data.foo.bar = 2; + +var data2 = {}; +console.log(validate(data2)); // true +console.log(data2); // { foo: { bar: 2 } } +``` + +`default` keywords in other cases are ignored: + +- not in `properties` or `items` subschemas +- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/epoberezkin/ajv/issues/42)) +- in `if` subschema of `switch` keyword +- in schemas generated by custom macro keywords + + +## Coercing data types + +When you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards. + +This option modifies original data. + +__Please note__: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value. + + +Example 1: + +```javascript +var ajv = new Ajv({ coerceTypes: true }); +var schema = { + "type": "object", + "properties": { + "foo": { "type": "number" }, + "bar": { "type": "boolean" } + }, + "required": [ "foo", "bar" ] +}; + +var data = { "foo": "1", "bar": "false" }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 1, "bar": false } +``` + +Example 2 (array coercions): + +```javascript +var ajv = new Ajv({ coerceTypes: 'array' }); +var schema = { + "properties": { + "foo": { "type": "array", "items": { "type": "number" } }, + "bar": { "type": "boolean" } + } +}; + +var data = { "foo": "1", "bar": ["false"] }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": [1], "bar": false } +``` + +The coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of "anyOf" and other compound keywords). + +See [Coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md) for details. + + +## API + +##### new Ajv(Object options) -> Object + +Create Ajv instance. + + +##### .compile(Object schema) -> Function<Object data> + +Generate validating function and cache the compiled schema for future use. + +Validating function returns boolean and has properties `errors` with the errors from the last validation (`null` if there were no errors) and `schema` with the reference to the original schema. + +Unless the option `validateSchema` is false, the schema will be validated against meta-schema and if schema is invalid the error will be thrown. See [options](#options). + + +##### .compileAsync(Object schema [, Boolean meta] [, Function callback]) -> Promise + +Asynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when: + +- missing schema can't be loaded (`loadSchema` returns a Promise that rejects). +- a schema containing a missing reference is loaded, but the reference cannot be resolved. +- schema (or some loaded/referenced schema) is invalid. + +The function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded. + +You can asynchronously compile meta-schema by passing `true` as the second parameter. + +See example in [Asynchronous compilation](#asynchronous-schema-compilation). + + +##### .validate(Object schema|String key|String ref, data) -> Boolean + +Validate data using passed schema (it will be compiled and cached). + +Instead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference. + +Validation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors). + +__Please note__: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later. + +If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation). + + +##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv + +Add schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole. + +Array of schemas can be passed (schemas should have ids), the second parameter will be ignored. + +Key can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key. + + +Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data. + +Although `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time. + +By default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option. + +__Please note__: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`. +This allows you to do nice things like the following. + +```javascript +var validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri); +``` + +##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv + +Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option). + +There is no need to explicitly add draft 6 meta schema (http://json-schema.org/draft-06/schema and http://json-schema.org/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`. + + +##### .validateSchema(Object schema) -> Boolean + +Validates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard. + +By default this method is called automatically when the schema is added, so you rarely need to use it directly. + +If schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false). + +If schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema. + +Errors will be available at `ajv.errors`. + + +##### .getSchema(String key) -> Function<Object data> + +Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema. + + +##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv + +Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references. + +Schema can be removed using: +- key passed to `addSchema` +- it's full reference (id) +- RegExp that should match schema id or key (meta-schemas won't be removed) +- actual schema object that will be stable-stringified to remove schema from cache + +If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared. + + +##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv + +Add custom format to validate strings or numbers. It can also be used to replace pre-defined formats for Ajv instance. + +Strings are converted to RegExp. + +Function should return validation result as `true` or `false`. + +If object is passed it should have properties `validate`, `compare` and `async`: + +- _validate_: a string, RegExp or a function as described above. +- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal. +- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`. +- _type_: an optional type of data that the format applies to. It can be `"string"` (default) or `"number"` (see https://github.com/epoberezkin/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass. + +Custom formats can be also added via `formats` option. + + +##### .addKeyword(String keyword, Object definition) -> Ajv + +Add custom validation keyword to Ajv instance. + +Keyword should be different from all standard JSON schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance. + +Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`. +It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions. + +Example Keywords: +- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions. +- `"example"`: valid, but not recommended as it could collide with future versions of JSON schema etc. +- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword + +Keyword definition is an object with the following properties: + +- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types. +- _validate_: validating function +- _compile_: compiling function +- _macro_: macro function +- _inline_: compiling function that returns code (as string) +- _schema_: an optional `false` value used with "validate" keyword to not pass schema +- _metaSchema_: an optional meta-schema for keyword schema +- _modifying_: `true` MUST be passed if keyword modifies data +- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords. +- _$data_: an optional `true` value to support [$data reference](#data-reference) as the value of custom keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has validating function (as the only option or in addition to compile, macro or inline function). +- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of "macro" and "inline" keywords. +- _errors_: an optional boolean indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation. + +_compile_, _macro_ and _inline_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to them to support $data reference. + +__Please note__: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed. + +See [Defining custom keywords](#defining-custom-keywords) for more details. + + +##### .getKeyword(String keyword) -> Object|Boolean + +Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown. + + +##### .removeKeyword(String keyword) -> Ajv + +Removes custom or pre-defined keyword so you can redefine them. + +While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results. + +__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again. + + +##### .errorsText([Array<Object> errors [, Object options]]) -> String + +Returns the text with all errors in a String. + +Options can have properties `separator` (string used to separate errors, ", " by default) and `dataVar` (the variable name that dataPaths are prefixed with, "data" by default). + + +## Options + +Defaults: + +```javascript +{ + // validation and reporting options: + $data: false, + allErrors: false, + verbose: false, + jsonPointers: false, + uniqueItems: true, + unicode: true, + format: 'fast', + formats: {}, + unknownFormats: true, + schemas: {}, + logger: undefined, + // referenced schema options: + schemaId: undefined // recommended '$id' + missingRefs: true, + extendRefs: 'ignore', // recommended 'fail' + loadSchema: undefined, // function(uri: string): Promise {} + // options to modify validated data: + removeAdditional: false, + useDefaults: false, + coerceTypes: false, + // asynchronous validation options: + async: 'co*', + transpile: undefined, // requires ajv-async package + // advanced options: + meta: true, + validateSchema: true, + addUsedSchema: true, + inlineRefs: true, + passContext: false, + loopRequired: Infinity, + ownProperties: false, + multipleOfPrecision: false, + errorDataPath: 'object', + messages: true, + sourceCode: false, + processCode: undefined, // function (str: string): string {} + cache: new Cache, + serialize: undefined +} +``` + +##### Validation and reporting options + +- _$data_: support [$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api). +- _allErrors_: check all rules collecting all errors. Default is to return after the first error. +- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default). +- _jsonPointers_: set `dataPath` property of errors using [JSON Pointers](https://tools.ietf.org/html/rfc6901) instead of JavaScript property access notation. +- _uniqueItems_: validate `uniqueItems` keyword (true by default). +- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters. +- _format_: formats validation mode ('fast' by default). Pass 'full' for more correct and slow validation or `false` not to validate formats at all. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode. +- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method. +- _unknownFormats_: handling of unknown formats. Option values: + - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [$data reference](#data-reference) and it is unknown the validation will fail. + - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [$data reference](#data-reference) and it is not in this array the validation will fail. + - `"ignore"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON-schema specification. +- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object. +- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. Option values: + - custom logger - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown. + - `false` - logging is disabled. + + +##### Referenced schema options + +- _schemaId_: this option defines which keywords are used as schema URI. Option value: + - `"$id"` (recommended) - only use `$id` keyword as schema URI (as specified in JSON Schema draft-06), ignore `id` keyword (if it is present a warning will be logged). + - `"id"` - only use `id` keyword as schema URI (as specified in JSON Schema draft-04), ignore `$id` keyword (if it is present a warning will be logged). + - `undefined` (default) - use both `$id` and `id` keywords as schema URI. If both are present (in the same schema object) and different the exception will be thrown during schema compilation. +- _missingRefs_: handling of missing referenced schemas. Option values: + - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted). + - `"ignore"` - to log error during compilation and always pass validation. + - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked. +- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values: + - `"ignore"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation. + - `"fail"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing. + - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0). +- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation). + + +##### Options to modify validated data + +- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values: + - `false` (default) - not to remove additional properties + - `"all"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them). + - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed. + - `"failing"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema). +- _useDefaults_: replace missing properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values: + - `false` (default) - do not use defaults + - `true` - insert defaults by value (safer and slower, object literal is used). + - `"shared"` - insert defaults by reference (faster). If the default is an object, it will be shared by all instances of validated data. If you modify the inserted default in the validated data, it will be modified in the schema as well. +- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md). Option values: + - `false` (default) - no type coercion. + - `true` - coerce scalar data types. + - `"array"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema). + + +##### Asynchronous validation options + +- _async_: determines how Ajv compiles asynchronous schemas (see [Asynchronous validation](#asynchronous-validation)) to functions. Option values: + - `"*"` / `"co*"` (default) - compile to generator function ("co*" - wrapped with `co.wrap`). If generators are not supported and you don't provide `processCode` option (or `transpile` option if you use [ajv-async](https://github.com/epoberezkin/ajv-async) package), the exception will be thrown when async schema is compiled. + - `"es7"` - compile to es7 async function. Unless your platform supports them you need to provide `processCode` or `transpile` option. According to [compatibility table](http://kangax.github.io/compat-table/es7/)) async functions are supported by: + - Firefox 52, + - Chrome 55, + - Node.js 7 (with `--harmony-async-await`), + - MS Edge 13 (with flag). + - `undefined`/`true` - auto-detect async mode. It requires [ajv-async](https://github.com/epoberezkin/ajv-async) package. If `transpile` option is not passed, ajv-async will choose the first of supported/installed async/transpile modes in this order: + - "es7" (native async functions), + - "co*" (native generators with co.wrap), + - "es7"/"nodent", + - "co*"/"regenerator" during the creation of the Ajv instance. + + If none of the options is available the exception will be thrown. +- _transpile_: Requires [ajv-async](https://github.com/epoberezkin/ajv-async) package. It determines whether Ajv transpiles compiled asynchronous validation function. Option values: + - `"nodent"` - transpile with [nodent](https://github.com/MatAtBread/nodent). If nodent is not installed, the exception will be thrown. nodent can only transpile es7 async functions; it will enforce this mode. + - `"regenerator"` - transpile with [regenerator](https://github.com/facebook/regenerator). If regenerator is not installed, the exception will be thrown. + - a function - this function should accept the code of validation function as a string and return transpiled code. This option allows you to use any other transpiler you prefer. If you are passing a function, you can simply pass it to `processCode` option without using ajv-async. + + +##### Advanced options + +- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword. +- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can either be http://json-schema.org/schema or http://json-schema.org/draft-04/schema or absent (draft-4 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values: + - `true` (default) - if the validation fails, throw the exception. + - `"log"` - if the validation fails, log error. + - `false` - skip schema validation. +- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with "#". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method. +- _inlineRefs_: Affects compilation of referenced schemas. Option values: + - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions. + - `false` - to not inline referenced schemas (they will be compiled as separate functions). + - integer number - to limit the maximum number of keywords of the schema that will be inlined. +- _passContext_: pass validation context to custom keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your custom keywords. By default `this` is Ajv instance. +- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance. +- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst. +- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/epoberezkin/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations). +- _errorDataPath_: set `dataPath` to point to 'object' (default) or to 'property' when validating keywords `required`, `additionalProperties` and `dependencies`. +- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when custom messages are used (e.g. with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n)). +- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call). +- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code. Starting from version 5.0.0 this option replaced options: + - `beautify` that formatted the generated function using [js-beautify](https://github.com/beautify-web/js-beautify). If you want to beautify the generated code pass `require('js-beautify').js_beautify`. + - `transpile` that transpiled asynchronous validation function. You can still use `transpile` option with [ajv-async](https://github.com/epoberezkin/ajv-async) package. See [Asynchronous validation](#asynchronous-validation) for more information. +- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`. +- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used. + + +## Validation errors + +In case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property. + + +### Error objects + +Each error is an object with the following properties: + +- _keyword_: validation keyword. +- _dataPath_: the path to the part of the data that was validated. By default `dataPath` uses JavaScript property access notation (e.g., `".prop[1].subProp"`). When the option `jsonPointers` is true (see [Options](#options)) `dataPath` will be set using JSON pointer standard (e.g., `"/prop/1/subProp"`). +- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation. +- _params_: the object with the additional information about error that can be used to create custom error messages (e.g., using [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package). See below for parameters set by all keywords. +- _message_: the standard error message (can be excluded with option `messages` set to false). +- _schema_: the schema of the keyword (added with `verbose` option). +- _parentSchema_: the schema containing the keyword (added with `verbose` option) +- _data_: the data validated by the keyword (added with `verbose` option). + +__Please note__: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `"propertyNames"`. + + +### Error parameters + +Properties of `params` object in errors depend on the keyword that failed validation. + +- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword). +- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false). +- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords). +- `dependencies` - properties: + - `property` (dependent property), + - `missingProperty` (required missing dependency - only the first one is reported currently) + - `deps` (required dependencies, comma separated list as a string), + - `depsCount` (the number of required dependencies). +- `format` - property `format` (the schema of the keyword). +- `maximum`, `minimum` - properties: + - `limit` (number, the schema of the keyword), + - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`), + - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be "<", "<=", ">", ">=") +- `multipleOf` - property `multipleOf` (the schema of the keyword) +- `pattern` - property `pattern` (the schema of the keyword) +- `required` - property `missingProperty` (required property that is missing). +- `propertyNames` - property `propertyName` (an invalid property name). +- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property). +- `type` - property `type` (required type(s), a string, can be a comma-separated list) +- `uniqueItems` - properties `i` and `j` (indices of duplicate items). +- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword). +- `$ref` - property `ref` with the referenced schema URI. +- custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name). + + +## Related packages + +- [ajv-async](https://github.com/epoberezkin/ajv-async) - configure async validation mode +- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface +- [ajv-errors](https://github.com/epoberezkin/ajv-errors) - custom error messages +- [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) - internationalised error messages +- [ajv-istanbul](https://github.com/epoberezkin/ajv-istanbul) - instrument generated validation code to measure test coverage of your schemas +- [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) - custom validation keywords (if/then/else, select, typeof, etc.) +- [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) - keywordsĀ $merge and $patch +- [ajv-pack](https://github.com/epoberezkin/ajv-pack) - produces a compact module exporting validation functions + + +## Some packages using Ajv + +- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser +- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services +- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition +- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator +- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org +- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON-schema http://jsonschemalint.com +- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js +- [table](https://github.com/gajus/table) - formats data into a string table +- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser +- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content +- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation +- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation +- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages +- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema +- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON-schema with expect in mocha tests +- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema +- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file +- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app +- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter +- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages + + +## Tests + +``` +npm install +git submodule update --init +npm test +``` + +## Contributing + +All validation functions are generated using doT templates in [dot](https://github.com/epoberezkin/ajv/tree/master/lib/dot) folder. Templates are precompiled so doT is not a run-time dependency. + +`npm run build` - compiles templates to [dotjs](https://github.com/epoberezkin/ajv/tree/master/lib/dotjs) folder. + +`npm run watch` - automatically compiles templates when files in dot folder change + +Please see [Contributing guidelines](https://github.com/epoberezkin/ajv/blob/master/CONTRIBUTING.md) + + +## Changes history + +See https://github.com/epoberezkin/ajv/releases + +__Please note__: [Changes in version 5.0.0](https://github.com/epoberezkin/ajv/releases/tag/5.0.0). + +[Changes in version 4.6.0](https://github.com/epoberezkin/ajv/releases/tag/4.6.0). + +[Changes in version 4.0.0](https://github.com/epoberezkin/ajv/releases/tag/4.0.0). + +[Changes in version 3.0.0](https://github.com/epoberezkin/ajv/releases/tag/3.0.0). + +[Changes in version 2.0.0](https://github.com/epoberezkin/ajv/releases/tag/2.0.0). + + +## License + +[MIT](https://github.com/epoberezkin/ajv/blob/master/LICENSE) diff --git a/deps/npm/node_modules/ajv/dist/ajv.bundle.js b/deps/npm/node_modules/ajv/dist/ajv.bundle.js new file mode 100644 index 0000000000..25843d30c8 --- /dev/null +++ b/deps/npm/node_modules/ajv/dist/ajv.bundle.js @@ -0,0 +1,7345 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Ajv = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i; +// For the source: https://gist.github.com/dperini/729294 +// For test cases: https://mathiasbynens.be/demo/url-regex +// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983. +// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu; +var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i; +var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i; +var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i; +var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; + + +module.exports = formats; + +function formats(mode) { + mode = mode == 'full' ? 'full' : 'fast'; + return util.copy(formats[mode]); +} + + +formats.fast = { + // date: http://tools.ietf.org/html/rfc3339#section-5.6 + date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, + // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 + time: /^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i, + 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i, + // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js + uri: /^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i, + 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i, + 'uri-template': URITEMPLATE, + url: URL, + // email (sources from jsen validator): + // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 + // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation') + email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i, + hostname: HOSTNAME, + // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html + ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, + // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses + ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, + regex: regex, + // uuid: http://tools.ietf.org/html/rfc4122 + uuid: UUID, + // JSON-pointer: https://tools.ietf.org/html/rfc6901 + // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A + 'json-pointer': JSON_POINTER, + // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 + 'relative-json-pointer': RELATIVE_JSON_POINTER +}; + + +formats.full = { + date: date, + time: time, + 'date-time': date_time, + uri: uri, + 'uri-reference': URIREF, + 'uri-template': URITEMPLATE, + url: URL, + email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, + hostname: hostname, + ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, + ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, + regex: regex, + uuid: UUID, + 'json-pointer': JSON_POINTER, + 'relative-json-pointer': RELATIVE_JSON_POINTER +}; + + +function date(str) { + // full-date from http://tools.ietf.org/html/rfc3339#section-5.6 + var matches = str.match(DATE); + if (!matches) return false; + + var month = +matches[1]; + var day = +matches[2]; + return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month]; +} + + +function time(str, full) { + var matches = str.match(TIME); + if (!matches) return false; + + var hour = matches[1]; + var minute = matches[2]; + var second = matches[3]; + var timeZone = matches[5]; + return hour <= 23 && minute <= 59 && second <= 59 && (!full || timeZone); +} + + +var DATE_TIME_SEPARATOR = /t|\s/i; +function date_time(str) { + // http://tools.ietf.org/html/rfc3339#section-5.6 + var dateTime = str.split(DATE_TIME_SEPARATOR); + return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true); +} + + +function hostname(str) { + // https://tools.ietf.org/html/rfc1034#section-3.5 + // https://tools.ietf.org/html/rfc1123#section-2 + return str.length <= 255 && HOSTNAME.test(str); +} + + +var NOT_URI_FRAGMENT = /\/|:/; +function uri(str) { + // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." + return NOT_URI_FRAGMENT.test(str) && URI.test(str); +} + + +var Z_ANCHOR = /[^\\]\\Z/; +function regex(str) { + if (Z_ANCHOR.test(str)) return false; + try { + new RegExp(str); + return true; + } catch(e) { + return false; + } +} + +},{"./util":12}],7:[function(require,module,exports){ +'use strict'; + +var resolve = require('./resolve') + , util = require('./util') + , errorClasses = require('./error_classes') + , stableStringify = require('fast-json-stable-stringify'); + +var validateGenerator = require('../dotjs/validate'); + +/** + * Functions below are used inside compiled validations function + */ + +var co = require('co'); +var ucs2length = util.ucs2length; +var equal = require('fast-deep-equal'); + +// this error is thrown by async schemas to return validation errors via exception +var ValidationError = errorClasses.Validation; + +module.exports = compile; + + +/** + * Compiles schema to validation function + * @this Ajv + * @param {Object} schema schema object + * @param {Object} root object with information about the root schema for this schema + * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution + * @param {String} baseId base ID for IDs in the schema + * @return {Function} validation function + */ +function compile(schema, root, localRefs, baseId) { + /* jshint validthis: true, evil: true */ + /* eslint no-shadow: 0 */ + var self = this + , opts = this._opts + , refVal = [ undefined ] + , refs = {} + , patterns = [] + , patternsHash = {} + , defaults = [] + , defaultsHash = {} + , customRules = []; + + root = root || { schema: schema, refVal: refVal, refs: refs }; + + var c = checkCompiling.call(this, schema, root, baseId); + var compilation = this._compilations[c.index]; + if (c.compiling) return (compilation.callValidate = callValidate); + + var formats = this._formats; + var RULES = this.RULES; + + try { + var v = localCompile(schema, root, localRefs, baseId); + compilation.validate = v; + var cv = compilation.callValidate; + if (cv) { + cv.schema = v.schema; + cv.errors = null; + cv.refs = v.refs; + cv.refVal = v.refVal; + cv.root = v.root; + cv.$async = v.$async; + if (opts.sourceCode) cv.source = v.source; + } + return v; + } finally { + endCompiling.call(this, schema, root, baseId); + } + + function callValidate() { + var validate = compilation.validate; + var result = validate.apply(null, arguments); + callValidate.errors = validate.errors; + return result; + } + + function localCompile(_schema, _root, localRefs, baseId) { + var isRoot = !_root || (_root && _root.schema == _schema); + if (_root.schema != root.schema) + return compile.call(self, _schema, _root, localRefs, baseId); + + var $async = _schema.$async === true; + + var sourceCode = validateGenerator({ + isTop: true, + schema: _schema, + isRoot: isRoot, + baseId: baseId, + root: _root, + schemaPath: '', + errSchemaPath: '#', + errorPath: '""', + MissingRefError: errorClasses.MissingRef, + RULES: RULES, + validate: validateGenerator, + util: util, + resolve: resolve, + resolveRef: resolveRef, + usePattern: usePattern, + useDefault: useDefault, + useCustomRule: useCustomRule, + opts: opts, + formats: formats, + logger: self.logger, + self: self + }); + + sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + + sourceCode; + + if (opts.processCode) sourceCode = opts.processCode(sourceCode); + // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); + var validate; + try { + var makeValidate = new Function( + 'self', + 'RULES', + 'formats', + 'root', + 'refVal', + 'defaults', + 'customRules', + 'co', + 'equal', + 'ucs2length', + 'ValidationError', + sourceCode + ); + + validate = makeValidate( + self, + RULES, + formats, + root, + refVal, + defaults, + customRules, + co, + equal, + ucs2length, + ValidationError + ); + + refVal[0] = validate; + } catch(e) { + self.logger.error('Error compiling schema, function code:', sourceCode); + throw e; + } + + validate.schema = _schema; + validate.errors = null; + validate.refs = refs; + validate.refVal = refVal; + validate.root = isRoot ? validate : _root; + if ($async) validate.$async = true; + if (opts.sourceCode === true) { + validate.source = { + code: sourceCode, + patterns: patterns, + defaults: defaults + }; + } + + return validate; + } + + function resolveRef(baseId, ref, isRoot) { + ref = resolve.url(baseId, ref); + var refIndex = refs[ref]; + var _refVal, refCode; + if (refIndex !== undefined) { + _refVal = refVal[refIndex]; + refCode = 'refVal[' + refIndex + ']'; + return resolvedRef(_refVal, refCode); + } + if (!isRoot && root.refs) { + var rootRefId = root.refs[ref]; + if (rootRefId !== undefined) { + _refVal = root.refVal[rootRefId]; + refCode = addLocalRef(ref, _refVal); + return resolvedRef(_refVal, refCode); + } + } + + refCode = addLocalRef(ref); + var v = resolve.call(self, localCompile, root, ref); + if (v === undefined) { + var localSchema = localRefs && localRefs[ref]; + if (localSchema) { + v = resolve.inlineRef(localSchema, opts.inlineRefs) + ? localSchema + : compile.call(self, localSchema, root, localRefs, baseId); + } + } + + if (v === undefined) { + removeLocalRef(ref); + } else { + replaceLocalRef(ref, v); + return resolvedRef(v, refCode); + } + } + + function addLocalRef(ref, v) { + var refId = refVal.length; + refVal[refId] = v; + refs[ref] = refId; + return 'refVal' + refId; + } + + function removeLocalRef(ref) { + delete refs[ref]; + } + + function replaceLocalRef(ref, v) { + var refId = refs[ref]; + refVal[refId] = v; + } + + function resolvedRef(refVal, code) { + return typeof refVal == 'object' || typeof refVal == 'boolean' + ? { code: code, schema: refVal, inline: true } + : { code: code, $async: refVal && refVal.$async }; + } + + function usePattern(regexStr) { + var index = patternsHash[regexStr]; + if (index === undefined) { + index = patternsHash[regexStr] = patterns.length; + patterns[index] = regexStr; + } + return 'pattern' + index; + } + + function useDefault(value) { + switch (typeof value) { + case 'boolean': + case 'number': + return '' + value; + case 'string': + return util.toQuotedString(value); + case 'object': + if (value === null) return 'null'; + var valueStr = stableStringify(value); + var index = defaultsHash[valueStr]; + if (index === undefined) { + index = defaultsHash[valueStr] = defaults.length; + defaults[index] = value; + } + return 'default' + index; + } + } + + function useCustomRule(rule, schema, parentSchema, it) { + var validateSchema = rule.definition.validateSchema; + if (validateSchema && self._opts.validateSchema !== false) { + var valid = validateSchema(schema); + if (!valid) { + var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors); + if (self._opts.validateSchema == 'log') self.logger.error(message); + else throw new Error(message); + } + } + + var compile = rule.definition.compile + , inline = rule.definition.inline + , macro = rule.definition.macro; + + var validate; + if (compile) { + validate = compile.call(self, schema, parentSchema, it); + } else if (macro) { + validate = macro.call(self, schema, parentSchema, it); + if (opts.validateSchema !== false) self.validateSchema(validate, true); + } else if (inline) { + validate = inline.call(self, it, rule.keyword, schema, parentSchema); + } else { + validate = rule.definition.validate; + if (!validate) return; + } + + if (validate === undefined) + throw new Error('custom keyword "' + rule.keyword + '"failed to compile'); + + var index = customRules.length; + customRules[index] = validate; + + return { + code: 'customRule' + index, + validate: validate + }; + } +} + + +/** + * Checks if the schema is currently compiled + * @this Ajv + * @param {Object} schema schema to compile + * @param {Object} root root object + * @param {String} baseId base schema ID + * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean) + */ +function checkCompiling(schema, root, baseId) { + /* jshint validthis: true */ + var index = compIndex.call(this, schema, root, baseId); + if (index >= 0) return { index: index, compiling: true }; + index = this._compilations.length; + this._compilations[index] = { + schema: schema, + root: root, + baseId: baseId + }; + return { index: index, compiling: false }; +} + + +/** + * Removes the schema from the currently compiled list + * @this Ajv + * @param {Object} schema schema to compile + * @param {Object} root root object + * @param {String} baseId base schema ID + */ +function endCompiling(schema, root, baseId) { + /* jshint validthis: true */ + var i = compIndex.call(this, schema, root, baseId); + if (i >= 0) this._compilations.splice(i, 1); +} + + +/** + * Index of schema compilation in the currently compiled list + * @this Ajv + * @param {Object} schema schema to compile + * @param {Object} root root object + * @param {String} baseId base schema ID + * @return {Integer} compilation index + */ +function compIndex(schema, root, baseId) { + /* jshint validthis: true */ + for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) { + // high surrogate, and there is a next character + value = str.charCodeAt(pos); + if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate + } + } + return length; +}; + +},{}],12:[function(require,module,exports){ +'use strict'; + + +module.exports = { + copy: copy, + checkDataType: checkDataType, + checkDataTypes: checkDataTypes, + coerceToTypes: coerceToTypes, + toHash: toHash, + getProperty: getProperty, + escapeQuotes: escapeQuotes, + equal: require('fast-deep-equal'), + ucs2length: require('./ucs2length'), + varOccurences: varOccurences, + varReplace: varReplace, + cleanUpCode: cleanUpCode, + finalCleanUpCode: finalCleanUpCode, + schemaHasRules: schemaHasRules, + schemaHasRulesExcept: schemaHasRulesExcept, + toQuotedString: toQuotedString, + getPathExpr: getPathExpr, + getPath: getPath, + getData: getData, + unescapeFragment: unescapeFragment, + unescapeJsonPointer: unescapeJsonPointer, + escapeFragment: escapeFragment, + escapeJsonPointer: escapeJsonPointer +}; + + +function copy(o, to) { + to = to || {}; + for (var key in o) to[key] = o[key]; + return to; +} + + +function checkDataType(dataType, data, negate) { + var EQUAL = negate ? ' !== ' : ' === ' + , AND = negate ? ' || ' : ' && ' + , OK = negate ? '!' : '' + , NOT = negate ? '' : '!'; + switch (dataType) { + case 'null': return data + EQUAL + 'null'; + case 'array': return OK + 'Array.isArray(' + data + ')'; + case 'object': return '(' + OK + data + AND + + 'typeof ' + data + EQUAL + '"object"' + AND + + NOT + 'Array.isArray(' + data + '))'; + case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + + NOT + '(' + data + ' % 1)' + + AND + data + EQUAL + data + ')'; + default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; + } +} + + +function checkDataTypes(dataTypes, data) { + switch (dataTypes.length) { + case 1: return checkDataType(dataTypes[0], data, true); + default: + var code = ''; + var types = toHash(dataTypes); + if (types.array && types.object) { + code = types.null ? '(': '(!' + data + ' || '; + code += 'typeof ' + data + ' !== "object")'; + delete types.null; + delete types.array; + delete types.object; + } + if (types.number) delete types.integer; + for (var t in types) + code += (code ? ' && ' : '' ) + checkDataType(t, data, true); + + return code; + } +} + + +var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]); +function coerceToTypes(optionCoerceTypes, dataTypes) { + if (Array.isArray(dataTypes)) { + var types = []; + for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl); + return paths[lvl - up]; + } + + if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl); + data = 'data' + ((lvl - up) || ''); + if (!jsonPointer) return data; + } + + var expr = data; + var segments = jsonPointer.split('/'); + for (var i=0; i', + $notOp = $isMax ? '>' : '<', + $errorKeyword = undefined; + if ($isDataExcl) { + var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), + $exclusive = 'exclusive' + $lvl, + $exclType = 'exclType' + $lvl, + $exclIsNumber = 'exclIsNumber' + $lvl, + $opExpr = 'op' + $lvl, + $opStr = '\' + ' + $opExpr + ' + \''; + out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; '; + $schemaValueExcl = 'schemaExcl' + $lvl; + out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { '; + var $errorKeyword = $exclusiveKeyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';'; + } else { + var $exclIsNumber = typeof $schemaExcl == 'number', + $opStr = $op; + if ($exclIsNumber && $isData) { + var $opExpr = '\'' + $opStr + '\''; + out += ' if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { '; + } else { + if ($exclIsNumber && $schema === undefined) { + $exclusive = true; + $errorKeyword = $exclusiveKeyword; + $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; + $schemaValue = $schemaExcl; + $notOp += '='; + } else { + if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema); + if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) { + $exclusive = true; + $errorKeyword = $exclusiveKeyword; + $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; + $notOp += '='; + } else { + $exclusive = false; + $opStr += '='; + } + } + var $opExpr = '\'' + $opStr + '\''; + out += ' if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { '; + } + } + $errorKeyword = $errorKeyword || $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be ' + ($opStr) + ' '; + if ($isData) { + out += '\' + ' + ($schemaValue); + } else { + out += '' + ($schemaValue) + '\''; + } + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],14:[function(require,module,exports){ +'use strict'; +module.exports = function generate__limitItems(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $op = $keyword == 'maxItems' ? '>' : '<'; + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { '; + var $errorKeyword = $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have '; + if ($keyword == 'maxItems') { + out += 'more'; + } else { + out += 'less'; + } + out += ' than '; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + ($schema); + } + out += ' items\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],15:[function(require,module,exports){ +'use strict'; +module.exports = function generate__limitLength(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $op = $keyword == 'maxLength' ? '>' : '<'; + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + if (it.opts.unicode === false) { + out += ' ' + ($data) + '.length '; + } else { + out += ' ucs2length(' + ($data) + ') '; + } + out += ' ' + ($op) + ' ' + ($schemaValue) + ') { '; + var $errorKeyword = $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT be '; + if ($keyword == 'maxLength') { + out += 'longer'; + } else { + out += 'shorter'; + } + out += ' than '; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + ($schema); + } + out += ' characters\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],16:[function(require,module,exports){ +'use strict'; +module.exports = function generate__limitProperties(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $op = $keyword == 'maxProperties' ? '>' : '<'; + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { '; + var $errorKeyword = $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have '; + if ($keyword == 'maxProperties') { + out += 'more'; + } else { + out += 'less'; + } + out += ' than '; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + ($schema); + } + out += ' properties\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],17:[function(require,module,exports){ +'use strict'; +module.exports = function generate_allOf(it, $keyword, $ruleType) { + var out = ' '; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $currentBaseId = $it.baseId, + $allSchemasEmpty = true; + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $allSchemasEmpty = false; + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + out += ' ' + (it.validate($it)) + ' '; + $it.baseId = $currentBaseId; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + if ($breakOnError) { + if ($allSchemasEmpty) { + out += ' if (true) { '; + } else { + out += ' ' + ($closingBraces.slice(0, -1)) + ' '; + } + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],18:[function(require,module,exports){ +'use strict'; +module.exports = function generate_anyOf(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $noEmptySchema = $schema.every(function($sch) { + return it.util.schemaHasRules($sch, it.RULES.all); + }); + if ($noEmptySchema) { + var $currentBaseId = $it.baseId; + out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; '; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + out += ' ' + (it.validate($it)) + ' '; + $it.baseId = $currentBaseId; + out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { '; + $closingBraces += '}'; + } + } + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should match some schema in anyOf\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError(vErrors); '; + } else { + out += ' validate.errors = vErrors; return false; '; + } + } + out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; + if (it.opts.allErrors) { + out += ' } '; + } + out = it.util.cleanUpCode(out); + } else { + if ($breakOnError) { + out += ' if (true) { '; + } + } + return out; +} + +},{}],19:[function(require,module,exports){ +'use strict'; +module.exports = function generate_const(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + if (!$isData) { + out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';'; + } + out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should be equal to constant\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' }'; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],20:[function(require,module,exports){ +'use strict'; +module.exports = function generate_contains(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $idx = 'i' + $lvl, + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $currentBaseId = it.baseId, + $nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all); + out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; + if ($nonEmptySchema) { + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); + var $passData = $data + '[' + $idx + ']'; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + out += ' if (' + ($nextValid) + ') break; } '; + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {'; + } else { + out += ' if (' + ($data) + '.length == 0) {'; + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should contain a valid item\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + if ($nonEmptySchema) { + out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; + } + if (it.opts.allErrors) { + out += ' } '; + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],21:[function(require,module,exports){ +'use strict'; +module.exports = function generate_custom(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $rule = this, + $definition = 'definition' + $lvl, + $rDef = $rule.definition, + $closingBraces = ''; + var $compile, $inline, $macro, $ruleValidate, $validateCode; + if ($isData && $rDef.$data) { + $validateCode = 'keywordValidate' + $lvl; + var $validateSchema = $rDef.validateSchema; + out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;'; + } else { + $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); + if (!$ruleValidate) return; + $schemaValue = 'validate.schema' + $schemaPath; + $validateCode = $ruleValidate.code; + $compile = $rDef.compile; + $inline = $rDef.inline; + $macro = $rDef.macro; + } + var $ruleErrs = $validateCode + '.errors', + $i = 'i' + $lvl, + $ruleErr = 'ruleErr' + $lvl, + $asyncKeyword = $rDef.async; + if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema'); + if (!($inline || $macro)) { + out += '' + ($ruleErrs) + ' = null;'; + } + out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; + if ($isData && $rDef.$data) { + $closingBraces += '}'; + out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { '; + if ($validateSchema) { + $closingBraces += '}'; + out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { '; + } + } + if ($inline) { + if ($rDef.statements) { + out += ' ' + ($ruleValidate.validate) + ' '; + } else { + out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; '; + } + } else if ($macro) { + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + $it.schema = $ruleValidate.validate; + $it.schemaPath = ''; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' ' + ($code); + } else { + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; + out += ' ' + ($validateCode) + '.call( '; + if (it.opts.passContext) { + out += 'this'; + } else { + out += 'self'; + } + if ($compile || $rDef.schema === false) { + out += ' , ' + ($data) + ' '; + } else { + out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' '; + } + out += ' , (dataPath || \'\')'; + if (it.errorPath != '""') { + out += ' + ' + (it.errorPath); + } + var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', + $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; + out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) '; + var def_callRuleValidate = out; + out = $$outStack.pop(); + if ($rDef.errors === false) { + out += ' ' + ($valid) + ' = '; + if ($asyncKeyword) { + out += '' + (it.yieldAwait); + } + out += '' + (def_callRuleValidate) + '; '; + } else { + if ($asyncKeyword) { + $ruleErrs = 'customErrors' + $lvl; + out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = ' + (it.yieldAwait) + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } '; + } else { + out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; '; + } + } + } + if ($rDef.modifying) { + out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];'; + } + out += '' + ($closingBraces); + if ($rDef.valid) { + if ($breakOnError) { + out += ' if (true) { '; + } + } else { + out += ' if ( '; + if ($rDef.valid === undefined) { + out += ' !'; + if ($macro) { + out += '' + ($nextValid); + } else { + out += '' + ($valid); + } + } else { + out += ' ' + (!$rDef.valid) + ' '; + } + out += ') { '; + $errorKeyword = $rule.keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + var def_customError = out; + out = $$outStack.pop(); + if ($inline) { + if ($rDef.errors) { + if ($rDef.errors != 'full') { + out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '= 0) { + if ($breakOnError) { + out += ' if (true) { '; + } + return out; + } else { + throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); + } + } + var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate; + var $formatType = $isObject && $format.type || 'string'; + if ($isObject) { + var $async = $format.async === true; + $format = $format.validate; + } + if ($formatType != $ruleType) { + if ($breakOnError) { + out += ' if (true) { '; + } + return out; + } + if ($async) { + if (!it.async) throw new Error('async format in sync schema'); + var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate'; + out += ' if (!(' + (it.yieldAwait) + ' ' + ($formatRef) + '(' + ($data) + '))) { '; + } else { + out += ' if (! '; + var $formatRef = 'formats' + it.util.getProperty($schema); + if ($isObject) $formatRef += '.validate'; + if (typeof $format == 'function') { + out += ' ' + ($formatRef) + '(' + ($data) + ') '; + } else { + out += ' ' + ($formatRef) + '.test(' + ($data) + ') '; + } + out += ') { '; + } + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: '; + if ($isData) { + out += '' + ($schemaValue); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should match format "'; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + (it.util.escapeQuotes($schema)); + } + out += '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],25:[function(require,module,exports){ +'use strict'; +module.exports = function generate_items(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $idx = 'i' + $lvl, + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $currentBaseId = it.baseId; + out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; + if (Array.isArray($schema)) { + var $additionalItems = it.schema.additionalItems; + if ($additionalItems === false) { + out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; '; + var $currErrSchemaPath = $errSchemaPath; + $errSchemaPath = it.errSchemaPath + '/additionalItems'; + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' '; + } + if (it.opts.verbose) { + out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + $errSchemaPath = $currErrSchemaPath; + if ($breakOnError) { + $closingBraces += '}'; + out += ' else { '; + } + } + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { '; + var $passData = $data + '[' + $i + ']'; + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); + $it.dataPathArr[$dataNxt] = $i; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) { + $it.schema = $additionalItems; + $it.schemaPath = it.schemaPath + '.additionalItems'; + $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; + out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); + var $passData = $data + '[' + $idx + ']'; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' } } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } else if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); + var $passData = $data + '[' + $idx + ']'; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' }'; + } + if ($breakOnError) { + out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],26:[function(require,module,exports){ +'use strict'; +module.exports = function generate_multipleOf(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + out += 'var division' + ($lvl) + ';if ('; + if ($isData) { + out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; + } + out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', '; + if (it.opts.multipleOfPrecision) { + out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' '; + } else { + out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') '; + } + out += ' ) '; + if ($isData) { + out += ' ) '; + } + out += ' ) { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be multiple of '; + if ($isData) { + out += '\' + ' + ($schemaValue); + } else { + out += '' + ($schemaValue) + '\''; + } + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],27:[function(require,module,exports){ +'use strict'; +module.exports = function generate_not(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + $it.level++; + var $nextValid = 'valid' + $it.level; + if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + out += ' var ' + ($errs) + ' = errors; '; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + $it.createErrors = false; + var $allErrorsOption; + if ($it.opts.allErrors) { + $allErrorsOption = $it.opts.allErrors; + $it.opts.allErrors = false; + } + out += ' ' + (it.validate($it)) + ' '; + $it.createErrors = true; + if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption; + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' if (' + ($nextValid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT be valid\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; + if (it.opts.allErrors) { + out += ' } '; + } + } else { + out += ' var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT be valid\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + if ($breakOnError) { + out += ' if (false) { '; + } + } + return out; +} + +},{}],28:[function(require,module,exports){ +'use strict'; +module.exports = function generate_oneOf(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + out += 'var ' + ($errs) + ' = errors;var prevValid' + ($lvl) + ' = false;var ' + ($valid) + ' = false;'; + var $currentBaseId = $it.baseId; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + out += ' ' + (it.validate($it)) + ' '; + $it.baseId = $currentBaseId; + } else { + out += ' var ' + ($nextValid) + ' = true; '; + } + if ($i) { + out += ' if (' + ($nextValid) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { '; + $closingBraces += '}'; + } + out += ' if (' + ($nextValid) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;'; + } + } + it.compositeRule = $it.compositeRule = $wasComposite; + out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should match exactly one schema in oneOf\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError(vErrors); '; + } else { + out += ' validate.errors = vErrors; return false; '; + } + } + out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }'; + if (it.opts.allErrors) { + out += ' } '; + } + return out; +} + +},{}],29:[function(require,module,exports){ +'use strict'; +module.exports = function generate_pattern(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema); + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; + } + out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: '; + if ($isData) { + out += '' + ($schemaValue); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should match pattern "'; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + (it.util.escapeQuotes($schema)); + } + out += '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],30:[function(require,module,exports){ +'use strict'; +module.exports = function generate_properties(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $key = 'key' + $lvl, + $idx = 'idx' + $lvl, + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $dataProperties = 'dataProperties' + $lvl; + var $schemaKeys = Object.keys($schema || {}), + $pProperties = it.schema.patternProperties || {}, + $pPropertyKeys = Object.keys($pProperties), + $aProperties = it.schema.additionalProperties, + $someProperties = $schemaKeys.length || $pPropertyKeys.length, + $noAdditional = $aProperties === false, + $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length, + $removeAdditional = it.opts.removeAdditional, + $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, + $ownProperties = it.opts.ownProperties, + $currentBaseId = it.baseId; + var $required = it.schema.required; + if ($required && !(it.opts.v5 && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required); + if (it.opts.patternGroups) { + var $pgProperties = it.schema.patternGroups || {}, + $pgPropertyKeys = Object.keys($pgProperties); + } + out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; + if ($ownProperties) { + out += ' var ' + ($dataProperties) + ' = undefined;'; + } + if ($checkAdditional) { + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + if ($someProperties) { + out += ' var isAdditional' + ($lvl) + ' = !(false '; + if ($schemaKeys.length) { + if ($schemaKeys.length > 5) { + out += ' || validate.schema' + ($schemaPath) + '[' + ($key) + '] '; + } else { + var arr1 = $schemaKeys; + if (arr1) { + var $propertyKey, i1 = -1, + l1 = arr1.length - 1; + while (i1 < l1) { + $propertyKey = arr1[i1 += 1]; + out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' '; + } + } + } + } + if ($pPropertyKeys.length) { + var arr2 = $pPropertyKeys; + if (arr2) { + var $pProperty, $i = -1, + l2 = arr2.length - 1; + while ($i < l2) { + $pProperty = arr2[$i += 1]; + out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') '; + } + } + } + if (it.opts.patternGroups && $pgPropertyKeys.length) { + var arr3 = $pgPropertyKeys; + if (arr3) { + var $pgProperty, $i = -1, + l3 = arr3.length - 1; + while ($i < l3) { + $pgProperty = arr3[$i += 1]; + out += ' || ' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ') '; + } + } + } + out += ' ); if (isAdditional' + ($lvl) + ') { '; + } + if ($removeAdditional == 'all') { + out += ' delete ' + ($data) + '[' + ($key) + ']; '; + } else { + var $currentErrorPath = it.errorPath; + var $additionalProperty = '\' + ' + $key + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + } + if ($noAdditional) { + if ($removeAdditional) { + out += ' delete ' + ($data) + '[' + ($key) + ']; '; + } else { + out += ' ' + ($nextValid) + ' = false; '; + var $currErrSchemaPath = $errSchemaPath; + $errSchemaPath = it.errSchemaPath + '/additionalProperties'; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have additional properties\' '; + } + if (it.opts.verbose) { + out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + $errSchemaPath = $currErrSchemaPath; + if ($breakOnError) { + out += ' break; '; + } + } + } else if ($additionalIsSchema) { + if ($removeAdditional == 'failing') { + out += ' var ' + ($errs) + ' = errors; '; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + $it.schema = $aProperties; + $it.schemaPath = it.schemaPath + '.additionalProperties'; + $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; + $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } '; + it.compositeRule = $it.compositeRule = $wasComposite; + } else { + $it.schema = $aProperties; + $it.schemaPath = it.schemaPath + '.additionalProperties'; + $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; + $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + } + } + it.errorPath = $currentErrorPath; + } + if ($someProperties) { + out += ' } '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + var $useDefaults = it.opts.useDefaults && !it.compositeRule; + if ($schemaKeys.length) { + var arr4 = $schemaKeys; + if (arr4) { + var $propertyKey, i4 = -1, + l4 = arr4.length - 1; + while (i4 < l4) { + $propertyKey = arr4[i4 += 1]; + var $sch = $schema[$propertyKey]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + var $prop = it.util.getProperty($propertyKey), + $passData = $data + $prop, + $hasDefault = $useDefaults && $sch.default !== undefined; + $it.schema = $sch; + $it.schemaPath = $schemaPath + $prop; + $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey); + $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers); + $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey); + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + $code = it.util.varReplace($code, $nextData, $passData); + var $useData = $passData; + } else { + var $useData = $nextData; + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; '; + } + if ($hasDefault) { + out += ' ' + ($code) + ' '; + } else { + if ($requiredHash && $requiredHash[$propertyKey]) { + out += ' if ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') { ' + ($nextValid) + ' = false; '; + var $currentErrorPath = it.errorPath, + $currErrSchemaPath = $errSchemaPath, + $missingProperty = it.util.escapeQuotes($propertyKey); + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); + } + $errSchemaPath = it.errSchemaPath + '/required'; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + $errSchemaPath = $currErrSchemaPath; + it.errorPath = $currentErrorPath; + out += ' } else { '; + } else { + if ($breakOnError) { + out += ' if ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') { ' + ($nextValid) + ' = true; } else { '; + } else { + out += ' if (' + ($useData) + ' !== undefined '; + if ($ownProperties) { + out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ' ) { '; + } + } + out += ' ' + ($code) + ' } '; + } + } + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + if ($pPropertyKeys.length) { + var arr5 = $pPropertyKeys; + if (arr5) { + var $pProperty, i5 = -1, + l5 = arr5.length - 1; + while (i5 < l5) { + $pProperty = arr5[i5 += 1]; + var $sch = $pProperties[$pProperty]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $it.schema = $sch; + $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty); + $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty); + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else ' + ($nextValid) + ' = true; '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + } + if (it.opts.patternGroups && $pgPropertyKeys.length) { + var arr6 = $pgPropertyKeys; + if (arr6) { + var $pgProperty, i6 = -1, + l6 = arr6.length - 1; + while (i6 < l6) { + $pgProperty = arr6[i6 += 1]; + var $pgSchema = $pgProperties[$pgProperty], + $sch = $pgSchema.schema; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $it.schema = $sch; + $it.schemaPath = it.schemaPath + '.patternGroups' + it.util.getProperty($pgProperty) + '.schema'; + $it.errSchemaPath = it.errSchemaPath + '/patternGroups/' + it.util.escapeFragment($pgProperty) + '/schema'; + out += ' var pgPropCount' + ($lvl) + ' = 0; '; + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + out += ' if (' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ')) { pgPropCount' + ($lvl) + '++; '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else ' + ($nextValid) + ' = true; '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + var $pgMin = $pgSchema.minimum, + $pgMax = $pgSchema.maximum; + if ($pgMin !== undefined || $pgMax !== undefined) { + out += ' var ' + ($valid) + ' = true; '; + var $currErrSchemaPath = $errSchemaPath; + if ($pgMin !== undefined) { + var $limit = $pgMin, + $reason = 'minimum', + $moreOrLess = 'less'; + out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' >= ' + ($pgMin) + '; '; + $errSchemaPath = it.errSchemaPath + '/patternGroups/minimum'; + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('patternGroups') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \'' + ($reason) + '\', limit: ' + ($limit) + ', pattern: \'' + (it.util.escapeQuotes($pgProperty)) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern "' + (it.util.escapeQuotes($pgProperty)) + '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($pgMax !== undefined) { + out += ' else '; + } + } + if ($pgMax !== undefined) { + var $limit = $pgMax, + $reason = 'maximum', + $moreOrLess = 'more'; + out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' <= ' + ($pgMax) + '; '; + $errSchemaPath = it.errSchemaPath + '/patternGroups/maximum'; + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('patternGroups') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \'' + ($reason) + '\', limit: ' + ($limit) + ', pattern: \'' + (it.util.escapeQuotes($pgProperty)) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern "' + (it.util.escapeQuotes($pgProperty)) + '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + } + $errSchemaPath = $currErrSchemaPath; + if ($breakOnError) { + out += ' if (' + ($valid) + ') { '; + $closingBraces += '}'; + } + } + } + } + } + } + if ($breakOnError) { + out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],31:[function(require,module,exports){ +'use strict'; +module.exports = function generate_propertyNames(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + var $key = 'key' + $lvl, + $idx = 'idx' + $lvl, + $i = 'i' + $lvl, + $invalidName = '\' + ' + $key + ' + \'', + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $dataProperties = 'dataProperties' + $lvl, + $ownProperties = it.opts.ownProperties, + $currentBaseId = it.baseId; + out += ' var ' + ($errs) + ' = errors; '; + if ($ownProperties) { + out += ' var ' + ($dataProperties) + ' = undefined; '; + } + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + out += ' var startErrs' + ($lvl) + ' = errors; '; + var $passData = $key; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '= it.opts.loopRequired, + $ownProperties = it.opts.ownProperties; + if ($breakOnError) { + out += ' var missing' + ($lvl) + '; '; + if ($loopRequired) { + if (!$isData) { + out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; + } + var $i = 'i' + $lvl, + $propertyPath = 'schema' + $lvl + '[' + $i + ']', + $missingProperty = '\' + ' + $propertyPath + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); + } + out += ' var ' + ($valid) + ' = true; '; + if ($isData) { + out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; + } + out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined '; + if ($ownProperties) { + out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; + } + out += '; if (!' + ($valid) + ') break; } '; + if ($isData) { + out += ' } '; + } + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + } else { + out += ' if ( '; + var arr2 = $required; + if (arr2) { + var $propertyKey, $i = -1, + l2 = arr2.length - 1; + while ($i < l2) { + $propertyKey = arr2[$i += 1]; + if ($i) { + out += ' || '; + } + var $prop = it.util.getProperty($propertyKey), + $useData = $data + $prop; + out += ' ( ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) '; + } + } + out += ') { '; + var $propertyPath = 'missing' + $lvl, + $missingProperty = '\' + ' + $propertyPath + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath; + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + } + } else { + if ($loopRequired) { + if (!$isData) { + out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; + } + var $i = 'i' + $lvl, + $propertyPath = 'schema' + $lvl + '[' + $i + ']', + $missingProperty = '\' + ' + $propertyPath + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); + } + if ($isData) { + out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { '; + } + out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; + } + out += ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } '; + if ($isData) { + out += ' } '; + } + } else { + var arr3 = $required; + if (arr3) { + var $propertyKey, i3 = -1, + l3 = arr3.length - 1; + while (i3 < l3) { + $propertyKey = arr3[i3 += 1]; + var $prop = it.util.getProperty($propertyKey), + $missingProperty = it.util.escapeQuotes($propertyKey), + $useData = $data + $prop; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); + } + out += ' if ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } '; + } + } + } + } + it.errorPath = $currentErrorPath; + } else if ($breakOnError) { + out += ' if (true) {'; + } + return out; +} + +},{}],34:[function(require,module,exports){ +'use strict'; +module.exports = function generate_uniqueItems(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + if (($schema || $isData) && it.opts.uniqueItems !== false) { + if ($isData) { + out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { '; + } + out += ' var ' + ($valid) + ' = true; if (' + ($data) + '.length > 1) { var i = ' + ($data) + '.length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } } '; + if ($isData) { + out += ' } '; + } + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else { '; + } + } else { + if ($breakOnError) { + out += ' if (true) { '; + } + } + return out; +} + +},{}],35:[function(require,module,exports){ +'use strict'; +module.exports = function generate_validate(it, $keyword, $ruleType) { + var out = ''; + var $async = it.schema.$async === true, + $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'), + $id = it.self._getId(it.schema); + if (it.isTop) { + if ($async) { + it.async = true; + var $es7 = it.opts.async == 'es7'; + it.yieldAwait = $es7 ? 'await' : 'yield'; + } + out += ' var validate = '; + if ($async) { + if ($es7) { + out += ' (async function '; + } else { + if (it.opts.async != '*') { + out += 'co.wrap'; + } + out += '(function* '; + } + } else { + out += ' (function '; + } + out += ' (data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; '; + if ($id && (it.opts.sourceCode || it.opts.processCode)) { + out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' '; + } + } + if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) { + var $keyword = 'false schema'; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + if (it.schema === false) { + if (it.isTop) { + $breakOnError = true; + } else { + out += ' var ' + ($valid) + ' = false; '; + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'boolean schema is false\' '; + } + if (it.opts.verbose) { + out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + } else { + if (it.isTop) { + if ($async) { + out += ' return data; '; + } else { + out += ' validate.errors = null; return true; '; + } + } else { + out += ' var ' + ($valid) + ' = true; '; + } + } + if (it.isTop) { + out += ' }); return validate; '; + } + return out; + } + if (it.isTop) { + var $top = it.isTop, + $lvl = it.level = 0, + $dataLvl = it.dataLevel = 0, + $data = 'data'; + it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)); + it.baseId = it.baseId || it.rootId; + delete it.isTop; + it.dataPathArr = [undefined]; + out += ' var vErrors = null; '; + out += ' var errors = 0; '; + out += ' if (rootData === undefined) rootData = data; '; + } else { + var $lvl = it.level, + $dataLvl = it.dataLevel, + $data = 'data' + ($dataLvl || ''); + if ($id) it.baseId = it.resolve.url(it.baseId, $id); + if ($async && !it.async) throw new Error('async schema in sync schema'); + out += ' var errs_' + ($lvl) + ' = errors;'; + } + var $valid = 'valid' + $lvl, + $breakOnError = !it.opts.allErrors, + $closingBraces1 = '', + $closingBraces2 = ''; + var $errorKeyword; + var $typeSchema = it.schema.type, + $typeIsArray = Array.isArray($typeSchema); + if ($typeIsArray && $typeSchema.length == 1) { + $typeSchema = $typeSchema[0]; + $typeIsArray = false; + } + if (it.schema.$ref && $refKeywords) { + if (it.opts.extendRefs == 'fail') { + throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); + } else if (it.opts.extendRefs !== true) { + $refKeywords = false; + it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"'); + } + } + if ($typeSchema) { + if (it.opts.coerceTypes) { + var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); + } + var $rulesGroup = it.RULES.types[$typeSchema]; + if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) { + var $schemaPath = it.schemaPath + '.type', + $errSchemaPath = it.errSchemaPath + '/type'; + var $schemaPath = it.schemaPath + '.type', + $errSchemaPath = it.errSchemaPath + '/type', + $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; + out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { '; + if ($coerceToTypes) { + var $dataType = 'dataType' + $lvl, + $coerced = 'coerced' + $lvl; + out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; '; + if (it.opts.coerceTypes == 'array') { + out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; '; + } + out += ' var ' + ($coerced) + ' = undefined; '; + var $bracesCoercion = ''; + var arr1 = $coerceToTypes; + if (arr1) { + var $type, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $type = arr1[$i += 1]; + if ($i) { + out += ' if (' + ($coerced) + ' === undefined) { '; + $bracesCoercion += '}'; + } + if (it.opts.coerceTypes == 'array' && $type != 'array') { + out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } '; + } + if ($type == 'string') { + out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; + } else if ($type == 'number' || $type == 'integer') { + out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; + if ($type == 'integer') { + out += ' && !(' + ($data) + ' % 1)'; + } + out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; + } else if ($type == 'boolean') { + out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; + } else if ($type == 'null') { + out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; + } else if (it.opts.coerceTypes == 'array' && $type == 'array') { + out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; + } + } + } + out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be '; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', + $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; + out += ' ' + ($data) + ' = ' + ($coerced) + '; '; + if (!$dataLvl) { + out += 'if (' + ($parentData) + ' !== undefined)'; + } + out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } '; + } else { + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be '; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + } + out += ' } '; + } + } + if (it.schema.$ref && !$refKeywords) { + out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' '; + if ($breakOnError) { + out += ' } if (errors === '; + if ($top) { + out += '0'; + } else { + out += 'errs_' + ($lvl); + } + out += ') { '; + $closingBraces2 += '}'; + } + } else { + if (it.opts.v5 && it.schema.patternGroups) { + it.logger.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.'); + } + var arr2 = it.RULES; + if (arr2) { + var $rulesGroup, i2 = -1, + l2 = arr2.length - 1; + while (i2 < l2) { + $rulesGroup = arr2[i2 += 1]; + if ($shouldUseGroup($rulesGroup)) { + if ($rulesGroup.type) { + out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { '; + } + if (it.opts.useDefaults && !it.compositeRule) { + if ($rulesGroup.type == 'object' && it.schema.properties) { + var $schema = it.schema.properties, + $schemaKeys = Object.keys($schema); + var arr3 = $schemaKeys; + if (arr3) { + var $propertyKey, i3 = -1, + l3 = arr3.length - 1; + while (i3 < l3) { + $propertyKey = arr3[i3 += 1]; + var $sch = $schema[$propertyKey]; + if ($sch.default !== undefined) { + var $passData = $data + it.util.getProperty($propertyKey); + out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = '; + if (it.opts.useDefaults == 'shared') { + out += ' ' + (it.useDefault($sch.default)) + ' '; + } else { + out += ' ' + (JSON.stringify($sch.default)) + ' '; + } + out += '; '; + } + } + } + } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) { + var arr4 = it.schema.items; + if (arr4) { + var $sch, $i = -1, + l4 = arr4.length - 1; + while ($i < l4) { + $sch = arr4[$i += 1]; + if ($sch.default !== undefined) { + var $passData = $data + '[' + $i + ']'; + out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = '; + if (it.opts.useDefaults == 'shared') { + out += ' ' + (it.useDefault($sch.default)) + ' '; + } else { + out += ' ' + (JSON.stringify($sch.default)) + ' '; + } + out += '; '; + } + } + } + } + } + var arr5 = $rulesGroup.rules; + if (arr5) { + var $rule, i5 = -1, + l5 = arr5.length - 1; + while (i5 < l5) { + $rule = arr5[i5 += 1]; + if ($shouldUseRule($rule)) { + var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); + if ($code) { + out += ' ' + ($code) + ' '; + if ($breakOnError) { + $closingBraces1 += '}'; + } + } + } + } + } + if ($breakOnError) { + out += ' ' + ($closingBraces1) + ' '; + $closingBraces1 = ''; + } + if ($rulesGroup.type) { + out += ' } '; + if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) { + out += ' else { '; + var $schemaPath = it.schemaPath + '.type', + $errSchemaPath = it.errSchemaPath + '/type'; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be '; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + } + } + if ($breakOnError) { + out += ' if (errors === '; + if ($top) { + out += '0'; + } else { + out += 'errs_' + ($lvl); + } + out += ') { '; + $closingBraces2 += '}'; + } + } + } + } + } + if ($breakOnError) { + out += ' ' + ($closingBraces2) + ' '; + } + if ($top) { + if ($async) { + out += ' if (errors === 0) return data; '; + out += ' else throw new ValidationError(vErrors); '; + } else { + out += ' validate.errors = vErrors; '; + out += ' return errors === 0; '; + } + out += ' }); return validate;'; + } else { + out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; + } + out = it.util.cleanUpCode(out); + if ($top) { + out = it.util.finalCleanUpCode(out, $async); + } + + function $shouldUseGroup($rulesGroup) { + var rules = $rulesGroup.rules; + for (var i = 0; i < rules.length; i++) + if ($shouldUseRule(rules[i])) return true; + } + + function $shouldUseRule($rule) { + return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule)); + } + + function $ruleImplementsSomeKeyword($rule) { + var impl = $rule.implements; + for (var i = 0; i < impl.length; i++) + if (it.schema[impl[i]] !== undefined) return true; + } + return out; +} + +},{}],36:[function(require,module,exports){ +'use strict'; + +var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i; +var customRuleCode = require('./dotjs/custom'); + +module.exports = { + add: addKeyword, + get: getKeyword, + remove: removeKeyword +}; + +/** + * Define custom keyword + * @this Ajv + * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords). + * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. + * @return {Ajv} this for method chaining + */ +function addKeyword(keyword, definition) { + /* jshint validthis: true */ + /* eslint no-shadow: 0 */ + var RULES = this.RULES; + + if (RULES.keywords[keyword]) + throw new Error('Keyword ' + keyword + ' is already defined'); + + if (!IDENTIFIER.test(keyword)) + throw new Error('Keyword ' + keyword + ' is not a valid identifier'); + + if (definition) { + if (definition.macro && definition.valid !== undefined) + throw new Error('"valid" option cannot be used with macro keywords'); + + var dataType = definition.type; + if (Array.isArray(dataType)) { + var i, len = dataType.length; + for (i=0; i 2) res = slice.call(arguments, 1); + resolve(res); + }); + }); +} + +/** + * Convert an array of "yieldables" to a promise. + * Uses `Promise.all()` internally. + * + * @param {Array} obj + * @return {Promise} + * @api private + */ + +function arrayToPromise(obj) { + return Promise.all(obj.map(toPromise, this)); +} + +/** + * Convert an object of "yieldables" to a promise. + * Uses `Promise.all()` internally. + * + * @param {Object} obj + * @return {Promise} + * @api private + */ + +function objectToPromise(obj){ + var results = new obj.constructor(); + var keys = Object.keys(obj); + var promises = []; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var promise = toPromise.call(this, obj[key]); + if (promise && isPromise(promise)) defer(promise, key); + else results[key] = obj[key]; + } + return Promise.all(promises).then(function () { + return results; + }); + + function defer(promise, key) { + // predefine the key in the result + results[key] = undefined; + promises.push(promise.then(function (res) { + results[key] = res; + })); + } +} + +/** + * Check if `obj` is a promise. + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isPromise(obj) { + return 'function' == typeof obj.then; +} + +/** + * Check if `obj` is a generator. + * + * @param {Mixed} obj + * @return {Boolean} + * @api private + */ + +function isGenerator(obj) { + return 'function' == typeof obj.next && 'function' == typeof obj.throw; +} + +/** + * Check if `obj` is a generator function. + * + * @param {Mixed} obj + * @return {Boolean} + * @api private + */ +function isGeneratorFunction(obj) { + var constructor = obj.constructor; + if (!constructor) return false; + if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true; + return isGenerator(constructor.prototype); +} + +/** + * Check for plain object. + * + * @param {Mixed} val + * @return {Boolean} + * @api private + */ + +function isObject(val) { + return Object == val.constructor; +} + +},{}],41:[function(require,module,exports){ +'use strict'; + +module.exports = function equal(a, b) { + if (a === b) return true; + + var arrA = Array.isArray(a) + , arrB = Array.isArray(b) + , i; + + if (arrA && arrB) { + if (a.length != b.length) return false; + for (i = 0; i < a.length; i++) + if (!equal(a[i], b[i])) return false; + return true; + } + + if (arrA != arrB) return false; + + if (a && b && typeof a === 'object' && typeof b === 'object') { + var keys = Object.keys(a); + if (keys.length !== Object.keys(b).length) return false; + + var dateA = a instanceof Date + , dateB = b instanceof Date; + if (dateA && dateB) return a.getTime() == b.getTime(); + if (dateA != dateB) return false; + + var regexpA = a instanceof RegExp + , regexpB = b instanceof RegExp; + if (regexpA && regexpB) return a.toString() == b.toString(); + if (regexpA != regexpB) return false; + + for (i = 0; i < keys.length; i++) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = 0; i < keys.length; i++) + if(!equal(a[keys[i]], b[keys[i]])) return false; + + return true; + } + + return false; +}; + +},{}],42:[function(require,module,exports){ +'use strict'; + +module.exports = function (data, opts) { + if (!opts) opts = {}; + if (typeof opts === 'function') opts = { cmp: opts }; + var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false; + + var cmp = opts.cmp && (function (f) { + return function (node) { + return function (a, b) { + var aobj = { key: a, value: node[a] }; + var bobj = { key: b, value: node[b] }; + return f(aobj, bobj); + }; + }; + })(opts.cmp); + + var seen = []; + return (function stringify (node) { + if (node && node.toJSON && typeof node.toJSON === 'function') { + node = node.toJSON(); + } + + if (node === undefined) return; + if (typeof node == 'number') return isFinite(node) ? '' + node : 'null'; + if (typeof node !== 'object') return JSON.stringify(node); + + var i, out; + if (Array.isArray(node)) { + out = '['; + for (i = 0; i < node.length; i++) { + if (i) out += ','; + out += stringify(node[i]) || 'null'; + } + return out + ']'; + } + + if (node === null) return 'null'; + + if (seen.indexOf(node) !== -1) { + if (cycles) return JSON.stringify('__cycle__'); + throw new TypeError('Converting circular structure to JSON'); + } + + var seenIndex = seen.push(node) - 1; + var keys = Object.keys(node).sort(cmp && cmp(node)); + out = ''; + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = stringify(node[key]); + + if (!value) continue; + if (out) out += ','; + out += JSON.stringify(key) + ':' + value; + } + seen.splice(seenIndex, 1); + return '{' + out + '}'; + })(data); +}; + +},{}],43:[function(require,module,exports){ +'use strict'; + +var traverse = module.exports = function (schema, opts, cb) { + if (typeof opts == 'function') { + cb = opts; + opts = {}; + } + _traverse(opts, cb, schema, '', schema); +}; + + +traverse.keywords = { + additionalItems: true, + items: true, + contains: true, + additionalProperties: true, + propertyNames: true, + not: true +}; + +traverse.arrayKeywords = { + items: true, + allOf: true, + anyOf: true, + oneOf: true +}; + +traverse.propsKeywords = { + definitions: true, + properties: true, + patternProperties: true, + dependencies: true +}; + +traverse.skipKeywords = { + enum: true, + const: true, + required: true, + maximum: true, + minimum: true, + exclusiveMaximum: true, + exclusiveMinimum: true, + multipleOf: true, + maxLength: true, + minLength: true, + pattern: true, + format: true, + maxItems: true, + minItems: true, + uniqueItems: true, + maxProperties: true, + minProperties: true +}; + + +function _traverse(opts, cb, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { + if (schema && typeof schema == 'object' && !Array.isArray(schema)) { + cb(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + for (var key in schema) { + var sch = schema[key]; + if (Array.isArray(sch)) { + if (key in traverse.arrayKeywords) { + for (var i=0; i= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw new RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + var result = []; + while (length--) { + result[length] = fn(array[length]); + } + return result; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + var parts = string.split('@'); + var result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + var labels = string.split('.'); + var encoded = map(labels, fn).join('.'); + return result + encoded; + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ + function toASCII(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.4.1', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define('punycode', function() { + return punycode; + }); + } else if (freeExports && freeModule) { + if (module.exports == freeExports) { + // in Node.js, io.js, or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { + // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { + // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],45:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +},{}],46:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return map(objectKeys(obj), function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (isArray(obj[k])) { + return map(obj[k], function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); + } + return res; +} + +var objectKeys = Object.keys || function (obj) { + var res = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); + } + return res; +}; + +},{}],47:[function(require,module,exports){ +'use strict'; + +exports.decode = exports.parse = require('./decode'); +exports.encode = exports.stringify = require('./encode'); + +},{"./decode":45,"./encode":46}],48:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +var punycode = require('punycode'); +var util = require('./util'); + +exports.parse = urlParse; +exports.resolve = urlResolve; +exports.resolveObject = urlResolveObject; +exports.format = urlFormat; + +exports.Url = Url; + +function Url() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; +} + +// Reference: RFC 3986, RFC 1808, RFC 2396 + +// define these here so at least they only have to be +// compiled once on the first module load. +var protocolPattern = /^([a-z0-9.+-]+:)/i, + portPattern = /:[0-9]*$/, + + // Special case for a simple path URL + simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, + + // RFC 2396: characters reserved for delimiting URLs. + // We actually just auto-escape these. + delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], + + // RFC 2396: characters not allowed for various reasons. + unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), + + // Allowed by RFCs, but cause of XSS attacks. Always escape these. + autoEscape = ['\''].concat(unwise), + // Characters that are never ever allowed in a hostname. + // Note that any invalid chars are also handled, but these + // are the ones that are *expected* to be seen, so we fast-path + // them. + nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), + hostEndingChars = ['/', '?', '#'], + hostnameMaxLen = 255, + hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + // protocols that can allow "unsafe" and "unwise" chars. + unsafeProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that never have a hostname. + hostlessProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that always contain a // bit. + slashedProtocol = { + 'http': true, + 'https': true, + 'ftp': true, + 'gopher': true, + 'file': true, + 'http:': true, + 'https:': true, + 'ftp:': true, + 'gopher:': true, + 'file:': true + }, + querystring = require('querystring'); + +function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && util.isObject(url) && url instanceof Url) return url; + + var u = new Url; + u.parse(url, parseQueryString, slashesDenoteHost); + return u; +} + +Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + if (!util.isString(url)) { + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + } + + // Copy chrome, IE, opera backslash-handling behavior. + // Back slashes before the query string get converted to forward slashes + // See: https://code.google.com/p/chromium/issues/detail?id=25916 + var queryIndex = url.indexOf('?'), + splitter = + (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', + uSplit = url.split(splitter), + slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, '/'); + url = uSplit.join(splitter); + + var rest = url; + + // trim before proceeding. + // This is to support parse stuff like " http://foo.com \n" + rest = rest.trim(); + + if (!slashesDenoteHost && url.split('#').length === 1) { + // Try fast path regexp + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + this.path = rest; + this.href = rest; + this.pathname = simplePath[1]; + if (simplePath[2]) { + this.search = simplePath[2]; + if (parseQueryString) { + this.query = querystring.parse(this.search.substr(1)); + } else { + this.query = this.search.substr(1); + } + } else if (parseQueryString) { + this.search = ''; + this.query = {}; + } + return this; + } + } + + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto; + rest = rest.substr(proto.length); + } + + // figure out if it's got a host + // user@server is *always* interpreted as a hostname, and url + // resolution will treat //foo/bar as host=foo,path=bar because that's + // how the browser resolves relative URLs. + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { + var slashes = rest.substr(0, 2) === '//'; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + this.slashes = true; + } + } + + if (!hostlessProtocol[proto] && + (slashes || (proto && !slashedProtocol[proto]))) { + + // there's a hostname. + // the first instance of /, ?, ;, or # ends the host. + // + // If there is an @ in the hostname, then non-host chars *are* allowed + // to the left of the last @ sign, unless some host-ending character + // comes *before* the @-sign. + // URLs are obnoxious. + // + // ex: + // http://a@b@c/ => user:a@b host:c + // http://a@b?@c => user:a host:c path:/?@c + + // v0.12 TODO(isaacs): This is not quite how Chrome does things. + // Review our test case against browsers more comprehensively. + + // find the first instance of any hostEndingChars + var hostEnd = -1; + for (var i = 0; i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + + // at this point, either we have an explicit point where the + // auth portion cannot go past, or the last @ char is the decider. + var auth, atSign; + if (hostEnd === -1) { + // atSign can be anywhere. + atSign = rest.lastIndexOf('@'); + } else { + // atSign must be in auth portion. + // http://a@b/c@d => host:b auth:a path:/c@d + atSign = rest.lastIndexOf('@', hostEnd); + } + + // Now we have a portion which is definitely the auth. + // Pull that off. + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + this.auth = decodeURIComponent(auth); + } + + // the host is the remaining to the left of the first non-host char + hostEnd = -1; + for (var i = 0; i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + // if we still have not hit it, then the entire thing is a host. + if (hostEnd === -1) + hostEnd = rest.length; + + this.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + + // pull out port. + this.parseHost(); + + // we've indicated that there is a hostname, + // so even if it's empty, it has to be present. + this.hostname = this.hostname || ''; + + // if hostname begins with [ and ends with ] + // assume that it's an IPv6 address. + var ipv6Hostname = this.hostname[0] === '[' && + this.hostname[this.hostname.length - 1] === ']'; + + // validate a little. + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) continue; + if (!part.match(hostnamePartPattern)) { + var newpart = ''; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + // we replace non-ASCII char with a temporary placeholder + // we need this to make sure size of hostname is not + // broken by replacing non-ASCII by nothing + newpart += 'x'; + } else { + newpart += part[j]; + } + } + // we test again with ASCII char only + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = '/' + notHost.join('.') + rest; + } + this.hostname = validParts.join('.'); + break; + } + } + } + } + + if (this.hostname.length > hostnameMaxLen) { + this.hostname = ''; + } else { + // hostnames are always lower case. + this.hostname = this.hostname.toLowerCase(); + } + + if (!ipv6Hostname) { + // IDNA Support: Returns a punycoded representation of "domain". + // It only converts parts of the domain name that + // have non-ASCII characters, i.e. it doesn't matter if + // you call it with a domain that already is ASCII-only. + this.hostname = punycode.toASCII(this.hostname); + } + + var p = this.port ? ':' + this.port : ''; + var h = this.hostname || ''; + this.host = h + p; + this.href += this.host; + + // strip [ and ] from the hostname + // the host field still retains them, though + if (ipv6Hostname) { + this.hostname = this.hostname.substr(1, this.hostname.length - 2); + if (rest[0] !== '/') { + rest = '/' + rest; + } + } + } + + // now rest is set to the post-host stuff. + // chop off any delim chars. + if (!unsafeProtocol[lowerProto]) { + + // First, make 100% sure that any "autoEscape" chars get + // escaped, even if encodeURIComponent doesn't think they + // need to be. + for (var i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) + continue; + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); + } + } + + + // chop off from the tail first. + var hash = rest.indexOf('#'); + if (hash !== -1) { + // got a fragment string. + this.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf('?'); + if (qm !== -1) { + this.search = rest.substr(qm); + this.query = rest.substr(qm + 1); + if (parseQueryString) { + this.query = querystring.parse(this.query); + } + rest = rest.slice(0, qm); + } else if (parseQueryString) { + // no query string, but parseQueryString still requested + this.search = ''; + this.query = {}; + } + if (rest) this.pathname = rest; + if (slashedProtocol[lowerProto] && + this.hostname && !this.pathname) { + this.pathname = '/'; + } + + //to support http.request + if (this.pathname || this.search) { + var p = this.pathname || ''; + var s = this.search || ''; + this.path = p + s; + } + + // finally, reconstruct the href based on what has been validated. + this.href = this.format(); + return this; +}; + +// format a parsed object into a url string +function urlFormat(obj) { + // ensure it's an object, and not a string url. + // If it's an obj, this is a no-op. + // this way, you can call url_format() on strings + // to clean up potentially wonky urls. + if (util.isString(obj)) obj = urlParse(obj); + if (!(obj instanceof Url)) return Url.prototype.format.call(obj); + return obj.format(); +} + +Url.prototype.format = function() { + var auth = this.auth || ''; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ':'); + auth += '@'; + } + + var protocol = this.protocol || '', + pathname = this.pathname || '', + hash = this.hash || '', + host = false, + query = ''; + + if (this.host) { + host = auth + this.host; + } else if (this.hostname) { + host = auth + (this.hostname.indexOf(':') === -1 ? + this.hostname : + '[' + this.hostname + ']'); + if (this.port) { + host += ':' + this.port; + } + } + + if (this.query && + util.isObject(this.query) && + Object.keys(this.query).length) { + query = querystring.stringify(this.query); + } + + var search = this.search || (query && ('?' + query)) || ''; + + if (protocol && protocol.substr(-1) !== ':') protocol += ':'; + + // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. + // unless they had them to begin with. + if (this.slashes || + (!protocol || slashedProtocol[protocol]) && host !== false) { + host = '//' + (host || ''); + if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; + } else if (!host) { + host = ''; + } + + if (hash && hash.charAt(0) !== '#') hash = '#' + hash; + if (search && search.charAt(0) !== '?') search = '?' + search; + + pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }); + search = search.replace('#', '%23'); + + return protocol + host + pathname + search + hash; +}; + +function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); +} + +Url.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); +}; + +function urlResolveObject(source, relative) { + if (!source) return relative; + return urlParse(source, false, true).resolveObject(relative); +} + +Url.prototype.resolveObject = function(relative) { + if (util.isString(relative)) { + var rel = new Url(); + rel.parse(relative, false, true); + relative = rel; + } + + var result = new Url(); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } + + // hash is always overridden, no matter what. + // even href="" will remove it. + result.hash = relative.hash; + + // if the relative url is empty, then there's nothing left to do here. + if (relative.href === '') { + result.href = result.format(); + return result; + } + + // hrefs like //foo/bar always cut to the protocol. + if (relative.slashes && !relative.protocol) { + // take everything except the protocol from relative + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== 'protocol') + result[rkey] = relative[rkey]; + } + + //urlParse appends trailing / to urls like http://www.example.com + if (slashedProtocol[result.protocol] && + result.hostname && !result.pathname) { + result.path = result.pathname = '/'; + } + + result.href = result.format(); + return result; + } + + if (relative.protocol && relative.protocol !== result.protocol) { + // if it's a known url protocol, then changing + // the protocol does weird things + // first, if it's not file:, then we MUST have a host, + // and if there was a path + // to begin with, then we MUST have a path. + // if it is file:, then the host is dropped, + // because that's known to be hostless. + // anything else is assumed to be absolute. + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; + } + result.href = result.format(); + return result; + } + + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || '').split('/'); + while (relPath.length && !(relative.host = relPath.shift())); + if (!relative.host) relative.host = ''; + if (!relative.hostname) relative.hostname = ''; + if (relPath[0] !== '') relPath.unshift(''); + if (relPath.length < 2) relPath.unshift(''); + result.pathname = relPath.join('/'); + } else { + result.pathname = relative.pathname; + } + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ''; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + // to support http.request + if (result.pathname || result.search) { + var p = result.pathname || ''; + var s = result.search || ''; + result.path = p + s; + } + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + + var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), + isRelAbs = ( + relative.host || + relative.pathname && relative.pathname.charAt(0) === '/' + ), + mustEndAbs = (isRelAbs || isSourceAbs || + (result.host && relative.pathname)), + removeAllDots = mustEndAbs, + srcPath = result.pathname && result.pathname.split('/') || [], + relPath = relative.pathname && relative.pathname.split('/') || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + + // if the url is a non-slashed url, then relative + // links like ../.. should be able + // to crawl up to the hostname, as well. This is strange. + // result.protocol has already been set by now. + // Later on, put the first path part into the host field. + if (psychotic) { + result.hostname = ''; + result.port = null; + if (result.host) { + if (srcPath[0] === '') srcPath[0] = result.host; + else srcPath.unshift(result.host); + } + result.host = ''; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === '') relPath[0] = relative.host; + else relPath.unshift(relative.host); + } + relative.host = null; + } + mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); + } + + if (isRelAbs) { + // it's absolute. + result.host = (relative.host || relative.host === '') ? + relative.host : result.host; + result.hostname = (relative.hostname || relative.hostname === '') ? + relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + // fall through to the dot-handling below. + } else if (relPath.length) { + // it's relative + // throw away the existing file, and take the new path instead. + if (!srcPath) srcPath = []; + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (!util.isNullOrUndefined(relative.search)) { + // just pull out the search. + // like href='?foo'. + // Put this after the other two cases because it simplifies the booleans + if (psychotic) { + result.hostname = result.host = srcPath.shift(); + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + result.search = relative.search; + result.query = relative.query; + //to support http.request + if (!util.isNull(result.pathname) || !util.isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.href = result.format(); + return result; + } + + if (!srcPath.length) { + // no path at all. easy. + // we've already handled the other stuff above. + result.pathname = null; + //to support http.request + if (result.search) { + result.path = '/' + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } + + // if a url ENDs in . or .., then it must get a trailing slash. + // however, if it ends in anything else non-slashy, + // then it must NOT get a trailing slash. + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = ( + (result.host || relative.host || srcPath.length > 1) && + (last === '.' || last === '..') || last === ''); + + // strip single dots, resolve double dots to parent dir + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last === '.') { + srcPath.splice(i, 1); + } else if (last === '..') { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift('..'); + } + } + + if (mustEndAbs && srcPath[0] !== '' && + (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { + srcPath.unshift(''); + } + + if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { + srcPath.push(''); + } + + var isAbsolute = srcPath[0] === '' || + (srcPath[0] && srcPath[0].charAt(0) === '/'); + + // put the host back + if (psychotic) { + result.hostname = result.host = isAbsolute ? '' : + srcPath.length ? srcPath.shift() : ''; + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + + mustEndAbs = mustEndAbs || (result.host && srcPath.length); + + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(''); + } + + if (!srcPath.length) { + result.pathname = null; + result.path = null; + } else { + result.pathname = srcPath.join('/'); + } + + //to support request.http + if (!util.isNull(result.pathname) || !util.isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; +}; + +Url.prototype.parseHost = function() { + var host = this.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ':') { + this.port = port.substr(1); + } + host = host.substr(0, host.length - port.length); + } + if (host) this.hostname = host; +}; + +},{"./util":49,"punycode":44,"querystring":47}],49:[function(require,module,exports){ +'use strict'; + +module.exports = { + isString: function(arg) { + return typeof(arg) === 'string'; + }, + isObject: function(arg) { + return typeof(arg) === 'object' && arg !== null; + }, + isNull: function(arg) { + return arg === null; + }, + isNullOrUndefined: function(arg) { + return arg == null; + } +}; + +},{}],"ajv":[function(require,module,exports){ +'use strict'; + +var compileSchema = require('./compile') + , resolve = require('./compile/resolve') + , Cache = require('./cache') + , SchemaObject = require('./compile/schema_obj') + , stableStringify = require('fast-json-stable-stringify') + , formats = require('./compile/formats') + , rules = require('./compile/rules') + , $dataMetaSchema = require('./$data') + , patternGroups = require('./patternGroups') + , util = require('./compile/util') + , co = require('co'); + +module.exports = Ajv; + +Ajv.prototype.validate = validate; +Ajv.prototype.compile = compile; +Ajv.prototype.addSchema = addSchema; +Ajv.prototype.addMetaSchema = addMetaSchema; +Ajv.prototype.validateSchema = validateSchema; +Ajv.prototype.getSchema = getSchema; +Ajv.prototype.removeSchema = removeSchema; +Ajv.prototype.addFormat = addFormat; +Ajv.prototype.errorsText = errorsText; + +Ajv.prototype._addSchema = _addSchema; +Ajv.prototype._compile = _compile; + +Ajv.prototype.compileAsync = require('./compile/async'); +var customKeyword = require('./keyword'); +Ajv.prototype.addKeyword = customKeyword.add; +Ajv.prototype.getKeyword = customKeyword.get; +Ajv.prototype.removeKeyword = customKeyword.remove; + +var errorClasses = require('./compile/error_classes'); +Ajv.ValidationError = errorClasses.Validation; +Ajv.MissingRefError = errorClasses.MissingRef; +Ajv.$dataMetaSchema = $dataMetaSchema; + +var META_SCHEMA_ID = 'http://json-schema.org/draft-06/schema'; + +var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes' ]; +var META_SUPPORT_DATA = ['/properties']; + +/** + * Creates validator instance. + * Usage: `Ajv(opts)` + * @param {Object} opts optional options + * @return {Object} ajv instance + */ +function Ajv(opts) { + if (!(this instanceof Ajv)) return new Ajv(opts); + opts = this._opts = util.copy(opts) || {}; + setLogger(this); + this._schemas = {}; + this._refs = {}; + this._fragments = {}; + this._formats = formats(opts.format); + var schemaUriFormat = this._schemaUriFormat = this._formats['uri-reference']; + this._schemaUriFormatFunc = function (str) { return schemaUriFormat.test(str); }; + + this._cache = opts.cache || new Cache; + this._loadingSchemas = {}; + this._compilations = []; + this.RULES = rules(); + this._getId = chooseGetId(opts); + + opts.loopRequired = opts.loopRequired || Infinity; + if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true; + if (opts.serialize === undefined) opts.serialize = stableStringify; + this._metaOpts = getMetaSchemaOptions(this); + + if (opts.formats) addInitialFormats(this); + addDraft6MetaSchema(this); + if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); + addInitialSchemas(this); + if (opts.patternGroups) patternGroups(this); +} + + + +/** + * Validate data using schema + * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize. + * @this Ajv + * @param {String|Object} schemaKeyRef key, ref or schema object + * @param {Any} data to be validated + * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). + */ +function validate(schemaKeyRef, data) { + var v; + if (typeof schemaKeyRef == 'string') { + v = this.getSchema(schemaKeyRef); + if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); + } else { + var schemaObj = this._addSchema(schemaKeyRef); + v = schemaObj.validate || this._compile(schemaObj); + } + + var valid = v(data); + if (v.$async === true) + return this._opts.async == '*' ? co(valid) : valid; + this.errors = v.errors; + return valid; +} + + +/** + * Create validating function for passed schema. + * @this Ajv + * @param {Object} schema schema object + * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords. + * @return {Function} validating function + */ +function compile(schema, _meta) { + var schemaObj = this._addSchema(schema, undefined, _meta); + return schemaObj.validate || this._compile(schemaObj); +} + + +/** + * Adds schema to the instance. + * @this Ajv + * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. + * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. + * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead. + * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead. + * @return {Ajv} this for method chaining + */ +function addSchema(schema, key, _skipValidation, _meta) { + if (Array.isArray(schema)){ + for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. + * @param {Object} options optional options with properties `separator` and `dataVar`. + * @return {String} human readable string with all errors descriptions + */ +function errorsText(errors, options) { + errors = errors || this.errors; + if (!errors) return 'No errors'; + options = options || {}; + var separator = options.separator === undefined ? ', ' : options.separator; + var dataVar = options.dataVar === undefined ? 'data' : options.dataVar; + + var text = ''; + for (var i=0; i=1&&t<=12&&a>=1&&a<=h[t]}function o(e,r){var t=e.match(u);if(!t)return!1;return t[1]<=23&&t[2]<=59&&t[3]<=59&&(!r||t[5])}function i(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var n=e("./util"),l=/^\d\d\d\d-(\d\d)-(\d\d)$/,h=[0,31,29,31,30,31,30,31,31,30,31,30,31],u=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,c=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,d=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,f=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,p=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,m=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,v=/^(?:\/(?:[^~/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,y=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":f,url:p,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:c,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:i,uuid:m,"json-pointer":v,"relative-json-pointer":y},a.full={date:s,time:o,"date-time":function(e){var r=e.split(g);return 2==r.length&&s(r[0])&&o(r[1],!0)},uri:function(e){return P.test(e)&&d.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":f,url:p,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:function(e){return e.length<=255&&c.test(e)},ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:i,uuid:m,"json-pointer":v,"relative-json-pointer":y};var g=/t|\s/i,P=/\/|:/,E=/[^\\]\\Z/},{"./util":12}],7:[function(e,r,t){"use strict";function a(e,r,t,P){function E(){var e=C.validate,r=e.apply(null,arguments);return E.errors=e.errors,r}function w(e,t,s,f){var P=!t||t&&t.schema==e;if(t.schema!=r.schema)return a.call($,e,t,s,f);var E=!0===e.$async,w=p({isTop:!0,schema:e,isRoot:P,baseId:f,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:d.MissingRef,RULES:U,validate:p,util:c,resolve:u,resolveRef:b,usePattern:_,useDefault:x,useCustomRule:F,opts:R,formats:Q,logger:$.logger,self:$});w=h(O,n)+h(I,o)+h(k,i)+h(L,l)+w,R.processCode&&(w=R.processCode(w));var S;try{S=new Function("self","RULES","formats","root","refVal","defaults","customRules","co","equal","ucs2length","ValidationError",w)($,U,Q,r,O,k,L,m,y,v,g),O[0]=S}catch(e){throw $.logger.error("Error compiling schema, function code:",w),e}return S.schema=e,S.errors=null,S.refs=D,S.refVal=O,S.root=P?S:t,E&&(S.$async=!0),!0===R.sourceCode&&(S.source={code:w,patterns:I,defaults:k}),S}function b(e,s,o){s=u.url(e,s);var i,n,l=D[s];if(void 0!==l)return i=O[l],n="refVal["+l+"]",j(i,n);if(!o&&r.refs){var h=r.refs[s];if(void 0!==h)return i=r.refVal[h],n=S(s,i),j(i,n)}n=S(s);var c=u.call($,w,r,s);if(void 0===c){var d=t&&t[s];d&&(c=u.inlineRef(d,R.inlineRefs)?d:a.call($,d,r,t,e))}if(void 0!==c)return function(e,r){O[D[e]]=r}(s,c),j(c,n);!function(e){delete D[e]}(s)}function S(e,r){var t=O.length;return O[t]=r,D[e]=t,"refVal"+t}function j(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function _(e){var r=A[e];return void 0===r&&(r=A[e]=I.length,I[r]=e),"pattern"+r}function x(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return c.toQuotedString(e);case"object":if(null===e)return"null";var r=f(e),t=q[r];return void 0===t&&(t=q[r]=k.length,k[t]=e),"default"+t}}function F(e,r,t,a){var s=e.definition.validateSchema;if(s&&!1!==$._opts.validateSchema){if(!s(r)){var o="keyword schema is invalid: "+$.errorsText(s.errors);if("log"!=$._opts.validateSchema)throw new Error(o);$.logger.error(o)}}var i,n=e.definition.compile,l=e.definition.inline,h=e.definition.macro;if(n)i=n.call($,r,t,a);else if(h)i=h.call($,r,t,a),!1!==R.validateSchema&&$.validateSchema(i,!0);else if(l)i=l.call($,a,e.keyword,r,t);else if(!(i=e.definition.validate))return;if(void 0===i)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var u=L.length;return L[u]=i,{code:"customRule"+u,validate:i}}var $=this,R=this._opts,O=[void 0],D={},I=[],A={},k=[],q={},L=[],z=function(e,r,t){var a=s.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}.call(this,e,r=r||{schema:e,refVal:O,refs:D},P),C=this._compilations[z.index];if(z.compiling)return C.callValidate=E;var Q=this._formats,U=this.RULES;try{var V=w(e,r,t,P);C.validate=V;var N=C.callValidate;return N&&(N.schema=V.schema,N.errors=null,N.refs=V.refs,N.refVal=V.refVal,N.root=V.root,N.$async=V.$async,R.sourceCode&&(N.source=V.source)),V}finally{(function(e,r,t){var a=s.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}).call(this,e,r,P)}}function s(e,r,t){for(var a=0;a=55296&&r<=56319&&s=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(i="data"+(r-a||""),!s)return i}for(var l=i,h=s.split("/"),c=0;c",y=f?">":"<",g=void 0;if(e.opts.$data&&m&&m.$data){var P=e.util.getData(m.$data,i,e.dataPathArr),E="exclusive"+o,w="exclType"+o,b="exclIsNumber"+o,S="' + "+(_="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+P+"; ",s+=" var "+E+"; var "+w+" = typeof "+(P="schemaExcl"+o)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { ";g=p;(x=x||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(g||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var j=s;s=x.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+w+" == 'number' ? ( ("+E+" = "+a+" === undefined || "+P+" "+v+"= "+a+") ? "+c+" "+y+"= "+P+" : "+c+" "+y+" "+a+" ) : ( ("+E+" = "+P+" === true) ? "+c+" "+y+"= "+a+" : "+c+" "+y+" "+a+" ) || "+c+" !== "+c+") { var op"+o+" = "+E+" ? '"+v+"' : '"+v+"=';"}else{S=v;if((b="number"==typeof m)&&d){var _="'"+S+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+v+"= "+a+" ? "+c+" "+y+"= "+m+" : "+c+" "+y+" "+a+" ) || "+c+" !== "+c+") { "}else{b&&void 0===n?(E=!0,g=p,h=e.errSchemaPath+"/"+p,a=m,y+="="):(b&&(a=Math[f?"min":"max"](m,n)),m===(!b||a)?(E=!0,g=p,h=e.errSchemaPath+"/"+p,y+="="):(E=!1,S+="="));_="'"+S+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+c+" "+y+" "+a+" || "+c+" !== "+c+") { "}}g=g||r;var x;(x=x||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(g||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+_+", limit: "+a+", exclusive: "+E+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+S+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";j=s;return s=x.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+c+".length "+("maxItems"==r?">":"<")+" "+a+") { ";var f=r,p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"less",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=!1===e.opts.unicode?" "+c+".length ":" ucs2length("+c+") ",s+=" "+("maxLength"==r?">":"<")+" "+a+") { ";var f=r,p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+c+").length "+("maxProperties"==r?">":"<")+" "+a+") { ";var f=r,p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"less",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),h="";l.level++;var u="valid"+l.level,c=l.baseId,d=!0,f=s;if(f)for(var p,m=-1,v=f.length-1;m=0)return h&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return h&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");var P="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+P+"("+u+"))) { "}else{a+=" if (! ";P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+c:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+c+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",h&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,v="i"+s,y=f.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+d+" = errors;var "+c+";",Array.isArray(i)){var E=e.schema.additionalItems;if(!1===E){a+=" "+c+" = "+u+".length <= "+i.length+"; ";var w=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+c+") { ";var b=b||[];b.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var S=a;a=b.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=w,h&&(p+="}",a+=" else { ")}var j=i;if(j)for(var _,x=-1,F=j.length-1;x "+x+") { ";var $=u+"["+x+"]";f.schema=_,f.schemaPath=n+"["+x+"]",f.errSchemaPath=l+"/"+x,f.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),f.dataPathArr[y]=x;var R=e.validate(f);f.baseId=P,e.util.varOccurences(R,g)<2?a+=" "+e.util.varReplace(R,g,$)+" ":a+=" var "+g+" = "+$+"; "+R+" ",a+=" } ",h&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&e.util.schemaHasRules(E,e.RULES.all)){f.schema=E,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[y]=v;R=e.validate(f);f.baseId=P,e.util.varOccurences(R,g)<2?a+=" "+e.util.varReplace(R,g,$)+" ":a+=" var "+g+" = "+$+"; "+R+" ",h&&(a+=" if (!"+m+") break; "),a+=" } } ",h&&(a+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[y]=v;R=e.validate(f);f.baseId=P,e.util.varOccurences(R,g)<2?a+=" "+e.util.varReplace(R,g,$)+" ":a+=" var "+g+" = "+$+"; "+R+" ",h&&(a+=" if (!"+m+") break; "),a+=" }"}return h&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+c+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) "),s+=" ) { ";var f=f||[];f.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var p=s;return s=f.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],27:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+c+" = errors; ";var p=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var m;d.opts.allErrors&&(m=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,m&&(d.opts.allErrors=m),e.compositeRule=d.compositeRule=p,a+=" if ("+f+") { ";var v=v||[];v.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var y=a;a=v.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+c+"; if (vErrors !== null) { if ("+c+") vErrors.length = "+c+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(a+=" if (false) { ");return a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;a+="var "+d+" = errors;var prevValid"+s+" = false;var "+c+" = false;";var v=f.baseId,y=e.compositeRule;e.compositeRule=f.compositeRule=!0;var g=i;if(g)for(var P,E=-1,w=g.length-1;E5)a+=" || validate.schema"+n+"["+v+"] ";else{var L=w;if(L)for(var z=-1,C=L.length-1;z= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+c+") { ";(we=we||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Pe+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(ce)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have "+Ee+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(ce)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";B=a;a=we.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==ye&&(a+=" else ")}if(void 0!==ye){ge=ye,Pe="maximum",Ee="more";a+=" "+c+" = pgPropCount"+s+" <= "+ye+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+c+") { ";var we;(we=we||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Pe+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(ce)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have "+Ee+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(ce)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";B=a;a=we.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=K,h&&(a+=" if ("+c+") { ",p+="}")}}}}return h&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l;var p="key"+s,m="idx"+s,v="i"+s,y="' + "+p+" + '",g="data"+(d.dataLevel=e.dataLevel+1),P="dataProperties"+s,E=e.opts.ownProperties,w=e.baseId;a+=" var "+c+" = errors; ",E&&(a+=" var "+P+" = undefined; "),a+=E?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+P+".length; "+m+"++) { var "+p+" = "+P+"["+m+"]; ":" for (var "+p+" in "+u+") { ",a+=" var startErrs"+s+" = errors; ";var b=p,S=e.compositeRule;e.compositeRule=d.compositeRule=!0;var j=e.validate(d);d.baseId=w,e.util.varOccurences(j,g)<2?a+=" "+e.util.varReplace(j,g,b)+" ":a+=" var "+g+" = "+b+"; "+j+" ",e.compositeRule=d.compositeRule=S,a+=" if (!"+f+") { for (var "+v+"=startErrs"+s+"; "+v+"=e.opts.loopRequired,b=e.opts.ownProperties;if(h)if(a+=" var missing"+s+"; ",w){d||(a+=" var "+f+" = validate.schema"+n+"; ");var S="' + "+(R="schema"+s+"["+(x="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,R,e.opts.jsonPointers)),a+=" var "+c+" = true; ",d&&(a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"),a+=" for (var "+x+" = 0; "+x+" < "+f+".length; "+x+"++) { "+c+" = "+u+"["+f+"["+x+"]] !== undefined ",b&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", "+f+"["+x+"]) "),a+="; if (!"+c+") break; } ",d&&(a+=" } "),a+=" if (!"+c+") { ";($=$||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var j=a;a=$.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var _=p;if(_)for(var x=-1,F=_.length-1;x 1) { var i = "+c+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+c+"[i], "+c+"[j])) { "+d+" = false; break outer; } } } } ",f&&(s+=" } "),s+=" if (!"+d+") { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r,t){function a(e){for(var r=e.rules,t=0;t2&&(r=n.call(arguments,1)),t(r)})})}.call(this,e):Array.isArray(e)?function(e){return Promise.all(e.map(s,this))}.call(this,e):function(e){return Object==e.constructor}(e)?function(e){for(var r=new e.constructor,t=Object.keys(e),a=[],i=0;i1&&(a=t[0]+"@",e=t[1]);return a+o((e=e.replace(O,".")).split("."),r).join(".")}function n(e){for(var r,t,a=[],s=0,o=e.length;s=55296&&r<=56319&&s65535&&(r+=k((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=k(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:E}function u(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function c(e,r,t){var a=0;for(e=t?A(e/j):e>>1,e+=A(e/r);e>I*b>>1;a+=E)e=A(e/I);return A(a+(I+1)*e/(e+S))}function d(e){var r,t,a,o,i,n,u,d,f,p,m=[],v=e.length,y=0,g=x,S=_;for((t=e.lastIndexOf(F))<0&&(t=0),a=0;a=128&&s("not-basic"),m.push(e.charCodeAt(a));for(o=t>0?t+1:0;o=v&&s("invalid-input"),((d=h(e.charCodeAt(o++)))>=E||d>A((P-y)/n))&&s("overflow"),y+=d*n,f=u<=S?w:u>=S+b?b:u-S,!(dA(P/(p=E-f))&&s("overflow"),n*=p;S=c(y-i,r=m.length+1,0==i),A(y/r)>P-g&&s("overflow"),g+=A(y/r),y%=r,m.splice(y++,0,g)}return l(m)}function f(e){var r,t,a,o,i,l,h,d,f,p,m,v,y,g,S,j=[];for(v=(e=n(e)).length,r=x,t=0,i=_,l=0;l=r&&mA((P-t)/(y=a+1))&&s("overflow"),t+=(h-r)*y,r=h,l=0;lP&&s("overflow"),m==r){for(d=t,f=E;p=f<=i?w:f>=i+b?b:f-i,!(d= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=E-w,A=Math.floor,k=String.fromCharCode;if(y={version:"1.4.1",ucs2:{decode:n,encode:l},decode:d,encode:f,toASCII:function(e){return i(e,function(e){return R.test(e)?"xn--"+f(e):e})},toUnicode:function(e){return i(e,function(e){return $.test(e)?d(e.slice(4).toLowerCase()):e})}},p&&m)if(r.exports==p)m.exports=y;else for(g in y)y.hasOwnProperty(g)&&(p[g]=y[g]);else a.punycode=y}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],45:[function(e,r,t){"use strict";function a(e,r){return Object.prototype.hasOwnProperty.call(e,r)}r.exports=function(e,r,t,o){r=r||"&",t=t||"=";var i={};if("string"!=typeof e||0===e.length)return i;var n=/\+/g;e=e.split(r);var l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var h=e.length;l>0&&h>l&&(h=l);for(var u=0;u=0?(c=m.substr(0,v),d=m.substr(v+1)):(c=m,d=""),f=decodeURIComponent(c),p=decodeURIComponent(d),a(i,f)?s(i[f])?i[f].push(p):i[f]=[i[f],p]:i[f]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],46:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;a",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(u),d=["%","/","?",";","#"].concat(c),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},P=e("querystring");a.prototype.parse=function(e,r,t){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a127?A+="x":A+=I[k];if(!A.match(p)){var L=O.slice(0,_),z=O.slice(_+1),C=I.match(m);C&&(L.push(C[1]),z.unshift(C[2])),z.length&&(u="/"+z.join(".")+u),this.hostname=L.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),R||(this.hostname=o.toASCII(this.hostname));var Q=this.port?":"+this.port:"";this.host=(this.hostname||"")+Q,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==u[0]&&(u="/"+u))}if(!v[b])for(_=0,D=c.length;_0)&&t.host.split("@"))&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return t.search=e.search,t.query=e.query,i.isNull(t.pathname)&&i.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!w.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var S=w.slice(-1)[0],j=(t.host||e.host||w.length>1)&&("."===S||".."===S)||""===S,_=0,x=w.length;x>=0;x--)"."===(S=w[x])?w.splice(x,1):".."===S?(w.splice(x,1),_++):_&&(w.splice(x,1),_--);if(!P&&!E)for(;_--;_)w.unshift("..");!P||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),j&&"/"!==w.join("/").substr(-1)&&w.push("");var F=""===w[0]||w[0]&&"/"===w[0].charAt(0);if(b){t.hostname=t.host=F?"":w.length?w.shift():"";var $;($=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return(P=P||t.host&&w.length)&&!F&&w.unshift(""),w.length?t.pathname=w.join("/"):(t.pathname=null,t.path=null),i.isNull(t.pathname)&&i.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=e.auth||t.auth,t.slashes=t.slashes||e.slashes,t.href=t.format(),t},a.prototype.parseHost=function(){var e=this.host,r=l.exec(e);r&&(":"!==(r=r[0])&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":49,punycode:44,querystring:47}],49:[function(e,r,t){"use strict";r.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],ajv:[function(e,r,t){"use strict";function a(r){if(!(this instanceof a))return new a(r);r=this._opts=E.copy(r)||{},function(e){var r=e._opts.logger;if(!1===r)e.logger={log:u,warn:u,error:u};else{if(void 0===r&&(r=console),!("object"==typeof r&&r.log&&r.warn&&r.error))throw new Error("logger must implement log, warn and error methods");e.logger=r}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=v(r.format);var t=this._schemaUriFormat=this._formats["uri-reference"];this._schemaUriFormatFunc=function(e){return t.test(e)},this._cache=r.cache||new f,this._loadingSchemas={},this._compilations=[],this.RULES=y(),this._getId=function(e){switch(e.schemaId){case"$id":return n;case"id":return i;default:return l}}(r),r.loopRequired=r.loopRequired||1/0,"property"==r.errorDataPath&&(r._errorDataPathProperty=!0),void 0===r.serialize&&(r.serialize=m),this._metaOpts=function(e){for(var r=E.copy(e._opts),t=0;t<_.length;t++)delete r[_[t]];return r}(this),r.formats&&function(e){for(var r in e._opts.formats){var t=e._opts.formats[r];e.addFormat(r,t)}}(this),function(r){var t;r._opts.$data&&(t=e("./refs/$data.json"),r.addMetaSchema(t,t.$id,!0));if(!1===r._opts.meta)return;var a=e("./refs/json-schema-draft-06.json");r._opts.$data&&(a=g(a,x));r.addMetaSchema(a,j,!0),r._refs["http://json-schema.org/schema"]=j}(this),"object"==typeof r.meta&&this.addMetaSchema(r.meta),function(e){var r=e._opts.schemas;if(!r)return;if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}(this),r.patternGroups&&P(this)}function s(e,r){return r=d.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function o(e,r,t){for(var a in r){var s=r[a];s.meta||t&&!t.test(a)||(e._cache.del(s.cacheKey),delete r[a])}}function i(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function n(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function l(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function h(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function u(){}var c=e("./compile"),d=e("./compile/resolve"),f=e("./cache"),p=e("./compile/schema_obj"),m=e("fast-json-stable-stringify"),v=e("./compile/formats"),y=e("./compile/rules"),g=e("./$data"),P=e("./patternGroups"),E=e("./compile/util"),w=e("co");r.exports=a,a.prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);return!0===t.$async?"*"==this._opts.async?w(s):s:(this.errors=t.errors,s)},a.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},a.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var s=0;s=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(l,"$1 $3")),e.test(r)}function s(e,t,n,r){var i=new e.constructor(e.options,e.input,t);if(n)for(var s in n)i[s]=n[s];var o=e,a=i;return["inFunction","inAsyncFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in o&&(a[e]=o[e])}),r&&(i.options.preserveParens=!0),i.nextToken(),i}var o={},a=/^async[\t ]+(return|throw)/,u=/^async[\t ]+function/,c=/^\s*[():;]/,l=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g,p=/\s*(get|set)\s*\(/;t.exports=function(e,t){var n=function(){};e.extend("initialContext",function(r){return function(){return this.options.ecmaVersion<7&&(n=function(t){e.raise(t.start,"async/await keywords only available when ecmaVersion>=7")}),this.reservedWords=new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrict=new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrictBind=new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.inAsyncFunction=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),r.apply(this,arguments)}}),e.extend("shouldParseExportStatement",function(e){return function(){return!("name"!==this.type.label||"async"!==this.value||!i(u,this))||e.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,o=this.startLoc;if("name"===this.type.label)if(i(u,this,!0)){var c=this.inAsyncFunction;try{return this.inAsyncFunction=!0,this.next(),(l=this.parseStatement(n,r)).async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}finally{this.inAsyncFunction=c}}else if("object"==typeof t&&t.asyncExits&&i(a,this)){this.next();var l;return(l=this.parseStatement(n,r)).async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(t){var n=e.apply(this,arguments);return this.inAsyncFunction&&"await"===n.name&&0===arguments.length&&this.raise(n.start,"'await' is reserved within async functions"),n}}),e.extend("parseExprAtom",function(e){return function(i){var a,u=this.start,l=this.startLoc,p=e.apply(this,arguments);if("Identifier"===p.type)if("async"!==p.name||r(this,p.end)){if("await"===p.name){var h=this.startNodeAt(p.start,p.loc&&p.loc.start);if(this.inAsyncFunction)return a=this.parseExprSubscripts(),h.operator="await",h.argument=a,h=this.finishNodeAt(h,"AwaitExpression",a.end,a.loc&&a.loc.end),n(h),h;if(this.input.slice(p.end).match(c))return t.awaitAnywhere||"module"!==this.options.sourceType?p:this.raise(p.start,"'await' is reserved within modules");if("object"==typeof t&&t.awaitAnywhere&&(u=this.start,(a=s(this,u-4).parseExprSubscripts()).end<=u))return a=s(this,u).parseExprSubscripts(),h.operator="await",h.argument=a,h=this.finishNodeAt(h,"AwaitExpression",a.end,a.loc&&a.loc.end),this.pos=a.end,this.end=a.end,this.endLoc=a.endLoc,this.next(),n(h),h;if(!t.awaitAnywhere&&"module"===this.options.sourceType)return this.raise(p.start,"'await' is reserved within modules")}}else{var f=this.inAsyncFunction;try{this.inAsyncFunction=!0;var d=this,y=!1,m={parseFunctionBody:function(e,t){try{var n=y;return y=!0,d.parseFunctionBody.apply(this,arguments)}finally{y=n}},raise:function(){try{return d.raise.apply(this,arguments)}catch(e){throw y?e:o}}};if("SequenceExpression"===(a=s(this,this.start,m,!0).parseExpression()).type&&(a=a.expressions[0]),"CallExpression"===a.type&&(a=a.callee),"FunctionExpression"===a.type||"FunctionDeclaration"===a.type||"ArrowFunctionExpression"===a.type)return"SequenceExpression"===(a=s(this,this.start,m).parseExpression()).type&&(a=a.expressions[0]),"CallExpression"===a.type&&(a=a.callee),a.async=!0,a.start=u,a.loc&&(a.loc.start=l),a.range&&(a.range[0]=u),this.pos=a.end,this.end=a.end,this.endLoc=a.endLoc,this.next(),n(a),a}catch(e){if(e!==o)throw e}finally{this.inAsyncFunction=f}}return p}}),e.extend("finishNodeAt",function(e){return function(t,n,r,i){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("finishNode",function(e){return function(t,n){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("parsePropertyName",function(e){return function(t){t.key&&t.key.name;var i=e.apply(this,arguments);return"Identifier"!==i.type||"async"!==i.name||r(this,i.end)||this.input.slice(i.end).match(c)||(p.test(this.input.slice(i.end))?(i=e.apply(this,arguments),t.__asyncValue=!0):(n(t),"set"===t.kind&&this.raise(i.start,"'set (value)' cannot be be async"),"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set (value)' cannot be be async"),t.__asyncValue=!0)),i}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i;n.__asyncValue&&("constructor"===n.kind&&this.raise(n.start,"class constructor() cannot be be async"),i=this.inAsyncFunction,this.inAsyncFunction=!0);var s=e.apply(this,arguments);return this.inAsyncFunction=i,s}}),e.extend("parseMethod",function(e){return function(t){var n;this.__currentProperty&&this.__currentProperty.__asyncValue&&(n=this.inAsyncFunction,this.inAsyncFunction=!0);var r=e.apply(this,arguments);return this.inAsyncFunction=n,r}}),e.extend("parsePropertyValue",function(e){return function(t,n,r,i,s,o){var a=this.__currentProperty;this.__currentProperty=t;var u;t.__asyncValue&&(u=this.inAsyncFunction,this.inAsyncFunction=!0);var c=e.apply(this,arguments);return this.inAsyncFunction=u,this.__currentProperty=a,c}})}},{}],3:[function(e,t,n){function r(e,t,n){var r=new e.constructor(e.options,e.input,t);if(n)for(var i in n)r[i]=n[i];var s=e,o=r;return["inFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in s&&(o[e]=s[e])}),r.nextToken(),r}var i=/^async[\t ]+(return|throw)/,s=/^\s*[):;]/,o=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g;t.exports=function(e,t){t&&"object"==typeof t||(t={}),e.extend("parse",function(n){return function(){return this.inAsync=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),n.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,a=this.startLoc;if("name"===this.type.label&&t.asyncExits&&function(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(o,"$1 $3")),e.test(r)}(i,this)){this.next();var u=this.parseStatement(n,r);return u.async=!0,u.start=s,u.loc&&(u.loc.start=a),u.range&&(u.range[0]=s),u}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(n){return"module"===this.options.sourceType&&this.options.ecmaVersion>=8&&t.awaitAnywhere?e.call(this,!0):e.apply(this,arguments)}}),e.extend("parseExprAtom",function(e){var n={};return function(i){var s,o=this.start,a=(this.startLoc,e.apply(this,arguments));if("Identifier"===a.type&&"await"===a.name&&!this.inAsync&&t.awaitAnywhere){var u=this.startNodeAt(a.start,a.loc&&a.loc.start);o=this.start;var c={raise:function(){try{return pp.raise.apply(this,arguments)}catch(e){throw n}}};try{if((s=r(this,o-4,c).parseExprSubscripts()).end<=o)return s=r(this,o,c).parseExprSubscripts(),u.argument=s,u=this.finishNodeAt(u,"AwaitExpression",s.end,s.loc&&s.loc.end),this.pos=s.end,this.end=s.end,this.endLoc=s.endLoc,this.next(),u}catch(e){if(e===n)return a;throw e}}return a}});var n={undefined:!0,get:!0,set:!0,static:!0,async:!0,constructor:!0};e.extend("parsePropertyName",function(e){return function(t){var r=t.key&&t.key.name,i=e.apply(this,arguments);return"get"===this.value&&(t.__maybeStaticAsyncGetter=!0),n[this.value]?i:("Identifier"!==i.type||"async"!==i.name&&"async"!==r||function(e,t){return e.lineStart>=t}(this,i.end)||this.input.slice(i.end).match(s)?delete t.__maybeStaticAsyncGetter:"set"===t.kind||"set"===i.name?this.raise(i.start,"'set (value)' cannot be be async"):(this.__isAsyncProp=!0,"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set (value)' cannot be be async")),i)}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i=e.apply(this,arguments);return n.__maybeStaticAsyncGetter&&(delete n.__maybeStaticAsyncGetter,"get"!==n.key.name&&(n.kind="get")),i}}),e.extend("parseFunctionBody",function(e){return function(t,n){var r=this.inAsync;this.__isAsyncProp&&(t.async=!0,this.inAsync=!0,delete this.__isAsyncProp);var i=e.apply(this,arguments);return this.inAsync=r,i}})}},{}],4:[function(e,t,n){!function(e,r){"object"==typeof n&&void 0!==t?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r(e.acorn=e.acorn||{})}(this,function(e){"use strict";function t(e,t){for(var n=65536,r=0;re)return!1;if((n+=t[r+1])>=e)return!0}}function n(e,n){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&x.test(String.fromCharCode(e)):!1!==n&&t(e,E)))}function r(e,n){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&w.test(String.fromCharCode(e)):!1!==n&&(t(e,E)||t(e,S)))))}function i(e,t){return new k(e,{beforeExpr:!0,binop:t})}function s(e,t){return void 0===t&&(t={}),t.keyword=e,_[e]=new k(e,t)}function o(e){return 10===e||13===e||8232===e||8233===e}function a(e,t){return $.call(e,t)}function u(e,t){for(var n=1,r=0;;){T.lastIndex=r;var i=T.exec(e);if(!(i&&i.index=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),R(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return R(t.onComment)&&(t.onComment=function(e,t){return function(n,r,i,s,o,a){var u={type:n?"Block":"Line",value:r,start:i,end:s};e.locations&&(u.loc=new j(this,o,a)),e.ranges&&(u.range=[i,s]),t.push(u)}}(t,t.onComment)),t}function l(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}function p(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=-1}function h(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}function f(e,t,n,r){try{return new RegExp(e,t)}catch(e){if(void 0!==n)throw e instanceof SyntaxError&&r.raise(n,"Error parsing regular expression: "+e.message),e}}function d(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}var y={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},m="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",g={5:m,6:m+" const class extends export import super"},v="ĀŖĀµĀŗƀ-ƖƘ-ƶĆø-ĖĖ†-Ė‘Ė -Ė¤Ė¬Ė®Ķ°-Ķ“Ķ¶Ķ·Ķŗ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-Ī”Ī£-ĻµĻ·-ŅŅŠ-ŌÆŌ±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײŲ -ŁŠŁ®ŁÆŁ±-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-Ū¼Ūæܐܒ-ÜÆŻ-Ž„Ž±ßŠ-ßŖß“ßµßŗą €-ą •ą šą ¤ą Øą”€-ą”˜ą¢ -ą¢“ą¢¶-ą¢½ą¤„-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ą¦€ą¦…-ą¦Œą¦ą¦ą¦“-ą¦Øą¦Ŗ-ą¦°ą¦²ą¦¶-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-ą§”ą§°ą§±ąØ…-ąØŠąØąØąØ“-ąØØąØŖ-ąØ°ąØ²ąØ³ąØµąØ¶ąØøąØ¹ą©™-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-ąŖ°ąŖ²ąŖ³ąŖµ-ąŖ¹ąŖ½ą«ą« ą«”ą«¹ą¬…-ą¬Œą¬ą¬ą¬“-ą¬Øą¬Ŗ-ą¬°ą¬²ą¬³ą¬µ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ą®ą®’-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-ą®Ŗą®®-ą®¹ąÆą°…-ą°Œą°Ž-ą°ą°’-ą°Øą°Ŗ-ą°¹ą°½ą±˜-ą±šą± ą±”ą²€ą²…-ą²Œą²Ž-ą²ą²’-ą²Øą²Ŗ-ą²³ą²µ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ”-ąµ–ąµŸ-ąµ”ąµŗ-ąµæą¶…-ą¶–ą¶š-ą¶±ą¶³-ą¶»ą¶½ą·€-ą·†ąø-ąø°ąø²ąø³ą¹€-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ąŗŸąŗ”-ąŗ£ąŗ„ąŗ§ąŗŖąŗ«ąŗ­-ąŗ°ąŗ²ąŗ³ąŗ½ą»€-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ą½‡ą½‰-ą½¬ą¾ˆ-ą¾Œį€€-į€Ŗį€æį-į•įš-įį”į„į¦į®-į°įµ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-įƒŗįƒ¼-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -įŠˆįŠŠ-įŠįŠ-įŠ°įŠ²-įŠµįŠø-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -įµįø-į½į-į™¬į™Æ-į™æįš-įššįš -į›Ŗį›®-į›øįœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -į”·į¢€-į¢Øį¢Ŗį¢°-į£µį¤€-į¤žį„-į„­į„°-į„“į¦€-į¦«į¦°-į§‰į؀-įؖįØ -į©”įŖ§į¬…-į¬³į­…-į­‹į®ƒ-į® į®®į®Æį®ŗ-įÆ„į°€-į°£į±-į±į±š-į±½į²€-į²ˆį³©-į³¬į³®-į³±į³µį³¶į“€-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-į½½į¾€-į¾“į¾¶-į¾¼į¾¾įæ‚-įæ„įæ†-įæŒįæ-įæ“įæ–-įæ›įæ -įæ¬įæ²-įæ“įæ¶-įæ¼ā±āæā‚-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„˜-ā„ā„¤ā„¦ā„Øā„Ŗ-ā„¹ā„¼-ā„æā……-ā…‰ā…Žā… -ā†ˆā°€-ā°®ā°°-ā±žā± -ā³¤ā³«-ā³®ā³²ā³³ā“€-ā“„ā“§ā“­ā“°-āµ§āµÆā¶€-ā¶–ā¶ -ā¶¦ā¶Ø-ā¶®ā¶°-ā¶¶ā¶ø-ā¶¾ā·€-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žć€…-怇怔-怩怱-怵ć€ø-ć€¼ć-悖悛-ć‚Ÿć‚”-ćƒŗćƒ¼-ćƒæ愅-愭愱-憎憠-ć†ŗ懰-ć‡æ搀-䶵äø€-éæ•ź€€-ź’Œź“-ź“½ź”€-ź˜Œź˜-ź˜Ÿź˜Ŗź˜«ź™€-ź™®ź™æ-źšźš -ź›Æźœ—-źœŸźœ¢-źžˆźž‹-źž®źž°-źž·źŸ·-ź ź ƒ-ź …ź ‡-ź Šź Œ-ź ¢ź”€-ź”³ź¢‚-ź¢³ź£²-ź£·ź£»ź£½ź¤Š-ź¤„ź¤°-ź„†ź„ -ź„¼ź¦„-ź¦²ź§ź§ -ź§¤ź§¦-ź§Æź§ŗ-ź§¾źØ€-źØØź©€-ź©‚ź©„-ź©‹ź© -ź©¶ź©ŗź©¾-źŖÆźŖ±źŖµźŖ¶źŖ¹-źŖ½ź«€ź«‚ź«›-ź«ź« -ź«Ŗź«²-ź«“ź¬-ź¬†ź¬‰-ź¬Žź¬‘-ź¬–ź¬ -ź¬¦ź¬Ø-ź¬®ź¬°-ź­šź­œ-ź­„ź­°-źÆ¢ź°€-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-ļ«™ļ¬€-ļ¬†ļ¬“-ļ¬—ļ¬ļ¬Ÿ-ļ¬Øļ¬Ŗ-ļ¬¶ļ¬ø-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ļ®±ļƓ-ļ“½ļµ-ļ¶ļ¶’-ļ·‡ļ·°-ļ·»ļ¹°-ļ¹“ļ¹¶-ļ»¼ļ¼”-ļ¼ŗļ½-ļ½šļ½¦-ļ¾¾ļæ‚-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ļæœ",b="ā€Œā€Ā·Ģ€-ĶÆĪ‡Ņƒ-Ņ‡Ö‘-Ö½ÖæׇׁׂׅׄŲ-ŲšŁ‹-Ł©Ł°Ū–-ŪœŪŸ-Ū¤Ū§ŪØŪŖ-Ū­Ū°-Ū¹Ü‘Ü°-ŻŠŽ¦-Ž°ß€-߉߫-ß³ą –-ą ™ą ›-ą £ą „-ą §ą ©-ą ­ą”™-ą”›ą£”-ą£”ą££-ą¤ƒą¤ŗ-ą¤¼ą¤¾-ą„ą„‘-ą„—ą„¢ą„£ą„¦-ą„Æą¦-ą¦ƒą¦¼ą¦¾-ą§„ą§‡ą§ˆą§‹-ą§ą§—ą§¢ą§£ą§¦-ą§ÆąØ-ąØƒąØ¼ąØ¾-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©¦-ą©±ą©µąŖ-ąŖƒąŖ¼ąŖ¾-ą«…ą«‡-ą«‰ą«‹-ą«ą«¢ą«£ą«¦-ą«Æą¬-ą¬ƒą¬¼ą¬¾-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­¢ą­£ą­¦-ą­Æą®‚ą®¾-ąÆ‚ąÆ†-ąÆˆąÆŠ-ąÆąÆ—ąÆ¦-ąÆÆą°€-ą°ƒą°¾-ą±„ą±†-ą±ˆą±Š-ą±ą±•ą±–ą±¢ą±£ą±¦-ą±Æą²-ą²ƒą²¼ą²¾-ą³„ą³†-ą³ˆą³Š-ą³ą³•ą³–ą³¢ą³£ą³¦-ą³Æą“-ą“ƒą“¾-ąµ„ąµ†-ąµˆąµŠ-ąµąµ—ąµ¢ąµ£ąµ¦-ąµÆą¶‚ą¶ƒą·Šą·-ą·”ą·–ą·˜-ą·Ÿą·¦-ą·Æą·²ą·³ąø±ąø“-ąøŗą¹‡-ą¹Žą¹-ą¹™ąŗ±ąŗ“-ąŗ¹ąŗ»ąŗ¼ą»ˆ-ą»ą»-ą»™ą¼˜ą¼™ą¼ -ą¼©ą¼µą¼·ą¼¹ą¼¾ą¼æą½±-ą¾„ą¾†ą¾‡ą¾-ą¾—ą¾™-ą¾¼ąæ†į€«-į€¾į€-į‰į–-į™įž-į į¢-į¤į§-į­į±-į“į‚‚-į‚į‚-į‚į-įŸį©-į±įœ’-įœ”įœ²-įœ“į’į“į²į³įž“-įŸ“įŸįŸ -įŸ©į ‹-į į -į ™į¢©į¤ -į¤«į¤°-į¤»į„†-į„į§-į§šįؗ-į؛į©•-į©žį© -į©¼į©æ-įŖ‰įŖ-įŖ™įŖ°-įŖ½į¬€-į¬„į¬“-į­„į­-į­™į­«-į­³į®€-į®‚į®”-į®­į®°-į®¹įƦ-įƳį°¤-į°·į±€-į±‰į±-į±™į³-į³’į³”-į³Øį³­į³²-į³“į³øį³¹į·€-į·µį·»-į·æā€æā€ā”āƒ-āƒœāƒ”āƒ„-āƒ°ā³Æ-ā³±āµæā· -ā·æć€Ŗ-ć€Æ悙悚ź˜ -ź˜©ź™Æź™“-ź™½źšžźšŸź›°ź›±ź ‚ź †ź ‹ź £-ź §ź¢€ź¢ź¢“-ź£…ź£-ź£™ź£ -ź£±ź¤€-ź¤‰ź¤¦-ź¤­ź„‡-ź„“ź¦€-ź¦ƒź¦³-ź§€ź§-ź§™ź§„ź§°-ź§¹źØ©-źØ¶ź©ƒź©Œź©ź©-ź©™ź©»-ź©½źŖ°źŖ²-źŖ“źŖ·źŖøźŖ¾źŖæź«ź««-ź«Æź«µź«¶źÆ£-źÆŖźÆ¬źÆ­źÆ°-źÆ¹ļ¬žļø€-ļøļø -ļøÆļø³ļø“ļ¹-ļ¹ļ¼-ļ¼™ļ¼æ",x=new RegExp("["+v+"]"),w=new RegExp("["+v+b+"]");v=b=null;var E=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],S=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],k=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null},A={beforeExpr:!0},C={startsExpr:!0},_={},L={num:new k("num",C),regexp:new k("regexp",C),string:new k("string",C),name:new k("name",C),eof:new k("eof"),bracketL:new k("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new k("]"),braceL:new k("{",{beforeExpr:!0,startsExpr:!0}),braceR:new k("}"),parenL:new k("(",{beforeExpr:!0,startsExpr:!0}),parenR:new k(")"),comma:new k(",",A),semi:new k(";",A),colon:new k(":",A),dot:new k("."),question:new k("?",A),arrow:new k("=>",A),template:new k("template"),invalidTemplate:new k("invalidTemplate"),ellipsis:new k("...",A),backQuote:new k("`",C),dollarBraceL:new k("${",{beforeExpr:!0,startsExpr:!0}),eq:new k("=",{beforeExpr:!0,isAssign:!0}),assign:new k("_=",{beforeExpr:!0,isAssign:!0}),incDec:new k("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new k("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:i("||",1),logicalAND:i("&&",2),bitwiseOR:i("|",3),bitwiseXOR:i("^",4),bitwiseAND:i("&",5),equality:i("==/!=/===/!==",6),relational:i("/<=/>=",7),bitShift:i("<>/>>>",8),plusMin:new k("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:i("%",10),star:i("*",10),slash:i("/",10),starstar:new k("**",{beforeExpr:!0}),_break:s("break"),_case:s("case",A),_catch:s("catch"),_continue:s("continue"),_debugger:s("debugger"),_default:s("default",A),_do:s("do",{isLoop:!0,beforeExpr:!0}),_else:s("else",A),_finally:s("finally"),_for:s("for",{isLoop:!0}),_function:s("function",C),_if:s("if"),_return:s("return",A),_switch:s("switch"),_throw:s("throw",A),_try:s("try"),_var:s("var"),_const:s("const"),_while:s("while",{isLoop:!0}),_with:s("with"),_new:s("new",{beforeExpr:!0,startsExpr:!0}),_this:s("this",C),_super:s("super",C),_class:s("class",C),_extends:s("extends",A),_export:s("export"),_import:s("import"),_null:s("null",C),_true:s("true",C),_false:s("false",C),_in:s("in",{beforeExpr:!0,binop:7}),_instanceof:s("instanceof",{beforeExpr:!0,binop:7}),_typeof:s("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:s("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:s("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},O=/\r\n?|\n|\u2028|\u2029/,T=new RegExp(O.source,"g"),N=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,P=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,F=Object.prototype,$=F.hasOwnProperty,B=F.toString,R=Array.isArray||function(e){return"[object Array]"===B.call(e)},I=function(e,t){this.line=e,this.column=t};I.prototype.offset=function(e){return new I(this.line,this.column+e)};var j=function(e,t,n){this.start=t,this.end=n,null!==e.sourceFile&&(this.source=e.sourceFile)},D={ecmaVersion:7,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1,plugins:{}},M={},V=function(e,t,n){this.options=e=c(e),this.sourceFile=e.sourceFile,this.keywords=l(g[e.ecmaVersion>=6?6:5]);var r="";if(!e.allowReserved){for(var i=e.ecmaVersion;!(r=y[i]);i--);"module"==e.sourceType&&(r+=" await")}this.reservedWords=l(r);var s=(r?r+" ":"")+y.strict;this.reservedWordsStrict=l(s),this.reservedWordsStrictBind=l(s+" "+y.strictBind),this.input=String(t),this.containsEsc=!1,this.loadPlugins(e.plugins),n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(O).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=L.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterFunctionScope()};V.prototype.isKeyword=function(e){return this.keywords.test(e)},V.prototype.isReservedWord=function(e){return this.reservedWords.test(e)},V.prototype.extend=function(e,t){this[e]=t(this[e])},V.prototype.loadPlugins=function(e){for(var t in e){var n=M[t];if(!n)throw new Error("Plugin '"+t+"' not found");n(this,e[t])}},V.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};var q=V.prototype,U=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/;q.strictDirective=function(e){for(;;){P.lastIndex=e,e+=P.exec(this.input)[0].length;var t=U.exec(this.input.slice(e));if(!t)return!1;if("use strict"==(t[1]||t[2]))return!0;e+=t[0].length}},q.eat=function(e){return this.type===e&&(this.next(),!0)},q.isContextual=function(e){return this.type===L.name&&this.value===e},q.eatContextual=function(e){return this.value===e&&this.eat(L.name)},q.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},q.canInsertSemicolon=function(){return this.type===L.eof||this.type===L.braceR||O.test(this.input.slice(this.lastTokEnd,this.start))},q.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},q.semicolon=function(){this.eat(L.semi)||this.insertSemicolon()||this.unexpected()},q.afterTrailingComma=function(e,t){if(this.type==e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},q.expect=function(e){this.eat(e)||this.unexpected()},q.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},q.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var n=t?e.parenthesizedAssign:e.parenthesizedBind;n>-1&&this.raiseRecoverable(n,"Parenthesized pattern")}},q.checkExpressionErrors=function(e,t){var n=e?e.shorthandAssign:-1;if(!t)return n>=0;n>-1&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns")},q.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&(e.sourceType=this.options.sourceType),this.finishNode(e,"Program")};var W={kind:"loop"},G={kind:"switch"};z.isLet=function(){if(this.type!==L.name||this.options.ecmaVersion<6||"let"!=this.value)return!1;P.lastIndex=this.pos;var e=P.exec(this.input),t=this.pos+e[0].length,i=this.input.charCodeAt(t);if(91===i||123==i)return!0;if(n(i,!0)){for(var s=t+1;r(this.input.charCodeAt(s),!0);)++s;var o=this.input.slice(t,s);if(!this.isKeyword(o))return!0}return!1},z.isAsyncFunction=function(){if(this.type!==L.name||this.options.ecmaVersion<8||"async"!=this.value)return!1;P.lastIndex=this.pos;var e=P.exec(this.input),t=this.pos+e[0].length;return!(O.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!=this.input.length&&r(this.input.charAt(t+8)))},z.parseStatement=function(e,t,n){var r,i=this.type,s=this.startNode();switch(this.isLet()&&(i=L._var,r="let"),i){case L._break:case L._continue:return this.parseBreakContinueStatement(s,i.keyword);case L._debugger:return this.parseDebuggerStatement(s);case L._do:return this.parseDoStatement(s);case L._for:return this.parseForStatement(s);case L._function:return!e&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1);case L._class:return e||this.unexpected(),this.parseClass(s,!0);case L._if:return this.parseIfStatement(s);case L._return:return this.parseReturnStatement(s);case L._switch:return this.parseSwitchStatement(s);case L._throw:return this.parseThrowStatement(s);case L._try:return this.parseTryStatement(s);case L._const:case L._var:return r=r||this.value,e||"var"==r||this.unexpected(),this.parseVarStatement(s,r);case L._while:return this.parseWhileStatement(s);case L._with:return this.parseWithStatement(s);case L.braceL:return this.parseBlock();case L.semi:return this.parseEmptyStatement(s);case L._export:case L._import:return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===L._import?this.parseImport(s):this.parseExport(s,n);default:if(this.isAsyncFunction()&&e)return this.next(),this.parseFunctionStatement(s,!0);var o=this.value,a=this.parseExpression();return i===L.name&&"Identifier"===a.type&&this.eat(L.colon)?this.parseLabeledStatement(s,o,a):this.parseExpressionStatement(s,a)}},z.parseBreakContinueStatement=function(e,t){var n="break"==t;this.next(),this.eat(L.semi)||this.insertSemicolon()?e.label=null:this.type!==L.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var r=0;r=6?this.eat(L.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){if(this.next(),this.labels.push(W),this.enterLexicalScope(),this.expect(L.parenL),this.type===L.semi)return this.parseFor(e,null);var t=this.isLet();if(this.type===L._var||this.type===L._const||t){var n=this.startNode(),r=t?"let":this.value;return this.next(),this.parseVar(n,!0,r),this.finishNode(n,"VariableDeclaration"),!(this.type===L._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==n.declarations.length||"var"!==r&&n.declarations[0].init?this.parseFor(e,n):this.parseForIn(e,n)}var i=new p,s=this.parseExpression(!0,i);return this.type===L._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.toAssignable(s),this.checkLVal(s),this.checkPatternErrors(i,!0),this.parseForIn(e,s)):(this.checkExpressionErrors(i,!0),this.parseFor(e,s))},z.parseFunctionStatement=function(e,t){return this.next(),this.parseFunction(e,!0,!1,t)},z.isFunction=function(){return this.type===L._function||this.isAsyncFunction()},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!this.strict&&this.isFunction()),e.alternate=this.eat(L._else)?this.parseStatement(!this.strict&&this.isFunction()):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(L.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(L.braceL),this.labels.push(G),this.enterLexicalScope();for(var t,n=!1;this.type!=L.braceR;)if(this.type===L._case||this.type===L._default){var r=this.type===L._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,t.test=null),this.expect(L.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(!0));return this.exitLexicalScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),O.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var J=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===L._catch){var t=this.startNode();this.next(),this.expect(L.parenL),t.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(t.param,"let"),this.expect(L.parenR),t.body=this.parseBlock(!1),this.exitLexicalScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(L._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(W),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,n){for(var r=0,i=this.labels;r=0;o--){var a=this.labels[o];if(a.statementStart!=e.start)break;a.statementStart=this.start,a.kind=s}return this.labels.push({name:t,kind:s,statementStart:this.start}),e.body=this.parseStatement(!0),("ClassDeclaration"==e.body.type||"VariableDeclaration"==e.body.type&&"var"!=e.body.kind||"FunctionDeclaration"==e.body.type&&(this.strict||e.body.generator))&&this.raiseRecoverable(e.body.start,"Invalid labeled declaration"),this.labels.pop(),e.label=n,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e){void 0===e&&(e=!0);var t=this.startNode();for(t.body=[],this.expect(L.braceL),e&&this.enterLexicalScope();!this.eat(L.braceR);){var n=this.parseStatement(!0);t.body.push(n)}return e&&this.exitLexicalScope(),this.finishNode(t,"BlockStatement")},z.parseFor=function(e,t){return e.init=t,this.expect(L.semi),e.test=this.type===L.semi?null:this.parseExpression(),this.expect(L.semi),e.update=this.type===L.parenR?null:this.parseExpression(),this.expect(L.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t){var n=this.type===L._in?"ForInStatement":"ForOfStatement";return this.next(),e.left=t,e.right=this.parseExpression(),this.expect(L.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,n)},z.parseVar=function(e,t,n){for(e.declarations=[],e.kind=n;;){var r=this.startNode();if(this.parseVarId(r,n),this.eat(L.eq)?r.init=this.parseMaybeAssign(t):"const"!==n||this.type===L._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"==r.id.type||t&&(this.type===L._in||this.isContextual("of"))?r.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(r,"VariableDeclarator")),!this.eat(L.comma))break}return e},z.parseVarId=function(e,t){e.id=this.parseBindingAtom(t),this.checkLVal(e.id,t,!1)},z.parseFunction=function(e,t,n,r){this.initFunction(e),this.options.ecmaVersion>=6&&!r&&(e.generator=this.eat(L.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&&(e.id="nullableID"===t&&this.type!=L.name?null:this.parseIdent(),e.id&&this.checkLVal(e.id,"var"));var i=this.inGenerator,s=this.inAsync,o=this.yieldPos,a=this.awaitPos,u=this.inFunction;return this.inGenerator=e.generator,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),t||(e.id=this.type==L.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,n),this.inGenerator=i,this.inAsync=s,this.yieldPos=o,this.awaitPos=a,this.inFunction=u,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(L.parenL),e.params=this.parseBindingList(L.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},z.parseClass=function(e,t){this.next(),this.parseClassId(e,t),this.parseClassSuper(e);var n=this.startNode(),r=!1;for(n.body=[],this.expect(L.braceL);!this.eat(L.braceR);)if(!this.eat(L.semi)){var i=this.startNode(),s=this.eat(L.star),o=!1,a=this.type===L.name&&"static"===this.value;this.parsePropertyName(i),i.static=a&&this.type!==L.parenL,i.static&&(s&&this.unexpected(),s=this.eat(L.star),this.parsePropertyName(i)),this.options.ecmaVersion>=8&&!s&&!i.computed&&"Identifier"===i.key.type&&"async"===i.key.name&&this.type!==L.parenL&&!this.canInsertSemicolon()&&(o=!0,this.parsePropertyName(i)),i.kind="method";var u=!1;if(!i.computed){var c=i.key;s||o||"Identifier"!==c.type||this.type===L.parenL||"get"!==c.name&&"set"!==c.name||(u=!0,i.kind=c.name,c=this.parsePropertyName(i)),!i.static&&("Identifier"===c.type&&"constructor"===c.name||"Literal"===c.type&&"constructor"===c.value)&&(r&&this.raise(c.start,"Duplicate constructor in the same class"),u&&this.raise(c.start,"Constructor can't have get/set modifier"),s&&this.raise(c.start,"Constructor can't be a generator"),o&&this.raise(c.start,"Constructor can't be an async method"),i.kind="constructor",r=!0)}if(this.parseClassMethod(n,i,s,o),u){var l="get"===i.kind?0:1;if(i.value.params.length!==l){var p=i.value.start;"get"===i.kind?this.raiseRecoverable(p,"getter should have no params"):this.raiseRecoverable(p,"setter should have exactly one param")}else"set"===i.kind&&"RestElement"===i.value.params[0].type&&this.raiseRecoverable(i.value.params[0].start,"Setter cannot use rest params")}}return e.body=this.finishNode(n,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.parseClassMethod=function(e,t,n,r){t.value=this.parseMethod(n,r),e.body.push(this.finishNode(t,"MethodDefinition"))},z.parseClassId=function(e,t){e.id=this.type===L.name?this.parseIdent():!0===t?this.unexpected():null},z.parseClassSuper=function(e){e.superClass=this.eat(L._extends)?this.parseExprSubscripts():null},z.parseExport=function(e,t){if(this.next(),this.eat(L.star))return this.expectContextual("from"),e.source=this.type===L.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(L._default)){this.checkExport(t,"default",this.lastTokStart);var n;if(this.type===L._function||(n=this.isAsyncFunction())){var r=this.startNode();this.next(),n&&this.next(),e.declaration=this.parseFunction(r,"nullableID",!1,n)}else if(this.type===L._class){var i=this.startNode();e.declaration=this.parseClass(i,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(!0),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))e.source=this.type===L.string?this.parseExprAtom():this.unexpected();else{for(var s=0,o=e.specifiers;s=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var n=0,r=e.properties;n=6&&(e.computed||e.method||e.shorthand))){var n,r=e.key;switch(r.type){case"Identifier":n=r.name;break;case"Literal":n=String(r.value);break;default:return}var i=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===n&&"init"===i&&(t.proto&&this.raiseRecoverable(r.start,"Redefinition of __proto__ property"),t.proto=!0);else{var s=t[n="$"+n];if(s){("init"===i?this.strict&&s.init||s.get||s.set:s.init||s[i])&&this.raiseRecoverable(r.start,"Redefinition of property")}else s=t[n]={init:!1,get:!1,set:!1};s[i]=!0}}},Y.parseExpression=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeAssign(e,t);if(this.type===L.comma){var s=this.startNodeAt(n,r);for(s.expressions=[i];this.eat(L.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(s,"SequenceExpression")}return i},Y.parseMaybeAssign=function(e,t,n){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var r=!1,i=-1,s=-1;t?(i=t.parenthesizedAssign,s=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new p,r=!0);var o=this.start,a=this.startLoc;this.type!=L.parenL&&this.type!=L.name||(this.potentialArrowAt=this.start);var u=this.parseMaybeConditional(e,t);if(n&&(u=n.call(this,u,o,a)),this.type.isAssign){this.checkPatternErrors(t,!0),r||p.call(t);var c=this.startNodeAt(o,a);return c.operator=this.value,c.left=this.type===L.eq?this.toAssignable(u):u,t.shorthandAssign=-1,this.checkLVal(u),this.next(),c.right=this.parseMaybeAssign(e),this.finishNode(c,"AssignmentExpression")}return r&&this.checkExpressionErrors(t,!0),i>-1&&(t.parenthesizedAssign=i),s>-1&&(t.trailingComma=s),u},Y.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(this.eat(L.question)){var s=this.startNodeAt(n,r);return s.test=i,s.consequent=this.parseMaybeAssign(),this.expect(L.colon),s.alternate=this.parseMaybeAssign(e),this.finishNode(s,"ConditionalExpression")}return i},Y.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)?i:i.start==n&&"ArrowFunctionExpression"===i.type?i:this.parseExprOp(i,n,r,-1,e)},Y.parseExprOp=function(e,t,n,r,i){var s=this.type.binop;if(null!=s&&(!i||this.type!==L._in)&&s>r){var o=this.type===L.logicalOR||this.type===L.logicalAND,a=this.value;this.next();var u=this.start,c=this.startLoc,l=this.parseExprOp(this.parseMaybeUnary(null,!1),u,c,s,i),p=this.buildBinary(t,n,e,l,a,o);return this.parseExprOp(p,t,n,r,i)}return e},Y.buildBinary=function(e,t,n,r,i,s){var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,s?"LogicalExpression":"BinaryExpression")},Y.parseMaybeUnary=function(e,t){var n,r=this.start,i=this.startLoc;if(this.inAsync&&this.isContextual("await"))n=this.parseAwait(),t=!0;else if(this.type.prefix){var s=this.startNode(),o=this.type===L.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),o?this.checkLVal(s.argument):this.strict&&"delete"===s.operator&&"Identifier"===s.argument.type?this.raiseRecoverable(s.start,"Deleting local variable in strict mode"):t=!0,n=this.finishNode(s,o?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var a=this.startNodeAt(r,i);a.operator=this.value,a.prefix=!1,a.argument=n,this.checkLVal(n),this.next(),n=this.finishNode(a,"UpdateExpression")}}return!t&&this.eat(L.starstar)?this.buildBinary(r,i,n,this.parseMaybeUnary(null,!1),"**",!1):n},Y.parseExprSubscripts=function(e){var t=this.start,n=this.startLoc,r=this.parseExprAtom(e),i="ArrowFunctionExpression"===r.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);if(this.checkExpressionErrors(e)||i)return r;var s=this.parseSubscripts(r,t,n);return e&&"MemberExpression"===s.type&&(e.parenthesizedAssign>=s.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=s.start&&(e.parenthesizedBind=-1)),s},Y.parseSubscripts=function(e,t,n,r){for(var i=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd==e.end&&!this.canInsertSemicolon(),s=void 0;;)if((s=this.eat(L.bracketL))||this.eat(L.dot)){var o=this.startNodeAt(t,n);o.object=e,o.property=s?this.parseExpression():this.parseIdent(!0),o.computed=!!s,s&&this.expect(L.bracketR),e=this.finishNode(o,"MemberExpression")}else if(!r&&this.eat(L.parenL)){var a=new p,u=this.yieldPos,c=this.awaitPos;this.yieldPos=0,this.awaitPos=0;var l=this.parseExprList(L.parenR,this.options.ecmaVersion>=8,!1,a);if(i&&!this.canInsertSemicolon()&&this.eat(L.arrow))return this.checkPatternErrors(a,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=c,this.parseArrowExpression(this.startNodeAt(t,n),l,!0);this.checkExpressionErrors(a,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=c||this.awaitPos;var h=this.startNodeAt(t,n);h.callee=e,h.arguments=l,e=this.finishNode(h,"CallExpression")}else{if(this.type!==L.backQuote)return e;var f=this.startNodeAt(t,n);f.tag=e,f.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(f,"TaggedTemplateExpression")}},Y.parseExprAtom=function(e){var t,n=this.potentialArrowAt==this.start;switch(this.type){case L._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),t=this.startNode(),this.next(),this.type!==L.dot&&this.type!==L.bracketL&&this.type!==L.parenL&&this.unexpected(),this.finishNode(t,"Super");case L._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case L.name:var r=this.start,i=this.startLoc,s=this.parseIdent(this.type!==L.name);if(this.options.ecmaVersion>=8&&"async"===s.name&&!this.canInsertSemicolon()&&this.eat(L._function))return this.parseFunction(this.startNodeAt(r,i),!1,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(L.arrow))return this.parseArrowExpression(this.startNodeAt(r,i),[s],!1);if(this.options.ecmaVersion>=8&&"async"===s.name&&this.type===L.name)return s=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(L.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,i),[s],!0)}return s;case L.regexp:var o=this.value;return t=this.parseLiteral(o.value),t.regex={pattern:o.pattern,flags:o.flags},t;case L.num:case L.string:return this.parseLiteral(this.value);case L._null:case L._true:case L._false:return t=this.startNode(),t.value=this.type===L._null?null:this.type===L._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case L.parenL:var a=this.start,u=this.parseParenAndDistinguishExpression(n);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(u)&&(e.parenthesizedAssign=a),e.parenthesizedBind<0&&(e.parenthesizedBind=a)),u;case L.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(L.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case L.braceL:return this.parseObj(!1,e);case L._function:return t=this.startNode(),this.next(),this.parseFunction(t,!1);case L._class:return this.parseClass(this.startNode(),!1);case L._new:return this.parseNew();case L.backQuote:return this.parseTemplate();default:this.unexpected()}},Y.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(t,"Literal")},Y.parseParenExpression=function(){this.expect(L.parenL);var e=this.parseExpression();return this.expect(L.parenR),e},Y.parseParenAndDistinguishExpression=function(e){var t,n=this.start,r=this.startLoc,i=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var s,o,a=this.start,u=this.startLoc,c=[],l=!0,h=!1,f=new p,d=this.yieldPos,y=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==L.parenR;){if(l?l=!1:this.expect(L.comma),i&&this.afterTrailingComma(L.parenR,!0)){h=!0;break}if(this.type===L.ellipsis){s=this.start,c.push(this.parseParenItem(this.parseRestBinding())),this.type===L.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}this.type!==L.parenL||o||(o=this.start),c.push(this.parseMaybeAssign(!1,f,this.parseParenItem))}var m=this.start,g=this.startLoc;if(this.expect(L.parenR),e&&!this.canInsertSemicolon()&&this.eat(L.arrow))return this.checkPatternErrors(f,!1),this.checkYieldAwaitInDefaultParams(),o&&this.unexpected(o),this.yieldPos=d,this.awaitPos=y,this.parseParenArrowList(n,r,c);c.length&&!h||this.unexpected(this.lastTokStart),s&&this.unexpected(s),this.checkExpressionErrors(f,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=y||this.awaitPos,c.length>1?((t=this.startNodeAt(a,u)).expressions=c,this.finishNodeAt(t,"SequenceExpression",m,g)):t=c[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var v=this.startNodeAt(n,r);return v.expression=t,this.finishNode(v,"ParenthesizedExpression")}return t},Y.parseParenItem=function(e){return e},Y.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var Q=[];Y.parseNew=function(){var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(L.dot))return e.meta=t,e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty");var n=this.start,r=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(),n,r,!0),this.eat(L.parenL)?e.arguments=this.parseExprList(L.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Q,this.finishNode(e,"NewExpression")},Y.parseTemplateElement=function(e){var t=e.isTagged,n=this.startNode();return this.type===L.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===L.backQuote,this.finishNode(n,"TemplateElement")},Y.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var n=this.startNode();this.next(),n.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(n.quasis=[r];!r.tail;)this.expect(L.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(L.braceR),n.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(n,"TemplateLiteral")},Y.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===L.name||this.type===L.num||this.type===L.string||this.type===L.bracketL||this.type.keyword)&&!O.test(this.input.slice(this.lastTokEnd,this.start))},Y.parseObj=function(e,t){var n=this.startNode(),r=!0,i={};for(n.properties=[],this.next();!this.eat(L.braceR);){if(r)r=!1;else if(this.expect(L.comma),this.afterTrailingComma(L.braceR))break;var s=this.parseProperty(e,t);this.checkPropClash(s,i),n.properties.push(s)}return this.finishNode(n,e?"ObjectPattern":"ObjectExpression")},Y.parseProperty=function(e,t){var n,r,i,s,o=this.startNode();return this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(e||t)&&(i=this.start,s=this.startLoc),e||(n=this.eat(L.star))),this.parsePropertyName(o),!e&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(r=!0,this.parsePropertyName(o,t)):r=!1,this.parsePropertyValue(o,e,n,r,i,s,t),this.finishNode(o,"Property")},Y.parsePropertyValue=function(e,t,n,r,i,s,o){if((n||r)&&this.type===L.colon&&this.unexpected(),this.eat(L.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===L.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(n,r);else if(t||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type==L.comma||this.type==L.braceR)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?(this.checkUnreserved(e.key),e.kind="init",t?e.value=this.parseMaybeDefault(i,s,e.key):this.type===L.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,s,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(n||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var a="get"===e.kind?0:1;if(e.value.params.length!==a){var u=e.value.start;"get"===e.kind?this.raiseRecoverable(u,"getter should have no params"):this.raiseRecoverable(u,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},Y.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(L.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(L.bracketR),e.key;e.computed=!1}return e.key=this.type===L.num||this.type===L.string?this.parseExprAtom():this.parseIdent(!0)},Y.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=!1,e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Y.parseMethod=function(e,t){var n=this.startNode(),r=this.inGenerator,i=this.inAsync,s=this.yieldPos,o=this.awaitPos,a=this.inFunction;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.inGenerator=n.generator,this.inAsync=n.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),this.expect(L.parenL),n.params=this.parseBindingList(L.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1),this.inGenerator=r,this.inAsync=i,this.yieldPos=s,this.awaitPos=o,this.inFunction=a,this.finishNode(n,"FunctionExpression")},Y.parseArrowExpression=function(e,t,n){var r=this.inGenerator,i=this.inAsync,s=this.yieldPos,o=this.awaitPos,a=this.inFunction;return this.enterFunctionScope(),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.inGenerator=!1,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0),this.inGenerator=r,this.inAsync=i,this.yieldPos=s,this.awaitPos=o,this.inFunction=a,this.finishNode(e,"ArrowFunctionExpression")},Y.parseFunctionBody=function(e,t){var n=t&&this.type!==L.braceL,r=this.strict,i=!1;if(n)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);r&&!s||(i=this.strictDirective(this.end))&&s&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],i&&(this.strict=!0),this.checkParams(e,!r&&!i&&!t&&this.isSimpleParamList(e.params)),e.body=this.parseBlock(!1),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitFunctionScope(),this.strict&&e.id&&this.checkLVal(e.id,"none"),this.strict=r},Y.isSimpleParamList=function(e){for(var t=0,n=e;t0;)t[n]=arguments[n+1];for(var r=0,i=t;r=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ie.updateContext=function(e){var t,n=this.type;n.keyword&&e==L.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},L.parenR.updateContext=L.braceR.updateContext=function(){if(1!=this.context.length){var e=this.context.pop();e===re.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},L.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?re.b_stat:re.b_expr),this.exprAllowed=!0},L.dollarBraceL.updateContext=function(){this.context.push(re.b_tmpl),this.exprAllowed=!0},L.parenL.updateContext=function(e){var t=e===L._if||e===L._for||e===L._with||e===L._while;this.context.push(t?re.p_stat:re.p_expr),this.exprAllowed=!0},L.incDec.updateContext=function(){},L._function.updateContext=L._class.updateContext=function(e){e.beforeExpr&&e!==L.semi&&e!==L._else&&(e!==L.colon&&e!==L.braceL||this.curContext()!==re.b_stat)?this.context.push(re.f_expr):this.context.push(re.f_stat),this.exprAllowed=!1},L.backQuote.updateContext=function(){this.curContext()===re.q_tmpl?this.context.pop():this.context.push(re.q_tmpl),this.exprAllowed=!1},L.star.updateContext=function(e){if(e==L._function){var t=this.context.length-1;this.context[t]===re.f_expr?this.context[t]=re.f_expr_gen:this.context[t]=re.f_gen}this.exprAllowed=!0},L.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&("of"==this.value&&!this.exprAllowed||"yield"==this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var se=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new j(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},oe=V.prototype,ae="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);oe.next=function(){this.options.onToken&&this.options.onToken(new se(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},oe.getToken=function(){return this.next(),new se(this)},"undefined"!=typeof Symbol&&(oe[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===L.eof,value:t}}}}),oe.curContext=function(){return this.context[this.context.length-1]},oe.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(L.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},oe.readToken=function(e){return n(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},oe.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=57344)return e;return(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},oe.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations){T.lastIndex=t;for(var r;(r=T.exec(this.input))&&r.index8&&e<14||e>=5760&&N.test(String.fromCharCode(e))))break e;++this.pos}}},oe.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},oe.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(L.ellipsis)):(++this.pos,this.finishToken(L.dot))},oe.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(L.assign,2):this.finishOp(L.slash,1)},oe.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=42===e?L.star:L.modulo;return this.options.ecmaVersion>=7&&42==e&&42===t&&(++n,r=L.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(L.assign,n+1):this.finishOp(r,n)},oe.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?L.logicalOR:L.logicalAND,2):61===t?this.finishOp(L.assign,2):this.finishOp(124===e?L.bitwiseOR:L.bitwiseAND,1)},oe.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(L.assign,2):this.finishOp(L.bitwiseXOR,1)},oe.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!=t||this.inModule||62!=this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!O.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(L.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(L.assign,2):this.finishOp(L.plusMin,1)},oe.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(L.assign,n+1):this.finishOp(L.bitShift,n)):33!=t||60!=e||this.inModule||45!=this.input.charCodeAt(this.pos+2)||45!=this.input.charCodeAt(this.pos+3)?(61===t&&(n=2),this.finishOp(L.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},oe.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(L.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(L.arrow)):this.finishOp(61===e?L.eq:L.prefix,1)},oe.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(L.parenL);case 41:return++this.pos,this.finishToken(L.parenR);case 59:return++this.pos,this.finishToken(L.semi);case 44:return++this.pos,this.finishToken(L.comma);case 91:return++this.pos,this.finishToken(L.bracketL);case 93:return++this.pos,this.finishToken(L.bracketR);case 123:return++this.pos,this.finishToken(L.braceL);case 125:return++this.pos,this.finishToken(L.braceR);case 58:return++this.pos,this.finishToken(L.colon);case 63:return++this.pos,this.finishToken(L.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(L.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(L.prefix,1)}this.raise(this.pos,"Unexpected character '"+d(e)+"'")},oe.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)};var ue=!!f("ļææ","u");oe.readRegexp=function(){for(var e,t,n=this,r=this.pos;;){n.pos>=n.input.length&&n.raise(r,"Unterminated regular expression");var i=n.input.charAt(n.pos);if(O.test(i)&&n.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++n.pos}var s=this.input.slice(r,this.pos);++this.pos;var o=this.readWord1(),a=s,u="";if(o){var c=/^[gim]*$/;this.options.ecmaVersion>=6&&(c=/^[gimuy]*$/),c.test(o)||this.raise(r,"Invalid regular expression flag"),o.indexOf("u")>=0&&(ue?u="u":(a=(a=a.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t,i){return(t=Number("0x"+t))>1114111&&n.raise(r+i+3,"Code point out of bounds"),"x"})).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),u=u.replace("u","")))}var l=null;return ae||(f(a,u,r,this),l=f(s,o)),this.finishToken(L.regexp,{pattern:s,flags:o,value:l})},oe.readInt=function(e,t){for(var n=this.pos,r=0,i=0,s=null==t?1/0:t;i=97?o-97+10:o>=65?o-65+10:o>=48&&o<=57?o-48:1/0)>=e)break;++this.pos,r=r*e+a}return this.pos===n||null!=t&&this.pos-n!==t?null:r},oe.readRadixNumber=function(e){this.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.start+2,"Expected number in radix "+e),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(L.num,t)},oe.readNumber=function(e){var t=this.pos,r=!1,i=48===this.input.charCodeAt(this.pos);e||null!==this.readInt(10)||this.raise(t,"Invalid number"),i&&this.pos==t+1&&(i=!1);var s=this.input.charCodeAt(this.pos);46!==s||i||(++this.pos,this.readInt(10),r=!0,s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||i||(43!==(s=this.input.charCodeAt(++this.pos))&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),r=!0),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var o,a=this.input.slice(t,this.pos);return r?o=parseFloat(a):i&&1!==a.length?this.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(L.num,o)},oe.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},oe.readString=function(e){for(var t="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var r=this.input.charCodeAt(this.pos);if(r===e)break;92===r?(t+=this.input.slice(n,this.pos),t+=this.readEscapedChar(!1),n=this.pos):(o(r)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(n,this.pos++),this.finishToken(L.string,t)};var ce={};oe.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==ce)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},oe.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw ce;this.raise(e,t)},oe.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==L.template&&this.type!==L.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(L.template,e)):36===n?(this.pos+=2,this.finishToken(L.dollarBraceL)):(++this.pos,this.finishToken(L.backQuote));if(92===n)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(o(n)){switch(e+=this.input.slice(t,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},oe.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(n,8);return r>255&&(n=n.slice(0,-1),r=parseInt(n,8)),"0"!==n&&(this.strict||e)&&this.invalidStringToken(this.pos-2,"Octal literal in strict mode"),this.pos+=n.length-1,String.fromCharCode(r)}return String.fromCharCode(t)}},oe.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return null===n&&this.invalidStringToken(t,"Bad character escape sequence"),n},oe.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,i=this.pos,s=this.options.ecmaVersion>=6;this.pos=s)&&a[c](t,n,e),(null==r||t.start==r)&&(null==s||t.end==s)&&o(c,t))throw new i(t,n)}(n,u)}catch(e){if(e instanceof i)return e;throw e}},e.findNodeAround=function(n,r,s,o,a){s=t(s),o||(o=e.base);try{!function e(t,n,a){var u=a||t.type;if(!(t.start>r||t.end=r&&s(u,t))throw new i(t,n);o[u](t,n,e)}}(n,a)}catch(e){if(e instanceof i)return e;throw e}},e.findNodeBefore=function(n,r,s,o,a){s=t(s),o||(o=e.base);var u;return function e(t,n,a){if(!(t.start>r)){var c=a||t.type;t.end<=r&&(!u||u.node.end0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return o[e>>18&63]+o[e>>12&63]+o[e>>6&63]+o[63&e]}function s(e,t,n){for(var r,s=[],o=t;o0?c-4:c;var l=0;for(t=0;t>16&255,o[l++]=i>>8&255,o[l++]=255&i;return 2===s?(i=a[e.charCodeAt(t)]<<2|a[e.charCodeAt(t+1)]>>4,o[l++]=255&i):1===s&&(i=a[e.charCodeAt(t)]<<10|a[e.charCodeAt(t+1)]<<4|a[e.charCodeAt(t+2)]>>2,o[l++]=i>>8&255,o[l++]=255&i),o},n.fromByteArray=function(e){for(var t,n=e.length,r=n%3,i="",a=[],u=0,c=n-r;uc?c:u+16383));return 1===r?(t=e[n-1],i+=o[t>>2],i+=o[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=o[t>>10],i+=o[t>>4&63],i+=o[t<<2&63],i+="="),a.push(i),a.join("")};for(var o=[],a=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,p=c.length;lB)throw new RangeError("Invalid typed array length");var t=new Uint8Array(e);return t.__proto__=i.prototype,t}function i(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return a(e)}return s(e,t,n)}function s(e,t,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return T(e)?function(e,t,n){if(t<0||e.byteLength=B)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+B.toString(16)+" bytes");return 0|e}function l(e,t){if(i.isBuffer(e))return e.length;if(N(e)||T(e))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return _(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return L(e).length;default:if(r)return _(e).length;t=(""+t).toLowerCase(),r=!0}}function p(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,n){var r=e.length;(!t||t<0)&&(t=0);(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,P(n)&&(n=s?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(s)return-1;n=e.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof t&&(t=i.from(t,r)),i.isBuffer(t))return 0===t.length?-1:d(e,t,n,r,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):d(e,[t],n,r,s);throw new TypeError("val must be string, number or Buffer")}function d(e,t,n,r,i){function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;ca&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;hi&&(r=i):r=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function w(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:s>223?3:s>191?2:1;if(i+a<=n){var u,c,l,p;switch(a){case 1:s<128&&(o=s);break;case 2:128==(192&(u=e[i+1]))&&(p=(31&s)<<6|63&u)>127&&(o=p);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(p=(15&s)<<12|(63&u)<<6|63&c)>2047&&(p<55296||p>57343)&&(o=p);break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(p=(15&s)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&p<1114112&&(o=p)}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return function(e){var t=e.length;if(t<=R)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rn)throw new RangeError("Trying to access beyond buffer length")}function S(e,t,n,r,s,o){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function k(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return t=+t,n>>>=0,i||k(e,0,n,4),$.write(e,t,n,r,23,4),n+4}function C(e,t,n,r,i){return t=+t,n>>>=0,i||k(e,0,n,8),$.write(e,t,n,r,52,8),n+8}function _(e,t){t=t||1/0;for(var n,r=e.length,i=null,s=[],o=0;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function L(e){return F.toByteArray(function(e){if((e=e.trim().replace(I,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function O(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function T(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function N(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function P(e){return e!=e}var F=e("base64-js"),$=e("ieee754");n.Buffer=i,n.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},n.INSPECT_MAX_BYTES=50;var B=2147483647;n.kMaxLength=B,(i.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(e,t,n){return s(e,t,n)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(e,t,n){return function(e,t,n){return o(e),e<=0?r(e):void 0!==t?"string"==typeof n?r(e).fill(t,n):r(e).fill(t):r(e)}(e,t,n)},i.allocUnsafe=function(e){return a(e)},i.allocUnsafeSlow=function(e){return a(e)},i.isBuffer=function(e){return null!=e&&!0===e._isBuffer},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,s=0,o=Math.min(n,r);s0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},i.prototype.compare=function(e,t,n,r,s){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===s&&(s=this.length),t<0||n>e.length||r<0||s>this.length)throw new RangeError("out of range index");if(r>=s&&t>=n)return 0;if(r>=s)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,s>>>=0,this===e)return 0;for(var o=s-r,a=n-t,u=Math.min(o,a),c=this.slice(r,s),l=e.slice(t,n),p=0;p>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return m(this,e,t,n);case"ascii":return g(this,e,t,n);case"latin1":case"binary":return v(this,e,t,n);case"base64":return b(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var R=4096;i.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n)<0&&(e=0):e>n&&(e=n),t<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e],i=1,s=0;++s>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},i.prototype.readUInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e],i=1,s=0;++s=i&&(r-=Math.pow(2,8*t)),r},i.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||E(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},i.prototype.readInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||E(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt16BE=function(e,t){e>>>=0,t||E(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return e>>>=0,t||E(e,4,this.length),$.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||E(e,4,this.length),$.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||E(e,8,this.length),$.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||E(e,8,this.length),$.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){S(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=1,s=0;for(this[t]=255&e;++s>>=0,n>>>=0,!r){S(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},i.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,1,255,0),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},i.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);S(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s>0)-a&255;return t+n},i.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);S(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},i.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){return C(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){return C(this,e,t,!1,n)},i.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(s<1e3)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o>1,l=-7,p=n?i-1:0,h=n?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+p],p+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+p],p+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,r),s-=c}return(f?-1:1)*o*Math.pow(2,s-r)},n.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+p>=1?h/u:h*Math.pow(2,1-p))*u>=2&&(o++,u/=2),o+p>=l?(a=0,o=l):o+p>=1?(a=(t*u-1)*Math.pow(2,i),o+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<0;e[n+f]=255&o,f+=d,o/=256,c-=8);e[n+f-d]|=128*y}},{}],10:[function(e,t,n){(function(n){function r(){}function i(e){this.covers={},this._ident=i.prototype.version+"_"+Math.random(),this.setOptions(e||{})}var s=e("./lib/parser"),o=e("./lib/arboriculture"),a=e("./lib/output");i.prototype.smCache={},i.prototype.setOptions=function(e){return this.log=!1===e.log?r:e.log||this.log,this.options=function(e){var t={};return e.forEach(function(e){if(e&&"object"==typeof e)for(var n in e)t[n]=e[n]}),t}([this.options,e]),delete this.options.log,this},i.prototype.version=e("./package.json").version,i.prototype.isThenable=function(e){return e&&e instanceof Object&&"function"==typeof e.then},i.prototype.compile=function(e,t,n,s){"object"==typeof n&&void 0===s&&(s=n),s=s||{};for(var o in i.initialCodeGenOpts)o in s||(s[o]=i.initialCodeGenOpts[o]);var a=this.parse(e,t,null,s);return this.asynchronize(a,null,s,this.log||r),this.prettyPrint(a,s),a},i.prototype.parse=function(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n);var i={origCode:e.toString(),filename:t};try{return i.ast=s.parse(i.origCode,r&&r.parser),r.babelTree&&s.treeWalker(i.ast,function(e,t,n){"Literal"===e.type?n[0].replace(o.babelLiteralNode(e.value)):"Property"===e.type&&("ClassBody"===n[0].parent.type?e.type="ClassProperty":e.type="ObjectProperty"),t()}),i}catch(e){if(e instanceof SyntaxError){var a=i.origCode.substr(e.pos-e.loc.column);a=a.split("\n")[0],e.message+=" "+t+" (nodent)\n"+a+"\n"+a.replace(/[\S ]/g,"-").substring(0,e.loc.column)+"^",e.stack=""}throw e}},i.prototype.asynchronize=o.asynchronize,i.prototype.printNode=o.printNode,i.prototype.prettyPrint=function(t,r){var i=t.filename?t.filename.split("/"):["anonymous"],s=i.pop(),o=a(t.ast,r&&r.sourcemap?{map:{startLine:r.mapStartLine||0,file:s+"(original)",sourceMapRoot:i.join("/"),sourceContent:t.origCode}}:null,t.origCode);if(r&&r.sourcemap)try{var u="",c=o.map.toJSON();if(c){var l=e("source-map").SourceMapConsumer;t.sourcemap=c,this.smCache[t.filename]={map:c,smc:new l(c)},u="\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,"+function(e){return(e instanceof n?e:new n(e.toString(),"binary")).toString("base64")}(JSON.stringify(c))+"\n"}t.code=o.code+u}catch(e){t.code=o}else t.code=o;return t},i.prototype.getDefaultCompileOptions=void 0,Object.defineProperty(i.prototype,"Promise",{get:function(){return initOpts.log("Warning: nodent.Promise is deprecated. Use nodent.Thenable instead"),Thenable},enumerable:!1,configurable:!1}),i.initialCodeGenOpts={noRuntime:!1,lazyThenables:!1,es6target:!1,noUseDirective:!1,wrapAwait:null,mapStartLine:0,sourcemap:!0,engine:!1,parser:{sourceType:"script"},$return:"$return",$error:"$error",$arguments:"$args",$asyncspawn:"$asyncspawn",$asyncbind:"$asyncbind",generatedSymbolPrefix:"$",$makeThenable:"$makeThenable"},t.exports=i}).call(this,e("buffer").Buffer)},{"./lib/arboriculture":11,"./lib/output":12,"./lib/parser":13,"./package.json":25,buffer:8,"source-map":24}],11:[function(e,t,n){"use strict";function r(e){if(!e)return"";if(Array.isArray(e))return e.map(r).join("|\n");try{return m(e)}catch(t){return t.message+": "+(e&&e.type)}}function i(e){if(Array.isArray(e))return e.map(function(e){return i(e)});var t={};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function s(e,t){e!==t&&(e.__proto__=Object.getPrototypeOf(t),Object.keys(e).forEach(function(t){t in g||delete e[t]}),Object.keys(t).forEach(function(n){n in e||(e[n]=t[n])}))}function o(){}function a(e){return e?(b.node=e,b):{}}function u(e,t,n){if(!e)return null;if(t&&"object"==typeof t){var r=Object.keys(t);return u(e,function(e){return r.every(function(n){return e[n]==t[n]})})}var i,s={};if(Array.isArray(e)){for(var o=0;o0){if(!o)return t(e);delete e.async}return void(!o&&i?t():(e.type="ReturnStatement",e.$mapped=!0,e.argument={type:"CallExpression",callee:k(s,[n]).$error,arguments:[e.argument]}))}return"TryStatement"===e.type?(i++,t(e),void i--):a(e).isFunction?(r++,t(e),void r--):void t(e)}if(r>0){if(!a(e).isAsync)return t(e);delete e.async}return e.$mapped=!0,void(a(e.argument).isUnaryExpression&&"void"===e.argument.operator?e.argument=e.argument.argument:e.argument={type:"CallExpression",callee:k(s,[n]).$return,arguments:e.argument?[e.argument]:[]})},t)}function P(e,t){return Array.isArray(e)?e.map(function(e){return P(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"ConditionalExpression"===e.type&&(c(e.alternate)||c(e.consequent))){h(E("condOp"));s(e,_(y.part("if ($0) return $1 ; return $2",[e.test,e.consequent,e.alternate]).body))}},t),e)}function F(e,t){return Array.isArray(e)?e.map(function(e){return F(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"LogicalExpression"===e.type&&c(e.right)){var r,i=h(E("logical"+("&&"===e.operator?"And":"Or")));if("||"===e.operator)r="var $0; if (!($0 = $1)) {$0 = $2} return $0";else{if("&&"!==e.operator)throw new Error(v(e)+"Illegal logical operator: "+e.operator);r="var $0; if ($0 = $1) {$0 = $2} return $0"}s(e,_(y.part(r,[i,e.left,e.right]).body))}},t),e)}function $(e,t,n){if("SwitchCase"!==e.type&&a(e).isBlockStatement)for(var r=0;r { $$setMapped: while (q) { if (q.then) "+(1===i?" return void q.then($idTrampoline, $exit); ":" return q.then($idTrampoline, $exit); ")+" try { if (q.pop) if (q.length) return q.pop() ? $idContinuation.call(this) : q; else q = $idStep; else q = q.call(this) } catch (_exception) { return $exit(_exception); } } }))($idIter)":"($idTrampoline = (function (q) { $$setMapped: while (q) { if (q.then) "+(1===i?" return void q.then($idTrampoline, $exit); ":" return q.then($idTrampoline, $exit); ")+" try { if (q.pop) if (q.length) return q.pop() ? $idContinuation.call(this) : q; else q = $idStep; else q = q.call(this) } catch (_exception) { return $exit(_exception); } } }).bind(this))($idIter)",{setMapped:function(e){return e.$mapped=!0,e},idTrampoline:w,exit:P,idIter:E,idContinuation:A,idStep:S}).expr:y.part("(Function.$0.trampoline(this,$1,$2,$3,$5)($4))",[pe.asyncbind,A,S,P,E,b(1===i)]).expr,o.push({type:"ReturnStatement",argument:N}),o.push({$label:e.$label,type:"FunctionDeclaration",id:E,params:[],body:{type:"BlockStatement",body:d}}),f&&o.push({type:"FunctionDeclaration",id:S,params:[],body:{type:"BlockStatement",body:[f,L]}}),!l||"VariableDeclaration"!==l.type||"let"!==l.kind&&"const"!==l.kind?(o.push(v),t[0].replace(o.map(r))):("const"===l.kind&&(l.kind="let"),t[0].replace([{type:"BlockStatement",body:o.map(r)},r(v)]))}}function G(e){if(!a(e).isFunction)throw new Error("Cannot examine non-Function node types for async exits");return u(e.body,function(e){return"Identifier"===e.type&&(e.name===n.$return||e.name===n.$error)||I(e)&&a(e).isAsync},function(e){return!(a(e).isFunction&&(e.$wasAsync||a(e).isAsync))})}function J(t){return y.treeWalker(t,function(t,r,i){var s=x(t);if(r(),s&&a(s).isAsync){if("set"==t.kind){var o=new SyntaxError(v(s)+"method 'async set' cannot be invoked",e.filename,t.start);throw o.pos=t.start,o.loc=t.loc.start,o}s.async=!1;var u=w(s);G(s)||0!==s.body.body.length&&"ReturnStatement"===s.body.body[s.body.body.length-1].type||s.body.body.push({type:"ReturnStatement"});var c=m(S({type:"FunctionExpression",params:[pe.return,pe.error],body:J(N(s.body,i)),$wasAsync:!0},n),n.promises||n.generators||n.engine?null:b(!n.lazyThenables||0));n.promises?s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"NewExpression",callee:h("Promise"),arguments:[c]}}]}:s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:c}]},u&&D(s.body.body,[he])}})}function H(e){return y.treeWalker(e,function(e,t,r){if(t(),a(e).isAsync&&a(e).isFunction){var i;(i=x(r[0].parent))&&a(i).isAsync&&"get"===r[0].parent.kind&&X(r[0].parent.key),delete e.async;var s=w(e),o=S({type:"FunctionExpression",params:[pe.return,pe.error],$wasAsync:!0},n),u=[{self:o}].concat(r);return a(e.body).isBlockStatement?(G(e)||0!==e.body.body.length&&"ReturnStatement"===e.body.body[e.body.body.length-1].type||e.body.body.push({type:"ReturnStatement"}),o.body={type:"BlockStatement",body:e.body.body.map(function(e){return N(e,u)})}):(o.body={type:"BlockStatement",body:[N({type:"ReturnStatement",argument:e.body},u)]},e.expression=!1),o=m(o,n.promises||n.generators||n.engine?null:b(!n.lazyThenables||0)),n.promises&&(o={type:"NewExpression",callee:h("Promise"),arguments:[o]}),o={type:"BlockStatement",body:[{type:"ReturnStatement",loc:e.loc,argument:o}]},s&&D(o.body,[he]),void(e.body=o)}}),e}function Y(e){if(Array.isArray(e))return e.map(Y);var t=0;return y.treeWalker(e,function(e,n,r){if("ThrowStatement"!==e.type&&"ReturnStatement"!==e.type||e.$mapped){if(a(e).isFunction)return t++,n(e),void t--}else if(t>0&&a(e).isAsync)return delete e.async,e.argument={type:"CallExpression",callee:"ThrowStatement"===e.type?pe.error:pe.return,arguments:e.argument?[e.argument]:[]},void(e.type="ReturnStatement");n(e)})}function Q(e,t){if(n.noRuntime)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");return y.part("{ return (function*($return,$error){ $:body }).$asyncspawn(Promise,this) }",{return:pe.return,error:pe.error,asyncspawn:pe.asyncspawn,body:Y(e).concat(t?[{type:"ReturnStatement",argument:pe.return}]:[])}).body[0]}function X(e){e.$asyncgetwarninig||(e.$asyncgetwarninig=!0,d(v(e)+"'async get "+r(e)+"(){...}' is non-standard. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"))}function Z(e,t){function r(e,t){y.treeWalker(e,function(n,r,i){n!==e&&a(n).isFunction||(a(n).isAwait?t?(n.$hidden=!0,r()):(delete n.operator,n.delegate=!1,n.type="YieldExpression",r()):r())})}function o(e){var t=n.promises;n.promises=!0,A(e,!0),n.promises=t}function u(e){return"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),e}function c(e,n){n.$asyncexitwarninig||(n.$asyncexitwarninig=!0,d(v(e)+"'async "+{ReturnStatement:"return",ThrowStatement:"throw"}[e.type]+"' not possible in "+(t?"engine":"generator")+" mode. Using Promises for function at "+v(n)))}y.treeWalker(e,function(e,n,i){n();var l,p,h;if(a(e).isAsync&&a(e).isFunction){var f;(f=x(i[0].parent))&&a(f).isAsync&&"get"===i[0].parent.kind&&X(i[0].parent.key),(p=G(e))?(c(p,e.body),o(e)):t?"get"!==i[0].parent.kind&&r(e,!0):(delete(l=e).async,h=w(l),r(l,!1),(l=u(l)).body=Q(l.body.body,p),h&&D(l.body.body,[he]),l.id&&"ExpressionStatement"===i[0].parent.type?(l.type="FunctionDeclaration",i[1].replace(l)):i[0].replace(l))}else(l=x(e))&&a(l).isAsync&&((p=G(l))?(c(p,l),o(e)):t&&"get"!==e.kind||(t?o(e):(e.async=!1,h=w(l),r(l,!1),s(l,u(l)),l.body=Q(l.body.body,p)),h&&D(l.body.body,[he])))});var l=i(n);return n.engine=!1,n.generators=!1,ie(e),ne(e),j(e,l.engine),F(e),P(e),V(e,[M,W,B,R,$]),q(e,"warn"),n.engine=l.engine,n.generators=l.generators,e}function K(e,t,n){var r=[];return y.treeWalker(e,function(i,s,o){if(i===e)return s();t(i,o)?r.push([].concat(o)):n||a(i).isScope||s()}),r}function ee(e,t){var n=[],r={};if((e=e.filter(function(e){return"ExportNamedDeclaration"!==e[0].parent.type})).length){var s={};e.forEach(function(e){function t(e){e in s?r[e]=o.declarations[u]:s[e]=o.declarations[u]}for(var n=e[0],o=n.self,a=(o.kind,[]),u=0;u1?{type:"SequenceExpression",expressions:a}:a[0];"For"!==n.parent.type.slice(0,3)&&(p={type:"ExpressionStatement",expression:p}),n.replace(p)}});var o=Object.keys(s);o.length&&(o=o.map(function(e){return{type:"VariableDeclarator",id:h(e),loc:s[e].loc,start:s[e].start,end:s[e].end}}),n[0]&&"VariableDeclaration"===n[0].type?n[0].declarations=n[0].declarations.concat(o):n.unshift({type:"VariableDeclaration",kind:t,declarations:o}))}return{decls:n,duplicates:r}}function te(e){if(!e)return[];if(Array.isArray(e))return e.reduce(function(e,t){return e.concat(te(t.id))},[]);switch(e.type){case"Identifier":return[e.name];case"AssignmentPattern":return te(e.left);case"ArrayPattern":return e.elements.reduce(function(e,t){return e.concat(te(t))},[]);case"ObjectPattern":return e.properties.reduce(function(e,t){return e.concat(te(t))},[]);case"ObjectProperty":case"Property":return te(e.value);case"RestElement":case"RestProperty":return te(e.argument)}}function ne(e){function t(e){return u(e,function(e){return"AssignmentExpression"===e.type})}function n(e){return function(t,n){if("VariableDeclaration"===t.type&&(t.kind=t.kind||"var")&&e.indexOf(t.kind)>=0){var r=n[0];return("left"!=r.field||"ForInStatement"!==r.parent.type&&"ForOfStatement"!==r.parent.type)&&("init"!=r.field||"ForStatement"!==r.parent.type||"const"!==t.kind&&"let"!==t.kind)}}}function o(e,t){return!("FunctionDeclaration"!==e.type||!e.id)&&(a(e).isAsync||!e.$continuation)}var l={TemplateLiteral:function(e){return e.expressions},NewExpression:function(e){return e.arguments},CallExpression:function(e){return e.arguments},SequenceExpression:function(e){return e.expressions},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties.map(function(e){return e.value})}};y.treeWalker(e,function(e,n,r){function o(e){h.length&&(e.argument={type:"SequenceExpression",expressions:h.map(function(e){var t=i(e);return s(e,e.left),t}).concat(e.argument)},h=[])}var u;if(n(),e.type in l&&!e.$hoisted){var p=l[e.type](e),h=[];for(u=0;u0;u--)if(e.declarations[u]&&e.declarations[u].init&&c(e.declarations[u].init)){var f={type:"VariableDeclaration",kind:e.kind,declarations:e.declarations.splice(u)},d=r[0];if(!("index"in d))throw new Error("VariableDeclaration not in a block");d.parent[d.field].splice(d.index+1,0,f)}}),function(e){function t(e){d(v(e)+"Possible assignment to 'const "+r(e)+"'")}function n(e){switch(e.type){case"Identifier":"const"===i[e.name]&&t(e);break;case"ArrayPattern":e.elements.forEach(function(e){"const"===i[e.name]&&t(e)});break;case"ObjectPattern":e.properties.forEach(function(e){"const"===i[e.key.name]&&t(e)})}}var i={};y.treeWalker(e,function(e,t,r){var s=a(e).isBlockStatement;if(s){i=Object.create(i);for(var o=0;o=0&&"ReturnStatement"===r[1].self.type){var s=e.$thisCallName,o=i(ce[s].def.body.body);ce[s].$inlined=!0,a(r[1].self).isJump||o.push({type:"ReturnStatement"}),r[1].replace(o)}});var n=Object.keys(ce).map(function(e){return ce[e].$inlined&&ce[e].def});y.treeWalker(e,function(e,t,r){t(),n.indexOf(e)>=0&&r[0].remove()})}if(!("Program"===e.type&&"module"===e.sourceType||u(e,function(e){return a(e).isES6},!0))){var r=oe(e);!function(e){y.treeWalker(e,function(e,t,n){if("Program"===e.type||"FunctionDeclaration"===e.type||"FunctionExpression"===e.type){var i=r;if(r=r||oe(e)){t();var s="Program"===e.type?e:e.body,o=K(s,function(e,t){if("FunctionDeclaration"===e.type)return t[0].parent!==s});o=o.map(function(e){return e[0].remove()}),[].push.apply(s.body,o)}else t();r=i}else t()})}(e)}return y.treeWalker(e,function(e,t,n){t(),Object.keys(e).filter(function(e){return"$"===e[0]}).forEach(function(t){delete e[t]})}),e}var ce={},le=1,pe={};Object.keys(n).filter(function(e){return"$"===e[0]}).forEach(function(e){pe[e.slice(1)]=h(n[e])});var he=y.part("var $0 = arguments",[pe.arguments]).body[0];return n.engine?(e.ast=re(e.ast,!0),e.ast=Z(e.ast,n.engine),e.ast=se(e.ast),ue(e.ast)):n.generators?(e.ast=re(e.ast),e.ast=Z(e.ast),e.ast=se(e.ast),ue(e.ast)):(e.ast=re(e.ast),A(e.ast)),n.babelTree&&y.treeWalker(e.ast,function(e,t,n){t(),"Literal"===e.type&&s(e,b(e.value))}),e}var y=e("./parser"),m=e("./output"),g={start:!0,end:!0,loc:!0,range:!0},v={getScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type?this.node.body.body:"Program"===this.node.type?this.node.body:null},isScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"Program"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type},isFunction:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type},isClass:function(){return"ClassDeclaration"===this.node.type||"ClassExpression"===this.node.type},isBlockStatement:function(){return"ClassBody"===this.node.type||"Program"===this.node.type||"BlockStatement"===this.node.type?this.node.body:"SwitchCase"===this.node.type&&this.node.consequent},isExpressionStatement:function(){return"ExpressionStatement"===this.node.type},isLiteral:function(){return"Literal"===this.node.type||"BooleanLiteral"===this.node.type||"RegExpLiteral"===this.node.type||"NumericLiteral"===this.node.type||"StringLiteral"===this.node.type||"NullLiteral"===this.node.type},isDirective:function(){return"ExpressionStatement"===this.node.type&&("StringLiteral"===this.node.expression.type||"Literal"===this.node.expression.type&&"string"==typeof this.node.expression.value)},isUnaryExpression:function(){return"UnaryExpression"===this.node.type},isAwait:function(){return"AwaitExpression"===this.node.type&&!this.node.$hidden},isAsync:function(){return this.node.async},isStatement:function(){return null!==this.node.type.match(/[a-zA-Z]+Declaration/)||null!==this.node.type.match(/[a-zA-Z]+Statement/)},isExpression:function(){return null!==this.node.type.match(/[a-zA-Z]+Expression/)},isLoop:function(){return"ForStatement"===this.node.type||"WhileStatement"===this.node.type||"DoWhileStatement"===this.node.type},isJump:function(){return"ReturnStatement"===this.node.type||"ThrowStatement"===this.node.type||"BreakStatement"===this.node.type||"ContinueStatement"===this.node.type},isES6:function(){switch(this.node.type){case"ExportNamedDeclaration":case"ExportSpecifier":case"ExportDefaultDeclaration":case"ExportAllDeclaration":case"ImportDeclaration":case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ArrowFunctionExpression":case"ForOfStatement":case"YieldExpression":case"Super":case"RestElement":case"RestProperty":case"SpreadElement":case"TemplateLiteral":case"ClassDeclaration":case"ClassExpression":return!0;case"VariableDeclaration":return this.node.kind&&"var"!==this.node.kind;case"FunctionDeclaration":case"FunctionExpression":return!!this.node.generator}}},b={};Object.keys(v).forEach(function(e){Object.defineProperty(b,e,{get:v[e]})}),t.exports={printNode:r,babelLiteralNode:p,asynchronize:function(e,t,n,r){try{return d(e,0,n,r)}catch(t){if(t instanceof SyntaxError){var i=e.origCode.substr(t.pos-t.loc.column);i=i.split("\n")[0],t.message+=" (nodent)\n"+i+"\n"+i.replace(/[\S ]/g,"-").substring(0,t.loc.column)+"^",t.stack=""}throw t}}}},{"./output":12,"./parser":13}],12:[function(e,t,n){"use strict";function r(e){if("NewExpression"===e.type&&e.arguments&&e.arguments.length)return 19;var t=h[e.type]||h[e.type+e.operator]||h[e.type+e.operator+(e.prefix?"prefix":"")];return void 0!==t?t:20}var i,s,o,a,u,c,l=e("source-map").SourceMapGenerator;if("".repeat)c=function(e,t){return t&&e?e.repeat(t):""};else{var p={};c=function(e,t){if(!t||!e)return"";var n=""+e+t;if(!p[n]){for(var r=[];t--;)r.push(e);p[n]=r.join("")}return p[n]}}var h={ExpressionStatement:-1,Identifier:21,Literal:21,BooleanLiteral:21,RegExpLiteral:21,NumericLiteral:21,StringLiteral:21,NullLiteral:21,ThisExpression:21,SuperExpression:21,ObjectExpression:21,ClassExpression:21,MemberExpression:19,CallExpression:18,NewExpression:18,ArrayExpression:17.5,FunctionExpression:17.5,FunctionDeclaration:17.5,ArrowFunctionExpression:17.5,"UpdateExpression++":17,"UpdateExpression--":17,"UpdateExpression++prefix":16,"UpdateExpression--prefix":16,UnaryExpression:16,AwaitExpression:16,"BinaryExpression**":15,"BinaryExpression*":15,"BinaryExpression/":15,"BinaryExpression%":15,"BinaryExpression+":14,"BinaryExpression-":14,"BinaryExpression<<":13,"BinaryExpression>>":13,"BinaryExpression>>>":13,"BinaryExpression<":12,"BinaryExpression<=":12,"BinaryExpression>":12,"BinaryExpression>=":12,BinaryExpressionin:12,BinaryExpressioninstanceof:12,"BinaryExpression==":11,"BinaryExpression===":11,"BinaryExpression!=":11,"BinaryExpression!==":11,"BinaryExpression&":10,"BinaryExpression^":9,"BinaryExpression|":8,"LogicalExpression&&":7,"LogicalExpression||":6,ConditionalExpression:5,AssignmentPattern:4,AssignmentExpression:4,yield:3,YieldExpression:3,SpreadElement:2,"comma-separated-list":1.5,SequenceExpression:1},f={type:"comma-separated-list"},d={out:function(e,t,n){var r=this[n||e.type];r?r.call(this,e,t):t.write(e,"/*"+e.type+"?*/ "+t.sourceAt(e.start,e.end))},expr:function(e,t,n,i){2===i||r(n)0)for(var r=n.length,i=0;i0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r0){t.write(null,s);for(var a=0,u=n.length;a0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i0){for(var s=0;s0)for(var r=0;r ")):(this.formatParameters(e.params,t),t.write(e,"=> ")),"ObjectExpression"===e.body.type||"SequenceExpression"===e.body.type?(t.write(null,"("),this.out(e.body,t,e.body.type),t.write(null,")")):this.out(e.body,t,e.body.type)},ThisExpression:function(e,t){t.write(e,"this")},Super:function(e,t){t.write(e,"super")},RestElement:s=function(e,t){t.write(e,"..."),this.out(e.argument,t,e.argument.type)},SpreadElement:s,YieldExpression:function(e,t){t.write(e,e.delegate?"yield*":"yield"),e.argument&&(t.write(null," "),this.expr(t,e,e.argument))},AwaitExpression:function(e,t){t.write(e,"await "),this.expr(t,e,e.argument)},TemplateLiteral:function(e,t){var n,r=e.quasis,i=e.expressions;t.write(e,"`");for(var s=0,o=i.length;s0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,f,s),((i+=1)=r)break;t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1))}t.write(null,"]")},ArrayPattern:a,ObjectExpression:function(e,t){var n,r=c(t.indent,t.indentLevel++),i=t.lineEnd,s=r+t.indent;if(t.write(e,"{"),e.properties.length>0){t.write(null,i);for(var o=e.properties,a=o.length,u=0;n=o[u],t.write(null,s),this.out(n,t,"Property"),++ut.wrapColumn&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1));t.write(null,i,r,"}")}else t.write(null,"}");t.indentLevel--},Property:function(e,t){e.method||"get"===e.kind||"set"===e.kind?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),t.write(null,": ")),this.expr(t,f,e.value))},ObjectPattern:function(e,t){if(t.write(e,"{"),e.properties.length>0)for(var n=e.properties,r=n.length,i=0;this.out(n[i],t,"Property"),++i0)for(var i=r.length,s=0;s1&&t.write(e," "),this.expr(t,e,e.argument,!0)):(this.expr(t,e,e.argument),t.write(e,e.operator))},UpdateExpression:function(e,t){e.prefix?(t.write(e,e.operator),this.out(e.argument,t,e.argument.type)):(this.out(e.argument,t,e.argument.type),t.write(e,e.operator))},BinaryExpression:o=function(e,t){var n=e.operator;"in"===n&&t.inForInit&&t.write(null,"("),this.expr(t,e,e.left),t.write(e," ",n," "),this.expr(t,e,e.right,"ArrowFunctionExpression"===e.right.type?2:0),"in"===n&&t.inForInit&&t.write(null,")")},LogicalExpression:o,AssignmentExpression:function(e,t){"ObjectPattern"===e.left.type&&t.write(null,"("),this.BinaryExpression(e,t),"ObjectPattern"===e.left.type&&t.write(null,")")},AssignmentPattern:function(e,t){this.expr(t,e,e.left),t.write(e," = "),this.expr(t,e,e.right)},ConditionalExpression:function(e,t){this.expr(t,e,e.test,!0),t.write(e," ? "),this.expr(t,e,e.consequent),t.write(null," : "),this.expr(t,e,e.alternate)},NewExpression:function(e,t){t.write(e,"new "),this.expr(t,e,e.callee,"CallExpression"===e.callee.type||"ObjectExpression"===e.callee.type?2:0),this.argumentList(e,t)},CallExpression:function(e,t){this.expr(t,e,e.callee,"ObjectExpression"===e.callee.type?2:0),this.argumentList(e,t)},MemberExpression:function(e,t){!("ObjectExpression"===e.object.type||e.object.type.match(/Literal$/)&&e.object.raw&&e.object.raw.match(/^[0-9]/))&&("ArrayExpression"===e.object.type||"CallExpression"===e.object.type||"NewExpression"===e.object.type||r(e)<=r(e.object))?this.out(e.object,t,e.object.type):(t.write(null,"("),this.out(e.object,t,e.object.type),t.write(null,")")),e.computed?(t.write(e,"["),this.out(e.property,t,e.property.type),t.write(null,"]")):(t.write(e,"."),this.out(e.property,t,e.property.type))},Identifier:function(e,t){t.write(e,e.name)},Literal:function(e,t){t.write(e,e.raw)},NullLiteral:function(e,t){t.write(e,"null")},BooleanLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},StringLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},RegExpLiteral:function(e,t){t.write(e,e.extra.raw||"/"+e.pattern+"/"+e.flags)},NumericLiteral:function(e,t){t.write(e,JSON.stringify(e.value))}};t.exports=function(e,t,n){var r="",i=[],s=(t=t||{}).map&&new l(t.map);s&&t.map.sourceContent&&s.setSourceContent(t.map.file,t.map.sourceContent);var o="",a=[],u=[],p={inForInit:0,lineLength:function(){return r.length},sourceAt:function(e,t){return n?n.substring(e,t):"/* Omitted Non-standard node */"},write:function(e){o=arguments[arguments.length-1];for(var n=1;n=0&&r({self:i,parent:e,field:u[c],index:!0}):l instanceof Object&&i===l&&r({self:i,parent:e,field:u[c]})}})},n),e}function s(t,n){var r=[],s={ecmaVersion:8,allowHashBang:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,locations:!0,onComment:r};if((!n||!n.noNodentExtensions||parseInt(o.version)<4)&&(c||(parseInt(o.version)<4&&console.warn("Nodent: Warning - noNodentExtensions option requires acorn >=v4.x. Extensions installed."),e("acorn-es7-plugin")(o),c=!0),s.plugins=s.plugins||{},s.plugins.asyncawait={asyncExits:!0,awaitAnywhere:!0}),n)for(var a in n)"noNodentExtensions"!==a&&(s[a]=n[a]);var u=o.parse(t,s);return i(u,function(e,t,n){for(t();r.length&&e.loc&&e.loc.start.line>=r[0].loc.start.line&&e.loc.end.line>=r[0].loc.end.line;)e.$comments=e.$comments||[],e.$comments.push(r.shift())}),u}var o=e("acorn"),a=e("acorn/dist/walk").make({AwaitExpression:function(e,t,n){n(e.argument,t,"Expression")},SwitchStatement:function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r=0)return t}else{var n=i.toSetString(e);if(s.call(this._set,n))return this._set[n]}throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e>>=5)>0&&(t|=32),n+=r.encode(t)}while(i>0);return n},n.decode=function(e,t,n){var i,s,o=e.length,a=0,u=0;do{if(t>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(s=r.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));i=!!(32&s),a+=(s&=31)<>1;return 1==(1&e)?-t:t}(a),n.rest=t}},{"./base64":16}],16:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e0?t-u>1?r(u,t,i,s,o,a):a==n.LEAST_UPPER_BOUND?t1?r(e,u,i,s,o,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,i,s){if(0===t.length)return-1;var o=r(-1,t.length,e,t,i,s||n.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(t[o],t[o-1],!0);)--o;return o}},{}],18:[function(e,t,n){function r(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=e("./util");r.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},r.prototype.add=function(e){!function(e,t){var n=e.generatedLine,r=t.generatedLine,s=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=s||i.compareByGeneratedPositionsInflated(e,t)<=0}(this._last,e)?(this._sorted=!1,this._array.push(e)):(this._last=e,this._array.push(e))},r.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=r},{"./util":23}],19:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t,n,s){if(n=0){var s=this._originalMappings[i];if(void 0===e.column)for(var o=s.originalLine;s&&s.originalLine===o;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var c=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==c;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return r},n.SourceMapConsumer=r,(i.prototype=Object.create(r.prototype)).consumer=r,i.fromSourceMap=function(e){var t=Object.create(i.prototype),n=t._names=c.fromArray(e._names.toArray(),!0),r=t._sources=c.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var o=e._mappings.toArray().slice(),u=t.__generatedMappings=[],l=t.__originalMappings=[],h=0,f=o.length;h1&&(n.source=y+i[1],y+=i[1],n.originalLine=f+i[2],f=n.originalLine,n.originalLine+=1,n.originalColumn=d+i[3],d=n.originalColumn,i.length>4&&(n.name=m+i[4],m+=i[4])),E.push(n),"number"==typeof n.originalLine&&w.push(n)}p(E,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=E,p(w,a.compareByOriginalPositions),this.__originalMappings=w},i.prototype._findMapping=function(e,t,n,r,i,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var s=a.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=a.join(this.sourceRoot,s)));var o=a.getArg(i,"name",null);return null!==o&&(o=this._names.at(o)),{source:s,line:a.getArg(i,"originalLine",null),column:a.getArg(i,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=a.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=a.getArg(e,"source");if(null!=this.sourceRoot&&(t=a.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var n={source:t=this._sources.indexOf(t),originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===n.source)return{line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=i,(o.prototype=Object.create(r.prototype)).constructor=r,o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){for(var e=[],t=0;t0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){for(var e,t,n,r,o=0,a=1,u=0,c=0,l=0,p=0,h="",f=this._mappings.toArray(),d=0,y=f.length;d0){if(!s.compareByGeneratedPositionsInflated(t,f[d-1]))continue;e+=","}e+=i.encode(t.generatedColumn-o),o=t.generatedColumn,null!=t.source&&(r=this._sources.indexOf(t.source),e+=i.encode(r-p),p=r,e+=i.encode(t.originalLine-1-c),c=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=i.encode(n-l),l=n)),h+=e}return h},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var n=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=r},{"./array-set":14,"./base64-vlq":15,"./mapping-list":18,"./util":23}],22:[function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[a]=!0,null!=r&&this.add(r)}var i=e("./source-map-generator").SourceMapGenerator,s=e("./util"),o=/(\r?\n)/,a="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)a.add(t);else{var i=n?s.join(n,e.source):e.source;a.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var a=new r,u=e.split(o),c=0,l=function(){function e(){return c=0;t--)this.prepend(e[t]);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n0){for(t=[],n=0;n=0;l--)"."===(o=u[l])?u.splice(l,1):".."===o?c++:c>0&&(""===o?(u.splice(l+1,c),c=0):(u.splice(l,2),c--));return""===(t=u.join("/"))&&(t=a?"/":"."),s?(s.path=t,i(s)):t}function o(e){return e}function a(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}n.getArg=function(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')};var c=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,l=/^data:.+\,.+$/;n.urlParse=r,n.urlGenerate=i,n.normalize=s,n.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var n=r(t),o=r(e);if(o&&(e=o.path||"/"),n&&!n.scheme)return o&&(n.scheme=o.scheme),i(n);if(n||t.match(l))return t;if(o&&!o.host&&!o.path)return o.host=t,i(o);var a="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return o?(o.path=a,i(o)):a},n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(c)},n.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if((e=e.slice(0,r)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)};var p=!("__proto__"in Object.create(null));n.toSetString=p?o:function(e){return a(e)?"$"+e:e},n.fromSetString=p?o:function(e){return a(e)?e.slice(1):e},n.compareByOriginalPositions=function(e,t,n){var r=e.source-t.source;return 0!==r?r:0!=(r=e.originalLine-t.originalLine)?r:0!=(r=e.originalColumn-t.originalColumn)||n?r:0!=(r=e.generatedColumn-t.generatedColumn)?r:0!=(r=e.generatedLine-t.generatedLine)?r:e.name-t.name},n.compareByGeneratedPositionsDeflated=function(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!=(r=e.generatedColumn-t.generatedColumn)||n?r:0!=(r=e.source-t.source)?r:0!=(r=e.originalLine-t.originalLine)?r:0!=(r=e.originalColumn-t.originalColumn)?r:e.name-t.name},n.compareByGeneratedPositionsInflated=function(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!=(n=e.generatedColumn-t.generatedColumn)?n:0!==(n=u(e.source,t.source))?n:0!=(n=e.originalLine-t.originalLine)?n:0!=(n=e.originalColumn-t.originalColumn)?n:u(e.name,t.name)}},{}],24:[function(e,t,n){n.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,n.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,n.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":20,"./lib/source-map-generator":21,"./lib/source-node":22}],25:[function(e,t,n){t.exports={_args:[[{raw:"nodent-compiler@>=3.1.5",scope:null,escapedName:"nodent-compiler",name:"nodent-compiler",rawSpec:">=3.1.5",spec:">=3.1.5",type:"range"},"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/nodent"]],_from:"nodent-compiler@>=3.1.5",_id:"nodent-compiler@3.1.5",_inCache:!0,_location:"/nodent-compiler",_nodeVersion:"8.9.1",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/nodent-compiler-3.1.5.tgz_1511792299537_0.15715787676163018"},_npmUser:{name:"matatbread",email:"npm@mailed.me.uk"},_npmVersion:"5.5.1",_phantomChildren:{},_requested:{raw:"nodent-compiler@>=3.1.5",scope:null,escapedName:"nodent-compiler",name:"nodent-compiler",rawSpec:">=3.1.5",spec:">=3.1.5",type:"range"},_requiredBy:["/nodent"],_resolved:"https://registry.npmjs.org/nodent-compiler/-/nodent-compiler-3.1.5.tgz",_shasum:"8c09289eacf7256bda89c2b88941681d5cccf80c",_shrinkwrap:null,_spec:"nodent-compiler@>=3.1.5",_where:"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/nodent",author:{name:"Mat At Bread",email:"nodent@mailed.me.uk"},bugs:{url:"https://github.com/MatAtBread/nodent/issues"},dependencies:{acorn:">=2.5.2","acorn-es7-plugin":">=1.1.6","source-map":"^0.5.6"},description:"NoDent - Asynchronous Javascript language extensions",devDependencies:{},directories:{},dist:{integrity:"sha512-Istg796un2lALiy/eFNnLbAEMovQqrtpVqXVY8PKs6ycsyBbK480D55misJBQ1QxvstcJ7Hk9xbSVkV8lIi+tg==",shasum:"8c09289eacf7256bda89c2b88941681d5cccf80c",tarball:"https://registry.npmjs.org/nodent-compiler/-/nodent-compiler-3.1.5.tgz"},engines:"node >= 0.10.0",gitHead:"93054f019902e2b107e7be681836273f35a02614",homepage:"https://github.com/MatAtBread/nodent-compiler#readme",keywords:["Javascript","ES7","async","await","language","extensions","Node","callback","generator","Promise","asynchronous"],license:"BSD-2-Clause",main:"compiler.js",maintainers:[{name:"matatbread",email:"npm@mailed.me.uk"}],name:"nodent-compiler",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+https://github.com/MatAtBread/nodent-compiler.git"},scripts:{test:"node tests/basic.js # Please install 'nodent' and test the compiler fully from there."},version:"3.1.5"}},{}],26:[function(e,t,n){"use strict";function r(e,t){if(Function.prototype.$asyncspawn||Object.defineProperty(Function.prototype,"$asyncspawn",{value:r,enumerable:!1,configurable:!0,writable:!0}),this instanceof Function){var n=this;return new e(function(e,r){function i(t,n){var o;try{if((o=t.call(s,n)).done){if(o.value!==e){if(o.value&&o.value===o.value.then)return o.value(e,r);e&&e(o.value),e=null}return}o.value.then?o.value.then(function(e){i(s.next,e)},function(e){i(s.throw,e)}):i(s.next,o.value)}catch(e){return r&&r(e),void(r=null)}}var s=n.call(t,e,r);i(s.next)})}}var i=function(e,t){for(var n=t.toString(),r="return "+n,i=n.match(/.*\(([^)]*)\)/)[1],s=/['"]!!!([^'"]*)['"]/g,o=[];;){var a=s.exec(r);if(!a)break;o.push(a)}return o.reverse().forEach(function(t){r=r.slice(0,t.index)+e[t[1]]+r.substr(t.index+t[0].length)}),r=r.replace(/\/\*[^*]*\*\//g," ").replace(/\s+/g," "),new Function(i,r)()}({zousan:e("./zousan").toString(),thenable:e("./thenableFactory").toString()},function e(t,n){function r(){return i.apply(t,arguments)}Function.prototype.$asyncbind||Object.defineProperty(Function.prototype,"$asyncbind",{value:e,enumerable:!1,configurable:!0,writable:!0}),e.trampoline||(e.trampoline=function(e,t,n,r,i){return function s(o){for(;o;){if(o.then)return o=o.then(s,r),i?void 0:o;try{if(o.pop){if(o.length)return o.pop()?t.call(e):o;o=n}else o=o.call(e)}catch(e){return r(e)}}}}),e.LazyThenable||(e.LazyThenable="!!!thenable"(),e.EagerThenable=e.Thenable=(e.EagerThenableFactory="!!!zousan")());var i=this;switch(n){case!0:return new e.Thenable(r);case 0:return new e.LazyThenable(r);case void 0:return r.then=r,r;default:return function(){try{return i.apply(t,arguments)}catch(e){return n(e)}}}});i(),r(),t.exports={$asyncbind:i,$asyncspawn:r}},{"./thenableFactory":27,"./zousan":28}],27:[function(e,t,n){t.exports=function(){function e(e){return e&&e instanceof Object&&"function"==typeof e.then}function t(n,r,i){try{var s=i?i(r):r;if(n===s)return n.reject(new TypeError("Promise resolution loop"));e(s)?s.then(function(e){t(n,e)},function(e){n.reject(e)}):n.resolve(s)}catch(e){n.reject(e)}}function n(){}function r(e){}function i(r,i){var s=new n;try{this._resolver(function(n){return e(n)?n.then(r,i):t(s,n,r)},function(e){t(s,e,i)})}catch(e){t(s,e,i)}return s}function s(e){this._resolver=e,this.then=i}return n.prototype={resolve:r,reject:r,then:function(e,t){this.resolve=e,this.reject=t}},s.resolve=function(e){return s.isThenable(e)?e:{then:function(t){return t(e)}}},s.isThenable=e,s}},{}],28:[function(e,t,n){(function(e){"use strict";t.exports=function(t){function n(e){if(e){var t=this;e(function(e){t.resolve(e)},function(e){t.reject(e)})}}function r(e,t){if("function"==typeof e.y)try{var n=e.y.call(void 0,t);e.p.resolve(n)}catch(t){e.p.reject(t)}else e.p.resolve(t)}function i(e,t){if("function"==typeof e.n)try{var n=e.n.call(void 0,t);e.p.resolve(n)}catch(t){e.p.reject(t)}else e.p.reject(t)}t=t||"object"==typeof e&&e.nextTick||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,0)};var s=function(){function e(){for(;n.length-r;){try{n[r]()}catch(e){}n[r++]=void 0,r===i&&(n.splice(0,i),r=0)}}var n=[],r=0,i=1024;return function(i){n.push(i),n.length-r==1&&t(e)}}();return n.prototype={resolve:function(e){if(void 0===this.state){if(e===this)return this.reject(new TypeError("Attempt to resolve promise with self"));var t=this;if(e&&("function"==typeof e||"object"==typeof e))try{var n=0,i=e.then;if("function"==typeof i)return void i.call(e,function(e){n++||t.resolve(e)},function(e){n++||t.reject(e)})}catch(e){return void(n||this.reject(e))}this.state=r,this.v=e,t.c&&s(function(){for(var n=0,i=t.c.length;n]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!i;s--){var o=s>=0?arguments[s]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),s="/"===o(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"))||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),s=r(t.split("/")),o=Math.min(i.length,s.length),a=o,u=0;u1)for(var n=1;n= 8.8",https:!0,_http_server:">= 0.11",_linklist:"< 8",module:!0,net:!0,os:!0,path:!0,perf_hooks:">= 8.5",process:">= 1",punycode:!0,querystring:!0,readline:!0,repl:!0,stream:!0,string_decoder:!0,sys:!0,timers:!0,tls:!0,tty:!0,url:!0,util:!0,v8:">= 1",vm:!0,zlib:!0}},{}],37:[function(e,t,n){(function(n){function r(e){if(!0===e)return!0;for(var t=e.split(" "),n=t[0],r=t[1].split("."),s=0;s<3;++s){var o=Number(i[s]||0),a=Number(r[s]||0);if(o!==a)return"<"===n?o="===n&&o>=a}return!1}var i=n.versions&&n.versions.node&&n.versions.node.split(".")||[],s=e("./core.json"),o={};for(var a in s)Object.prototype.hasOwnProperty.call(s,a)&&(o[a]=r(s[a]));t.exports=o}).call(this,e("_process"))},{"./core.json":36,_process:32}],38:[function(e,t,n){var r=e("path"),i=e("fs"),s=r.parse||e("path-parse");t.exports=function(e,t){var n=t&&t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"],o=r.resolve(e);if(t&&!1===t.preserveSymlinks)try{o=i.realpathSync(o)}catch(e){if("ENOENT"!==e.code)throw e}var a="/";/^([A-Za-z]:)/.test(o)?a="":/^\\\\/.test(o)&&(a="\\\\");for(var u=[o],c=s(o);c.dir!==u[u.length-1];)u.push(c.dir),c=s(c.dir);var l=u.reduce(function(e,t){return e.concat(n.map(function(e){return r.join(a,t,e)}))},[]);return t&&t.paths?l.concat(t.paths):l}},{fs:7,path:30,"path-parse":31}],39:[function(e,t,n){var r=e("./core"),i=e("fs"),s=e("path"),o=e("./caller.js"),a=e("./node-modules-paths.js");t.exports=function(e,t){function n(e){if(l(e))return e;for(var t=0;t"))}return Object.keys(hostOptions).forEach(function(k){"host"===parseOpts[k]&&(parseOpts[k]=function(){try{return eval(hostOptions[k]),!0}catch(e){return!1}}())}),parseOpts.promises||parseOpts.es7||parseOpts.generators||parseOpts.engine?((parseOpts.promises||parseOpts.es7)&&parseOpts.generators&&(log("No valid 'use nodent' directive, assumed -es7 mode"),parseOpts=optionSets.es7),(parseOpts.generators||parseOpts.engine)&&(parseOpts.promises=!0),parseOpts.promises&&(parseOpts.es7=!0),parseOpts):null}function stripBOM(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),"#!"===e.substring(0,2)&&(e="//"+e),e}function compileNodentedFile(e,t){return t=t||e.log,function(n,r,i){var s=stripBOM(fs.readFileSync(r,"utf8")),o=e.parse(s,r,i);i=i||parseCompilerOptions(o.ast,t,r),e.asynchronize(o,void 0,i,t),e.prettyPrint(o,i),n._compile(o.code,o.filename)}}function asyncify(e){return e=e||Thenable,function(t,n,r){if(Array.isArray(n)){var i=n;n=function(e,t){return i.indexOf(e)>=0}}else n=n||function(e,t){return!(e.match(/Sync$/)&&e.replace(/Sync$/,"")in t)};r||(r="");var s=Object.create(t);for(var o in s)!function(){var i=o;try{"function"!=typeof t[i]||s[i+r]&&s[i+r].isAsync||!n(i,s)||(s[i+r]=function(){var n=Array.prototype.slice.call(arguments);return new e(function(e,r){var s=function(t,n){if(t)return r(t);switch(arguments.length){case 0:return e();case 2:return e(n);default:return e(Array.prototype.slice.call(arguments,1))}};n.length>t[i].length?n.push(s):n[t[i].length-1]=s;t[i].apply(t,n)})},s[i+r].isAsync=!0)}catch(e){}}();return s.super=t,s}}function generateRequestHandler(e,t,n){var r={},i=this;t||(t=/\.njs$/),n?n.compiler||(n.compiler={}):n={compiler:{}};var s=copyObj([NodentCompiler.initialCodeGenOpts,n.compiler]);return function(o,a,u){function c(e){a.statusCode=500,a.write(e.toString()),a.end()}if(r[o.url])return a.setHeader("Content-Type",r[o.url].contentType),n.setHeaders&&n.setHeaders(a),a.write(r[o.url].output),void a.end();if(!(o.url.match(t)||n.htmlScriptRegex&&o.url.match(n.htmlScriptRegex)))return u&&u();var l=e+o.url;if(n.extensions&&!fs.existsSync(l))for(var p=0;p=0?this.covers[n]=require(e):this.covers[n]=require(__dirname+"/covers/"+e)),this.covers[n](this,t)}function prepareMappedStackTrace(e,t){return e+t.map(function(e){var t=e.getFileName();if(t&&NodentCompiler.prototype.smCache[t]){var n=NodentCompiler.prototype.smCache[t].smc.originalPositionFor({line:e.getLineNumber(),column:e.getColumnNumber()});if(n&&n.line){var r=e.toString();return"\n at "+r.substring(0,r.length-1)+" => ā€¦"+n.source+":"+n.line+":"+n.column+(e.getFunctionName()?")":"")}}return"\n at "+e}).join("")}function setGlobalEnvironment(e){var t={};t[defaultCodeGenOpts.$asyncbind]={value:$asyncbind,writable:!0,enumerable:!1,configurable:!0},t[defaultCodeGenOpts.$asyncspawn]={value:$asyncspawn,writable:!0,enumerable:!1,configurable:!0};try{Object.defineProperties(Function.prototype,t)}catch(t){e.log("Function prototypes already assigned: ",t.messsage)}defaultCodeGenOpts[defaultCodeGenOpts.$error]in global||(global[defaultCodeGenOpts[defaultCodeGenOpts.$error]]=globalErrorHandler),e.augmentObject&&Object.defineProperties(Object.prototype,{asyncify:{value:function(e,t,n){return asyncify(e)(this,t,n)},writable:!0,configurable:!0},isThenable:{value:function(){return Thenable.isThenable(this)},writable:!0,configurable:!0}}),Object[defaultCodeGenOpts.$makeThenable]=Thenable.resolve}function initialize(e){function t(n,r){if(!r.match(/nodent\/nodent\.js$/)){if(r.match(/node_modules\/nodent\/.*\.js$/))return stdJSLoader(n,r);for(var o=0;ot[n])return 1}return 0}(u.version,NodentCompiler.prototype.version)<0&&(u.originalNodentLoader=n.exports,n.exports=function(){var t=require.extensions[".js"],n=u.originalNodentLoader.apply(this,arguments);return u.jsCompiler=require.extensions[".js"],require.extensions[".js"]=t,setGlobalEnvironment(e),n},Object.keys(u.originalNodentLoader).forEach(function(e){n.exports[e]=u.originalNodentLoader[e]}),i.push(u),i=i.sort(function(e,t){return t.path.length-e.path.length})))}function n(t){if(Array.isArray(t))return t.forEach(n);if(require.extensions[t]){Object.keys(e).filter(function(t){return compiler[t]!=e[t]}).length&&e.log("File extension "+t+" already configured for async/await compilation.")}require.extensions[t]=compileNodentedFile(compiler,e.log)}if(e){for(var r in e)if("use"!==r&&!config.hasOwnProperty(r))throw new Error("NoDent: unknown option: "+r+"="+JSON.stringify(e[r]))}else e={};compiler?compiler.setOptions(e):(Object.keys(config).forEach(function(t){t in e||(e[t]=config[t])}),compiler=new NodentCompiler(e)),e.dontMapStackTraces||(Error.prepareStackTrace=prepareMappedStackTrace),setGlobalEnvironment(e);var i=[];if(!e.dontInstallRequireHook){if(!stdJSLoader){stdJSLoader=require.extensions[".js"];var s=compileNodentedFile(compiler,e.log);require.extensions[".js"]=t}e.extension&&n(e.extension)}return e.use&&(Array.isArray(e.use)?(e.log("Warning: nodent({use:[...]}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),e.use.length&&e.use.forEach(function(e){compiler[e]=compiler.require(e)})):(e.log("Warning: nodent({use:{...}}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),Object.keys(e.use).forEach(function(t){compiler[t]=compiler.require(t,e.use[t])}))),compiler}function runFromCLI(){function e(e,n){try{var s,o;if(r.fromast){if(e=JSON.parse(e),s={origCode:"",filename:t,ast:e},!(o=parseCompilerOptions(e,i.log))){var a=r.use?'"use nodent-'+r.use+'";':'"use nodent";';o=parseCompilerOptions(a,i.log),console.warn("/* "+t+": No 'use nodent*' directive, assumed "+a+" */")}}else(o=parseCompilerOptions(r.use?'"use nodent-'+r.use+'";':e,i.log))||(o=parseCompilerOptions('"use nodent";',i.log),r.dest||console.warn("/* "+t+": 'use nodent*' directive missing/ignored, assumed 'use nodent;' */")),s=i.parse(e,t,o);if(r.parseast||r.pretty||i.asynchronize(s,void 0,o,i.log),i.prettyPrint(s,o),r.out||r.pretty||r.dest){if(r.dest&&!n)throw new Error("Can't write unknown file to "+r.dest);var u="";r.runtime&&(u+="Function.prototype.$asyncbind = "+Function.prototype.$asyncbind.toString()+";\n",u+="global.$error = global.$error || "+global.$error.toString()+";\n"),u+=s.code,n&&r.dest?(fs.writeFileSync(r.dest+n,u),console.log("Compiled",r.dest+n)):console.log(u)}(r.minast||r.parseast)&&console.log(JSON.stringify(s.ast,function(e,t){return"$"===e[0]||e.match(/^(start|end|loc)$/)?void 0:t},2,null)),r.ast&&console.log(JSON.stringify(s.ast,function(e,t){return"$"===e[0]?void 0:t},0)),r.exec&&new Function(s.code)()}catch(e){console.error(e)}}var t,n=require("path"),r=(process.env.NODENT_OPTS&&JSON.parse(process.env.NODENT_OPTS),function(e){for(var t=[],n=e||2;n0",engine:"(async ()=>0)",noRuntime:"Promise"};NodentCompiler.prototype.Thenable=Thenable,NodentCompiler.prototype.EagerThenable=$asyncbind.EagerThenableFactory,NodentCompiler.prototype.asyncify=asyncify,NodentCompiler.prototype.require=requireCover,NodentCompiler.prototype.generateRequestHandler=generateRequestHandler,NodentCompiler.prototype.$asyncspawn=$asyncspawn,NodentCompiler.prototype.$asyncbind=$asyncbind,NodentCompiler.prototype.parseCompilerOptions=parseCompilerOptions,$asyncbind.call($asyncbind);var compiler;initialize.setDefaultCompileOptions=function(e,t){return e&&Object.keys(e).forEach(function(t){if(!(t in defaultCodeGenOpts))throw new Error("NoDent: unknown compiler option: "+t);defaultCodeGenOpts[t]=e[t]}),t&&Object.keys(t).forEach(function(e){if(!(e in t))throw new Error("NoDent: unknown configuration option: "+e);config[e]=t[e]}),initialize},initialize.setCompileOptions=function(e,t){return optionSet[e]=optionSet[e]||copyObj([defaultCodeGenOpts]),t&&Object.keys(t).forEach(function(n){if(!(n in defaultCodeGenOpts))throw new Error("NoDent: unknown compiler option: "+n);optionSet[e][n]=t[n]}),initialize},initialize.asyncify=asyncify,initialize.Thenable=$asyncbind.Thenable,initialize.EagerThenable=$asyncbind.EagerThenableFactory,module.exports=initialize,require.main===module&&process.argv.length>=3&&runFromCLI()}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},"/node_modules/nodent")},{"./htmlScriptParser":29,_process:32,fs:7,"nodent-compiler":10,"nodent-runtime":26,path:30,resolve:33}]},{},[]); \ No newline at end of file diff --git a/deps/npm/node_modules/ajv/dist/regenerator.min.js b/deps/npm/node_modules/ajv/dist/regenerator.min.js new file mode 100644 index 0000000000..ef3b8bed54 --- /dev/null +++ b/deps/npm/node_modules/ajv/dist/regenerator.min.js @@ -0,0 +1,2 @@ +/* regenerator 0.12.2: Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5) */ +require=function e(t,r,n){function i(a,o){if(!r[a]){if(!t[a]){var u="function"==typeof require&&require;if(!o&&u)return u(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=r[a]={exports:{}};t[a][0].call(c.exports,function(e){var r=t[a][1][e];return i(r||e)},c,c.exports,e,t,r,n)}return r[a].exports}for(var s="function"==typeof require&&require,a=0;a=0;o--)if(u[o]!==l[o])return!1;for(o=u.length-1;o>=0;o--)if(a=u[o],!h(e[a],t[a],r,n))return!1;return!0}(e,t,r,o))}return r?e===t:e==t}function f(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function d(e,t,r){h(e,t,!0)&&c(e,t,r,"notDeepStrictEqual",d)}function m(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function y(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&c(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&g.isError(i),o=!e&&i&&!r;if((a&&s&&m(i,r)||o)&&c(i,r,"Got unwanted exception"+n),e&&i&&r&&!m(i,r)||!e&&i)throw i}var g=e("util/"),b=Object.prototype.hasOwnProperty,v=Array.prototype.slice,x="foo"===function(){}.name,E=t.exports=p,A=/\s*function\s+([^\(\s]*)\s*/;E.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return u(l(e.actual),128)+" "+e.operator+" "+u(l(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||c;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=o(t),s=n.indexOf("\n"+i);if(s>=0){var a=n.indexOf("\n",s+1);n=n.substring(a+1)}this.stack=n}}},g.inherits(E.AssertionError,Error),E.fail=c,E.ok=p,E.equal=function(e,t,r){e!=t&&c(e,t,r,"==",E.equal)},E.notEqual=function(e,t,r){e==t&&c(e,t,r,"!=",E.notEqual)},E.deepEqual=function(e,t,r){h(e,t,!1)||c(e,t,r,"deepEqual",E.deepEqual)},E.deepStrictEqual=function(e,t,r){h(e,t,!0)||c(e,t,r,"deepStrictEqual",E.deepStrictEqual)},E.notDeepEqual=function(e,t,r){h(e,t,!1)&&c(e,t,r,"notDeepEqual",E.notDeepEqual)},E.notDeepStrictEqual=d,E.strictEqual=function(e,t,r){e!==t&&c(e,t,r,"===",E.strictEqual)},E.notStrictEqual=function(e,t,r){e===t&&c(e,t,r,"!==",E.notStrictEqual)},E.throws=function(e,t,r){y(!0,e,t,r)},E.doesNotThrow=function(e,t,r){y(!1,e,t,r)},E.ifError=function(e){if(e)throw e};var D=Object.keys||function(e){var t=[];for(var r in e)b.call(e,r)&&t.push(r);return t}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"util/":613}],2:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=t.use(e("../lib/shared")).defaults,i=r.Type.def,s=r.Type.or;i("Noop").bases("Node").build(),i("DoExpression").bases("Expression").build("body").field("body",[i("Statement")]),i("Super").bases("Expression").build(),i("BindExpression").bases("Expression").build("object","callee").field("object",s(i("Expression"),null)).field("callee",i("Expression")),i("Decorator").bases("Node").build("expression").field("expression",i("Expression")),i("Property").field("decorators",s([i("Decorator")],null),n.null),i("MethodDefinition").field("decorators",s([i("Decorator")],null),n.null),i("MetaProperty").bases("Expression").build("meta","property").field("meta",i("Identifier")).field("property",i("Identifier")),i("ParenthesizedExpression").bases("Expression").build("expression").field("expression",i("Expression")),i("ImportSpecifier").bases("ModuleSpecifier").build("imported","local").field("imported",i("Identifier")),i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("local"),i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("local"),i("ExportDefaultDeclaration").bases("Declaration").build("declaration").field("declaration",s(i("Declaration"),i("Expression"))),i("ExportNamedDeclaration").bases("Declaration").build("declaration","specifiers","source").field("declaration",s(i("Declaration"),null)).field("specifiers",[i("ExportSpecifier")],n.emptyArray).field("source",s(i("Literal"),null),n.null),i("ExportSpecifier").bases("ModuleSpecifier").build("local","exported").field("exported",i("Identifier")),i("ExportNamespaceSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier")),i("ExportDefaultSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier")),i("ExportAllDeclaration").bases("Declaration").build("exported","source").field("exported",s(i("Identifier"),null)).field("source",i("Literal")),i("CommentBlock").bases("Comment").build("value","leading","trailing"),i("CommentLine").bases("Comment").build("value","leading","trailing")}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],3:[function(e,t,r){t.exports=function(t){t.use(e("./babel")),t.use(e("./flow"));var r=t.use(e("../lib/types")),n=t.use(e("../lib/shared")).defaults,i=r.Type.def,s=r.Type.or;i("Directive").bases("Node").build("value").field("value",i("DirectiveLiteral")),i("DirectiveLiteral").bases("Node","Expression").build("value").field("value",String,n["use strict"]),i("BlockStatement").bases("Statement").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],n.emptyArray),i("Program").bases("Node").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],n.emptyArray),i("StringLiteral").bases("Literal").build("value").field("value",String),i("NumericLiteral").bases("Literal").build("value").field("value",Number),i("NullLiteral").bases("Literal").build(),i("BooleanLiteral").bases("Literal").build("value").field("value",Boolean),i("RegExpLiteral").bases("Literal").build("pattern","flags").field("pattern",String).field("flags",String);var a=s(i("Property"),i("ObjectMethod"),i("ObjectProperty"),i("SpreadProperty"));i("ObjectExpression").bases("Expression").build("properties").field("properties",[a]),i("ObjectMethod").bases("Node","Function").build("kind","key","params","body","computed").field("kind",s("method","get","set")).field("key",s(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,n.false).field("generator",Boolean,n.false).field("async",Boolean,n.false).field("decorators",s([i("Decorator")],null),n.null),i("ObjectProperty").bases("Node").build("key","value").field("key",s(i("Literal"),i("Identifier"),i("Expression"))).field("value",s(i("Expression"),i("Pattern"))).field("computed",Boolean,n.false);var o=s(i("MethodDefinition"),i("VariableDeclarator"),i("ClassPropertyDefinition"),i("ClassProperty"),i("ClassMethod"));i("ClassBody").bases("Declaration").build("body").field("body",[o]),i("ClassMethod").bases("Declaration","Function").build("kind","key","params","body","computed","static").field("kind",s("get","set","method","constructor")).field("key",s(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,n.false).field("static",Boolean,n.false).field("generator",Boolean,n.false).field("async",Boolean,n.false).field("decorators",s([i("Decorator")],null),n.null);var u=s(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"),i("ObjectProperty"),i("RestProperty"));i("ObjectPattern").bases("Pattern").build("properties").field("properties",[u]).field("decorators",s([i("Decorator")],null),n.null),i("SpreadProperty").bases("Node").build("argument").field("argument",i("Expression")),i("RestProperty").bases("Node").build("argument").field("argument",i("Expression")),i("ForAwaitStatement").bases("Statement").build("left","right","body").field("left",s(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement")),i("Import").bases("Expression").build()}},{"../lib/shared":18,"../lib/types":19,"./babel":2,"./flow":9}],4:[function(e,t,r){t.exports=function(t){var r=t.use(e("../lib/types")).Type,n=r.def,i=r.or,s=t.use(e("../lib/shared")),a=s.defaults,o=s.geq;n("Printable").field("loc",i(n("SourceLocation"),null),a.null,!0),n("Node").bases("Printable").field("type",String).field("comments",i([n("Comment")],null),a.null,!0),n("SourceLocation").build("start","end","source").field("start",n("Position")).field("end",n("Position")).field("source",i(String,null),a.null),n("Position").build("line","column").field("line",o(1)).field("column",o(0)),n("File").bases("Node").build("program","name").field("program",n("Program")).field("name",i(String,null),a.null),n("Program").bases("Node").build("body").field("body",[n("Statement")]),n("Function").bases("Node").field("id",i(n("Identifier"),null),a.null).field("params",[n("Pattern")]).field("body",n("BlockStatement")),n("Statement").bases("Node"),n("EmptyStatement").bases("Statement").build(),n("BlockStatement").bases("Statement").build("body").field("body",[n("Statement")]),n("ExpressionStatement").bases("Statement").build("expression").field("expression",n("Expression")),n("IfStatement").bases("Statement").build("test","consequent","alternate").field("test",n("Expression")).field("consequent",n("Statement")).field("alternate",i(n("Statement"),null),a.null),n("LabeledStatement").bases("Statement").build("label","body").field("label",n("Identifier")).field("body",n("Statement")),n("BreakStatement").bases("Statement").build("label").field("label",i(n("Identifier"),null),a.null),n("ContinueStatement").bases("Statement").build("label").field("label",i(n("Identifier"),null),a.null),n("WithStatement").bases("Statement").build("object","body").field("object",n("Expression")).field("body",n("Statement")),n("SwitchStatement").bases("Statement").build("discriminant","cases","lexical").field("discriminant",n("Expression")).field("cases",[n("SwitchCase")]).field("lexical",Boolean,a.false),n("ReturnStatement").bases("Statement").build("argument").field("argument",i(n("Expression"),null)),n("ThrowStatement").bases("Statement").build("argument").field("argument",n("Expression")),n("TryStatement").bases("Statement").build("block","handler","finalizer").field("block",n("BlockStatement")).field("handler",i(n("CatchClause"),null),function(){return this.handlers&&this.handlers[0]||null}).field("handlers",[n("CatchClause")],function(){return this.handler?[this.handler]:[]},!0).field("guardedHandlers",[n("CatchClause")],a.emptyArray).field("finalizer",i(n("BlockStatement"),null),a.null),n("CatchClause").bases("Node").build("param","guard","body").field("param",n("Pattern")).field("guard",i(n("Expression"),null),a.null).field("body",n("BlockStatement")),n("WhileStatement").bases("Statement").build("test","body").field("test",n("Expression")).field("body",n("Statement")),n("DoWhileStatement").bases("Statement").build("body","test").field("body",n("Statement")).field("test",n("Expression")),n("ForStatement").bases("Statement").build("init","test","update","body").field("init",i(n("VariableDeclaration"),n("Expression"),null)).field("test",i(n("Expression"),null)).field("update",i(n("Expression"),null)).field("body",n("Statement")),n("ForInStatement").bases("Statement").build("left","right","body").field("left",i(n("VariableDeclaration"),n("Expression"))).field("right",n("Expression")).field("body",n("Statement")),n("DebuggerStatement").bases("Statement").build(),n("Declaration").bases("Statement"),n("FunctionDeclaration").bases("Function","Declaration").build("id","params","body").field("id",n("Identifier")),n("FunctionExpression").bases("Function","Expression").build("id","params","body"),n("VariableDeclaration").bases("Declaration").build("kind","declarations").field("kind",i("var","let","const")).field("declarations",[n("VariableDeclarator")]),n("VariableDeclarator").bases("Node").build("id","init").field("id",n("Pattern")).field("init",i(n("Expression"),null)),n("Expression").bases("Node","Pattern"),n("ThisExpression").bases("Expression").build(),n("ArrayExpression").bases("Expression").build("elements").field("elements",[i(n("Expression"),null)]),n("ObjectExpression").bases("Expression").build("properties").field("properties",[n("Property")]),n("Property").bases("Node").build("kind","key","value").field("kind",i("init","get","set")).field("key",i(n("Literal"),n("Identifier"))).field("value",n("Expression")),n("SequenceExpression").bases("Expression").build("expressions").field("expressions",[n("Expression")]);var u=i("-","+","!","~","typeof","void","delete");n("UnaryExpression").bases("Expression").build("operator","argument","prefix").field("operator",u).field("argument",n("Expression")).field("prefix",Boolean,a.true);var l=i("==","!=","===","!==","<","<=",">",">=","<<",">>",">>>","+","-","*","/","%","&","|","^","in","instanceof","..");n("BinaryExpression").bases("Expression").build("operator","left","right").field("operator",l).field("left",n("Expression")).field("right",n("Expression"));var c=i("=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","^=","&=");n("AssignmentExpression").bases("Expression").build("operator","left","right").field("operator",c).field("left",n("Pattern")).field("right",n("Expression"));var p=i("++","--");n("UpdateExpression").bases("Expression").build("operator","argument","prefix").field("operator",p).field("argument",n("Expression")).field("prefix",Boolean);var h=i("||","&&");n("LogicalExpression").bases("Expression").build("operator","left","right").field("operator",h).field("left",n("Expression")).field("right",n("Expression")),n("ConditionalExpression").bases("Expression").build("test","consequent","alternate").field("test",n("Expression")).field("consequent",n("Expression")).field("alternate",n("Expression")),n("NewExpression").bases("Expression").build("callee","arguments").field("callee",n("Expression")).field("arguments",[n("Expression")]),n("CallExpression").bases("Expression").build("callee","arguments").field("callee",n("Expression")).field("arguments",[n("Expression")]),n("MemberExpression").bases("Expression").build("object","property","computed").field("object",n("Expression")).field("property",i(n("Identifier"),n("Expression"))).field("computed",Boolean,function(){var e=this.property.type;return"Literal"===e||"MemberExpression"===e||"BinaryExpression"===e}),n("Pattern").bases("Node"),n("SwitchCase").bases("Node").build("test","consequent").field("test",i(n("Expression"),null)).field("consequent",[n("Statement")]),n("Identifier").bases("Node","Expression","Pattern").build("name").field("name",String),n("Literal").bases("Node","Expression").build("value").field("value",i(String,Boolean,null,Number,RegExp)).field("regex",i({pattern:String,flags:String},null),function(){if(this.value instanceof RegExp){var e="";return this.value.ignoreCase&&(e+="i"),this.value.multiline&&(e+="m"),this.value.global&&(e+="g"),{pattern:this.value.source,flags:e}}return null}),n("Comment").bases("Printable").field("value",String).field("leading",Boolean,a.true).field("trailing",Boolean,a.false)}},{"../lib/shared":18,"../lib/types":19}],5:[function(e,t,r){t.exports=function(t){t.use(e("./core"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or;n("XMLDefaultDeclaration").bases("Declaration").field("namespace",n("Expression")),n("XMLAnyName").bases("Expression"),n("XMLQualifiedIdentifier").bases("Expression").field("left",i(n("Identifier"),n("XMLAnyName"))).field("right",i(n("Identifier"),n("Expression"))).field("computed",Boolean),n("XMLFunctionQualifiedIdentifier").bases("Expression").field("right",i(n("Identifier"),n("Expression"))).field("computed",Boolean),n("XMLAttributeSelector").bases("Expression").field("attribute",n("Expression")),n("XMLFilterExpression").bases("Expression").field("left",n("Expression")).field("right",n("Expression")),n("XMLElement").bases("XML","Expression").field("contents",[n("XML")]),n("XMLList").bases("XML","Expression").field("contents",[n("XML")]),n("XML").bases("Node"),n("XMLEscape").bases("XML").field("expression",n("Expression")),n("XMLText").bases("XML").field("text",String),n("XMLStartTag").bases("XML").field("contents",[n("XML")]),n("XMLEndTag").bases("XML").field("contents",[n("XML")]),n("XMLPointTag").bases("XML").field("contents",[n("XML")]),n("XMLName").bases("XML").field("contents",i(String,[n("XML")])),n("XMLAttribute").bases("XML").field("value",String),n("XMLCdata").bases("XML").field("contents",String),n("XMLComment").bases("XML").field("contents",String),n("XMLProcessingInstruction").bases("XML").field("target",String).field("contents",i(String,null))}},{"../lib/types":19,"./core":4}],6:[function(e,t,r){t.exports=function(t){t.use(e("./core"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")).defaults;n("Function").field("generator",Boolean,s.false).field("expression",Boolean,s.false).field("defaults",[i(n("Expression"),null)],s.emptyArray).field("rest",i(n("Identifier"),null),s.null),n("RestElement").bases("Pattern").build("argument").field("argument",n("Pattern")),n("SpreadElementPattern").bases("Pattern").build("argument").field("argument",n("Pattern")),n("FunctionDeclaration").build("id","params","body","generator","expression"),n("FunctionExpression").build("id","params","body","generator","expression"),n("ArrowFunctionExpression").bases("Function","Expression").build("params","body","expression").field("id",null,s.null).field("body",i(n("BlockStatement"),n("Expression"))).field("generator",!1,s.false),n("YieldExpression").bases("Expression").build("argument","delegate").field("argument",i(n("Expression"),null)).field("delegate",Boolean,s.false),n("GeneratorExpression").bases("Expression").build("body","blocks","filter").field("body",n("Expression")).field("blocks",[n("ComprehensionBlock")]).field("filter",i(n("Expression"),null)),n("ComprehensionExpression").bases("Expression").build("body","blocks","filter").field("body",n("Expression")).field("blocks",[n("ComprehensionBlock")]).field("filter",i(n("Expression"),null)),n("ComprehensionBlock").bases("Node").build("left","right","each").field("left",n("Pattern")).field("right",n("Expression")).field("each",Boolean),n("Property").field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("value",i(n("Expression"),n("Pattern"))).field("method",Boolean,s.false).field("shorthand",Boolean,s.false).field("computed",Boolean,s.false),n("PropertyPattern").bases("Pattern").build("key","pattern").field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("pattern",n("Pattern")).field("computed",Boolean,s.false),n("ObjectPattern").bases("Pattern").build("properties").field("properties",[i(n("PropertyPattern"),n("Property"))]),n("ArrayPattern").bases("Pattern").build("elements").field("elements",[i(n("Pattern"),null)]),n("MethodDefinition").bases("Declaration").build("kind","key","value","static").field("kind",i("constructor","method","get","set")).field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("value",n("Function")).field("computed",Boolean,s.false).field("static",Boolean,s.false),n("SpreadElement").bases("Node").build("argument").field("argument",n("Expression")),n("ArrayExpression").field("elements",[i(n("Expression"),n("SpreadElement"),n("RestElement"),null)]),n("NewExpression").field("arguments",[i(n("Expression"),n("SpreadElement"))]),n("CallExpression").field("arguments",[i(n("Expression"),n("SpreadElement"))]),n("AssignmentPattern").bases("Pattern").build("left","right").field("left",n("Pattern")).field("right",n("Expression"));var a=i(n("MethodDefinition"),n("VariableDeclarator"),n("ClassPropertyDefinition"),n("ClassProperty"));n("ClassProperty").bases("Declaration").build("key").field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("computed",Boolean,s.false),n("ClassPropertyDefinition").bases("Declaration").build("definition").field("definition",a),n("ClassBody").bases("Declaration").build("body").field("body",[a]),n("ClassDeclaration").bases("Declaration").build("id","body","superClass").field("id",i(n("Identifier"),null)).field("body",n("ClassBody")).field("superClass",i(n("Expression"),null),s.null),n("ClassExpression").bases("Expression").build("id","body","superClass").field("id",i(n("Identifier"),null),s.null).field("body",n("ClassBody")).field("superClass",i(n("Expression"),null),s.null).field("implements",[n("ClassImplements")],s.emptyArray),n("ClassImplements").bases("Node").build("id").field("id",n("Identifier")).field("superClass",i(n("Expression"),null),s.null),n("Specifier").bases("Node"),n("ModuleSpecifier").bases("Specifier").field("local",i(n("Identifier"),null),s.null).field("id",i(n("Identifier"),null),s.null).field("name",i(n("Identifier"),null),s.null),n("TaggedTemplateExpression").bases("Expression").build("tag","quasi").field("tag",n("Expression")).field("quasi",n("TemplateLiteral")),n("TemplateLiteral").bases("Expression").build("quasis","expressions").field("quasis",[n("TemplateElement")]).field("expressions",[n("Expression")]),n("TemplateElement").bases("Node").build("value","tail").field("value",{cooked:String,raw:String}).field("tail",Boolean)}},{"../lib/shared":18,"../lib/types":19,"./core":4}],7:[function(e,t,r){t.exports=function(t){t.use(e("./es6"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=(r.builtInTypes,t.use(e("../lib/shared")).defaults);n("Function").field("async",Boolean,s.false),n("SpreadProperty").bases("Node").build("argument").field("argument",n("Expression")),n("ObjectExpression").field("properties",[i(n("Property"),n("SpreadProperty"))]),n("SpreadPropertyPattern").bases("Pattern").build("argument").field("argument",n("Pattern")),n("ObjectPattern").field("properties",[i(n("Property"),n("PropertyPattern"),n("SpreadPropertyPattern"))]),n("AwaitExpression").bases("Expression").build("argument","all").field("argument",i(n("Expression"),null)).field("all",Boolean,s.false)}},{"../lib/shared":18,"../lib/types":19,"./es6":6}],8:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=t.use(e("../lib/shared")).defaults,i=r.Type.def,s=r.Type.or;i("VariableDeclaration").field("declarations",[s(i("VariableDeclarator"),i("Identifier"))]),i("Property").field("value",s(i("Expression"),i("Pattern"))),i("ArrayPattern").field("elements",[s(i("Pattern"),i("SpreadElement"),null)]),i("ObjectPattern").field("properties",[s(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"))]),i("ExportSpecifier").bases("ModuleSpecifier").build("id","name"),i("ExportBatchSpecifier").bases("Specifier").build(),i("ImportSpecifier").bases("ModuleSpecifier").build("id","name"),i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("id"),i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("id"),i("ExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",s(i("Declaration"),i("Expression"),null)).field("specifiers",[s(i("ExportSpecifier"),i("ExportBatchSpecifier"))],n.emptyArray).field("source",s(i("Literal"),null),n.null),i("ImportDeclaration").bases("Declaration").build("specifiers","source","importKind").field("specifiers",[s(i("ImportSpecifier"),i("ImportNamespaceSpecifier"),i("ImportDefaultSpecifier"))],n.emptyArray).field("source",i("Literal")).field("importKind",s("value","type"),function(){return"value"}),i("Block").bases("Comment").build("value","leading","trailing"),i("Line").bases("Comment").build("value","leading","trailing")}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],9:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")).defaults;n("Type").bases("Node"),n("AnyTypeAnnotation").bases("Type").build(),n("EmptyTypeAnnotation").bases("Type").build(),n("MixedTypeAnnotation").bases("Type").build(),n("VoidTypeAnnotation").bases("Type").build(),n("NumberTypeAnnotation").bases("Type").build(),n("NumberLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),n("NumericLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),n("StringTypeAnnotation").bases("Type").build(),n("StringLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",String).field("raw",String),n("BooleanTypeAnnotation").bases("Type").build(),n("BooleanLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Boolean).field("raw",String),n("TypeAnnotation").bases("Node").build("typeAnnotation").field("typeAnnotation",n("Type")),n("NullableTypeAnnotation").bases("Type").build("typeAnnotation").field("typeAnnotation",n("Type")),n("NullLiteralTypeAnnotation").bases("Type").build(),n("NullTypeAnnotation").bases("Type").build(),n("ThisTypeAnnotation").bases("Type").build(),n("ExistsTypeAnnotation").bases("Type").build(),n("ExistentialTypeParam").bases("Type").build(),n("FunctionTypeAnnotation").bases("Type").build("params","returnType","rest","typeParameters").field("params",[n("FunctionTypeParam")]).field("returnType",n("Type")).field("rest",i(n("FunctionTypeParam"),null)).field("typeParameters",i(n("TypeParameterDeclaration"),null)),n("FunctionTypeParam").bases("Node").build("name","typeAnnotation","optional").field("name",n("Identifier")).field("typeAnnotation",n("Type")).field("optional",Boolean),n("ArrayTypeAnnotation").bases("Type").build("elementType").field("elementType",n("Type")),n("ObjectTypeAnnotation").bases("Type").build("properties","indexers","callProperties").field("properties",[n("ObjectTypeProperty")]).field("indexers",[n("ObjectTypeIndexer")],s.emptyArray).field("callProperties",[n("ObjectTypeCallProperty")],s.emptyArray).field("exact",Boolean,s.false),n("ObjectTypeProperty").bases("Node").build("key","value","optional").field("key",i(n("Literal"),n("Identifier"))).field("value",n("Type")).field("optional",Boolean).field("variance",i("plus","minus",null),s.null),n("ObjectTypeIndexer").bases("Node").build("id","key","value").field("id",n("Identifier")).field("key",n("Type")).field("value",n("Type")).field("variance",i("plus","minus",null),s.null),n("ObjectTypeCallProperty").bases("Node").build("value").field("value",n("FunctionTypeAnnotation")).field("static",Boolean,s.false),n("QualifiedTypeIdentifier").bases("Node").build("qualification","id").field("qualification",i(n("Identifier"),n("QualifiedTypeIdentifier"))).field("id",n("Identifier")),n("GenericTypeAnnotation").bases("Type").build("id","typeParameters").field("id",i(n("Identifier"),n("QualifiedTypeIdentifier"))).field("typeParameters",i(n("TypeParameterInstantiation"),null)),n("MemberTypeAnnotation").bases("Type").build("object","property").field("object",n("Identifier")).field("property",i(n("MemberTypeAnnotation"),n("GenericTypeAnnotation"))),n("UnionTypeAnnotation").bases("Type").build("types").field("types",[n("Type")]),n("IntersectionTypeAnnotation").bases("Type").build("types").field("types",[n("Type")]),n("TypeofTypeAnnotation").bases("Type").build("argument").field("argument",n("Type")),n("Identifier").field("typeAnnotation",i(n("TypeAnnotation"),null),s.null),n("TypeParameterDeclaration").bases("Node").build("params").field("params",[n("TypeParameter")]),n("TypeParameterInstantiation").bases("Node").build("params").field("params",[n("Type")]),n("TypeParameter").bases("Type").build("name","variance","bound").field("name",String).field("variance",i("plus","minus",null),s.null).field("bound",i(n("TypeAnnotation"),null),s.null),n("Function").field("returnType",i(n("TypeAnnotation"),null),s.null).field("typeParameters",i(n("TypeParameterDeclaration"),null),s.null),n("ClassProperty").build("key","value","typeAnnotation","static").field("value",i(n("Expression"),null)).field("typeAnnotation",i(n("TypeAnnotation"),null)).field("static",Boolean,s.false).field("variance",i("plus","minus",null),s.null),n("ClassImplements").field("typeParameters",i(n("TypeParameterInstantiation"),null),s.null),n("InterfaceDeclaration").bases("Declaration").build("id","body","extends").field("id",n("Identifier")).field("typeParameters",i(n("TypeParameterDeclaration"),null),s.null).field("body",n("ObjectTypeAnnotation")).field("extends",[n("InterfaceExtends")]),n("DeclareInterface").bases("InterfaceDeclaration").build("id","body","extends"),n("InterfaceExtends").bases("Node").build("id").field("id",n("Identifier")).field("typeParameters",i(n("TypeParameterInstantiation"),null)),n("TypeAlias").bases("Declaration").build("id","typeParameters","right").field("id",n("Identifier")).field("typeParameters",i(n("TypeParameterDeclaration"),null)).field("right",n("Type")),n("DeclareTypeAlias").bases("TypeAlias").build("id","typeParameters","right"),n("TypeCastExpression").bases("Expression").build("expression","typeAnnotation").field("expression",n("Expression")).field("typeAnnotation",n("TypeAnnotation")),n("TupleTypeAnnotation").bases("Type").build("types").field("types",[n("Type")]),n("DeclareVariable").bases("Statement").build("id").field("id",n("Identifier")),n("DeclareFunction").bases("Statement").build("id").field("id",n("Identifier")),n("DeclareClass").bases("InterfaceDeclaration").build("id"),n("DeclareModule").bases("Statement").build("id","body").field("id",i(n("Identifier"),n("Literal"))).field("body",n("BlockStatement")),n("DeclareModuleExports").bases("Statement").build("typeAnnotation").field("typeAnnotation",n("Type")),n("DeclareExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",i(n("DeclareVariable"),n("DeclareFunction"),n("DeclareClass"),n("Type"),null)).field("specifiers",[i(n("ExportSpecifier"),n("ExportBatchSpecifier"))],s.emptyArray).field("source",i(n("Literal"),null),s.null),n("DeclareExportAllDeclaration").bases("Declaration").build("source").field("source",i(n("Literal"),null),s.null)}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],10:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")).defaults;n("JSXAttribute").bases("Node").build("name","value").field("name",i(n("JSXIdentifier"),n("JSXNamespacedName"))).field("value",i(n("Literal"),n("JSXExpressionContainer"),null),s.null),n("JSXIdentifier").bases("Identifier").build("name").field("name",String),n("JSXNamespacedName").bases("Node").build("namespace","name").field("namespace",n("JSXIdentifier")).field("name",n("JSXIdentifier")),n("JSXMemberExpression").bases("MemberExpression").build("object","property").field("object",i(n("JSXIdentifier"),n("JSXMemberExpression"))).field("property",n("JSXIdentifier")).field("computed",Boolean,s.false);var a=i(n("JSXIdentifier"),n("JSXNamespacedName"),n("JSXMemberExpression"));n("JSXSpreadAttribute").bases("Node").build("argument").field("argument",n("Expression"));var o=[i(n("JSXAttribute"),n("JSXSpreadAttribute"))];n("JSXExpressionContainer").bases("Expression").build("expression").field("expression",n("Expression")),n("JSXElement").bases("Expression").build("openingElement","closingElement","children").field("openingElement",n("JSXOpeningElement")).field("closingElement",i(n("JSXClosingElement"),null),s.null).field("children",[i(n("JSXElement"),n("JSXExpressionContainer"),n("JSXText"),n("Literal"))],s.emptyArray).field("name",a,function(){return this.openingElement.name},!0).field("selfClosing",Boolean,function(){return this.openingElement.selfClosing},!0).field("attributes",o,function(){return this.openingElement.attributes},!0),n("JSXOpeningElement").bases("Node").build("name","attributes","selfClosing").field("name",a).field("attributes",o,s.emptyArray).field("selfClosing",Boolean,s.false),n("JSXClosingElement").bases("Node").build("name").field("name",a),n("JSXText").bases("Literal").build("value").field("value",String),n("JSXEmptyExpression").bases("Expression").build()}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],11:[function(e,t,r){t.exports=function(t){t.use(e("./core"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")),a=s.geq,o=s.defaults;n("Function").field("body",i(n("BlockStatement"),n("Expression"))),n("ForInStatement").build("left","right","body","each").field("each",Boolean,o.false),n("ForOfStatement").bases("Statement").build("left","right","body").field("left",i(n("VariableDeclaration"),n("Expression"))).field("right",n("Expression")).field("body",n("Statement")),n("LetStatement").bases("Statement").build("head","body").field("head",[n("VariableDeclarator")]).field("body",n("Statement")),n("LetExpression").bases("Expression").build("head","body").field("head",[n("VariableDeclarator")]).field("body",n("Expression")),n("GraphExpression").bases("Expression").build("index","expression").field("index",a(0)).field("expression",n("Literal")),n("GraphIndexExpression").bases("Expression").build("index").field("index",a(0))}},{"../lib/shared":18,"../lib/types":19,"./core":4}],12:[function(e,t,r){t.exports=function(t){function r(e){var t=n.indexOf(e);return-1===t&&(t=n.length,n.push(e),i[t]=e(s)),i[t]}var n=[],i=[],s={};s.use=r;var a=r(e("./lib/types"));t.forEach(r),a.finalize();var o={Type:a.Type,builtInTypes:a.builtInTypes,namedTypes:a.namedTypes,builders:a.builders,defineMethod:a.defineMethod,getFieldNames:a.getFieldNames,getFieldValue:a.getFieldValue,eachField:a.eachField,someField:a.someField,getSupertypeNames:a.getSupertypeNames,astNodesAreEquivalent:r(e("./lib/equiv")),finalize:a.finalize,Path:r(e("./lib/path")),NodePath:r(e("./lib/node-path")),PathVisitor:r(e("./lib/path-visitor")),use:r};return o.visit=o.PathVisitor.visit,o}},{"./lib/equiv":13,"./lib/node-path":14,"./lib/path":16,"./lib/path-visitor":15,"./lib/types":19}],13:[function(e,t,r){t.exports=function(t){function r(e,t,r){return u.check(r)?r.length=0:r=null,i(e,t,r)}function n(e){return/[_$a-z][_$a-z0-9]*/i.test(e)?"."+e:"["+JSON.stringify(e)+"]"}function i(e,t,r){return e===t||(u.check(e)?function(e,t,r){u.assert(e);var n=e.length;if(!u.check(t)||t.length!==n)return r&&r.push("length"),!1;for(var s=0;su)return!0;if(s===u&&"right"===this.name){if(r.right!==t)throw new Error("Nodes must be equal");return!0}default:return!1}case"SequenceExpression":switch(r.type){case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==this.name;default:return!0}case"YieldExpression":switch(r.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"Literal":return"MemberExpression"===r.type&&l.check(t.value)&&"object"===this.name&&r.object===t;case"AssignmentExpression":case"ConditionalExpression":switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===this.name&&r.callee===t;case"ConditionalExpression":return"test"===this.name&&r.test===t;case"MemberExpression":return"object"===this.name&&r.object===t;default:return!1}default:if("NewExpression"===r.type&&"callee"===this.name&&r.callee===t)return i(t)}return!(!0===e||this.canBeFirstInStatement()||!this.firstInStatement())};var d={};return[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){d[e]=t})}),f.canBeFirstInStatement=function(){var e=this.node;return!o.FunctionExpression.check(e)&&!o.ObjectExpression.check(e)},f.firstInStatement=function(){return function(e){for(var t,r;e.parent;e=e.parent){if(t=e.node,r=e.parent.node,o.BlockStatement.check(r)&&"body"===e.parent.name&&0===e.name){if(r.body[0]!==t)throw new Error("Nodes must be equal");return!0}if(o.ExpressionStatement.check(r)&&"expression"===e.name){if(r.expression!==t)throw new Error("Nodes must be equal");return!0}if(o.SequenceExpression.check(r)&&"expressions"===e.parent.name&&0===e.name){if(r.expressions[0]!==t)throw new Error("Nodes must be equal")}else if(o.CallExpression.check(r)&&"callee"===e.name){if(r.callee!==t)throw new Error("Nodes must be equal")}else if(o.MemberExpression.check(r)&&"object"===e.name){if(r.object!==t)throw new Error("Nodes must be equal")}else if(o.ConditionalExpression.check(r)&&"test"===e.name){if(r.test!==t)throw new Error("Nodes must be equal")}else if(n(r)&&"left"===e.name){if(r.left!==t)throw new Error("Nodes must be equal")}else{if(!o.UnaryExpression.check(r)||r.prefix||"argument"!==e.name)return!1;if(r.argument!==t)throw new Error("Nodes must be equal")}}return!0}(this)},r}},{"./path":16,"./scope":17,"./types":19}],15:[function(e,t,r){var n=Object.prototype.hasOwnProperty;t.exports=function(t){function r(){if(!(this instanceof r))throw new Error("PathVisitor constructor cannot be invoked without 'new'");this._reusableContextStack=[],this._methodNameTable=function(e){var t=Object.create(null);for(var r in e)/^visit[A-Z]/.test(r)&&(t[r.slice("visit".length)]=!0);for(var n=a.computeSupertypeLookupTable(t),i=Object.create(null),s=(t=Object.keys(n)).length,o=0;o=0&&(s[e.name=a]=e)}else i[e.name]=e.value,s[e.name]=e;if(i[e.name]!==e.value)throw new Error("");if(e.parentPath.get(e.name)!==e)throw new Error("")}(this),l.check(i)){for(var u=i.length,c=o(this.parentPath,a-1,this.name+1),p=[this.name,1],h=0;h=e},a+" >= "+e)},r.defaults={null:function(){return null},emptyArray:function(){return[]},false:function(){return!1},true:function(){return!0},undefined:function(){}};var o=i.or(s.string,s.number,s.boolean,s.null,s.undefined);return r.isPrimitive=new i(function(e){if(null===e)return!0;var t=typeof e;return!("object"===t||"function"===t)},o.toString()),r}},{"../lib/types":19}],19:[function(e,t,r){var n=Array.prototype,i=n.slice,s=(n.map,n.forEach,Object.prototype),a=s.toString,o=a.call(function(){}),u=a.call(""),l=s.hasOwnProperty;t.exports=function(){function e(t,r){var n=this;if(!(n instanceof e))throw new Error("Type constructor cannot be invoked without 'new'");if(a.call(t)!==o)throw new Error(t+" is not a function");var i=a.call(r);if(i!==o&&i!==u)throw new Error(r+" is neither a function nor a string");Object.defineProperties(n,{name:{value:r},check:{value:function(e,r){var i=t.call(n,e,r);return!i&&r&&a.call(r)===o&&r(n,e),i}}})}function t(e){return S.check(e)?"{"+Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")+"}":D.check(e)?"["+e.map(t).join(", ")+"]":JSON.stringify(e)}function r(t,r){var n=a.call(t),i=new e(function(e){return a.call(e)===n},r);return x[r]=i,t&&"function"==typeof t.constructor&&(b.push(t.constructor),v.push(i)),i}function n(t,r){if(t instanceof e)return t;if(t instanceof c)return t.type;if(D.check(t))return e.fromArray(t);if(S.check(t))return e.fromObject(t);if(A.check(t)){var n=b.indexOf(t);return n>=0?v[n]:new e(t,r)}return new e(function(e){return e===t},_.check(r)?function(){return t+""}:r)}function s(e,t,r,i){if(!(this instanceof s))throw new Error("Field constructor cannot be invoked without 'new'");E.assert(e);var a={name:{value:e},type:{value:t=n(t)},hidden:{value:!!i}};A.check(r)&&(a.defaultFn={value:r}),Object.defineProperties(this,a)}function c(t){var r=this;if(!(r instanceof c))throw new Error("Def constructor cannot be invoked without 'new'");Object.defineProperties(r,{typeName:{value:t},baseNames:{value:[]},ownFields:{value:Object.create(null)},allSupertypes:{value:Object.create(null)},supertypeList:{value:[]},allFields:{value:Object.create(null)},fieldNames:{value:[]},type:{value:new e(function(e,t){return r.check(e,t)},t)}})}function p(e){return e.replace(/^[A-Z]+/,function(e){var t=e.length;switch(t){case 0:return"";case 1:return e.toLowerCase();default:return e.slice(0,t-1).toLowerCase()+e.charAt(t-1)}})}function h(e){return(e=p(e)).replace(/(Expression)?$/,"Statement")}function f(e){var t=c.fromValue(e);if(t)return t.fieldNames.slice(0);if("type"in e)throw new Error("did not recognize object of type "+JSON.stringify(e.type));return Object.keys(e)}function d(e,t){var r=c.fromValue(e);if(r){var n=r.allFields[t];if(n)return n.getValue(e)}return e&&e[t]}function m(e,t){return Object.keys(t).forEach(function(r){e[r]=t[r]}),e}var y={},g=e.prototype;y.Type=e,g.assert=function(e,r){if(!this.check(e,r)){var n=t(e);throw new Error(n+" does not match type "+this)}return!0},g.toString=function(){var e=this.name;return E.check(e)?e:A.check(e)?e.call(this)+"":e+" type"};var b=[],v=[],x={};y.builtInTypes=x;var E=r("truthy","string"),A=r(function(){},"function"),D=r([],"array"),S=r({},"object"),C=(r(/./,"RegExp"),r(new Date,"Date"),r(3,"number")),_=(r(!0,"boolean"),r(null,"null"),r(void 0,"undefined"));e.or=function(){for(var t=[],r=arguments.length,i=0;i=0&&function(e){var t=h(e);if(!T[t]){var r=T[p(e)];r&&(T[t]=function(){return T.expressionStatement(r.apply(T,arguments))})}}(e.typeName)}},y.finalize=function(){Object.keys(k).forEach(function(e){k[e].finalize()})},y}},{}],20:[function(e,t,r){t.exports=e("./fork")([e("./def/core"),e("./def/es6"),e("./def/es7"),e("./def/mozilla"),e("./def/e4x"),e("./def/jsx"),e("./def/flow"),e("./def/esprima"),e("./def/babel"),e("./def/babel6")])},{"./def/babel":2,"./def/babel6":3,"./def/core":4,"./def/e4x":5,"./def/es6":6,"./def/es7":7,"./def/esprima":8,"./def/flow":9,"./def/jsx":10,"./def/mozilla":11,"./fork":12}],21:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return t.replace(a.default,function(){for(var t=arguments.length,r=Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{};r=Math.max(r,0);var s=n.highlightCode&&u.default.supportsColor||n.forceColor,a=u.default;n.forceColor&&(a=new u.default.constructor({enabled:!0}));var o=function(e,t){return s?e(t):t},c=function(e){return{keyword:e.cyan,capitalized:e.yellow,jsx_tag:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold,gutter:e.grey,marker:e.red.bold}}(a);s&&(e=i(c,e));var p=n.linesAbove||2,h=n.linesBelow||3,f=e.split(l),d=Math.max(t-(p+1),0),m=Math.min(f.length,t+h);t||r||(d=0,m=f.length);var y=String(m).length,g=f.slice(d,m).map(function(e,n){var i=d+1+n,s=" "+(" "+i).slice(-y)+" | ";if(i===t){var a="";if(r){var u=e.slice(0,r-1).replace(/[^\t]/g," ");a=["\n ",o(c.gutter,s.replace(/\d/g," ")),u,o(c.marker,"^")].join("")}return[o(c.marker,">"),o(c.gutter,s),e,a].join("")}return" "+o(c.gutter,s)+e}).join("\n");return s?a.reset(g):g};var s=e("js-tokens"),a=n(s),o=n(e("esutils")),u=n(e("chalk")),l=/\r\n|[\n\r\u2028\u2029]/,c=/^[a-z][\w-]*$/i,p=/^[()\[\]{}]$/;t.exports=r.default},{chalk:24,esutils:28,"js-tokens":322}],22:[function(e,t,r){"use strict";t.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},{}],23:[function(e,t,r){"use strict";Object.defineProperty(t,"exports",{enumerable:!0,get:function(){var e={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return e.colors.grey=e.colors.gray,Object.keys(e).forEach(function(t){var r=e[t];Object.keys(r).forEach(function(t){var n=r[t];e[t]=r[t]={open:"["+n[0]+"m",close:"["+n[1]+"m"}}),Object.defineProperty(e,t,{value:r,enumerable:!1})}),e}})},{}],24:[function(e,t,r){(function(r){"use strict";function n(e){this.enabled=e&&void 0!==e.enabled?e.enabled:l}function i(e){var t=function(){return function(){var e=arguments,t=e.length,r=0!==t&&String(arguments[0]);if(t>1)for(var n=1;n=97&&o<=122||o>=65&&o<=90||36===o||95===o;for(a=new Array(128),o=0;o<128;++o)a[o]=o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||36===o||95===o;t.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&i.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(t){return t<128?s[t]:n.NonAsciiIdentifierStart.test(e(t))},isIdentifierPartES5:function(t){return t<128?a[t]:n.NonAsciiIdentifierPart.test(e(t))},isIdentifierStartES6:function(t){return t<128?s[t]:r.NonAsciiIdentifierStart.test(e(t))},isIdentifierPartES6:function(t){return t<128?a[t]:r.NonAsciiIdentifierPart.test(e(t))}}}()},{}],27:[function(e,t,r){!function(){"use strict";function r(e,t){return!(!t&&"yield"===e)&&n(e,t)}function n(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function i(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function s(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e){var t,r,n;if(0===e.length)return!1;if(n=e.charCodeAt(0),!l.isIdentifierStartES5(n))return!1;for(t=1,r=e.length;t=r)return!1;if(!(56320<=(i=e.charCodeAt(t))&&i<=57343))return!1;n=o(n,i)}if(!s(n))return!1;s=l.isIdentifierPartES6}return!0}var l=e("./code");t.exports={isKeywordES5:r,isKeywordES6:n,isReservedWordES5:i,isReservedWordES6:s,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:a,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return a(e)&&!i(e,t)},isIdentifierES6:function(e,t){return u(e)&&!s(e,t)}}}()},{"./code":26}],28:[function(e,t,r){!function(){"use strict";r.ast=e("./ast"),r.code=e("./code"),r.keyword=e("./keyword")}()},{"./ast":25,"./code":26,"./keyword":27}],29:[function(e,t,r){"use strict";var n=e("ansi-regex")();t.exports=function(e){return"string"==typeof e?e.replace(n,""):e}},{"ansi-regex":22}],30:[function(e,t,r){(function(e){"use strict";var r=e.argv,n=r.indexOf("--"),i=function(e){e="--"+e;var t=r.indexOf(e);return-1!==t&&(-1===n||t1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,x(h.default.readFileSync(e,"utf8"),t)};var h=i(e("fs")),f=n(e("../util")),d=n(e("babel-messages")),m=n(e("babel-types")),y=i(e("babel-traverse")),g=i(e("../transformation/file/options/option-manager")),b=i(e("../transformation/pipeline"));r.util=f,r.messages=d,r.types=m,r.traverse=y.default,r.OptionManager=g.default,r.Pipeline=b.default;var v=new b.default,x=(r.analyse=v.analyse.bind(v),r.transform=v.transform.bind(v));r.transformFromAst=v.transformFromAst.bind(v)},{"../../package":73,"../helpers/resolve-plugin":38,"../helpers/resolve-preset":39,"../tools/build-external-helpers":42,"../transformation/file":43,"../transformation/file/options/config":47,"../transformation/file/options/option-manager":49,"../transformation/pipeline":54,"../util":57,"babel-messages":110,"babel-template":139,"babel-traverse":143,"babel-types":180,fs:193}],33:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){return["babel-plugin-"+e,e]},t.exports=r.default},{}],34:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){var t=["babel-preset-"+e,e],r=e.match(/^(@[^/]+)\/(.+)$/);if(r){var n=r[1],i=r[2];t.push(n+"/babel-preset-"+i)}return t},t.exports=r.default},{}],35:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.default=function(e,t){if(e&&t)return(0,s.default)(e,t,function(e,t){if(t&&Array.isArray(e)){var r=t.slice(0),n=e,s=Array.isArray(n),a=0;for(n=s?n:(0,i.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o;r.indexOf(u)<0&&r.push(u)}return r}})};var s=n(e("lodash/mergeWith"));t.exports=r.default},{"babel-runtime/core-js/get-iterator":120,"lodash/mergeWith":527}],36:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t,r){if(e){if("Program"===e.type)return n.file(e,t||[],r||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));t.exports=r.default},{"babel-types":180}],37:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){return e.reduce(function(e,r){return e||(0,n.default)(r,t)},null)};var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./resolve"));t.exports=r.default},{"./resolve":40}],38:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,s.default)((0,a.default)(e),t)};var s=i(e("./resolve-from-possible-names")),a=i(e("./get-possible-plugin-names"));t.exports=r.default}).call(this,e("_process"))},{"./get-possible-plugin-names":33,"./resolve-from-possible-names":37,_process:550}],39:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,s.default)((0,a.default)(e),t)};var s=i(e("./resolve-from-possible-names")),a=i(e("./get-possible-preset-names"));t.exports=r.default}).call(this,e("_process"))},{"./get-possible-preset-names":34,"./resolve-from-possible-names":37,_process:550}],40:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var s=i(e("babel-runtime/helpers/typeof"));r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();if("object"===(void 0===a.default?"undefined":(0,s.default)(a.default)))return null;var r=u[t];if(!r){r=new a.default;var i=o.default.join(t,".babelrc");r.id=i,r.filename=i,r.paths=a.default._nodeModulePaths(t),u[t]=r}try{return a.default._resolveFilename(e,r)}catch(e){return null}};var a=i(e("module")),o=i(e("path")),u={};t.exports=r.default}).call(this,e("_process"))},{_process:550,"babel-runtime/helpers/typeof":138,module:193,path:546}],41:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/map")),s=n(e("babel-runtime/helpers/classCallCheck")),a=n(e("babel-runtime/helpers/possibleConstructorReturn")),o=n(e("babel-runtime/helpers/inherits")),u=function(e){function t(){(0,s.default)(this,t);var r=(0,a.default)(this,e.call(this));return r.dynamicData={},r}return(0,o.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var r=this.dynamicData[t]();return this.set(t,r),r}},t}(i.default);r.default=u,t.exports=r.default},{"babel-runtime/core-js/map":122,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137}],42:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e,t){var r=[],n=h.functionExpression(null,[h.identifier("global")],h.blockStatement(r)),i=h.program([h.expressionStatement(h.callExpression(n,[u.get("selfGlobal")]))]);return r.push(h.variableDeclaration("var",[h.variableDeclarator(e,h.assignmentExpression("=",h.memberExpression(h.identifier("global"),e),h.objectExpression([])))])),t(r),i}function a(e,t){var r=[];return r.push(h.variableDeclaration("var",[h.variableDeclarator(e,h.identifier("global"))])),t(r),h.program([f({FACTORY_PARAMETERS:h.identifier("global"),BROWSER_ARGUMENTS:h.assignmentExpression("=",h.memberExpression(h.identifier("root"),e),h.objectExpression([])),COMMON_ARGUMENTS:h.identifier("exports"),AMD_ARGUMENTS:h.arrayExpression([h.stringLiteral("exports")]),FACTORY_BODY:r,UMD_ROOT:h.identifier("this")})])}function o(e,t){var r=[];return r.push(h.variableDeclaration("var",[h.variableDeclarator(e,h.objectExpression([]))])),t(r),r.push(h.expressionStatement(e)),h.program(r)}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",r=h.identifier("babelHelpers"),n=void 0,i={global:s,umd:a,var:o}[t];if(!i)throw new Error(c.get("unsupportedOutputType",t));return n=i(r,function(t){return function(e,t,r){u.list.forEach(function(n){if(!(r&&r.indexOf(n)<0)){var i=h.identifier(n);e.push(h.expressionStatement(h.assignmentExpression("=",h.memberExpression(t,i),u.get(n))))}})}(t,r,e)}),(0,l.default)(n).code};var u=i(e("babel-helpers")),l=n(e("babel-generator")),c=i(e("babel-messages")),p=n(e("babel-template")),h=i(e("babel-types")),f=(0,p.default)('\n (function (root, factory) {\n if (typeof define === "function" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === "object") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n');t.exports=r.default},{"babel-generator":85,"babel-helpers":109,"babel-messages":110,"babel-template":139,"babel-types":180}],43:[function(e,t,r){(function(t){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.File=void 0;var s=i(e("babel-runtime/core-js/get-iterator")),a=i(e("babel-runtime/core-js/object/create")),o=i(e("babel-runtime/core-js/object/assign")),u=i(e("babel-runtime/helpers/classCallCheck")),l=i(e("babel-runtime/helpers/possibleConstructorReturn")),c=i(e("babel-runtime/helpers/inherits")),p=i(e("babel-helpers")),h=n(e("./metadata")),f=i(e("convert-source-map")),d=i(e("./options/option-manager")),m=i(e("../plugin-pass")),y=e("babel-traverse"),g=i(y),b=i(e("source-map")),v=i(e("babel-generator")),x=i(e("babel-code-frame")),E=i(e("lodash/defaults")),A=i(e("./logger")),D=i(e("../../store")),S=e("babylon"),C=n(e("../../util")),_=i(e("path")),w=n(e("babel-types")),k=i(e("../../helpers/resolve")),F=i(e("../internal-plugins/block-hoist")),T=i(e("../internal-plugins/shadow-functions")),P=/^#!.*/,B=[[F.default],[T.default]],O={enter:function(e,t){var r=e.node.loc;r&&(t.loc=r,e.stop())}},N=function(r){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];(0,u.default)(this,n);var i=(0,l.default)(this,r.call(this));return i.pipeline=t,i.log=new A.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,o.default)((0,a.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],specifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new y.Hub(i),i}return(0,c.default)(n,r),n.prototype.getMetadata=function(){var e=!1,t=this.ast.program.body,r=Array.isArray(t),n=0;for(t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var a=i;if(w.isModuleDeclaration(a)){e=!0;break}}e&&this.path.traverse(h,this)},n.prototype.initOptions=function(e){(e=new d.default(this.log,this.pipeline).init(e)).inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=_.default.basename(e.filename,_.default.extname(e.filename)),e.ignore=C.arrayify(e.ignore,C.regexify),e.only&&(e.only=C.arrayify(e.only,C.regexify)),(0,E.default)(e,{moduleRoot:e.sourceRoot}),(0,E.default)(e,{sourceRoot:e.moduleRoot}),(0,E.default)(e,{filenameRelative:e.filename});var t=_.default.basename(e.filenameRelative);return(0,E.default)(e,{sourceFileName:t,sourceMapTarget:t}),e},n.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){var t=[],r=[],n=e.plugins.concat(B),i=Array.isArray(n),a=0;for(n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o,l=u[0],c=u[1];t.push(l.visitor),r.push(new m.default(this,l,c)),l.manipulateOptions&&l.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(t),this.pluginPasses.push(r)}},n.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,r="";if(null!=e.moduleRoot&&(r=e.moduleRoot+"/"),!e.filenameRelative)return r+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var n=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(n,"")}return t=t.replace(/\.(\w*?)$/,""),r+=t,r=r.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(r)||r:r},n.prototype.resolveModuleSource=function(e){var t=this.opts.resolveModuleSource;return t&&(e=t(e,this.opts.filename)),e},n.prototype.addImport=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,n=e+":"+t,i=this.dynamicImportIds[n];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[n]=this.scope.generateUidIdentifier(r);var s=[];"*"===t?s.push(w.importNamespaceSpecifier(i)):"default"===t?s.push(w.importDefaultSpecifier(i)):s.push(w.importSpecifier(i,w.identifier(t)));var a=w.importDeclaration(s,w.stringLiteral(e));a._blockHoist=3,this.path.unshiftContainer("body",a)}return i},n.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var r=this.get("helperGenerator"),n=this.get("helpersNamespace");if(r){var i=r(e);if(i)return i}else if(n)return w.memberExpression(n,w.identifier(e));var s=(0,p.default)(e),a=this.declarations[e]=this.scope.generateUidIdentifier(e);return w.isFunctionExpression(s)&&!s.id?(s.body._compact=!0,s._generated=!0,s.id=a,s.type="FunctionDeclaration",this.path.unshiftContainer("body",s)):(s._compact=!0,this.scope.push({id:a,init:s,unique:!0})),a},n.prototype.addTemplateObject=function(e,t,r){var n=r.elements.map(function(e){return e.value}),i=e+"_"+r.elements.length+"_"+n.join(","),s=this.declarations[i];if(s)return s;var a=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=w.callExpression(o,[t,r]);return u._compact=!0,this.scope.push({id:a,init:u,_blockHoist:1.9}),a},n.prototype.buildCodeFrameError=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,n=e&&(e.loc||e._loc),i=new r(t);return n?i.loc=n.start:((0,g.default)(e,O,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},n.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(t){var r=new b.default.SourceMapConsumer(t),n=new b.default.SourceMapConsumer(e),i=new b.default.SourceMapGenerator({file:r.file,sourceRoot:r.sourceRoot}),s=n.sources[0];r.eachMapping(function(e){var t=n.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:s});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var a=i.toJSON();return t.mappings=a.mappings,t}return e},n.prototype.parse=function(r){var n=S.parse,i=this.opts.parserOpts;if(i&&(i=(0,o.default)({},this.parserOpts,i)).parser){if("string"==typeof i.parser){var s=_.default.dirname(this.opts.filename)||t.cwd(),a=(0,k.default)(i.parser,s);if(!a)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+s);n=e(a).parse}else n=i.parser;i.parser={parse:function(e){return(0,S.parse)(e,i)}}}this.log.debug("Parse start");var u=n(r,i||this.parserOpts);return this.log.debug("Parse stop"),u},n.prototype._addAst=function(e){this.path=y.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},n.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},n.prototype.transform=function(){for(var e=0;e=r.length)break;a=r[i++]}else{if((i=r.next()).done)break;a=i.value}var o=a,u=o.plugin[e];u&&u.call(o,this)}},n.prototype.parseInputSourceMap=function(e){var t=this.opts;if(!1!==t.inputSourceMap){var r=f.default.fromSource(e);r&&(t.inputSourceMap=r.toObject(),e=f.default.removeComments(e))}return e},n.prototype.parseShebang=function(){var e=P.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(P,""))},n.prototype.makeResult=function(e){var t=e.code,r=e.map,n=e.ast,i=e.ignored,s={metadata:null,options:this.opts,ignored:!!i,code:null,ast:null,map:r||null};return this.opts.code&&(s.code=t),this.opts.ast&&(s.ast=n),this.opts.metadata&&(s.metadata=this.metadata),s},n.prototype.generate=function(){var r=this.opts,n=this.ast,i={ast:n};if(!r.code)return this.makeResult(i);var s=v.default;if(r.generatorOpts.generator&&"string"==typeof(s=r.generatorOpts.generator)){var a=_.default.dirname(this.opts.filename)||t.cwd(),u=(0,k.default)(s,a);if(!u)throw new Error("Couldn't find generator "+s+' with "print" method relative to directory '+a);s=e(u).print}this.log.debug("Generation start");var l=s(n,r.generatorOpts?(0,o.default)(r,r.generatorOpts):r,this.code);return i.code=l.code,i.map=l.map,this.log.debug("Generation end"),this.shebang&&(i.code=this.shebang+"\n"+i.code),i.map&&(i.map=this.mergeSourceMap(i.map)),"inline"!==r.sourceMaps&&"both"!==r.sourceMaps||(i.code+="\n"+f.default.fromObject(i.map).toComment()),"inline"===r.sourceMaps&&(i.map=null),this.makeResult(i)},n}(D.default);r.default=N,r.File=N}).call(this,e("_process"))},{"../../helpers/resolve":40,"../../store":41,"../../util":57,"../internal-plugins/block-hoist":52,"../internal-plugins/shadow-functions":53,"../plugin-pass":55,"./logger":44,"./metadata":45,"./options/option-manager":49,_process:550,"babel-code-frame":21,"babel-generator":85,"babel-helpers":109,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/assign":124,"babel-runtime/core-js/object/create":125,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"babel-traverse":143,"babel-types":180,babylon:188,"convert-source-map":58,"lodash/defaults":495,path:546,"source-map":72}],44:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("debug/node")),a=(0,s.default)("babel:verbose"),o=(0,s.default)("babel"),u=[],l=function(){function e(t,r){(0,i.default)(this,e),this.filename=r,this.file=t}return e.prototype._buildMessage=function(e){var t="[BABEL] "+this.filename;return e&&(t+=": "+e),t},e.prototype.warn=function(e){console.warn(this._buildMessage(e))},e.prototype.error=function(e){throw new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Error)(this._buildMessage(e))},e.prototype.deprecate=function(e){this.file.opts&&this.file.opts.suppressDeprecationMessages||(e=this._buildMessage(e),u.indexOf(e)>=0||(u.push(e),console.error(e)))},e.prototype.verbose=function(e){a.enabled&&a(this._buildMessage(e))},e.prototype.debug=function(e){o.enabled&&o(this._buildMessage(e))},e.prototype.deopt=function(e,t){this.debug(t)},e}();r.default=l,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134,"debug/node":59}],45:[function(e,t,r){"use strict";r.__esModule=!0,r.ImportDeclaration=r.ModuleDeclaration=void 0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.ExportDeclaration=function(e,t){var r=e.node,s=r.source?r.source.value:null,a=t.metadata.modules.exports,o=e.get("declaration");if(o.isStatement()){var u=o.getBindingIdentifiers();for(var l in u)a.exported.push(l),a.specifiers.push({kind:"local",local:l,exported:e.isExportDefaultDeclaration()?"default":l})}if(e.isExportNamedDeclaration()&&r.specifiers){var c=r.specifiers,p=Array.isArray(c),h=0;for(c=p?c:(0,n.default)(c);;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}var d=f,m=d.exported.name;a.exported.push(m),i.isExportDefaultSpecifier(d)&&a.specifiers.push({kind:"external",local:m,exported:m,source:s}),i.isExportNamespaceSpecifier(d)&&a.specifiers.push({kind:"external-namespace",exported:m,source:s});var y=d.local;y&&(s&&a.specifiers.push({kind:"external",local:y.name,exported:m,source:s}),s||a.specifiers.push({kind:"local",local:y.name,exported:m}))}}e.isExportAllDeclaration()&&a.specifiers.push({kind:"external-all",source:s})},r.Scope=function(e){e.skip()};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.ModuleDeclaration={enter:function(e,t){var r=e.node;r.source&&(r.source.value=t.resolveModuleSource(r.source.value))}},r.ImportDeclaration={exit:function(e,t){var r=e.node,i=[],s=[];t.metadata.modules.imports.push({source:r.source.value,imported:s,specifiers:i});var a=e.get("specifiers"),o=Array.isArray(a),u=0;for(a=o?a:(0,n.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var c=l,p=c.node.local.name;if(c.isImportDefaultSpecifier()&&(s.push("default"),i.push({kind:"named",imported:"default",local:p})),c.isImportSpecifier()){var h=c.node.imported.name;s.push(h),i.push({kind:"named",imported:h,local:p})}c.isImportNamespaceSpecifier()&&(s.push("*"),i.push({kind:"namespace",local:p}))}}}},{"babel-runtime/core-js/get-iterator":120,"babel-types":180}],46:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=f[e];return null==t?f[e]=h.default.existsSync(e):t}r.__esModule=!0;var a=i(e("babel-runtime/core-js/object/assign")),o=i(e("babel-runtime/helpers/classCallCheck"));r.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=e.filename,n=new m(t);return!1!==e.babelrc&&n.findConfigs(r),n.mergeConfig({options:e,alias:"base",dirname:r&&p.default.dirname(r)}),n.configs};var u=i(e("../../../helpers/resolve")),l=i(e("json5")),c=i(e("path-is-absolute")),p=i(e("path")),h=i(e("fs")),f={},d={},m=function(){function e(t){(0,o.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,c.default)(e)||(e=p.default.join(n.cwd(),e));for(var t=!1,r=!1;e!==(e=p.default.dirname(e));){if(!t){var i=p.default.join(e,".babelrc");s(i)&&(this.addConfig(i),t=!0);var a=p.default.join(e,"package.json");!t&&s(a)&&(t=this.addConfig(a,"babel",JSON))}if(!r){var o=p.default.join(e,".babelignore");s(o)&&(this.addIgnoreConfig(o),r=!0)}if(r&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=h.default.readFileSync(e,"utf8").split("\n");(t=t.map(function(e){return e.replace(/#(.*?)$/,"").trim()}).filter(function(e){return!!e})).length&&this.mergeConfig({options:{ignore:t},alias:e,dirname:p.default.dirname(e)})},e.prototype.addConfig=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1;this.resolvedConfigs.push(e);var n=h.default.readFileSync(e,"utf8"),i=void 0;try{i=d[n]=d[n]||r.parse(n),t&&(i=i[t])}catch(t){throw t.message=e+": Error while parsing JSON - "+t.message,t}return this.mergeConfig({options:i,alias:e,dirname:p.default.dirname(e)}),!!i},e.prototype.mergeConfig=function(e){var t=e.options,r=e.alias,i=e.loc,s=e.dirname;if(!t)return!1;if(t=(0,a.default)({},t),s=s||n.cwd(),i=i||r,t.extends){var o=(0,u.default)(t.extends,s);o?this.addConfig(o):this.log&&this.log.error("Couldn't resolve extends clause of "+t.extends+" in "+r),delete t.extends}this.configs.push({options:t,alias:r,loc:i,dirname:s});var l=void 0,c=n.env.BABEL_ENV||n.env.NODE_ENV||"development";t.env&&(l=t.env[c],delete t.env),this.mergeConfig({options:l,alias:r+".env."+c,dirname:s})},e}();t.exports=r.default}).call(this,e("_process"))},{"../../../helpers/resolve":40,_process:550,"babel-runtime/core-js/object/assign":124,"babel-runtime/helpers/classCallCheck":134,fs:193,json5:324,path:546,"path-is-absolute":547}],47:[function(e,t,r){"use strict";t.exports={filename:{type:"filename",description:"filename to use when reading from stdin - this will be used in source-maps, errors etc",default:"unknown",shorthand:"f"},filenameRelative:{hidden:!0,type:"string"},inputSourceMap:{hidden:!0},env:{hidden:!0,default:{}},mode:{description:"",hidden:!0},retainLines:{type:"boolean",default:!1,description:"retain line numbers - will result in really ugly code"},highlightCode:{description:"enable/disable ANSI syntax highlighting of code frames (on by default)",type:"boolean",default:!0},suppressDeprecationMessages:{type:"boolean",default:!1,hidden:!0},presets:{type:"list",description:"",default:[]},plugins:{type:"list",default:[],description:""},ignore:{type:"list",description:"list of glob paths to **not** compile",default:[]},only:{type:"list",description:"list of glob paths to **only** compile"},code:{hidden:!0,default:!0,type:"boolean"},metadata:{hidden:!0,default:!0,type:"boolean"},ast:{hidden:!0,default:!0,type:"boolean"},extends:{type:"string",hidden:!0},comments:{type:"boolean",default:!0,description:"write comments to generated output (true by default)"},shouldPrintComment:{hidden:!0,description:"optional callback to control whether a comment should be inserted, when this is used the comments option is ignored"},wrapPluginVisitorMethod:{hidden:!0,description:"optional callback to wrap all visitor methods"},compact:{type:"booleanString",default:"auto",description:"do not include superfluous whitespace characters and line terminators [true|false|auto]"},minified:{type:"boolean",default:!1,description:"save as much bytes when printing [true|false]"},sourceMap:{alias:"sourceMaps",hidden:!0},sourceMaps:{type:"booleanString",description:"[true|false|inline]",default:!1,shorthand:"s"},sourceMapTarget:{type:"string",description:"set `file` on returned source map"},sourceFileName:{type:"string",description:"set `sources[0]` on returned source map"},sourceRoot:{type:"filename",description:"the root from which all sources are relative"},babelrc:{description:"Whether or not to look up .babelrc and .babelignore files",type:"boolean",default:!0},sourceType:{description:"",default:"module"},auxiliaryCommentBefore:{type:"string",description:"print a comment before any injected non-user code"},auxiliaryCommentAfter:{type:"string",description:"print a comment after any injected non-user code"},resolveModuleSource:{hidden:!0},getModuleId:{hidden:!0},moduleRoot:{type:"filename",description:"optional prefix for the AMD module formatter that will be prepend to the filename on module definitions"},moduleIds:{type:"boolean",default:!1,shorthand:"M",description:"insert an explicit id for modules"},moduleId:{description:"specify a custom name for module ids",type:"string"},passPerPreset:{description:"Whether to spawn a traversal pass per a preset. By default all presets are merged.",type:"boolean",default:!1,hidden:!0},parserOpts:{description:"Options to pass into the parser, or to change parsers (parserOpts.parser)",default:!1},generatorOpts:{description:"Options to pass into the generator, or to change generators (generatorOpts.generator)",default:!1}}},{}],48:[function(e,t,r){"use strict";r.__esModule=!0,r.config=void 0,r.normaliseOptions=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var r=e[t];if(null!=r){var s=i.default[t];if(s&&s.alias&&(s=i.default[s.alias]),s){var a=n[s.type];a&&(r=a(r)),e[t]=r}}}return e};var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./parsers")),i=function(e){return e&&e.__esModule?e:{default:e}}(e("./config"));r.config=i.default},{"./config":47,"./parsers":50}],49:[function(e,t,r){(function(n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var a=s(e("babel-runtime/helpers/objectWithoutProperties")),o=s(e("babel-runtime/core-js/json/stringify")),u=s(e("babel-runtime/core-js/object/assign")),l=s(e("babel-runtime/core-js/get-iterator")),c=s(e("babel-runtime/helpers/typeof")),p=s(e("babel-runtime/helpers/classCallCheck")),h=i(e("../../../api/node")),f=s(e("../../plugin")),d=i(e("babel-messages")),m=e("./index"),y=s(e("../../../helpers/resolve-plugin")),g=s(e("../../../helpers/resolve-preset")),b=s(e("lodash/cloneDeepWith")),v=s(e("lodash/clone")),x=s(e("../../../helpers/merge")),E=s(e("./config")),A=s(e("./removed")),D=s(e("./build-config-chain")),S=s(e("path")),C=function(){function t(e){(0,p.default)(this,t),this.resolvedConfigs=[],this.options=t.createBareOptions(),this.log=e}return t.memoisePluginContainer=function(e,r,n,i){var s=t.memoisedPlugins,a=Array.isArray(s),o=0;for(s=a?s:(0,l.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var p=u;if(p.container===e)return p.plugin}var m=void 0;if("object"===(void 0===(m="function"==typeof e?e(h):e)?"undefined":(0,c.default)(m))){var y=new f.default(m,i);return t.memoisedPlugins.push({container:e,plugin:y}),y}throw new TypeError(d.get("pluginNotObject",r,n,void 0===m?"undefined":(0,c.default)(m))+r+n)},t.createBareOptions=function(){var e={};for(var t in E.default){var r=E.default[t];e[t]=(0,v.default)(r.default)}return e},t.normalisePlugin=function(e,r,n,i){if(!((e=e.__esModule?e.default:e)instanceof f.default)){if("function"!=typeof e&&"object"!==(void 0===e?"undefined":(0,c.default)(e)))throw new TypeError(d.get("pluginNotFunction",r,n,void 0===e?"undefined":(0,c.default)(e)));e=t.memoisePluginContainer(e,r,n,i)}return e.init(r,n),e},t.normalisePlugins=function(r,n,i){return i.map(function(i,s){var a=void 0,o=void 0;if(!i)throw new TypeError("Falsy value found in plugins");Array.isArray(i)?(a=i[0],o=i[1]):a=i;var u="string"==typeof a?a:r+"$"+s;if("string"==typeof a){var l=(0,y.default)(a,n);if(!l)throw new ReferenceError(d.get("pluginUnknown",a,r,s,n));a=e(l)}return a=t.normalisePlugin(a,r,s,u),[a,o]})},t.prototype.mergeOptions=function(e){var r=this,i=e.options,s=e.extending,a=e.alias,o=e.loc,l=e.dirname;if(a=a||"foreign",i){("object"!==(void 0===i?"undefined":(0,c.default)(i))||Array.isArray(i))&&this.log.error("Invalid options type for "+a,TypeError);var p=(0,b.default)(i,function(e){if(e instanceof f.default)return e});l=l||n.cwd(),o=o||a;for(var h in p){if(!E.default[h]&&this.log)if(A.default[h])this.log.error("Using removed Babel 5 option: "+a+"."+h+" - "+A.default[h].message,ReferenceError);else{var d="Unknown option: "+a+"."+h+". Check out http://babeljs.io/docs/usage/options/ for more information about options.";this.log.error(d+"\n\nA common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n `{ presets: [{option: value}] }`\nValid:\n `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.",ReferenceError)}}(0,m.normaliseOptions)(p),p.plugins&&(p.plugins=t.normalisePlugins(o,l,p.plugins)),p.presets&&(p.passPerPreset?p.presets=this.resolvePresets(p.presets,l,function(e,t){r.mergeOptions({options:e,extending:e,alias:t,loc:t,dirname:l})}):(this.mergePresets(p.presets,l),delete p.presets)),i===s?(0,u.default)(s,p):(0,x.default)(s||this.options,p)}},t.prototype.mergePresets=function(e,t){var r=this;this.resolvePresets(e,t,function(e,t){r.mergeOptions({options:e,alias:t,loc:t,dirname:S.default.dirname(t||"")})})},t.prototype.resolvePresets=function(t,r,n){return t.map(function(t){var i=void 0;if(Array.isArray(t)){if(t.length>2)throw new Error("Unexpected extra options "+(0,o.default)(t.slice(2))+" passed to preset.");var s=t;t=s[0],i=s[1]}var u=void 0;try{if("string"==typeof t){if(!(u=(0,g.default)(t,r)))throw new Error("Couldn't find preset "+(0,o.default)(t)+" relative to directory "+(0,o.default)(r));t=e(u)}if("object"===(void 0===t?"undefined":(0,c.default)(t))&&t.__esModule)if(t.default)t=t.default;else{var l=t;l.__esModule;t=(0,a.default)(l,["__esModule"])}if("object"===(void 0===t?"undefined":(0,c.default)(t))&&t.buildPreset&&(t=t.buildPreset),"function"!=typeof t&&void 0!==i)throw new Error("Options "+(0,o.default)(i)+" passed to "+(u||"a preset")+" which does not accept options.");if("function"==typeof t&&(t=t(h,i,{dirname:r})),"object"!==(void 0===t?"undefined":(0,c.default)(t)))throw new Error("Unsupported preset format: "+t+".");n&&n(t,u)}catch(e){throw u&&(e.message+=" (While processing preset: "+(0,o.default)(u)+")"),e}return t})},t.prototype.normaliseOptions=function(){var e=this.options;for(var t in E.default){var r=E.default[t],n=e[t];!n&&r.optional||(r.alias?e[r.alias]=e[r.alias]||n:e[t]=n)}},t.prototype.init=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,D.default)(e,this.log),r=Array.isArray(t),n=0;for(t=r?t:(0,l.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this.mergeOptions(s)}return this.normaliseOptions(e),this.options},t}();r.default=C,C.memoisedPlugins=[],t.exports=r.default}).call(this,e("_process"))},{"../../../api/node":32,"../../../helpers/merge":35,"../../../helpers/resolve-plugin":38,"../../../helpers/resolve-preset":39,"../../plugin":56,"./build-config-chain":46,"./config":47,"./index":48,"./removed":51,_process:550,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/object/assign":124,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/objectWithoutProperties":136,"babel-runtime/helpers/typeof":138,"lodash/clone":491,"lodash/cloneDeepWith":493,path:546}],50:[function(e,t,r){"use strict";r.__esModule=!0,r.filename=void 0,r.boolean=function(e){return!!e},r.booleanString=function(e){return i.booleanify(e)},r.list=function(e){return i.list(e)};var n=function(e){return e&&e.__esModule?e:{default:e}}(e("slash")),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("../../../util"));r.filename=n.default},{"../../../util":57,slash:603}],51:[function(e,t,r){"use strict";t.exports={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"Use the `sourceMapTarget` option"},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"}}},{}],52:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("../plugin")),s=n(e("lodash/sortBy"));r.default=new i.default({name:"internal.blockHoist",visitor:{Block:{exit:function(e){for(var t=e.node,r=!1,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return t.code=!1,t.mode="lint",this.transform(e,t)},e.prototype.pretransform=function(e,t){var r=new o.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r})},e.prototype.transform=function(e,t){var r=new o.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r.transform()})},e.prototype.analyse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return t.code=!1,r&&(t.plugins=t.plugins||[],t.plugins.push(new a.default({visitor:r}))),this.transform(e,t).metadata},e.prototype.transformFromAst=function(e,t,r){e=(0,s.default)(e);var n=new o.default(r,this);return n.wrap(t,function(){return n.addCode(t),n.addAst(e),n.transform()})},e}();r.default=u,t.exports=r.default},{"../helpers/normalize-ast":36,"./file":43,"./plugin":56,"babel-runtime/helpers/classCallCheck":134}],55:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("babel-runtime/helpers/possibleConstructorReturn")),a=n(e("babel-runtime/helpers/inherits")),o=n(e("../store")),u=(n(e("./file")),function(e){function t(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,i.default)(this,t);var o=(0,s.default)(this,e.call(this));return o.plugin=n,o.key=n.key,o.file=r,o.opts=a,o}return(0,a.default)(t,e),t.prototype.addHelper=function(){var e;return(e=this.file).addHelper.apply(e,arguments)},t.prototype.addImport=function(){var e;return(e=this.file).addImport.apply(e,arguments)},t.prototype.getModuleName=function(){var e;return(e=this.file).getModuleName.apply(e,arguments)},t.prototype.buildCodeFrameError=function(){var e;return(e=this.file).buildCodeFrameError.apply(e,arguments)},t}(o.default));r.default=u,t.exports=r.default},{"../store":41,"./file":43,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137}],56:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator")),s=n(e("babel-runtime/helpers/classCallCheck")),a=n(e("babel-runtime/helpers/possibleConstructorReturn")),o=n(e("babel-runtime/helpers/inherits")),u=n(e("./file/options/option-manager")),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-messages")),c=n(e("../store")),p=n(e("babel-traverse")),h=n(e("lodash/assign")),f=n(e("lodash/clone")),d=["enter","exit"],m=function(e){function t(r,n){(0,s.default)(this,t);var i=(0,a.default)(this,e.call(this));return i.initialized=!1,i.raw=(0,h.default)({},r),i.key=i.take("name")||n,i.manipulateOptions=i.take("manipulateOptions"),i.post=i.take("post"),i.pre=i.take("pre"),i.visitor=i.normaliseVisitor((0,f.default)(i.take("visitor"))||{}),i}return(0,o.default)(t,e),t.prototype.take=function(e){var t=this.raw[e];return delete this.raw[e],t},t.prototype.chain=function(e,t){if(!e[t])return this[t];if(!this[t])return e[t];var r=[e[t],this[t]];return function(){for(var e=void 0,t=arguments.length,n=Array(t),s=0;s=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}if(l){var c=l.apply(this,n);null!=c&&(e=c)}}return e}},t.prototype.maybeInherit=function(e){var t=this.take("inherits");t&&(t=u.default.normalisePlugin(t,e,"inherits"),this.manipulateOptions=this.chain(t,"manipulateOptions"),this.post=this.chain(t,"post"),this.pre=this.chain(t,"pre"),this.visitor=p.default.visitors.merge([t.visitor,this.visitor]))},t.prototype.init=function(e,t){if(!this.initialized){this.initialized=!0,this.maybeInherit(e);for(var r in this.raw)throw new Error(l.get("pluginInvalidProperty",e,t,r))}},t.prototype.normaliseVisitor=function(e){var t=d,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}if(e[s])throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")}return p.default.explode(e),e},t}(c.default);r.default=m,t.exports=r.default},{"../store":41,"./file/options/option-manager":49,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"babel-traverse":143,"lodash/assign":488,"lodash/clone":491}],57:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=t||i.EXTENSIONS,n=m.default.extname(e);return(0,f.default)(r,n)}function s(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function a(e,t){return e?"boolean"==typeof e?a([e],t):"string"==typeof e?a(s(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function o(e,t){return"function"==typeof e?e(t):e.test(t)}r.__esModule=!0,r.inspect=r.inherits=void 0;var u=n(e("babel-runtime/core-js/get-iterator")),l=e("util");Object.defineProperty(r,"inherits",{enumerable:!0,get:function(){return l.inherits}}),Object.defineProperty(r,"inspect",{enumerable:!0,get:function(){return l.inspect}}),r.canCompile=i,r.list=s,r.regexify=function(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(c.default).join("|"),"i")),"string"==typeof e){e=(0,y.default)(e),((0,p.default)(e,"./")||(0,p.default)(e,"*/"))&&(e=e.slice(2)),(0,p.default)(e,"**/")&&(e=e.slice(3));var t=h.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,d.default)(e))return e;throw new TypeError("illegal type for regexify")},r.arrayify=a,r.booleanify=function(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e},r.shouldIgnore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];if(e=e.replace(/\\/g,"/"),r){var n=r,i=Array.isArray(n),s=0;for(n=i?n:(0,u.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}if(o(a,e))return!1}return!0}if(t.length){var l=t,c=Array.isArray(l),p=0;for(l=c?l:(0,u.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}if(o(h,e))return!0}}return!1};var c=n(e("lodash/escapeRegExp")),p=n(e("lodash/startsWith")),h=n(e("minimatch")),f=n(e("lodash/includes")),d=n(e("lodash/isRegExp")),m=n(e("path")),y=n(e("slash"));i.EXTENSIONS=[".js",".jsx",".es6",".es"]},{"babel-runtime/core-js/get-iterator":120,"lodash/escapeRegExp":497,"lodash/includes":507,"lodash/isRegExp":519,"lodash/startsWith":532,minimatch:542,path:546,slash:603,util:613}],58:[function(e,t,r){(function(t){"use strict";function n(e,n){(n=n||{}).isFileComment&&(e=function(e,t){var n=r.mapFileCommentRegex.exec(e),a=n[1]||n[2],o=s.resolve(t,a);try{return i.readFileSync(o,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+o+"\n"+e)}}(e,n.commentFileDir)),n.hasComment&&(e=function(e){return e.split(",").pop()}(e)),n.isEncoded&&(e=function(e){return new t(e,"base64").toString()}(e)),(n.isJSON||n.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}var i=e("fs"),s=e("path");Object.defineProperty(r,"commentRegex",{get:function(){return/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/gm}}),Object.defineProperty(r,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"`]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm}}),n.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},n.prototype.toBase64=function(){var e=this.toJSON();return new t(e).toString("base64")},n.prototype.toComment=function(e){var t="sourceMappingURL=data:application/json;charset=utf-8;base64,"+this.toBase64();return e&&e.multiline?"/*# "+t+" */":"//# "+t},n.prototype.toObject=function(){return JSON.parse(this.toJSON())},n.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error('property "'+e+'" already exists on the sourcemap, use set property instead');return this.setProperty(e,t)},n.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},n.prototype.getProperty=function(e){return this.sourcemap[e]},r.fromObject=function(e){return new n(e)},r.fromJSON=function(e){return new n(e,{isJSON:!0})},r.fromBase64=function(e){return new n(e,{isEncoded:!0})},r.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new n(e,{isEncoded:!0,hasComment:!0})},r.fromMapFileComment=function(e,t){return new n(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},r.fromSource=function(e){var t=e.match(r.commentRegex);return t?r.fromComment(t.pop()):null},r.fromMapFileSource=function(e,t){var n=e.match(r.mapFileCommentRegex);return n?r.fromMapFileComment(n.pop(),t):null},r.removeComments=function(e){return e.replace(r.commentRegex,"")},r.removeMapFileComments=function(e){return e.replace(r.mapFileCommentRegex,"")},r.generateMapFileComment=function(e,t){var r="sourceMappingURL="+e;return t&&t.multiline?"/*# "+r+" */":"//# "+r}}).call(this,e("buffer").Buffer)},{buffer:194,fs:193,path:546}],59:[function(e,t,r){t.exports=e("./src/node")},{"./src/node":61}],60:[function(e,t,r){function n(e){function t(){if(t.enabled){var e=t,n=+new Date,s=n-(i||n);e.diff=s,e.prev=i,e.curr=n,i=n;for(var a=new Array(arguments.length),o=0;o=0)return t}else{var r=i.toSetString(e);if(s.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},n.prototype.at=function(e){if(e>=0&&e>>=5)>0&&(t|=32),r+=n.encode(t)}while(i>0);return r},r.decode=function(e,t,r){var i,s,a=e.length,o=0,u=0;do{if(t>=a)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(s=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));i=!!(32&s),o+=(s&=31)<>1;return 1==(1&e)?-t:t}(o),r.rest=t}},{"./base64":64}],64:[function(e,t,r){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e0?t-u>1?n(u,t,i,s,a,o):o==r.LEAST_UPPER_BOUND?t1?n(e,u,i,s,a,o):o==r.LEAST_UPPER_BOUND?u:e<0?-1:e}r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.search=function(e,t,i,s){if(0===t.length)return-1;var a=n(-1,t.length,e,t,i,s||r.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===i(t[a],t[a-1],!0);)--a;return a}},{}],66:[function(e,t,r){function n(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=e("./util");n.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},n.prototype.add=function(e){!function(e,t){var r=e.generatedLine,n=t.generatedLine,s=e.generatedColumn,a=t.generatedColumn;return n>r||n==r&&a>=s||i.compareByGeneratedPositionsInflated(e,t)<=0}(this._last,e)?(this._sorted=!1,this._array.push(e)):(this._last=e,this._array.push(e))},n.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},r.MappingList=n},{"./util":71}],67:[function(e,t,r){function n(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function i(e,t,r,s){if(r=0){var s=this._originalMappings[i];if(void 0===e.column)for(var a=s.originalLine;s&&s.originalLine===a;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return n},r.SourceMapConsumer=n,(i.prototype=Object.create(n.prototype)).consumer=n,i.fromSourceMap=function(e){var t=Object.create(i.prototype),r=t._names=l.fromArray(e._names.toArray(),!0),n=t._sources=l.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),u=t.__generatedMappings=[],c=t.__originalMappings=[],h=0,f=a.length;h1&&(r.source=m+i[1],m+=i[1],r.originalLine=f+i[2],f=r.originalLine,r.originalLine+=1,r.originalColumn=d+i[3],d=r.originalColumn,i.length>4&&(r.name=y+i[4],y+=i[4])),A.push(r),"number"==typeof r.originalLine&&E.push(r)}p(A,o.compareByGeneratedPositionsDeflated),this.__generatedMappings=A,p(E,o.compareByOriginalPositions),this.__originalMappings=E},i.prototype._findMapping=function(e,t,r,n,i,s){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var s=o.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=o.join(this.sourceRoot,s)));var a=o.getArg(i,"name",null);return null!==a&&(a=this._names.at(a)),{source:s,line:o.getArg(i,"originalLine",null),column:o.getArg(i,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=o.getArg(e,"source");if(null!=this.sourceRoot&&(t=o.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var r={source:t=this._sources.indexOf(t),originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")},i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===r.source)return{line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},r.BasicSourceMapConsumer=i,(a.prototype=Object.create(n.prototype)).constructor=n,a.prototype._version=3,Object.defineProperty(a.prototype,"sources",{get:function(){for(var e=[],t=0;t0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},n.prototype._serializeMappings=function(){for(var e,t,r,n,a=0,o=1,u=0,l=0,c=0,p=0,h="",f=this._mappings.toArray(),d=0,m=f.length;d0){if(!s.compareByGeneratedPositionsInflated(t,f[d-1]))continue;e+=","}e+=i.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=i.encode(n-p),p=n,e+=i.encode(t.originalLine-1-l),l=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=i.encode(r-c),c=r)),h+=e}return h},n.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var r=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},n.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},n.prototype.toString=function(){return JSON.stringify(this.toJSON())},r.SourceMapGenerator=n},{"./array-set":62,"./base64-vlq":63,"./mapping-list":66,"./util":71}],70:[function(e,t,r){function n(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[o]=!0,null!=n&&this.add(n)}var i=e("./source-map-generator").SourceMapGenerator,s=e("./util"),a=/(\r?\n)/,o="$$$isSourceNode$$$";n.fromStringWithSourceMap=function(e,t,r){function i(e,t){if(null===e||void 0===e.source)o.add(t);else{var i=r?s.join(r,e.source):e.source;o.add(new n(e.originalLine,e.originalColumn,i,t,e.name))}}var o=new n,u=e.split(a),l=0,c=function(){function e(){return l=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},n.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r0){for(t=[],r=0;r=0;c--)"."===(a=u[c])?u.splice(c,1):".."===a?l++:l>0&&(""===a?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return""===(t=u.join("/"))&&(t=o?"/":"."),s?(s.path=t,i(s)):t}function a(e){return e}function o(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}r.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var l=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,c=/^data:.+\,.+$/;r.urlParse=n,r.urlGenerate=i,r.normalize=s,r.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var r=n(t),a=n(e);if(a&&(e=a.path||"/"),r&&!r.scheme)return a&&(r.scheme=a.scheme),i(r);if(r||t.match(c))return t;if(a&&!a.host&&!a.path)return a.host=t,i(a);var o="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return a?(a.path=o,i(a)):o},r.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(l)},r.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var p=!("__proto__"in Object.create(null));r.toSetString=p?a:function(e){return o(e)?"$"+e:e},r.fromSetString=p?a:function(e){return o(e)?e.slice(1):e},r.compareByOriginalPositions=function(e,t,r){var n=e.source-t.source;return 0!==n?n:0!=(n=e.originalLine-t.originalLine)?n:0!=(n=e.originalColumn-t.originalColumn)||r?n:0!=(n=e.generatedColumn-t.generatedColumn)?n:0!=(n=e.generatedLine-t.generatedLine)?n:e.name-t.name},r.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!=(n=e.generatedColumn-t.generatedColumn)||r?n:0!=(n=e.source-t.source)?n:0!=(n=e.originalLine-t.originalLine)?n:0!=(n=e.originalColumn-t.originalColumn)?n:e.name-t.name},r.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!=(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=u(e.source,t.source))?r:0!=(r=e.originalLine-t.originalLine)?r:0!=(r=e.originalColumn-t.originalColumn)?r:u(e.name,t.name)}},{}],72:[function(e,t,r){r.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,r.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,r.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":68,"./lib/source-map-generator":69,"./lib/source-node":70}],73:[function(e,t,r){t.exports={_args:[[{raw:"babel-core@^6.18.2",scope:null,escapedName:"babel-core",name:"babel-core",rawSpec:"^6.18.2",spec:">=6.18.2 <7.0.0",type:"range"},"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/regenerator"]],_from:"babel-core@>=6.18.2 <7.0.0",_id:"babel-core@6.26.0",_inCache:!0,_location:"/babel-core",_nodeVersion:"6.9.0",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/babel-core-6.26.0.tgz_1502898861183_0.43529116874560714"},_npmUser:{name:"hzoo",email:"hi@henryzoo.com"},_npmVersion:"4.6.1",_phantomChildren:{ms:"2.0.0"},_requested:{raw:"babel-core@^6.18.2",scope:null,escapedName:"babel-core",name:"babel-core",rawSpec:"^6.18.2",spec:">=6.18.2 <7.0.0",type:"range"},_requiredBy:["/babel-register","/regenerator"],_resolved:"https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",_shasum:"af32f78b31a6fcef119c87b0fd8d9753f03a0bb8",_shrinkwrap:null,_spec:"babel-core@^6.18.2",_where:"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/regenerator",author:{name:"Sebastian McKenzie",email:"sebmck@gmail.com"},dependencies:{"babel-code-frame":"^6.26.0","babel-generator":"^6.26.0","babel-helpers":"^6.24.1","babel-messages":"^6.23.0","babel-register":"^6.26.0","babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0",babylon:"^6.18.0","convert-source-map":"^1.5.0",debug:"^2.6.8",json5:"^0.5.1",lodash:"^4.17.4",minimatch:"^3.0.4","path-is-absolute":"^1.0.1",private:"^0.1.7",slash:"^1.0.0","source-map":"^0.5.6"},description:"Babel compiler core.",devDependencies:{"babel-helper-fixtures":"^6.26.0","babel-helper-transform-fixture-test-runner":"^6.26.0","babel-polyfill":"^6.26.0"},directories:{},dist:{shasum:"af32f78b31a6fcef119c87b0fd8d9753f03a0bb8",tarball:"https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz"},homepage:"https://babeljs.io/",keywords:["6to5","babel","classes","const","es6","harmony","let","modules","transpile","transpiler","var","babel-core","compiler"],license:"MIT",maintainers:[{name:"thejameskyle",email:"me@thejameskyle.com"},{name:"sebmck",email:"sebmck@gmail.com"},{name:"danez",email:"daniel@tschinder.de"},{name:"hzoo",email:"hi@henryzoo.com"},{name:"loganfsmyth",email:"loganfsmyth@gmail.com"}],name:"babel-core",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"https://github.com/babel/babel/tree/master/packages/babel-core"},scripts:{bench:"make bench",test:"make test"},version:"6.26.0"}},{}],74:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("trim-right")),a=/^[ \t]+$/,o=function(){function e(t){(0,i.default)(this,e),this._map=null,this._buf=[],this._last="",this._queue=[],this._position={line:1,column:0},this._sourcePosition={identifierName:null,line:null,column:null,filename:null},this._map=t}return e.prototype.get=function(){this._flush();var e=this._map,t={code:(0,s.default)(this._buf.join("")),map:null,rawMappings:e&&e.getRawMappings()};return e&&Object.defineProperty(t,"map",{configurable:!0,enumerable:!0,get:function(){return this.map=e.get()},set:function(e){Object.defineProperty(this,"map",{value:e,writable:!0})}}),t},e.prototype.append=function(e){this._flush();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._append(e,r,n,s,i)},e.prototype.queue=function(e){if("\n"===e)for(;this._queue.length>0&&a.test(this._queue[0][0]);)this._queue.shift();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._queue.unshift([e,r,n,s,i])},e.prototype._flush=function(){for(var e=void 0;e=this._queue.pop();)this._append.apply(this,e)},e.prototype._append=function(e,t,r,n,i){this._map&&"\n"!==e[0]&&this._map.mark(this._position.line,this._position.column,t,r,n,i),this._buf.push(e),this._last=e[e.length-1];for(var s=0;s0&&"\n"===this._queue[0][0]&&this._queue.shift()},e.prototype.removeLastSemicolon=function(){this._queue.length>0&&";"===this._queue[0][0]&&this._queue.shift()},e.prototype.endsWith=function(e){if(1===e.length){var t=void 0;if(this._queue.length>0){var r=this._queue[0][0];t=r[r.length-1]}else t=this._last;return t===e}var n=this._last+this._queue.reduce(function(e,t){return t[0]+e},"");return e.length<=n.length&&n.slice(-e.length)===e},e.prototype.hasContent=function(){return this._queue.length>0||!!this._last},e.prototype.source=function(e,t){if(!e||t){var r=t?t[e]:null;this._sourcePosition.identifierName=t&&t.identifierName||null,this._sourcePosition.line=r?r.line:null,this._sourcePosition.column=r?r.column:null,this._sourcePosition.filename=t&&t.filename||null}},e.prototype.withSource=function(e,t,r){if(!this._map)return r();var n=this._sourcePosition.line,i=this._sourcePosition.column,s=this._sourcePosition.filename,a=this._sourcePosition.identifierName;this.source(e,t),r(),this._sourcePosition.line=n,this._sourcePosition.column=i,this._sourcePosition.filename=s,this._sourcePosition.identifierName=a},e.prototype.getCurrentColumn=function(){var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=e.lastIndexOf("\n");return-1===t?this._position.column+e.length:e.length-1-t},e.prototype.getCurrentLine=function(){for(var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=0,r=0;r")}function a(){this.space(),this.token("|"),this.space()}r.__esModule=!0,r.TypeParameterDeclaration=r.StringLiteralTypeAnnotation=r.NumericLiteralTypeAnnotation=r.GenericTypeAnnotation=r.ClassImplements=void 0,r.AnyTypeAnnotation=function(){this.word("any")},r.ArrayTypeAnnotation=function(e){this.print(e.elementType,e),this.token("["),this.token("]")},r.BooleanTypeAnnotation=function(){this.word("boolean")},r.BooleanLiteralTypeAnnotation=function(e){this.word(e.value?"true":"false")},r.NullLiteralTypeAnnotation=function(){this.word("null")},r.DeclareClass=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("class"),this.space(),this._interfaceish(e)},r.DeclareFunction=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),this.semicolon()},r.DeclareInterface=function(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)},r.DeclareModule=function(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)},r.DeclareModuleExports=function(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)},r.DeclareTypeAlias=function(e){this.word("declare"),this.space(),this.TypeAlias(e)},r.DeclareOpaqueType=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.OpaqueType(e)},r.DeclareVariable=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()},r.DeclareExportDeclaration=function(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),function(e){if(e.declaration){var t=e.declaration;this.print(t,e),u.isStatement(t)||this.semicolon()}else this.token("{"),e.specifiers.length&&(this.space(),this.printList(e.specifiers,e),this.space()),this.token("}"),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}.apply(this,arguments)},r.ExistentialTypeParam=function(){this.token("*")},r.FunctionTypeAnnotation=function(e,t){this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e),e.rest&&(e.params.length&&(this.token(","),this.space()),this.token("..."),this.print(e.rest,e)),this.token(")"),"ObjectTypeCallProperty"===t.type||"DeclareFunction"===t.type?this.token(":"):(this.space(),this.token("=>")),this.space(),this.print(e.returnType,e)},r.FunctionTypeParam=function(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)},r.InterfaceExtends=n,r._interfaceish=function(e){this.print(e.id,e),this.print(e.typeParameters,e),e.extends.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends,e)),e.mixins&&e.mixins.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins,e)),this.space(),this.print(e.body,e)},r._variance=function(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")},r.InterfaceDeclaration=function(e){this.word("interface"),this.space(),this._interfaceish(e)},r.IntersectionTypeAnnotation=function(e){this.printJoin(e.types,e,{separator:i})},r.MixedTypeAnnotation=function(){this.word("mixed")},r.EmptyTypeAnnotation=function(){this.word("empty")},r.NullableTypeAnnotation=function(e){this.token("?"),this.print(e.typeAnnotation,e)};var o=e("./types");Object.defineProperty(r,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return o.NumericLiteral}}),Object.defineProperty(r,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return o.StringLiteral}}),r.NumberTypeAnnotation=function(){this.word("number")},r.StringTypeAnnotation=function(){this.word("string")},r.ThisTypeAnnotation=function(){this.word("this")},r.TupleTypeAnnotation=function(e){this.token("["),this.printList(e.types,e),this.token("]")},r.TypeofTypeAnnotation=function(e){this.word("typeof"),this.space(),this.print(e.argument,e)},r.TypeAlias=function(e){this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),this.space(),this.token("="),this.space(),this.print(e.right,e),this.semicolon()},r.OpaqueType=function(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),e.supertype&&(this.token(":"),this.space(),this.print(e.supertype,e)),e.impltype&&(this.space(),this.token("="),this.space(),this.print(e.impltype,e)),this.semicolon()},r.TypeAnnotation=function(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)},r.TypeParameter=function(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound,e),e.default&&(this.space(),this.token("="),this.space(),this.print(e.default,e))},r.TypeParameterInstantiation=s,r.ObjectTypeAnnotation=function(e){var t=this;e.exact?this.token("{|"):this.token("{");var r=e.properties.concat(e.callProperties,e.indexers);r.length&&(this.space(),this.printJoin(r,e,{addNewlines:function(e){if(e&&!r[0])return 1},indent:!0,statement:!0,iterator:function(){1!==r.length&&(t.format.flowCommaSeparator?t.token(","):t.semicolon(),t.space())}}),this.space()),e.exact?this.token("|}"):this.token("}")},r.ObjectTypeCallProperty=function(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)},r.ObjectTypeIndexer=function(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.token("["),this.print(e.id,e),this.token(":"),this.space(),this.print(e.key,e),this.token("]"),this.token(":"),this.space(),this.print(e.value,e)},r.ObjectTypeProperty=function(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.print(e.key,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.value,e)},r.ObjectTypeSpreadProperty=function(e){this.token("..."),this.print(e.argument,e)},r.QualifiedTypeIdentifier=function(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)},r.UnionTypeAnnotation=function(e){this.printJoin(e.types,e,{separator:a})},r.TypeCastExpression=function(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")},r.VoidTypeAnnotation=function(){this.word("void")};var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.ClassImplements=n,r.GenericTypeAnnotation=n,r.TypeParameterDeclaration=s},{"./types":84,"babel-types":180}],79:[function(e,t,r){"use strict";function n(){this.space()}r.__esModule=!0;var i=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.JSXAttribute=function(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))},r.JSXIdentifier=function(e){this.word(e.name)},r.JSXNamespacedName=function(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)},r.JSXMemberExpression=function(e){this.print(e.object,e),this.token("."),this.print(e.property,e)},r.JSXSpreadAttribute=function(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")},r.JSXExpressionContainer=function(e){this.token("{"),this.print(e.expression,e),this.token("}")},r.JSXSpreadChild=function(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")},r.JSXText=function(e){this.token(e.value)},r.JSXElement=function(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();var r=e.children,n=Array.isArray(r),s=0;for(r=n?r:(0,i.default)(r);;){var a;if(n){if(s>=r.length)break;a=r[s++]}else{if((s=r.next()).done)break;a=s.value}var o=a;this.print(o,e)}this.dedent(),this.print(e.closingElement,e)}},r.JSXOpeningElement=function(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:n})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")},r.JSXClosingElement=function(e){this.token("")},r.JSXEmptyExpression=function(){}},{"babel-runtime/core-js/get-iterator":120}],80:[function(e,t,r){"use strict";function n(e){e.async&&(this.word("async"),this.space()),this.word("function"),e.generator&&this.token("*"),e.id?(this.space(),this.print(e.id,e)):this.space(),this._params(e),this.space(),this.print(e.body,e)}r.__esModule=!0,r.FunctionDeclaration=void 0,r._params=function(e){var t=this;this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e,{iterator:function(e){e.optional&&t.token("?"),t.print(e.typeAnnotation,e)}}),this.token(")"),e.returnType&&this.print(e.returnType,e)},r._method=function(e){var t=e.kind,r=e.key;"method"!==t&&"init"!==t||e.generator&&this.token("*"),"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async"),this.space()),e.computed?(this.token("["),this.print(r,e),this.token("]")):this.print(r,e),this._params(e),this.space(),this.print(e.body,e)},r.FunctionExpression=n,r.ArrowFunctionExpression=function(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&i.isIdentifier(t)&&!function(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.FunctionDeclaration=n},{"babel-types":180}],81:[function(e,t,r){"use strict";function n(e){if(e.declaration){var t=e.declaration;this.print(t,e),i.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),n=!1;;){var s=r[0];if(!i.isExportDefaultSpecifier(s)&&!i.isExportNamespaceSpecifier(s))break;n=!0,this.print(r.shift(),e),r.length&&(this.token(","),this.space())}(r.length||!r.length&&!n)&&(this.token("{"),r.length&&(this.space(),this.printList(r,e),this.space()),this.token("}")),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}}r.__esModule=!0,r.ImportSpecifier=function(e){"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space()),this.print(e.imported,e),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local,e))},r.ImportDefaultSpecifier=function(e){this.print(e.local,e)},r.ExportDefaultSpecifier=function(e){this.print(e.exported,e)},r.ExportSpecifier=function(e){this.print(e.local,e),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e))},r.ExportNamespaceSpecifier=function(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)},r.ExportAllDeclaration=function(e){this.word("export"),this.space(),this.token("*"),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()},r.ExportNamedDeclaration=function(){this.word("export"),this.space(),n.apply(this,arguments)},r.ExportDefaultDeclaration=function(){this.word("export"),this.space(),this.word("default"),this.space(),n.apply(this,arguments)},r.ImportDeclaration=function(e){this.word("import"),this.space(),"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space());var t=e.specifiers.slice(0);if(t&&t.length){for(;;){var r=t[0];if(!i.isImportDefaultSpecifier(r)&&!i.isImportNamespaceSpecifier(r))break;this.print(t.shift(),e),t.length&&(this.token(","),this.space())}t.length&&(this.token("{"),this.space(),this.printList(t,e),this.space(),this.token("}")),this.space(),this.word("from"),this.space()}this.print(e.source,e),this.semicolon()},r.ImportNamespaceSpecifier=function(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))},{"babel-types":180}],82:[function(e,t,r){"use strict";function n(e){return u.isStatement(e.body)?n(e.body):e}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"label";return function(r){this.word(e);var n=r[t];if(n){this.space();var i=this.startTerminatorless();this.print(n,r),this.endTerminatorless(i)}this.semicolon()}}function s(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function a(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}r.__esModule=!0,r.ThrowStatement=r.BreakStatement=r.ReturnStatement=r.ContinueStatement=r.ForAwaitStatement=r.ForOfStatement=r.ForInStatement=void 0;var o=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.WithStatement=function(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)},r.IfStatement=function(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&u.isIfStatement(n(e.consequent));t&&(this.token("{"),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent,e),t&&(this.dedent(),this.newline(),this.token("}")),e.alternate&&(this.endsWith("}")&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate,e))},r.ForStatement=function(e){this.word("for"),this.space(),this.token("("),this.inForStatementInitCounter++,this.print(e.init,e),this.inForStatementInitCounter--,this.token(";"),e.test&&(this.space(),this.print(e.test,e)),this.token(";"),e.update&&(this.space(),this.print(e.update,e)),this.token(")"),this.printBlock(e)},r.WhileStatement=function(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)},r.DoWhileStatement=function(e){this.word("do"),this.space(),this.print(e.body,e),this.space(),this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.semicolon()},r.LabeledStatement=function(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)},r.TryStatement=function(e){this.word("try"),this.space(),this.print(e.block,e),this.space(),e.handlers?this.print(e.handlers[0],e):this.print(e.handler,e),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer,e))},r.CatchClause=function(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)},r.SwitchStatement=function(e){this.word("switch"),this.space(),this.token("("),this.print(e.discriminant,e),this.token(")"),this.space(),this.token("{"),this.printSequence(e.cases,e,{indent:!0,addNewlines:function(t,r){if(!t&&e.cases[e.cases.length-1]===r)return-1}}),this.token("}")},r.SwitchCase=function(e){e.test?(this.word("case"),this.space(),this.print(e.test,e),this.token(":")):(this.word("default"),this.token(":")),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,e,{indent:!0}))},r.DebuggerStatement=function(){this.word("debugger"),this.semicolon()},r.VariableDeclaration=function(e,t){this.word(e.kind),this.space();var r=!1;if(!u.isFor(t)){var n=e.declarations,i=Array.isArray(n),l=0;for(n=i?n:(0,o.default)(n);;){var c;if(i){if(l>=n.length)break;c=n[l++]}else{if((l=n.next()).done)break;c=l.value}c.init&&(r=!0)}}var p=void 0;r&&(p="const"===e.kind?a:s),this.printList(e.declarations,e,{separator:p}),(!u.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()},r.VariableDeclarator=function(e){this.print(e.id,e),this.print(e.id.typeAnnotation,e),e.init&&(this.space(),this.token("="),this.space(),this.print(e.init,e))};var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),l=function(e){return function(t){this.word("for"),this.space(),"await"===e&&(this.word("await"),this.space()),this.token("("),this.print(t.left,t),this.space(),this.word("await"===e?"of":e),this.space(),this.print(t.right,t),this.token(")"),this.printBlock(t)}};r.ForInStatement=l("in"),r.ForOfStatement=l("of"),r.ForAwaitStatement=l("await"),r.ContinueStatement=i("continue"),r.ReturnStatement=i("return","argument"),r.BreakStatement=i("break"),r.ThrowStatement=i("throw","argument")},{"babel-runtime/core-js/get-iterator":120,"babel-types":180}],83:[function(e,t,r){"use strict";r.__esModule=!0,r.TaggedTemplateExpression=function(e){this.print(e.tag,e),this.print(e.quasi,e)},r.TemplateElement=function(e,t){var r=t.quasis[0]===e,n=t.quasis[t.quasis.length-1]===e,i=(r?"`":"}")+e.value.raw+(n?"`":"${");this.token(i)},r.TemplateLiteral=function(e){for(var t=e.quasis,r=0;r0&&this.space(),this.print(i,e),n1&&void 0!==arguments[1]?arguments[1]:{},a=arguments[2];(0,i.default)(this,t);var c=r.tokens||[],p=function(e,t,r){var n=" ";if(e&&"string"==typeof e){var i=(0,o.default)(e).indent;i&&" "!==i&&(n=i)}var s={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,quotes:t.quotes||function(e,t){if(!e)return"double";for(var r={single:0,double:0},n=0,i=0;i=3)break}}return r.single>r.double?"single":"double"}(e,r),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:n,base:0},flowCommaSeparator:t.flowCommaSeparator};return s.minified?(s.compact=!0,s.shouldPrintComment=s.shouldPrintComment||function(){return s.comments}):s.shouldPrintComment=s.shouldPrintComment||function(e){return s.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===s.compact&&(s.compact=e.length>5e5,s.compact&&console.error("[BABEL] "+l.get("codeGeneratorDeopt",t.filename,"500KB"))),s.compact&&(s.indent.adjustMultilineComment=!1),s}(a,n,c),h=n.sourceMaps?new u.default(n,a):null,f=(0,s.default)(this,e.call(this,p,h,c));return f.ast=r,f}return(0,a.default)(t,e),t.prototype.generate=function(){return e.prototype.generate.call(this,this.ast)},t}(n(e("./printer")).default);r.CodeGenerator=function(){function e(t,r,n){(0,i.default)(this,e),this._generator=new c(t,r,n)}return e.prototype.generate=function(){return this._generator.generate()},e}()},{"./printer":89,"./source-map":90,"babel-messages":110,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"detect-indent":311}],86:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){function t(e,t){var n=r[e];r[e]=n?function(e,r,i){var s=n(e,r,i);return null==s?t(e,r,i):s}:t}var r={},n=(0,c.default)(e),i=Array.isArray(n),s=0;for(n=i?n:(0,l.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a,u=f.FLIPPED_ALIAS_KEYS[o];if(u){var p=u,h=Array.isArray(p),d=0;for(p=h?p:(0,l.default)(p);;){var m;if(h){if(d>=p.length)break;m=p[d++]}else{if((d=p.next()).done)break;m=d.value}t(m,e[o])}}else t(o,e[o])}return r}function a(e,t,r,n){var i=e[t.type];return i?i(t,r,n):null}function o(e){return!!f.isCallExpression(e)||!!f.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,r){if(!e)return 0;f.isExpressionStatement(e)&&(e=e.expression);var n=a(m,e,t);if(!n){var i=a(y,e,t);if(i)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{},r=t.considerArrow,n=void 0!==r&&r,i=t.considerDefaultExports,s=void 0!==i&&i,a=e.length-1,o=e[a],l=e[--a];a>0;){if(u.isExpressionStatement(l,{expression:o})||u.isTaggedTemplateExpression(l)||s&&u.isExportDefaultDeclaration(l,{declaration:o})||n&&u.isArrowFunctionExpression(l,{body:o}))return!0;if(!(u.isCallExpression(l,{callee:o})||u.isSequenceExpression(l)&&l.expressions[0]===o||u.isMemberExpression(l,{object:o})||u.isConditional(l,{test:o})||u.isBinary(l,{left:o})||u.isAssignmentExpression(l,{left:o})))return!1;o=l,l=e[--a]}return!1}r.__esModule=!0,r.AwaitExpression=r.FunctionTypeAnnotation=void 0,r.NullableTypeAnnotation=n,r.UpdateExpression=function(e,t){return u.isMemberExpression(t)&&t.object===e},r.ObjectExpression=function(e,t,r){return o(r,{considerArrow:!0})},r.DoExpression=function(e,t,r){return o(r)},r.Binary=function(e,t){if((u.isCallExpression(t)||u.isNewExpression(t))&&t.callee===e||u.isUnaryLike(t)||u.isMemberExpression(t)&&t.object===e||u.isAwaitExpression(t))return!0;if(u.isBinary(t)){var r=t.operator,n=l[r],i=e.operator,s=l[i];if(n===s&&t.right===e&&!u.isLogicalExpression(t)||n>s)return!0}return!1},r.BinaryExpression=function(e,t){return"in"===e.operator&&(u.isVariableDeclarator(t)||u.isFor(t))},r.SequenceExpression=function(e,t){return!(u.isForStatement(t)||u.isThrowStatement(t)||u.isReturnStatement(t)||u.isIfStatement(t)&&t.test===e||u.isWhileStatement(t)&&t.test===e||u.isForInStatement(t)&&t.right===e||u.isSwitchStatement(t)&&t.discriminant===e||u.isExpressionStatement(t)&&t.expression===e)},r.YieldExpression=i,r.ClassExpression=function(e,t,r){return o(r,{considerDefaultExports:!0})},r.UnaryLike=s,r.FunctionExpression=function(e,t,r){return o(r,{considerDefaultExports:!0})},r.ArrowFunctionExpression=function(e,t){return!!(u.isExportDeclaration(t)||u.isBinaryExpression(t)||u.isLogicalExpression(t)||u.isUnaryExpression(t)||u.isTaggedTemplateExpression(t))||s(e,t)},r.ConditionalExpression=a,r.AssignmentExpression=function(e){return!!u.isObjectPattern(e.left)||a.apply(void 0,arguments)};var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),l={"||":0,"&&":1,"|":2,"^":3,"&":4,"==":5,"===":5,"!=":5,"!==":5,"<":6,">":6,"<=":6,">=":6,in:6,instanceof:6,">>":7,"<<":7,">>>":7,"+":8,"-":8,"*":9,"/":9,"%":9,"**":10};r.FunctionTypeAnnotation=n,r.AwaitExpression=i},{"babel-types":180}],88:[function(e,t,r){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.isMemberExpression(e)?(n(e.object,t),e.computed&&n(e.property,t)):o.isBinary(e)||o.isAssignmentExpression(e)?(n(e.left,t),n(e.right,t)):o.isCallExpression(e)?(t.hasCall=!0,n(e.callee,t)):o.isFunction(e)?t.hasFunction=!0:o.isIdentifier(e)&&(t.hasHelper=t.hasHelper||i(e.callee)),t}function i(e){return o.isMemberExpression(e)?i(e.object)||i(e.property):o.isIdentifier(e)?"require"===e.name||"_"===e.name[0]:o.isCallExpression(e)?i(e.callee):!(!o.isBinary(e)&&!o.isAssignmentExpression(e))&&(o.isIdentifier(e.left)&&i(e.left)||i(e.right))}function s(e){return o.isLiteral(e)||o.isObjectExpression(e)||o.isArrayExpression(e)||o.isIdentifier(e)||o.isMemberExpression(e)}var a=function(e){return e&&e.__esModule?e:{default:e}}(e("lodash/map")),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.nodes={AssignmentExpression:function(e){var t=n(e.right);if(t.hasCall&&t.hasHelper||t.hasFunction)return{before:t.hasFunction,after:!0}},SwitchCase:function(e,t){return{before:e.consequent.length||t.cases[0]===e}},LogicalExpression:function(e){if(o.isFunction(e.left)||o.isFunction(e.right))return{after:!0}},Literal:function(e){if("use strict"===e.value)return{after:!0}},CallExpression:function(e){if(o.isFunction(e.callee)||i(e))return{before:!0,after:!0}},VariableDeclaration:function(e){for(var t=0;t0?new g.default(n):null}return e.prototype.generate=function(e){return this.print(e),this._maybeAddAuxComment(),this._buf.get()},e.prototype.indent=function(){this.format.compact||this.format.concise||this._indent++},e.prototype.dedent=function(){this.format.compact||this.format.concise||this._indent--},e.prototype.semicolon=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._maybeAddAuxComment(),this._append(";",!e)},e.prototype.rightBrace=function(){this.format.minified&&this._buf.removeLastSemicolon(),this.token("}")},e.prototype.space=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.format.compact||(this._buf.hasContent()&&!this.endsWith(" ")&&!this.endsWith("\n")||e)&&this._space()},e.prototype.word=function(e){this._endsWithWord&&this._space(),this._maybeAddAuxComment(),this._append(e),this._endsWithWord=!0},e.prototype.number=function(e){this.word(e),this._endsWithInteger=(0,f.default)(+e)&&!E.test(e)&&!v.test(e)&&!x.test(e)&&"."!==e[e.length-1]},e.prototype.token=function(e){("--"===e&&this.endsWith("!")||"+"===e[0]&&this.endsWith("+")||"-"===e[0]&&this.endsWith("-")||"."===e[0]&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(e)},e.prototype.newline=function(e){if(!this.format.retainLines&&!this.format.compact)if(this.format.concise)this.space();else if(!(this.endsWith("\n\n")||("number"!=typeof e&&(e=1),e=Math.min(2,e),(this.endsWith("{\n")||this.endsWith(":\n"))&&e--,e<=0)))for(var t=0;t1&&void 0!==arguments[1]&&arguments[1];this._maybeAddParen(e),this._maybeIndent(e),t?this._buf.queue(e):this._buf.append(e),this._endsWithWord=!1,this._endsWithInteger=!1},e.prototype._maybeIndent=function(e){this._indent&&this.endsWith("\n")&&"\n"!==e[0]&&this._buf.queue(this._getIndent())},e.prototype._maybeAddParen=function(e){var t=this._parenPushNewlineState;if(t){this._parenPushNewlineState=null;var r=void 0;for(r=0;r2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i1&&void 0!==arguments[1])||arguments[1];e.innerComments&&(t&&this.indent(),this._printComments(e.innerComments),t&&this.dedent())},e.prototype.printSequence=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.statement=!0,this.printJoin(e,t,r)},e.prototype.printList=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null==r.separator&&(r.separator=s),this.printJoin(e,t,r)},e.prototype._printNewline=function(e,t,r,n){var i=this;if(!this.format.retainLines&&!this.format.compact)if(this.format.concise)this.space();else{var s=0;if(null!=t.start&&!t._ignoreUserWhitespace&&this._whitespace)if(e){var a=t.leadingComments,o=a&&(0,p.default)(a,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesBefore(o||t)}else{var u=t.trailingComments,l=u&&(0,h.default)(u,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesAfter(l||t)}else{e||s++,n.addNewlines&&(s+=n.addNewlines(e,t)||0);var c=y.needsWhitespaceAfter;e&&(c=y.needsWhitespaceBefore),c(t,r)&&s++,this._buf.hasContent()||(s=0)}this.newline(s)}},e.prototype._getComments=function(e,t){return t&&(e?t.leadingComments:t.trailingComments)||[]},e.prototype._printComment=function(e){var t=this;if(this.format.shouldPrintComment(e.value)&&!e.ignore&&!this._printedComments.has(e)){if(this._printedComments.add(e),null!=e.start){if(this._printedCommentStarts[e.start])return;this._printedCommentStarts[e.start]=!0}this.newline(this._whitespace?this._whitespace.getNewlinesBefore(e):0),this.endsWith("[")||this.endsWith("{")||this.space();var r="CommentLine"===e.type?"//"+e.value+"\n":"/*"+e.value+"*/";if("CommentBlock"===e.type&&this.format.indent.adjustMultilineComment){var n=e.loc&&e.loc.start.column;if(n){var i=new RegExp("\\n\\s{1,"+n+"}","g");r=r.replace(i,"\n")}var s=Math.max(this._getIndent().length,this._buf.getCurrentColumn());r=r.replace(/\n(?!$)/g,"\n"+(0,d.default)(" ",s))}this.withSource("start",e.loc,function(){t._append(r)}),this.newline((this._whitespace?this._whitespace.getNewlinesAfter(e):0)+("CommentLine"===e.type?-1:0))}},e.prototype._printComments=function(e){if(e&&e.length){var t=e,r=Array.isArray(t),n=0;for(t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this._printComment(s)}}},e}();r.default=A;for(var D=[e("./generators/template-literals"),e("./generators/expressions"),e("./generators/statements"),e("./generators/classes"),e("./generators/methods"),e("./generators/modules"),e("./generators/types"),e("./generators/flow"),e("./generators/base"),e("./generators/jsx")],S=0;S=0){for(;i&&e.start===n[i-1].start;)--i;t=n[i-1],r=n[i]}return this._getNewlinesBetween(t,r)},e.prototype.getNewlinesAfter=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.end-e.end},0,n.length);if(i>=0){for(;i&&e.end===n[i-1].end;)--i;t=n[i],","===(r=n[i+1]).type.label&&(r=n[i+2])}return r&&"eof"===r.type.label?1:this._getNewlinesBetween(t,r)},e.prototype._getNewlinesBetween=function(e,t){if(!t||!t.loc)return 0;for(var r=e?e.loc.end.line:1,n=t.loc.start.line,i=0,s=r;s=r)return-1;var n=t+r>>>1,i=e(this.tokens[n]);return i<0?this._findToken(e,n+1,r):i>0?this._findToken(e,t,n):0===i?n:-1},e}();r.default=i,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134}],92:[function(e,t,r){arguments[4][62][0].apply(r,arguments)},{"./util":101,dup:62}],93:[function(e,t,r){arguments[4][63][0].apply(r,arguments)},{"./base64":94,dup:63}],94:[function(e,t,r){arguments[4][64][0].apply(r,arguments)},{dup:64}],95:[function(e,t,r){arguments[4][65][0].apply(r,arguments)},{dup:65}],96:[function(e,t,r){arguments[4][66][0].apply(r,arguments)},{"./util":101,dup:66}],97:[function(e,t,r){arguments[4][67][0].apply(r,arguments)},{dup:67}],98:[function(e,t,r){arguments[4][68][0].apply(r,arguments)},{"./array-set":92,"./base64-vlq":93,"./binary-search":95,"./quick-sort":97,"./util":101,dup:68}],99:[function(e,t,r){arguments[4][69][0].apply(r,arguments)},{"./array-set":92,"./base64-vlq":93,"./mapping-list":96,"./util":101,dup:69}],100:[function(e,t,r){arguments[4][70][0].apply(r,arguments)},{"./source-map-generator":99,"./util":101,dup:70}],101:[function(e,t,r){arguments[4][71][0].apply(r,arguments)},{dup:71}],102:[function(e,t,r){arguments[4][72][0].apply(r,arguments)},{"./lib/source-map-consumer":98,"./lib/source-map-generator":99,"./lib/source-node":100,dup:72}],103:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=u.objectExpression([]);return(0,s.default)(e).forEach(function(r){var n=e[r],i=u.objectExpression([]),a=u.objectProperty(n._key,i,n._computed);(0,s.default)(n).forEach(function(e){var t=n[e];if("_"!==e[0]){var r=t;(u.isClassMethod(t)||u.isClassProperty(t))&&(t=t.value);var s=u.objectProperty(u.identifier(e),t);u.inheritsComments(s,r),u.removeComments(r),i.properties.push(s)}}),t.properties.push(a)}),t}r.__esModule=!0;var s=n(e("babel-runtime/core-js/object/keys"));r.push=function(e,t,r,n,i){var s=u.toKeyAlias(t),l={};if((0,o.default)(e,s)&&(l=e[s]),e[s]=l,l._inherits=l._inherits||[],l._inherits.push(t),l._key=t.key,t.computed&&(l._computed=!0),t.decorators){var c=l.decorators=l.decorators||u.arrayExpression([]);c.elements=c.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(l.value||l.initializer)throw n.buildCodeFrameError(t,"Key conflict with sibling node");var p=void 0,h=void 0;(u.isObjectProperty(t)||u.isObjectMethod(t)||u.isClassMethod(t))&&(p=u.toComputedKey(t,t.key)),u.isObjectProperty(t)||u.isClassProperty(t)?h=t.value:(u.isObjectMethod(t)||u.isClassMethod(t))&&((h=u.functionExpression(null,t.params,t.body,t.generator,t.async)).returnType=t.returnType);var f=function(e){return!u.isClassMethod(e)&&!u.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}(t);return r&&"value"===f||(r=f),i&&u.isStringLiteral(p)&&("value"===r||"initializer"===r)&&u.isFunctionExpression(h)&&(h=(0,a.default)({id:p,node:h,scope:i})),h&&(u.inheritsComments(h,t),l[r]=h),l},r.hasComputed=function(e){for(var t in e)if(e[t]._computed)return!0;return!1},r.toComputedObjectFromClass=function(e){for(var t=u.arrayExpression([]),r=0;r1&&void 0!==arguments[1]&&arguments[1];(0,o.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=r,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,t,r){return p.callExpression(this.file.addHelper("set"),[a(this.getObjectRef(),this.isStatic),r?e:p.stringLiteral(e.name),t,p.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return p.callExpression(this.file.addHelper("get"),[a(this.getObjectRef(),this.isStatic),t?e:p.stringLiteral(e.name),p.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(f,this)},e.prototype.getLooseSuperProperty=function(e,t){var r=this.methodNode,n=this.superRef||p.identifier("Function");return t.property===e?void 0:p.isCallExpression(t,{callee:e})?void 0:p.isMemberExpression(t)&&!r.static?p.memberExpression(n,p.identifier("prototype")):n},e.prototype.looseHandle=function(e){var t=e.node;if(e.isSuper())return this.getLooseSuperProperty(t,e.parent);if(e.isCallExpression()){var r=t.callee;if(!p.isMemberExpression(r))return;if(!p.isSuper(r.object))return;return p.appendToMemberExpression(r,p.identifier("call")),t.arguments.unshift(p.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,t,r){return"="===r.operator?this.setSuperProperty(r.left.property,r.right,r.left.computed):(e=e||t.scope.generateUidIdentifier("ref"),[p.variableDeclaration("var",[p.variableDeclarator(e,r.left)]),p.expressionStatement(p.assignmentExpression("=",r.left,p.binaryExpression(r.operator[0],e,r.right)))])},e.prototype.specHandle=function(e){var t=void 0,r=void 0,n=void 0,i=e.parent,a=e.node;if(function(e,t){return!!p.isSuper(e)&&!p.isMemberExpression(t,{computed:!1})&&!p.isCallExpression(t,{callee:e})}(a,i))throw e.buildCodeFrameError(c.get("classesIllegalBareSuper"));if(p.isCallExpression(a)){var o=a.callee;if(p.isSuper(o))return;s(o)&&(t=o.property,r=o.computed,n=a.arguments)}else if(p.isMemberExpression(a)&&p.isSuper(a.object))t=a.property,r=a.computed;else{if(p.isUpdateExpression(a)&&s(a.argument)){var u=p.binaryExpression(a.operator[0],a.argument,p.numericLiteral(1));if(a.prefix)return this.specHandleAssignmentExpression(null,e,u);var l=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(l,e,u).concat(p.expressionStatement(l))}if(p.isAssignmentExpression(a)&&s(a.left))return this.specHandleAssignmentExpression(null,e,a)}if(t){var h=this.getSuperProperty(t,r);return n?this.optimiseCall(h,n):h}},e.prototype.optimiseCall=function(e,t){var r=p.thisExpression();return r[h]=!0,(0,l.default)(e,r,t)},e}();r.default=d,t.exports=r.default},{"babel-helper-optimise-call-expression":106,"babel-messages":110,"babel-runtime/core-js/symbol":129,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],108:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-template")),i={};r.default=i,i.typeof=(0,n.default)('\n (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n ? function (obj) { return typeof obj; }\n : function (obj) {\n return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n ? "symbol"\n : typeof obj;\n };\n'),i.jsx=(0,n.default)('\n (function () {\n var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n return function createRawReactElement (type, props, key, children) {\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n // If we\'re going to assign props.children, we create a new object now\n // to avoid mutating defaultProps.\n props = {};\n }\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : \'\' + key,\n ref: null,\n props: props,\n _owner: null,\n };\n };\n\n })()\n'),i.asyncIterator=(0,n.default)('\n (function (iterable) {\n if (typeof Symbol === "function") {\n if (Symbol.asyncIterator) {\n var method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n if (Symbol.iterator) {\n return iterable[Symbol.iterator]();\n }\n }\n throw new TypeError("Object is not async iterable");\n })\n'),i.asyncGenerator=(0,n.default)('\n (function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg)\n var value = result.value;\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(\n function (arg) { resume("next", arg); },\n function (arg) { resume("throw", arg); });\n } else {\n settle(result.done ? "return" : "normal", result.value);\n }\n } catch (err) {\n settle("throw", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case "return":\n front.resolve({ value: value, done: true });\n break;\n case "throw":\n front.reject(value);\n break;\n default:\n front.resolve({ value: value, done: false });\n break;\n }\n\n front = front.next;\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n // Hide "return" method if generator return is not supported\n if (typeof gen.return !== "function") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === "function" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n }\n\n AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n\n })()\n'),i.asyncGeneratorDelegate=(0,n.default)('\n (function (inner, awaitWrap) {\n var iter = {}, waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) { resolve(inner[key](value)); });\n return { done: false, value: awaitWrap(value) };\n };\n\n if (typeof Symbol === "function" && Symbol.iterator) {\n iter[Symbol.iterator] = function () { return this; };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n return pump("next", value);\n };\n\n if (typeof inner.throw === "function") {\n iter.throw = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n return pump("throw", value);\n };\n }\n\n if (typeof inner.return === "function") {\n iter.return = function (value) {\n return pump("return", value);\n };\n }\n\n return iter;\n })\n'),i.asyncToGenerator=(0,n.default)('\n (function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step("next", value);\n }, function (err) {\n step("throw", err);\n });\n }\n }\n\n return step("next");\n });\n };\n })\n'),i.classCallCheck=(0,n.default)('\n (function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n });\n'),i.createClass=(0,n.default)('\n (function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i ++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n })()\n'),i.defineEnumerableProperties=(0,n.default)('\n (function (obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if ("value" in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n return obj;\n })\n'),i.defaults=(0,n.default)("\n (function (obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n return obj;\n })\n"),i.defineProperty=(0,n.default)("\n (function (obj, key, value) {\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n });\n"),i.extends=(0,n.default)("\n Object.assign || (function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n })\n"),i.get=(0,n.default)('\n (function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if ("value" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n });\n'),i.inherits=(0,n.default)('\n (function (subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n })\n'),i.instanceof=(0,n.default)('\n (function (left, right) {\n if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n return right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n });\n'),i.interopRequireDefault=(0,n.default)("\n (function (obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n })\n"),i.interopRequireWildcard=(0,n.default)("\n (function (obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n })\n"),i.newArrowCheck=(0,n.default)('\n (function (innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError("Cannot instantiate an arrow function");\n }\n });\n'),i.objectDestructuringEmpty=(0,n.default)('\n (function (obj) {\n if (obj == null) throw new TypeError("Cannot destructure undefined");\n });\n'),i.objectWithoutProperties=(0,n.default)("\n (function (obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n })\n"),i.possibleConstructorReturn=(0,n.default)('\n (function (self, call) {\n if (!self) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n return call && (typeof call === "object" || typeof call === "function") ? call : self;\n });\n'),i.selfGlobal=(0,n.default)('\n typeof global === "undefined" ? self : global\n'),i.set=(0,n.default)('\n (function set(object, property, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent !== null) {\n set(parent, property, value, receiver);\n }\n } else if ("value" in desc && desc.writable) {\n desc.value = value;\n } else {\n var setter = desc.set;\n\n if (setter !== undefined) {\n setter.call(receiver, value);\n }\n }\n\n return value;\n });\n'),i.slicedToArray=(0,n.default)('\n (function () {\n // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n // array iterator case.\n function sliceIterator(arr, i) {\n // this is an expanded form of `for...of` that properly supports abrupt completions of\n // iterators etc. variable names have been minimised to reduce the size of this massive\n // helper. sometimes spec compliancy is annoying :(\n //\n // _n = _iteratorNormalCompletion\n // _d = _didIteratorError\n // _e = _iteratorError\n // _i = _iterator\n // _s = _step\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i["return"]) _i["return"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError("Invalid attempt to destructure non-iterable instance");\n }\n };\n })();\n'),i.slicedToArrayLoose=(0,n.default)('\n (function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n var _arr = [];\n for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n _arr.push(_step.value);\n if (i && _arr.length === i) break;\n }\n return _arr;\n } else {\n throw new TypeError("Invalid attempt to destructure non-iterable instance");\n }\n });\n'),i.taggedTemplateLiteral=(0,n.default)("\n (function (strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: { value: Object.freeze(raw) }\n }));\n });\n"),i.taggedTemplateLiteralLoose=(0,n.default)("\n (function (strings, raw) {\n strings.raw = raw;\n return strings;\n });\n"),i.temporalRef=(0,n.default)('\n (function (val, name, undef) {\n if (val === undef) {\n throw new ReferenceError(name + " is not defined - temporal dead zone");\n } else {\n return val;\n }\n })\n'),i.temporalUndefined=(0,n.default)("\n ({})\n"),i.toArray=(0,n.default)("\n (function (arr) {\n return Array.isArray(arr) ? arr : Array.from(arr);\n });\n"),i.toConsumableArray=(0,n.default)("\n (function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n return arr2;\n } else {\n return Array.from(arr);\n }\n });\n"),t.exports=r.default},{"babel-template":139}],109:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=a.default[e];if(!t)throw new ReferenceError("Unknown helper "+e);return t().expression}r.__esModule=!0,r.list=void 0;var s=n(e("babel-runtime/core-js/object/keys"));r.get=i;var a=n(e("./helpers"));r.list=(0,s.default)(a.default).map(function(e){return e.replace(/^_/,"")}).filter(function(e){return"__esModule"!==e});r.default=i},{"./helpers":108,"babel-runtime/core-js/object/keys":127}],110:[function(e,t,r){"use strict";function n(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,i.default)(e)||e+""}catch(t){return s.inspect(e)}})}r.__esModule=!0,r.MESSAGES=void 0;var i=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/json/stringify"));r.get=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),s=1;s4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!h.isFor(r))for(var s=0;s0&&e.traverse(g,t),e.skip()}},p.visitor]),g=c.default.visitors.merge([{ReferencedIdentifier:function(e,t){var r=t.letReferences[e.node.name];if(r){var n=e.scope.getBindingIdentifier(e.node.name);n&&n!==r||(t.closurify=!0)}}},p.visitor]),b={enter:function(e,t){var r=e.node;e.parent;if(e.isForStatement()){if(a(r.init)){var n=t.pushDeclar(r.init);1===n.length?r.init=n[0]:r.init=h.sequenceExpression(n)}}else if(e.isFor())a(r.left)&&(t.pushDeclar(r.left),r.left=r.left.declarations[0].id);else if(a(r))e.replaceWithMultiple(t.pushDeclar(r).map(function(e){return h.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},v={LabeledStatement:function(e,t){var r=e.node;t.innerLabels.push(r.label.name)}},x={enter:function(e,t){if(e.isAssignmentExpression()||e.isUpdateExpression()){var r=e.getBindingIdentifiers();for(var n in r)t.outsideReferences[n]===e.scope.getBindingIdentifier(n)&&(t.reassignments[n]=!0)}}},E={Loop:function(e,t){var r=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(E,t),t.ignoreLabeless=r,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var r=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(E,t),t.inSwitchCase=r,e.skip()},"BreakStatement|ContinueStatement|ReturnStatement":function(e,t){var r=e.node,n=e.parent,i=e.scope;if(!r[this.LOOP_IGNORE]){var s=void 0,a=function(e){return h.isBreakStatement(e)?"break":h.isContinueStatement(e)?"continue":void 0}(r);if(a){if(r.label){if(t.innerLabels.indexOf(r.label.name)>=0)return;a=a+"|"+r.label.name}else{if(t.ignoreLabeless)return;if(t.inSwitchCase)return;if(h.isBreakStatement(r)&&h.isSwitchCase(n))return}t.hasBreakContinue=!0,t.map[a]=r,s=h.stringLiteral(a)}e.isReturnStatement()&&(t.hasReturn=!0,s=h.objectExpression([h.objectProperty(h.identifier("v"),r.argument||i.buildUndefinedNode())])),s&&((s=h.returnStatement(s))[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(h.inherits(s,r)))}}},A=function(){function e(t,r,n,i,s){(0,l.default)(this,e),this.parent=n,this.scope=i,this.file=s,this.blockPath=r,this.block=r.node,this.outsideLetReferences=(0,u.default)(null),this.hasLetReferences=!1,this.letReferences=(0,u.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=h.isLabeledStatement(this.loopParent)&&this.loopParent.label,this.loopPath=t,this.loop=t.node)}return e.prototype.run=function(){var e=this.block;if(!e._letDone){e._letDone=!0;var t=this.getLetReferences();if(h.isFunction(this.parent)||h.isProgram(this.block))this.updateScopeInfo();else if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!h.isLabeledStatement(this.loopParent)?h.labeledStatement(this.loopLabel,this.loop):void 0}},e.prototype.updateScopeInfo=function(e){var t=this.scope,r=t.getFunctionParent(),n=this.letReferences;for(var i in n){var s=n[i],a=t.getBinding(s.name);a&&("let"!==a.kind&&"const"!==a.kind||(a.kind="var",e?t.removeBinding(s.name):t.moveBindingTo(s.name,r)))}},e.prototype.remap=function(){var e=this.letReferences,t=this.scope;for(var r in e){var n=e[r];(t.parentHasBinding(r)||t.hasGlobal(r))&&(t.hasOwnBinding(r)&&t.rename(n.name),this.blockPath.scope.hasOwnBinding(r)&&this.blockPath.scope.rename(n.name))}},e.prototype.wrapClosure=function(){if(this.file.opts.throwIfClosureRequired)throw this.blockPath.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");var e=this.block,t=this.outsideLetReferences;if(this.loop)for(var r in t){var n=t[r];(this.scope.hasGlobal(n.name)||this.scope.parentHasBinding(n.name))&&(delete t[n.name],delete this.letReferences[n.name],this.scope.rename(n.name),this.letReferences[n.name]=n,t[n.name]=n)}this.has=this.checkLoop(),this.hoistVarDeclarations();var i=(0,f.default)(t),s=(0,f.default)(t),a=this.blockPath.isSwitchStatement(),o=h.functionExpression(null,i,h.blockStatement(a?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(h.variableDeclaration("var",[h.variableDeclarator(u,o)])));var l=h.callExpression(u,s),p=this.scope.generateUidIdentifier("ret");c.default.hasType(o.body,this.scope,"YieldExpression",h.FUNCTION_TYPES)&&(o.generator=!0,l=h.yieldExpression(l,!0));c.default.hasType(o.body,this.scope,"AwaitExpression",h.FUNCTION_TYPES)&&(o.async=!0,l=h.awaitExpression(l)),this.buildClosure(p,l),a?this.blockPath.replaceWithMultiple(this.body):e.body=this.body},e.prototype.buildClosure=function(e,t){var r=this.has;r.hasReturn||r.hasBreakContinue?this.buildHas(e,t):this.body.push(h.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,x,t);for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:"value",n=arguments[3],i=void 0;e.static?(this.hasStaticDescriptors=!0,i=this.staticMutatorMap):(this.hasInstanceDescriptors=!0,i=this.instanceMutatorMap);var s=c.push(i,e,r,this.file,n);return t&&(s.enumerable=h.booleanLiteral(!0)),s},e.prototype.constructorMeMaybe=function(){var e=!1,t=this.path.get("body.body"),r=Array.isArray(t),n=0;for(t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}if(e=i.equals("kind","constructor"))break}if(!e){var a=void 0,o=void 0;if(this.isDerived){var u=f().expression;a=u.params,o=u.body}else a=[],o=h.blockStatement([]);this.path.get("body").unshiftContainer("body",h.classMethod("constructor",h.identifier("constructor"),a,o))}},e.prototype.buildBody=function(){if(this.constructorMeMaybe(),this.pushBody(),this.verifyConstructor(),this.userConstructor){var e=this.constructorBody;e.body=e.body.concat(this.userConstructor.body.body),h.inherits(this.constructor,this.userConstructor),h.inherits(e,this.userConstructor.body)}this.pushDescriptors()},e.prototype.pushBody=function(){var e=this.path.get("body.body"),t=Array.isArray(e),r=0;for(e=t?e:(0,s.default)(e);;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if((r=e.next()).done)break;n=r.value}var i=n,a=i.node;if(i.isClassProperty())throw i.buildCodeFrameError("Missing class properties transform.");if(a.decorators)throw i.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(h.isClassMethod(a)){var o="constructor"===a.kind;if(o&&(i.traverse(m,this),!this.hasBareSuper&&this.isDerived))throw i.buildCodeFrameError("missing super() call in constructor");var l=new u.default({forceSuperMemoisation:o,methodPath:i,methodNode:a,objectRef:this.classRef,superRef:this.superName,isStatic:a.static,isLoose:this.isLoose,scope:this.scope,file:this.file},!0);l.replace(),o?this.pushConstructor(l,a,i):this.pushMethod(a,i)}}},e.prototype.clearDescriptors=function(){this.hasInstanceDescriptors=!1,this.hasStaticDescriptors=!1,this.instanceMutatorMap={},this.staticMutatorMap={}},e.prototype.pushDescriptors=function(){this.pushInherits();var e=this.body,t=void 0,r=void 0;if(this.hasInstanceDescriptors&&(t=c.toClassObject(this.instanceMutatorMap)),this.hasStaticDescriptors&&(r=c.toClassObject(this.staticMutatorMap)),t||r){t&&(t=c.toComputedObjectFromClass(t)),r&&(r=c.toComputedObjectFromClass(r));var n=h.nullLiteral(),i=[this.classRef,n,n,n,n];t&&(i[1]=t),r&&(i[2]=r),this.instanceInitializersId&&(i[3]=this.instanceInitializersId,e.unshift(this.buildObjectAssignment(this.instanceInitializersId))),this.staticInitializersId&&(i[4]=this.staticInitializersId,e.unshift(this.buildObjectAssignment(this.staticInitializersId)));for(var s=0,a=0;a=o.length)break;c=o[l++]}else{if((l=o.next()).done)break;c=l.value}var p=c;this.wrapSuperCall(p,i,a,r),n&&p.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(n=!1,!0):void 0)})}var f=this.superThises,d=Array.isArray(f),m=0;for(f=d?f:(0,s.default)(f);;){var g;if(d){if(m>=f.length)break;g=f[m++]}else{if((m=f.next()).done)break;g=m.value}g.replaceWith(a)}var b=function(t){return h.callExpression(e.file.addHelper("possibleConstructorReturn"),[a].concat(t||[]))},v=r.get("body");v.length&&!v.pop().isReturnStatement()&&r.pushContainer("body",h.returnStatement(n?a:b()));var x=this.superReturns,E=Array.isArray(x),A=0;for(x=E?x:(0,s.default)(x);;){var D;if(E){if(A>=x.length)break;D=x[A++]}else{if((A=x.next()).done)break;D=A.value}var S=D;if(S.node.argument){var C=S.scope.generateDeclaredUidIdentifier("ret");S.get("argument").replaceWithMultiple([h.assignmentExpression("=",C,S.node.argument),b(C)])}else S.get("argument").replaceWith(b())}}},e.prototype.pushMethod=function(e,t){var r=t?t.scope:this.scope;"method"===e.kind&&this._processMethod(e,r)||this.pushToMap(e,!1,null,r)},e.prototype._processMethod=function(){return!1},e.prototype.pushConstructor=function(e,t,r){this.bareSupers=e.bareSupers,this.superReturns=e.returns,r.scope.hasOwnBinding(this.classRef.name)&&r.scope.rename(this.classRef.name);var n=this.constructor;this.userConstructorPath=r,this.userConstructor=t,this.hasConstructor=!0,h.inheritsComments(n,t),n._ignoreUserWhitespace=!0,n.params=t.params,h.inherits(n.body,t.body),n.body.directives=t.body.directives,this._pushConstructor()},e.prototype._pushConstructor=function(){this.pushedConstructor||(this.pushedConstructor=!0,(this.hasInstanceDescriptors||this.hasStaticDescriptors)&&this.pushDescriptors(),this.body.push(this.constructor),this.pushInherits())},e.prototype.pushInherits=function(){this.isDerived&&!this.pushedInherits&&(this.pushedInherits=!0,this.body.unshift(h.expressionStatement(h.callExpression(this.file.addHelper("inherits"),[this.classRef,this.superName]))))},e}();r.default=g,t.exports=r.default},{"babel-helper-define-map":103,"babel-helper-optimise-call-expression":106,"babel-helper-replace-supers":107,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-template":139,"babel-traverse":143,"babel-types":180}],119:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){function t(e){var t=e.node,r=e.scope,n=[],i=t.right;if(!a.isIdentifier(i)||!r.hasBinding(i.name)){var s=r.generateUidIdentifier("arr");n.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),i=s}var u=r.generateUidIdentifier("i"),l=o({BODY:t.body,KEY:u,ARR:i});a.inherits(l,t),a.ensureBlock(l);var c=a.memberExpression(i,u,!0),p=t.left;return a.isVariableDeclaration(p)?(p.declarations[0].init=c,l.body.body.unshift(p)):l.body.body.unshift(a.expressionStatement(a.assignmentExpression("=",p,c))),e.parentPath.isLabeledStatement()&&(l=a.labeledStatement(e.parentPath.node.label,l)),n.push(l),n}function r(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,l=void 0,c=void 0;if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))c=o;else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));c=n.generateUidIdentifier("ref"),l=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,c)])}var p=n.generateUidIdentifier("iterator"),h=n.generateUidIdentifier("isArray"),f=u({LOOP_OBJECT:p,IS_ARRAY:h,OBJECT:r.right,INDEX:n.generateUidIdentifier("i"),ID:c});l||f.body.body.shift();var d=a.isLabeledStatement(s),m=void 0;return d&&(m=a.labeledStatement(s.label,f)),{replaceParent:d,declar:l,node:m||f,loop:f}}function n(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,u=void 0,c=n.generateUidIdentifier("step"),p=a.memberExpression(c,a.identifier("value"));if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))u=a.expressionStatement(a.assignmentExpression("=",o,p));else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));u=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,p)])}var h=n.generateUidIdentifier("iterator"),f=l({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:h,STEP_KEY:c,OBJECT:r.right,BODY:null}),d=a.isLabeledStatement(s),m=f[3].block.body,y=m[0];return d&&(m[0]=a.labeledStatement(s.label,y)),{replaceParent:d,declar:u,loop:y,node:f}}var i=e.messages,s=e.template,a=e.types,o=s("\n for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n "),u=s("\n for (var LOOP_OBJECT = OBJECT,\n IS_ARRAY = Array.isArray(LOOP_OBJECT),\n INDEX = 0,\n LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n var ID;\n if (IS_ARRAY) {\n if (INDEX >= LOOP_OBJECT.length) break;\n ID = LOOP_OBJECT[INDEX++];\n } else {\n INDEX = LOOP_OBJECT.next();\n if (INDEX.done) break;\n ID = INDEX.value;\n }\n }\n "),l=s("\n var ITERATOR_COMPLETION = true;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY = undefined;\n try {\n for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n ");return{visitor:{ForOfStatement:function(e,i){if(e.get("right").isArrayExpression())return e.parentPath.isLabeledStatement()?e.parentPath.replaceWithMultiple(t(e)):e.replaceWithMultiple(t(e));var s=n;i.opts.loose&&(s=r);var o=e.node,u=s(e,i),l=u.declar,c=u.loop,p=c.body;e.ensureBlock(),l&&p.body.push(l),p.body=p.body.concat(o.body.body),a.inherits(c,o),a.inherits(c.body,o.body),u.replaceParent?(e.parentPath.replaceWithMultiple(u.node),e.remove()):e.replaceWithMultiple(u.node)}}}},t.exports=r.default},{}],120:[function(e,t,r){t.exports={default:e("core-js/library/fn/get-iterator"),__esModule:!0}},{"core-js/library/fn/get-iterator":196}],121:[function(e,t,r){t.exports={default:e("core-js/library/fn/json/stringify"),__esModule:!0}},{"core-js/library/fn/json/stringify":197}],122:[function(e,t,r){t.exports={default:e("core-js/library/fn/map"),__esModule:!0}},{"core-js/library/fn/map":198}],123:[function(e,t,r){t.exports={default:e("core-js/library/fn/number/max-safe-integer"),__esModule:!0}},{"core-js/library/fn/number/max-safe-integer":199}],124:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/assign"),__esModule:!0}},{"core-js/library/fn/object/assign":200}],125:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/create"),__esModule:!0}},{"core-js/library/fn/object/create":201}],126:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/get-own-property-symbols"),__esModule:!0}},{"core-js/library/fn/object/get-own-property-symbols":202}],127:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/keys"),__esModule:!0}},{"core-js/library/fn/object/keys":203}],128:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/set-prototype-of"),__esModule:!0}},{"core-js/library/fn/object/set-prototype-of":204}],129:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol"),__esModule:!0}},{"core-js/library/fn/symbol":206}],130:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/for"),__esModule:!0}},{"core-js/library/fn/symbol/for":205}],131:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/iterator"),__esModule:!0}},{"core-js/library/fn/symbol/iterator":207}],132:[function(e,t,r){t.exports={default:e("core-js/library/fn/weak-map"),__esModule:!0}},{"core-js/library/fn/weak-map":208}],133:[function(e,t,r){t.exports={default:e("core-js/library/fn/weak-set"),__esModule:!0}},{"core-js/library/fn/weak-set":209}],134:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},{}],135:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("../core-js/object/set-prototype-of")),s=n(e("../core-js/object/create")),a=n(e("../helpers/typeof"));r.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,a.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},{"../core-js/object/create":125,"../core-js/object/set-prototype-of":128,"../helpers/typeof":138}],136:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}},{}],137:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("../helpers/typeof"));r.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,n.default)(t))&&"function"!=typeof t?e:t}},{"../helpers/typeof":138}],138:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("../core-js/symbol/iterator")),s=n(e("../core-js/symbol")),a="function"==typeof s.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};r.default="function"==typeof s.default&&"symbol"===a(i.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":void 0===e?"undefined":a(e)}},{"../core-js/symbol":129,"../core-js/symbol/iterator":131}],139:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var s=i(e("babel-runtime/core-js/symbol"));r.default=function(e,t){var r=void 0;try{throw new Error}catch(e){e.stack&&(r=e.stack.split("\n").slice(1).join("\n"))}t=(0,o.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var n=function(){var i=void 0;try{i=c.parse(e,t),i=l.default.removeProperties(i,{preserveComments:t.preserveComments}),l.default.cheap(i,function(e){e[h]=!0})}catch(e){throw e.stack=e.stack+"from\n"+r,e}return n=function(){return i},i};return function(){for(var e=arguments.length,t=Array(e),r=0;r1?r.body:r.body[0]}(n(),t)}};var a=i(e("lodash/cloneDeep")),o=i(e("lodash/assign")),u=i(e("lodash/has")),l=i(e("babel-traverse")),c=n(e("babylon")),p=n(e("babel-types")),h="_fromTemplate",f=(0,s.default)(),d={noScope:!0,enter:function(e,t){var r=e.node;if(r[f])return e.skip();p.isExpressionStatement(r)&&(r=r.expression);var n=void 0;if(p.isIdentifier(r)&&r[h])if((0,u.default)(t[0],r.name))n=t[0][r.name];else if("$"===r.name[0]){var i=+r.name.slice(1);t[i]&&(n=t[i])}null===n&&e.remove(),n&&(n[f]=!0,e.replaceInline(n))},exit:function(e){var t=e.node;t.loc||l.default.clearNode(t)}};t.exports=r.default},{"babel-runtime/core-js/symbol":129,"babel-traverse":143,"babel-types":180,babylon:188,"lodash/assign":488,"lodash/cloneDeep":492,"lodash/has":504}],140:[function(e,t,r){"use strict";function n(){r.path=new s.default}function i(){r.scope=new s.default}r.__esModule=!0,r.scope=r.path=void 0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/weak-map"));r.clear=function(){n(),i()},r.clearPath=n,r.clearScope=i;r.path=new s.default,r.scope=new s.default},{"babel-runtime/core-js/weak-map":132}],141:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var s=i(e("babel-runtime/core-js/get-iterator")),a=i(e("babel-runtime/helpers/classCallCheck")),o=i(e("./path")),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),l="test"===n.env.NODE_ENV,c=function(){function e(t,r,n,i){(0,a.default)(this,e),this.queue=null,this.parentPath=i,this.scope=t,this.state=n,this.opts=r}return e.prototype.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var r=u.VISITOR_KEYS[e.type];if(!r||!r.length)return!1;var n=r,i=Array.isArray(n),a=0;for(n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}if(e[o])return!0}return!1},e.prototype.create=function(e,t,r,n){return o.default.get({parentPath:this.parentPath,parent:e,container:t,key:r,listKey:n})},e.prototype.maybeQueue=function(e,t){if(this.trap)throw new Error("Infinite cycle detected");this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},e.prototype.visitMultiple=function(e,t,r){if(0===e.length)return!1;for(var n=[],i=0;i=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o;if(u.resync(),0!==u.contexts.length&&u.contexts[u.contexts.length-1]===this||u.pushContext(this),null!==u.key&&(l&&e.length>=1e4&&(this.trap=!0),!(t.indexOf(u.node)>=0))){if(t.push(u.node),u.visit()){r=!0;break}if(this.priorityQueue.length&&(r=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,r))break}}var c=e,p=Array.isArray(c),h=0;for(c=p?c:(0,s.default)(c);;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}f.popContext()}return this.queue=null,r},e.prototype.visit=function(e,t){var r=e[t];return!!r&&(Array.isArray(r)?this.visitMultiple(r,e,t):this.visitSingle(e,t))},e}();r.default=c,t.exports=r.default}).call(this,e("_process"))},{"./path":150,_process:550,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],142:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/helpers/classCallCheck"));r.default=function e(t,r){(0,n.default)(this,e),this.file=t,this.options=r},t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134}],143:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r,n,i){if(e){if(t||(t={}),!t.noScope&&!r&&"Program"!==e.type&&"File"!==e.type)throw new Error(f.get("traverseNeedsParent",e.type));h.explode(t),s.node(e,t,r,n,i)}}function a(e,t){e.node.type===t.type&&(t.has=!0,e.stop())}r.__esModule=!0,r.visitors=r.Hub=r.Scope=r.NodePath=void 0;var o=i(e("babel-runtime/core-js/get-iterator")),u=e("./path");Object.defineProperty(r,"NodePath",{enumerable:!0,get:function(){return i(u).default}});var l=e("./scope");Object.defineProperty(r,"Scope",{enumerable:!0,get:function(){return i(l).default}});var c=e("./hub");Object.defineProperty(r,"Hub",{enumerable:!0,get:function(){return i(c).default}}),r.default=s;var p=i(e("./context")),h=n(e("./visitors")),f=n(e("babel-messages")),d=i(e("lodash/includes")),m=n(e("babel-types")),y=n(e("./cache"));r.visitors=h,s.visitors=h,s.verify=h.verify,s.explode=h.explode,s.NodePath=e("./path"),s.Scope=e("./scope"),s.Hub=e("./hub"),s.cheap=function(e,t){return m.traverseFast(e,t)},s.node=function(e,t,r,n,i,s){var a=m.VISITOR_KEYS[e.type];if(a){var u=new p.default(r,t,n,i),l=a,c=Array.isArray(l),h=0;for(l=c?l:(0,o.default)(l);;){var f;if(c){if(h>=l.length)break;f=l[h++]}else{if((h=l.next()).done)break;f=h.value}var d=f;if((!s||!s[d])&&u.visit(e,d))return}}},s.clearNode=function(e,t){m.removeProperties(e,t),y.path.delete(e)},s.removeProperties=function(e,t){return m.traverseFast(e,s.clearNode,t),e},s.hasType=function(e,t,r,n){if((0,d.default)(n,e.type))return!1;if(e.type===r)return!0;var i={has:!1,type:r};return s(e,{blacklist:n,enter:a},t,i),i.has},(s.clearCache=function(){y.clear()}).clearPath=y.clearPath,s.clearCache.clearScope=y.clearScope,s.copyCache=function(e,t){y.path.has(e)&&y.path.set(t,y.path.get(e))}},{"./cache":140,"./context":141,"./hub":142,"./path":150,"./scope":162,"./visitors":164,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-types":180,"lodash/includes":507}],144:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.findParent=function(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null},r.find=function(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null},r.getFunctionParent=function(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})},r.getStatementParent=function(){var e=this;do{if(Array.isArray(e.container))return e}while(e=e.parentPath)},r.getEarliestCommonAncestorFrom=function(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){var n=void 0,a=s.VISITOR_KEYS[e.type],o=r,u=Array.isArray(o),l=0;for(o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if((l=o.next()).done)break;c=l.value}var p=c[t+1];n?p.listKey&&n.listKey===p.listKey&&p.keya.indexOf(p.parentKey)&&(n=p):n=p}return n})},r.getDeepestCommonAncestorFrom=function(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var n=1/0,s=void 0,a=void 0,o=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length=p.length)break;d=p[f++]}else{if((f=p.next()).done)break;d=f.value}if(d[l]!==c)break e}s=l,a=c}if(a)return t?t(a,s,o):a;throw new Error("Couldn't find intersection")},r.getAncestry=function(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t},r.isAncestor=function(e){return e.isDescendant(this)},r.isDescendant=function(e){return!!this.findParent(function(t){return t===e})},r.inType=function(){for(var e=this;e;){var t=arguments,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}var a=s;if(e.node.type===a)return!0}e=e.parentPath}return!1},r.inShadow=function(e){var t=this.isFunction()?this:this.findParent(function(e){return e.isFunction()});if(t){if(t.isFunctionExpression()||t.isFunctionDeclaration()){var r=t.node.shadow;if(r&&(!e||!1!==r[e]))return t}else if(t.isArrowFunctionExpression())return t;return null}};var s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));n(e("./index"))},{"./index":150,"babel-runtime/core-js/get-iterator":120,"babel-types":180}],145:[function(e,t,r){"use strict";r.__esModule=!0,r.shareCommentsWithSiblings=function(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,r=e.leadingComments;if(t||r){var n=this.getSibling(this.key-1),i=this.getSibling(this.key+1);n.node||(n=i),i.node||(i=n),n.addComments("trailing",r),i.addComments("leading",t)}}}},r.addComment=function(e,t,r){this.addComments(e,[{type:r?"CommentLine":"CommentBlock",value:t}])},r.addComments=function(e,t){if(t){var r=this.node;if(r){var n=e+"Comments";r[n]?r[n]=r[n].concat(t):r[n]=t}}}},{}],146:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.call=function(e){var t=this.opts;return this.debug(function(){return e}),!(!this.node||!this._call(t[e]))||!!this.node&&this._call(t[this.node.type]&&t[this.node.type][e])},r._call=function(e){if(!e)return!1;var t=e,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}var a=s;if(a){var o=this.node;if(!o)return!0;if(a.call(this.state,this,this.state))throw new Error("Unexpected return value from visitor method "+a);if(this.node!==o)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1},r.isBlacklisted=function(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1},r.visit=function(){return!!this.node&&!this.isBlacklisted()&&(!this.opts.shouldSkip||!this.opts.shouldSkip(this))&&(this.call("enter")||this.shouldSkip?(this.debug(function(){return"Skip..."}),this.shouldStop):(this.debug(function(){return"Recursing into..."}),s.default.node(this.node,this.opts,this.scope,this.state,this,this.skipKeys),this.call("exit"),this.shouldStop))},r.skip=function(){this.shouldSkip=!0},r.skipKey=function(e){this.skipKeys[e]=!0},r.stop=function(){this.shouldStop=!0,this.shouldSkip=!0},r.setScope=function(){if(!this.opts||!this.opts.noScope){var e=this.context&&this.context.scope;if(!e)for(var t=this.parentPath;t&&!e;){if(t.opts&&t.opts.noScope)return;e=t.scope,t=t.parentPath}this.scope=this.getScope(e),this.scope&&this.scope.init()}},r.setContext=function(e){return this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.skipKeys={},e&&(this.context=e,this.state=e.state,this.opts=e.opts),this.setScope(),this},r.resync=function(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())},r._resyncParent=function(){this.parentPath&&(this.parent=this.parentPath.node)},r._resyncKey=function(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed){var t=this.contexts,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}s.maybeQueue(e)}}},r._getQueueContexts=function(){for(var e=this,t=this.contexts;!t.length;)t=(e=e.parentPath).contexts;return t};var s=n(e("../index"))},{"../index":143,"babel-runtime/core-js/get-iterator":120}],147:[function(e,t,r){"use strict";r.__esModule=!0,r.toComputedKey=function(){var e=this.node,t=void 0;if(this.isMemberExpression())t=e.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");t=e.key}return e.computed||n.isIdentifier(t)&&(t=n.stringLiteral(t.name)),t},r.ensureBlock=function(){return n.ensureBlock(this.node)},r.arrowFunctionToShadowed=function(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}};var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))},{"babel-types":180}],148:[function(e,t,r){(function(t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/typeof")),s=n(e("babel-runtime/core-js/get-iterator")),a=n(e("babel-runtime/core-js/map"));r.evaluateTruthy=function(){var e=this.evaluate();if(e.confident)return!!e.value},r.evaluate=function(){function e(e){n&&(l=e,n=!1)}function r(a){var l=a.node;if(c.has(l)){var p=c.get(l);return p.resolved?p.value:void e(a)}var h={resolved:!1};c.set(l,h);var f=function(a){if(n){var l=a.node;if(a.isSequenceExpression()){var c=a.get("expressions");return r(c[c.length-1])}if(a.isStringLiteral()||a.isNumericLiteral()||a.isBooleanLiteral())return l.value;if(a.isNullLiteral())return null;if(a.isTemplateLiteral()){for(var p="",h=0,f=a.get("expressions"),d=l.quasis,m=Array.isArray(d),y=0,d=m?d:(0,s.default)(d);;){var g;if(m){if(y>=d.length)break;g=d[y++]}else{if((y=d.next()).done)break;g=y.value}var b=g;if(!n)break;p+=b.value.cooked;var v=f[h++];v&&(p+=String(r(v)))}if(!n)return;return p}if(a.isConditionalExpression()){var x=r(a.get("test"));if(!n)return;return r(x?a.get("consequent"):a.get("alternate"))}if(a.isExpressionWrapper())return r(a.get("expression"));if(a.isMemberExpression()&&!a.parentPath.isCallExpression({callee:l})){var E=a.get("property"),A=a.get("object");if(A.isLiteral()&&E.isIdentifier()){var D=A.node.value,S=void 0===D?"undefined":(0,i.default)(D);if("number"===S||"string"===S)return D[E.node.name]}}if(a.isReferencedIdentifier()){var C=a.scope.getBinding(l.name);if(C&&C.constantViolations.length>0)return e(C.path);if(C&&a.node.start=P.length)break;N=P[O++]}else{if((O=P.next()).done)break;N=O.value}var j=N;if(!(j=j.evaluate()).confident)return e(j);F.push(j.value)}return F}if(a.isObjectExpression()){for(var I={},L=a.get("properties"),M=L,R=Array.isArray(M),V=0,M=R?M:(0,s.default)(M);;){var U;if(R){if(V>=M.length)break;U=M[V++]}else{if((V=M.next()).done)break;U=V.value}var q=U;if(q.isObjectMethod()||q.isSpreadProperty())return e(q);var G=q.get("key"),X=G;if(q.node.computed){if(!(X=X.evaluate()).confident)return e(G);X=X.value}else X=X.isIdentifier()?X.node.name:X.node.value;var J=q.get("value"),W=J.evaluate();if(!W.confident)return e(J);W=W.value,I[X]=W}return I}if(a.isLogicalExpression()){var K=n,z=r(a.get("left")),Y=n;n=K;var H=r(a.get("right")),$=n;switch(n=Y&&$,l.operator){case"||":if(z&&Y)return n=!0,z;if(!n)return;return z||H;case"&&":if((!z&&Y||!H&&$)&&(n=!0),!n)return;return z&&H}}if(a.isBinaryExpression()){var Q=r(a.get("left"));if(!n)return;var Z=r(a.get("right"));if(!n)return;switch(l.operator){case"-":return Q-Z;case"+":return Q+Z;case"/":return Q/Z;case"*":return Q*Z;case"%":return Q%Z;case"**":return Math.pow(Q,Z);case"<":return Q":return Q>Z;case"<=":return Q<=Z;case">=":return Q>=Z;case"==":return Q==Z;case"!=":return Q!=Z;case"===":return Q===Z;case"!==":return Q!==Z;case"|":return Q|Z;case"&":return Q&Z;case"^":return Q^Z;case"<<":return Q<>":return Q>>Z;case">>>":return Q>>>Z}}if(a.isCallExpression()){var ee=a.get("callee"),te=void 0,re=void 0;if(ee.isIdentifier()&&!a.scope.getBinding(ee.node.name,!0)&&o.indexOf(ee.node.name)>=0&&(re=t[l.callee.name]),ee.isMemberExpression()){var ne=ee.get("object"),ie=ee.get("property");if(ne.isIdentifier()&&ie.isIdentifier()&&o.indexOf(ne.node.name)>=0&&u.indexOf(ie.node.name)<0&&(te=t[ne.node.name],re=te[ie.node.name]),ne.isLiteral()&&ie.isIdentifier()){var se=(0,i.default)(ne.node.value);"string"!==se&&"number"!==se||(te=ne.node.value,re=te[ie.node.name])}}if(re){var ae=a.get("arguments").map(r);if(!n)return;return re.apply(te,ae)}}e(a)}}(a);return n&&(h.resolved=!0,h.value=f),f}var n=!0,l=void 0,c=new a.default,p=r(this);return n||(p=void 0),{confident:n,deopt:l,value:p}};var o=["String","Number","Math"],u=["random"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/map":122,"babel-runtime/helpers/typeof":138}],149:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/object/create")),s=n(e("babel-runtime/core-js/get-iterator"));r.getStatementParent=function(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e},r.getOpposite=function(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0},r.getCompletionRecords=function(){var e=[],t=function(t){t&&(e=e.concat(t.getCompletionRecords()))};if(this.isIfStatement())t(this.get("consequent")),t(this.get("alternate"));else if(this.isDoExpression()||this.isFor()||this.isWhile())t(this.get("body"));else if(this.isProgram()||this.isBlockStatement())t(this.get("body").pop());else{if(this.isFunction())return this.get("body").getCompletionRecords();this.isTryStatement()?(t(this.get("block")),t(this.get("handler")),t(this.get("finalizer"))):e.push(this)}return e},r.getSibling=function(e){return a.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})},r.getPrevSibling=function(){return this.getSibling(this.key-1)},r.getNextSibling=function(){return this.getSibling(this.key+1)},r.getAllNextSiblings=function(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r},r.getAllPrevSiblings=function(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r},r.get=function(e,t){!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?this._getKey(e,t):this._getPattern(r,t)},r._getKey=function(e,t){var r=this,n=this.node,i=n[e];return Array.isArray(i)?i.map(function(s,o){return a.default.get({listKey:e,parentPath:r,parent:n,container:i,key:o}).setContext(t)}):a.default.get({parentPath:this,parent:n,container:n,key:e}).setContext(t)},r._getPattern=function(e,t){var r=this,n=e,i=Array.isArray(n),a=0;for(n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o;r="."===u?r.parentPath:Array.isArray(r)?r[u]:r.get(u,t)}return r},r.getBindingIdentifiers=function(e){return o.getBindingIdentifiers(this.node,e)},r.getOuterBindingIdentifiers=function(e){return o.getOuterBindingIdentifiers(this.node,e)},r.getBindingIdentifierPaths=function(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=[].concat(this),n=(0,i.default)(null);r.length;){var s=r.shift();if(s&&s.node){var a=o.getBindingIdentifiers.keys[s.node.type];if(s.isIdentifier())e?(n[s.node.name]=n[s.node.name]||[]).push(s):n[s.node.name]=s;else if(s.isExportDeclaration()){var u=s.get("declaration");u.isDeclaration()&&r.push(u)}else{if(t){if(s.isFunctionDeclaration()){r.push(s.get("id"));continue}if(s.isFunctionExpression())continue}if(a)for(var l=0;l1&&void 0!==arguments[1]?arguments[1]:SyntaxError;return this.hub.file.buildCodeFrameError(this.node,e,t)},e.prototype.traverse=function(e,t){(0,c.default)(this.node,e,this.scope,t,this)},e.prototype.mark=function(e,t){this.hub.file.metadata.marked.push({type:e,message:t,loc:this.node.loc})},e.prototype.set=function(e,t){f.validate(this.node,e,t),this.node[e]=t},e.prototype.getPathLocation=function(){var e=[],t=this;do{var r=t.key;t.inList&&(r=t.listKey+"["+r+"]"),e.unshift(r)}while(t=t.parentPath);return e.join(".")},e.prototype.debug=function(e){m.enabled&&m(this.getPathLocation()+" "+this.type+": "+e())},e}();r.default=y,(0,p.default)(y.prototype,e("./ancestry")),(0,p.default)(y.prototype,e("./inference")),(0,p.default)(y.prototype,e("./replacement")),(0,p.default)(y.prototype,e("./evaluation")),(0,p.default)(y.prototype,e("./conversion")),(0,p.default)(y.prototype,e("./introspection")),(0,p.default)(y.prototype,e("./context")),(0,p.default)(y.prototype,e("./removal")),(0,p.default)(y.prototype,e("./modification")),(0,p.default)(y.prototype,e("./family")),(0,p.default)(y.prototype,e("./comments"));var g=function(){if(v){if(x>=b.length)return"break";E=b[x++]}else{if((x=b.next()).done)return"break";E=x.value}var e=E,t="is"+e;y.prototype[t]=function(e){return f[t](this.node,e)},y.prototype["assert"+e]=function(r){if(!this[t](r))throw new TypeError("Expected node path of type "+e)}},b=f.TYPES,v=Array.isArray(b),x=0;for(b=v?b:(0,s.default)(b);;){var E;if("break"===g())break}var A=function(e){if("_"===e[0])return"continue";f.TYPES.indexOf(e)<0&&f.TYPES.push(e);var t=o[e];y.prototype["is"+e]=function(e){return t.checkPath(this,e)}};for(var D in o){A(D)}t.exports=r.default},{"../cache":140,"../index":143,"../scope":162,"./ancestry":144,"./comments":145,"./context":146,"./conversion":147,"./evaluation":148,"./family":149,"./inference":151,"./introspection":154,"./lib/virtual-types":157,"./modification":158,"./removal":159,"./replacement":160,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-types":180,debug:165,invariant:318,"lodash/assign":488}],151:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e,t,r){if("string"===e)return o.isStringTypeAnnotation(t);if("number"===e)return o.isNumberTypeAnnotation(t);if("boolean"===e)return o.isBooleanTypeAnnotation(t);if("any"===e)return o.isAnyTypeAnnotation(t);if("mixed"===e)return o.isMixedTypeAnnotation(t);if("empty"===e)return o.isEmptyTypeAnnotation(t);if("void"===e)return o.isVoidTypeAnnotation(t);if(r)return!1;throw new Error("Unknown base type "+e)}r.__esModule=!0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.getTypeAnnotation=function(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||o.anyTypeAnnotation();return o.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e},r._getTypeAnnotation=function(){var e=this.node;if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=a[e.type];return t?t.call(this,e):(t=a[this.parentPath.type])&&t.validParent?this.parentPath.getTypeAnnotation():void 0}if("init"===this.key&&this.parentPath.isVariableDeclarator()){var r=this.parentPath.parentPath,n=r.parentPath;return"left"===r.key&&n.isForInStatement()?o.stringTypeAnnotation():"left"===r.key&&n.isForOfStatement()?o.anyTypeAnnotation():o.voidTypeAnnotation()}},r.isBaseType=function(e,t){return i(e,this.getTypeAnnotation(),t)},r.couldBeBaseType=function(e){var t=this.getTypeAnnotation();if(o.isAnyTypeAnnotation(t))return!0;if(o.isUnionTypeAnnotation(t)){var r=t.types,n=Array.isArray(r),a=0;for(r=n?r:(0,s.default)(r);;){var u;if(n){if(a>=r.length)break;u=r[a++]}else{if((a=r.next()).done)break;u=a.value}var l=u;if(o.isAnyTypeAnnotation(l)||i(e,l,!0))return!0}return!1}return i(e,t,!0)},r.baseTypeStrictlyMatches=function(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!o.isAnyTypeAnnotation(t)&&o.isFlowBaseAnnotation(t))return e.type===t.type},r.isGenericType=function(e){var t=this.getTypeAnnotation();return o.isGenericTypeAnnotation(t)&&o.isIdentifier(t.id,{name:e})};var a=n(e("./inferers")),o=n(e("babel-types"))},{"./inferers":153,"babel-runtime/core-js/get-iterator":120,"babel-types":180}],152:[function(e,t,r){"use strict";function n(e,t,r){var n=e.constantViolations.slice();return n.unshift(e.path),n.filter(function(e){var n=(e=e.resolve())._guessExecutionStatusRelativeTo(t);return r&&"function"===n&&r.push(e),"before"===n})}function i(e,t){var r=t.node.operator,n=t.get("right").resolve(),i=t.get("left").resolve(),s=void 0;if(i.isIdentifier({name:e})?s=n:n.isIdentifier({name:e})&&(s=i),s)return"==="===r?s.getTypeAnnotation():o.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(r)>=0?o.numberTypeAnnotation():void 0;if("==="===r){var a=void 0,u=void 0;if(i.isUnaryExpression({operator:"typeof"})?(a=i,u=n):n.isUnaryExpression({operator:"typeof"})&&(a=n,u=i),(u||a)&&(u=u.resolve()).isLiteral()){if("string"==typeof u.node.value&&a.get("argument").isIdentifier({name:e}))return o.createTypeAnnotationBasedOnTypeof(u.node.value)}}}function s(e,t){var r=function(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}(e);if(r){var n=[r.get("test")],a=[];do{var u=n.shift().resolve();if(u.isLogicalExpression()&&(n.push(u.get("left")),n.push(u.get("right"))),u.isBinaryExpression()){var l=i(t,u);l&&a.push(l)}}while(n.length);return a.length?{typeAnnotation:o.createUnionTypeAnnotation(a),ifStatement:r}:s(r,t)}}r.__esModule=!0;var a=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.default=function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:function(e,t){var r=e.scope.getBinding(t),i=[];e.typeAnnotation=o.unionTypeAnnotation(i);var u=[],l=n(r,e,u),c=s(e,t);if(c){var p=n(r,c.ifStatement);l=l.filter(function(e){return p.indexOf(e)<0}),i.push(c.typeAnnotation)}if(l.length){var h=l=l.concat(u),f=Array.isArray(h),d=0;for(h=f?h:(0,a.default)(h);;){var m;if(f){if(d>=h.length)break;m=h[d++]}else{if((d=h.next()).done)break;m=d.value}var y=m;i.push(y.getTypeAnnotation())}}if(i.length)return o.createUnionTypeAnnotation(i)}(this,e.name):"undefined"===e.name?o.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?o.numberTypeAnnotation():void e.name}};var o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));t.exports=r.default},{"babel-runtime/core-js/get-iterator":120,"babel-types":180}],153:[function(e,t,r){"use strict";function n(e){return e.typeAnnotation}function i(){return l.genericTypeAnnotation(l.identifier("Array"))}function s(){return i()}function a(){return l.genericTypeAnnotation(l.identifier("Function"))}function o(e){if((e=e.resolve()).isFunction()){if(e.is("async"))return e.is("generator")?l.genericTypeAnnotation(l.identifier("AsyncIterator")):l.genericTypeAnnotation(l.identifier("Promise"));if(e.node.returnType)return e.node.returnType}}r.__esModule=!0,r.ClassDeclaration=r.ClassExpression=r.FunctionDeclaration=r.ArrowFunctionExpression=r.FunctionExpression=r.Identifier=void 0;var u=e("./inferer-reference");Object.defineProperty(r,"Identifier",{enumerable:!0,get:function(){return function(e){return e&&e.__esModule?e:{default:e}}(u).default}}),r.VariableDeclarator=function(){return this.get("id").isIdentifier()?this.get("init").getTypeAnnotation():void 0},r.TypeCastExpression=n,r.NewExpression=function(e){if(this.get("callee").isIdentifier())return l.genericTypeAnnotation(e.callee)},r.TemplateLiteral=function(){return l.stringTypeAnnotation()},r.UnaryExpression=function(e){var t=e.operator;return"void"===t?l.voidTypeAnnotation():l.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?l.numberTypeAnnotation():l.STRING_UNARY_OPERATORS.indexOf(t)>=0?l.stringTypeAnnotation():l.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?l.booleanTypeAnnotation():void 0},r.BinaryExpression=function(e){var t=e.operator;if(l.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return l.numberTypeAnnotation();if(l.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return l.booleanTypeAnnotation();if("+"===t){var r=this.get("right"),n=this.get("left");return n.isBaseType("number")&&r.isBaseType("number")?l.numberTypeAnnotation():n.isBaseType("string")||r.isBaseType("string")?l.stringTypeAnnotation():l.unionTypeAnnotation([l.stringTypeAnnotation(),l.numberTypeAnnotation()])}},r.LogicalExpression=function(){return l.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])},r.ConditionalExpression=function(){return l.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])},r.SequenceExpression=function(){return this.get("expressions").pop().getTypeAnnotation()},r.AssignmentExpression=function(){return this.get("right").getTypeAnnotation()},r.UpdateExpression=function(e){var t=e.operator;if("++"===t||"--"===t)return l.numberTypeAnnotation()},r.StringLiteral=function(){return l.stringTypeAnnotation()},r.NumericLiteral=function(){return l.numberTypeAnnotation()},r.BooleanLiteral=function(){return l.booleanTypeAnnotation()},r.NullLiteral=function(){return l.nullLiteralTypeAnnotation()},r.RegExpLiteral=function(){return l.genericTypeAnnotation(l.identifier("RegExp"))},r.ObjectExpression=function(){return l.genericTypeAnnotation(l.identifier("Object"))},r.ArrayExpression=i,r.RestElement=s,r.CallExpression=function(){return o(this.get("callee"))},r.TaggedTemplateExpression=function(){return o(this.get("tag"))};var l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));n.validParent=!0,s.validParent=!0,r.FunctionExpression=a,r.ArrowFunctionExpression=a,r.FunctionDeclaration=a,r.ClassExpression=a,r.ClassDeclaration=a},{"./inferer-reference":152,"babel-types":180}],154:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}r.__esModule=!0,r.is=void 0;var s=n(e("babel-runtime/core-js/get-iterator"));r.matchesPattern=function(e,t){function r(e){var t=n[s];return"*"===t||e===t}if(!this.isMemberExpression())return!1;for(var n=e.split("."),i=[this.node],s=0;i.length;){var a=i.shift();if(t&&s===n.length)return!0;if(o.isIdentifier(a)){if(!r(a.name))return!1}else if(o.isLiteral(a)){if(!r(a.value))return!1}else{if(o.isMemberExpression(a)){if(a.computed&&!o.isLiteral(a.property))return!1;i.unshift(a.property),i.unshift(a.object);continue}if(!o.isThisExpression(a))return!1;if(!r("this"))return!1}if(++s>n.length)return!1}return s===n.length},r.has=i,r.isStatic=function(){return this.scope.isStatic(this.node)},r.isnt=function(e){return!this.has(e)},r.equals=function(e,t){return this.node[e]===t},r.isNodeType=function(e){return o.isType(this.type,e)},r.canHaveVariableDeclarationOrExpression=function(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()},r.canSwapBetweenExpressionAndStatement=function(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?o.isBlockStatement(e):!!this.isBlockStatement()&&o.isExpression(e))},r.isCompletionRecord=function(e){var t=this,r=!0;do{var n=t.container;if(t.isFunction()&&!r)return!!e;if(r=!1,Array.isArray(n)&&t.key!==n.length-1)return!1}while((t=t.parentPath)&&!t.isProgram());return!0},r.isStatementOrBlock=function(){return!this.parentPath.isLabeledStatement()&&!o.isBlockStatement(this.container)&&(0,a.default)(o.STATEMENT_OR_BLOCK_KEYS,this.key)},r.referencesImport=function(e,t){if(!this.isReferencedIdentifier())return!1;var r=this.scope.getBinding(this.node.name);if(!r||"module"!==r.kind)return!1;var n=r.path,i=n.parentPath;return!(!i.isImportDeclaration()||i.node.source.value!==e||t&&(!n.isImportDefaultSpecifier()||"default"!==t)&&(!n.isImportNamespaceSpecifier()||"*"!==t)&&(!n.isImportSpecifier()||n.node.imported.name!==t))},r.getSource=function(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""},r.willIMaybeExecuteBefore=function(e){return"after"!==this._guessExecutionStatusRelativeTo(e)},r._guessExecutionStatusRelativeTo=function(e){var t=e.scope.getFunctionParent(),r=this.scope.getFunctionParent();if(t.node!==r.node){var n=this._guessExecutionStatusRelativeToDifferentFunctions(t);if(n)return n;e=t.path}var i=e.getAncestry();if(i.indexOf(this)>=0)return"after";var s=this.getAncestry(),a=void 0,u=void 0,l=void 0;for(l=0;l=0){a=c;break}}if(!a)return"before";var p=i[u-1],h=s[l-1];return p&&h?p.listKey&&p.container===h.container?p.key>h.key?"before":"after":o.VISITOR_KEYS[p.type].indexOf(p.key)>o.VISITOR_KEYS[h.type].indexOf(h.key)?"before":"after":"before"},r._guessExecutionStatusRelativeToDifferentFunctions=function(e){var t=e.path;if(t.isFunctionDeclaration()){var r=t.scope.getBinding(t.node.id.name);if(!r.references)return"before";var n=r.referencePaths,i=n,a=Array.isArray(i),o=0;for(i=a?i:(0,s.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if((o=i.next()).done)break;u=o.value}var l=u;if("callee"!==l.key||!l.parentPath.isCallExpression())return}var c=void 0,p=n,h=Array.isArray(p),f=0;for(p=h?p:(0,s.default)(p);;){var d;if(h){if(f>=p.length)break;d=p[f++]}else{if((f=p.next()).done)break;d=f.value}var m=d;if(!m.find(function(e){return e.node===t.node})){var y=this._guessExecutionStatusRelativeTo(m);if(c){if(c!==y)return}else c=y}}return c}},r.resolve=function(e,t){return this._resolve(e,t)||this},r._resolve=function(e,t){if(!(t&&t.indexOf(this)>=0))if((t=t||[]).push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var r=this.scope.getBinding(this.node.name);if(!r)return;if(!r.constant)return;if("module"===r.kind)return;if(r.path!==this){var n=r.path.resolve(e,t);if(this.find(function(e){return e.node===n.node}))return;return n}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var i=this.toComputedKey();if(!o.isLiteral(i))return;var a=i.value,u=this.get("object").resolve(e,t);if(u.isObjectExpression()){var l=u.get("properties"),c=Array.isArray(l),p=0;for(l=c?l:(0,s.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}var f=h;if(f.isProperty()){var d=f.get("key"),m=f.isnt("computed")&&d.isIdentifier({name:a});if(m=m||d.isLiteral({value:a}))return f.get("value").resolve(e,t)}}}else if(u.isArrayExpression()&&!isNaN(+a)){var y=u.get("elements")[a];if(y)return y.resolve(e,t)}}}};var a=n(e("lodash/includes")),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.is=i},{"babel-runtime/core-js/get-iterator":120,"babel-types":180,"lodash/includes":507}],155:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator")),s=n(e("babel-runtime/helpers/classCallCheck")),a=e("babel-types"),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a),u={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!a.react.isCompatTag(e.node.name)||e.parentPath.isJSXMemberExpression()){if("this"===e.node.name){var r=e.scope;do{if(r.path.isFunction()&&!r.path.isArrowFunctionExpression())break}while(r=r.parent);r&&t.breakOnScopePaths.push(r.path)}var n=e.scope.getBinding(e.node.name);n&&n===t.scope.getBinding(e.node.name)&&(t.bindings[e.node.name]=n)}}},l=function(){function e(t,r){(0,s.default)(this,e),this.breakOnScopePaths=[],this.bindings={},this.scopes=[],this.scope=r,this.path=t,this.attachAfter=!1}return e.prototype.isCompatibleScope=function(e){for(var t in this.bindings){var r=this.bindings[t];if(!e.bindingIdentifierEquals(t,r.identifier))return!1}return!0},e.prototype.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.indexOf(e.path)>=0)break}while(e=e.parent)},e.prototype.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var r in this.bindings)if(t.hasOwnBinding(r)){var n=this.bindings[r];if("param"!==n.kind&&this.getAttachmentParentForPath(n.path).key>e.key){this.attachAfter=!0,e=n.path;var s=n.constantViolations,a=Array.isArray(s),o=0;for(s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var l=u;this.getAttachmentParentForPath(l).key>e.key&&(e=l)}}}return e.parentPath.isExportDeclaration()&&(e=e.parentPath),e}},e.prototype._getAttachmentPath=function(){var e=this.scopes.pop();if(e){if(e.path.isFunction()){if(this.hasOwnParamBindings(e)){if(this.scope===e)return;return e.path.get("body").get("body")[0]}return this.getNextScopeAttachmentParent()}return e.path.isProgram()?this.getNextScopeAttachmentParent():void 0}},e.prototype.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},e.prototype.getAttachmentParentForPath=function(e){do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement()||e.isVariableDeclarator()&&null!==e.parentPath.node&&e.parentPath.node.declarations.length>1)return e}while(e=e.parentPath)},e.prototype.hasOwnParamBindings=function(e){for(var t in this.bindings)if(e.hasOwnBinding(t)){var r=this.bindings[t];if("param"===r.kind&&r.constant)return!0}return!1},e.prototype.run=function(){var e=this.path.node;if(!e._hoisted){e._hoisted=!0,this.path.traverse(u,this),this.getCompatibleScopes();var t=this.getAttachmentPath();if(t&&t.getFunctionParent()!==this.path.getFunctionParent()){var r=t.scope.generateUidIdentifier("ref"),n=o.variableDeclarator(r,this.path.node);t[this.attachAfter?"insertAfter":"insertBefore"]([t.isVariableDeclarator()?n:o.variableDeclaration("var",[n])]);var i=this.path.parentPath;i.isJSXElement()&&this.path.container===i.node.children&&(r=o.JSXExpressionContainer(r)),this.path.replaceWith(r)}}},e}();r.default=l,t.exports=r.default},{"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],156:[function(e,t,r){"use strict";r.__esModule=!0;r.hooks=[function(e,t){if("test"===e.key&&(t.isWhile()||t.isSwitchCase())||"declaration"===e.key&&t.isExportDeclaration()||"body"===e.key&&t.isLabeledStatement()||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&("consequent"===e.key||"alternate"===e.key)||"body"===e.key&&(t.isLoop()||t.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",body:[]}),!0}]},{}],157:[function(e,t,r){"use strict";r.__esModule=!0,r.Flow=r.Pure=r.Generated=r.User=r.Var=r.BlockScoped=r.Referenced=r.Scope=r.Expression=r.Statement=r.BindingIdentifier=r.ReferencedMemberExpression=r.ReferencedIdentifier=void 0;var n=e("babel-types"),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);r.ReferencedIdentifier={types:["Identifier","JSXIdentifier"],checkPath:function(e,t){var r=e.node,s=e.parent;if(!i.isIdentifier(r,t)&&!i.isJSXMemberExpression(s,t)){if(!i.isJSXIdentifier(r,t))return!1;if(n.react.isCompatTag(r.name))return!1}return i.isReferenced(r,s)}},r.ReferencedMemberExpression={types:["MemberExpression"],checkPath:function(e){var t=e.node,r=e.parent;return i.isMemberExpression(t)&&i.isReferenced(t,r)}},r.BindingIdentifier={types:["Identifier"],checkPath:function(e){var t=e.node,r=e.parent;return i.isIdentifier(t)&&i.isBinding(t,r)}},r.Statement={types:["Statement"],checkPath:function(e){var t=e.node,r=e.parent;if(i.isStatement(t)){if(i.isVariableDeclaration(t)){if(i.isForXStatement(r,{left:t}))return!1;if(i.isForStatement(r,{init:t}))return!1}return!0}return!1}},r.Expression={types:["Expression"],checkPath:function(e){return e.isIdentifier()?e.isReferencedIdentifier():i.isExpression(e.node)}},r.Scope={types:["Scopable"],checkPath:function(e){return i.isScope(e.node,e.parent)}},r.Referenced={checkPath:function(e){return i.isReferenced(e.node,e.parent)}},r.BlockScoped={checkPath:function(e){return i.isBlockScoped(e.node)}},r.Var={types:["VariableDeclaration"],checkPath:function(e){return i.isVar(e.node)}},r.User={checkPath:function(e){return e.node&&!!e.node.loc}},r.Generated={checkPath:function(e){return!e.isUser()}},r.Pure={checkPath:function(e,t){return e.scope.isPure(e.node,t)}},r.Flow={types:["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],checkPath:function(e){var t=e.node;return!!i.isFlow(t)||(i.isImportDeclaration(t)?"type"===t.importKind||"typeof"===t.importKind:i.isExportDeclaration(t)?"type"===t.exportKind:!!i.isImportSpecifier(t)&&("type"===t.importKind||"typeof"===t.importKind))}}},{"babel-types":180}],158:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/typeof")),s=n(e("babel-runtime/core-js/get-iterator"));r.insertBefore=function(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertBefore(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key)this.node&&e.push(this.node),this.replaceExpressionWithStatements(e);else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertBefore(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.push(this.node),this._replaceWith(l.blockStatement(e))}return[this]},r._containerInsert=function(e,t){this.updateSiblingKeys(e,t.length);for(var r=[],n=0;n=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}var d=f;d.setScope(),d.debug(function(){return"Inserted."});var m=l,y=Array.isArray(m),g=0;for(m=y?m:(0,s.default)(m);;){var b;if(y){if(g>=m.length)break;b=m[g++]}else{if((g=m.next()).done)break;b=g.value}b.maybeQueue(d,!0)}}return r},r._containerInsertBefore=function(e){return this._containerInsert(this.key,e)},r._containerInsertAfter=function(e){return this._containerInsert(this.key+1,e)},r._maybePopFromStatements=function(e){var t=e[e.length-1];(l.isIdentifier(t)||l.isExpressionStatement(t)&&l.isIdentifier(t.expression))&&!this.isCompletionRecord()&&e.pop()},r.insertAfter=function(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertAfter(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key){if(this.node){var t=this.scope.generateDeclaredUidIdentifier();e.unshift(l.expressionStatement(l.assignmentExpression("=",t,this.node))),e.push(l.expressionStatement(t))}this.replaceExpressionWithStatements(e)}else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertAfter(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.unshift(this.node),this._replaceWith(l.blockStatement(e))}return[this]},r.updateSiblingKeys=function(e,t){if(this.parent)for(var r=a.path.get(this.parent),n=0;n=e&&(i.key+=t)}},r._verifyNodeList=function(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:this.scope;return new o.default(this,e).run()};var a=e("../cache"),o=n(e("./lib/hoister")),u=n(e("./index")),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))},{"../cache":140,"./index":150,"./lib/hoister":155,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/typeof":138,"babel-types":180}],159:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.remove=function(){this._assertUnremoved(),this.resync(),this._callRemovalHooks()?this._markRemoved():(this.shareCommentsWithSiblings(),this._remove(),this._markRemoved())},r._callRemovalHooks=function(){var e=i.hooks,t=Array.isArray(e),r=0;for(e=t?e:(0,n.default)(e);;){var s;if(t){if(r>=e.length)break;s=e[r++]}else{if((r=e.next()).done)break;s=r.value}if(s(this,this.parentPath))return!0}},r._remove=function(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)},r._markRemoved=function(){this.shouldSkip=!0,this.removed=!0,this.node=null},r._assertUnremoved=function(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")};var i=e("./lib/removal-hooks")},{"./lib/removal-hooks":156,"babel-runtime/core-js/get-iterator":120}],160:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.replaceWithMultiple=function(e){this.resync(),e=this._verifyNodeList(e),l.inheritLeadingComments(e[0],this.node),l.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()},r.replaceWithSourceString=function(e){this.resync();try{e="("+e+")",e=(0,u.parse)(e)}catch(r){var t=r.loc;throw t&&(r.message+=" - make sure this is an expression.",r.message+="\n"+(0,s.default)(e,t.line,t.column+1)),r}return e=e.program.body[0].expression,a.default.removeProperties(e),this.replaceWith(e)},r.replaceWith=function(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof o.default&&(e=e.node),!e)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node!==e){if(this.isProgram()&&!l.isProgram(e))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(e))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof e)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");if(this.isNodeType("Statement")&&l.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||this.parentPath.isExportDefaultDeclaration()||(e=l.expressionStatement(e))),this.isNodeType("Expression")&&l.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(l.inheritsComments(e,t),l.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}},r._replaceWith=function(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?l.validate(this.parent,this.key,[e]):l.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e},r.replaceExpressionWithStatements=function(e){this.resync();var t=l.toSequenceExpression(e,this.scope);if(l.isSequenceExpression(t)){var r=t.expressions;r.length>=2&&this.parentPath.isExpressionStatement()&&this._maybePopFromStatements(r),1===r.length?this.replaceWith(r[0]):this.replaceWith(t)}else{if(!t){var n=l.functionExpression(null,[],l.blockStatement(e));n.shadow=!0,this.replaceWith(l.callExpression(n,[])),this.traverse(c);var s=this.get("callee").getCompletionRecords(),a=Array.isArray(s),o=0;for(s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var p=u;if(p.isExpressionStatement()){var h=p.findParent(function(e){return e.isLoop()});if(h){var f=h.getData("expressionReplacementReturnUid");if(f)f=l.identifier(f.name);else{var d=this.get("callee");f=d.scope.generateDeclaredUidIdentifier("ret"),d.get("body").pushContainer("body",l.returnStatement(f)),h.setData("expressionReplacementReturnUid",f)}p.get("expression").replaceWith(l.assignmentExpression("=",f,p.node.expression))}else p.replaceWith(l.returnStatement(p.node.expression))}}return this.node}this.replaceWith(t)}},r.replaceInline=function(e){return this.resync(),Array.isArray(e)?Array.isArray(this.container)?(e=this._verifyNodeList(e),this._containerInsertAfter(e),this.remove()):this.replaceWithMultiple(e):this.replaceWith(e)};var s=n(e("babel-code-frame")),a=n(e("../index")),o=n(e("./index")),u=e("babylon"),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),c={Function:function(e){e.skip()},VariableDeclaration:function(e){if("var"===e.node.kind){var t=e.getBindingIdentifiers();for(var r in t)e.scope.push({id:t[r]});var n=[],s=e.node.declarations,a=Array.isArray(s),o=0;for(s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var c=u;c.init&&n.push(l.expressionStatement(l.assignmentExpression("=",c.id,c.init)))}e.replaceWithMultiple(n)}}}},{"../index":143,"./index":150,"babel-code-frame":21,"babel-runtime/core-js/get-iterator":120,"babel-types":180,babylon:188}],161:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/helpers/classCallCheck")),i=function(){function e(t){var r=t.existing,i=t.identifier,s=t.scope,a=t.path,o=t.kind;(0,n.default)(this,e),this.identifier=i,this.scope=s,this.path=a,this.kind=o,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.clearValue(),r&&(this.constantViolations=[].concat(r.path,r.constantViolations,this.constantViolations))}return e.prototype.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},e.prototype.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},e.prototype.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},e.prototype.reassign=function(e){this.constant=!1,-1===this.constantViolations.indexOf(e)&&this.constantViolations.push(e)},e.prototype.reference=function(e){-1===this.referencePaths.indexOf(e)&&(this.referenced=!0,this.references++,this.referencePaths.push(e))},e.prototype.dereference=function(){this.references--,this.referenced=!!this.references},e}();r.default=i,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134}],162:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(v.isModuleDeclaration(e))if(e.source)s(e.source,t);else if(e.specifiers&&e.specifiers.length){var r=e.specifiers,n=Array.isArray(r),i=0;for(r=n?r:(0,c.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if((i=r.next()).done)break;a=i.value}s(a,t)}}else e.declaration&&s(e.declaration,t);else if(v.isModuleSpecifier(e))s(e.local,t);else if(v.isMemberExpression(e))s(e.object,t),s(e.property,t);else if(v.isIdentifier(e))t.push(e.name);else if(v.isLiteral(e))t.push(e.value);else if(v.isCallExpression(e))s(e.callee,t);else if(v.isObjectExpression(e)||v.isObjectPattern(e)){var o=e.properties,u=Array.isArray(o),l=0;for(o=u?o:(0,c.default)(o);;){var p;if(u){if(l>=o.length)break;p=o[l++]}else{if((l=o.next()).done)break;p=l.value}var h=p;s(h.key||h.argument,t)}}}r.__esModule=!0;var a=i(e("babel-runtime/core-js/object/keys")),o=i(e("babel-runtime/core-js/object/create")),u=i(e("babel-runtime/core-js/map")),l=i(e("babel-runtime/helpers/classCallCheck")),c=i(e("babel-runtime/core-js/get-iterator")),p=i(e("lodash/includes")),h=i(e("lodash/repeat")),f=i(e("./lib/renamer")),d=i(e("../index")),m=i(e("lodash/defaults")),y=n(e("babel-messages")),g=i(e("./binding")),b=i(e("globals")),v=n(e("babel-types")),x=e("../cache"),E=0,A={For:function(e){var t=v.FOR_INIT_KEYS,r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i,a=e.get(s);a.isVar()&&e.scope.getFunctionParent().registerBinding("var",a)}},Declaration:function(e){e.isBlockScoped()||e.isExportDeclaration()&&e.get("declaration").isDeclaration()||e.scope.getFunctionParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){t.references.push(e)},ForXStatement:function(e,t){var r=e.get("left");(r.isPattern()||r.isIdentifier())&&t.constantViolations.push(r)},ExportDeclaration:{exit:function(e){var t=e.node,r=e.scope,n=t.declaration;if(v.isClassDeclaration(n)||v.isFunctionDeclaration(n)){var i=n.id;if(!i)return;var s=r.getBinding(i.name);s&&s.reference(e)}else if(v.isVariableDeclaration(n)){var a=n.declarations,o=Array.isArray(a),u=0;for(a=o?a:(0,c.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var p=l,h=v.getBindingIdentifiers(p);for(var f in h){var d=r.getBinding(f);d&&d.reference(e)}}}}},LabeledStatement:function(e){e.scope.getProgramParent().addGlobal(e.node),e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e.get("argument"))},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e.get("argument"))},BlockScoped:function(e){var t=e.scope;t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e)},ClassDeclaration:function(e){var t=e.node.id;if(t){var r=t.name;e.scope.bindings[r]=e.scope.getBinding(r)}},Block:function(e){var t=e.get("body"),r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;s.isFunctionDeclaration()&&e.scope.getBlockParent().registerDeclaration(s)}}},D=0,S=function(){function e(t,r){if((0,l.default)(this,e),r&&r.block===t.node)return r;var n=function(e,t,r){var n=x.scope.get(e.node)||[],i=n,s=Array.isArray(i),a=0;for(i=s?i:(0,c.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if((a=i.next()).done)break;o=a.value}var u=o;if(u.parent===t&&u.path===e)return u}n.push(r),x.scope.has(e.node)||x.scope.set(e.node,n)}(t,r,this);if(n)return n;this.uid=D++,this.parent=r,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,this.labels=new u.default}return e.prototype.traverse=function(e,t,r){(0,d.default)(e,t,this,r,this.path)},e.prototype.generateDeclaredUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp",t=this.generateUidIdentifier(e);return this.push({id:t}),t},e.prototype.generateUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";return v.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=v.toIdentifier(e).replace(/^_+/,"").replace(/[0-9]+$/g,"");var t=void 0,r=0;do{t=this._generateUid(e,r),r++}while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var n=this.getProgramParent();return n.references[t]=!0,n.uids[t]=!0,t},e.prototype._generateUid=function(e,t){var r=e;return t>1&&(r+=t),"_"+r},e.prototype.generateUidIdentifierBasedOnNode=function(e,t){var r=e;v.isAssignmentExpression(e)?r=e.left:v.isVariableDeclarator(e)?r=e.id:(v.isObjectProperty(r)||v.isObjectMethod(r))&&(r=r.key);var n=[];s(r,n);var i=n.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(v.isThisExpression(e)||v.isSuper(e))return!0;if(v.isIdentifier(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},e.prototype.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var r=this.generateUidIdentifierBasedOnNode(e);return t||this.push({id:r}),r},e.prototype.checkBlockScopedCollisions=function(e,t,r,n){if("param"!==t&&("hoisted"!==t||"let"!==e.kind)){if("let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind||"param"===e.kind&&("let"===t||"const"===t))throw this.hub.file.buildCodeFrameError(n,y.get("scopeDuplicateDeclaration",r),TypeError)}},e.prototype.rename=function(e,t,r){var n=this.getBinding(e);if(n)return t=t||this.generateUidIdentifier(e).name,new f.default(n,e,t).rename(r)},e.prototype._renameFromMap=function(e,t,r,n){e[t]&&(e[r]=n,e[t]=null)},e.prototype.dump=function(){var e=(0,h.default)("-",60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var r in t.bindings){var n=t.bindings[r];console.log(" -",r,{constant:n.constant,references:n.references,violations:n.constantViolations.length,kind:n.kind})}}while(t=t.parent);console.log(e)},e.prototype.toArray=function(e,t){var r=this.hub.file;if(v.isIdentifier(e)){var n=this.getBinding(e.name);if(n&&n.constant&&n.path.isGenericType("Array"))return e}if(v.isArrayExpression(e))return e;if(v.isIdentifier(e,{name:"arguments"}))return v.callExpression(v.memberExpression(v.memberExpression(v.memberExpression(v.identifier("Array"),v.identifier("prototype")),v.identifier("slice")),v.identifier("call")),[e]);var i="toArray",s=[e];return!0===t?i="toConsumableArray":t&&(s.push(v.numericLiteral(t)),i="slicedToArray"),v.callExpression(r.addHelper(i),s)},e.prototype.hasLabel=function(e){return!!this.getLabel(e)},e.prototype.getLabel=function(e){return this.labels.get(e)},e.prototype.registerLabel=function(e){this.labels.set(e.node.label.name,e)},e.prototype.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration()){var t=e.get("declarations"),r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this.registerBinding(e.node.kind,s)}}else if(e.isClassDeclaration())this.registerBinding("let",e);else if(e.isImportDeclaration()){var a=e.get("specifiers"),o=Array.isArray(a),u=0;for(a=o?a:(0,c.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var p=l;this.registerBinding("module",p)}}else if(e.isExportDeclaration()){var h=e.get("declaration");(h.isClassDeclaration()||h.isFunctionDeclaration()||h.isVariableDeclaration())&&this.registerDeclaration(h)}else this.registerBinding("unknown",e)},e.prototype.buildUndefinedNode=function(){return this.hasBinding("undefined")?v.unaryExpression("void",v.numericLiteral(0),!0):v.identifier("undefined")},e.prototype.registerConstantViolation=function(e){var t=e.getBindingIdentifiers();for(var r in t){var n=this.getBinding(r);n&&n.reassign(e)}},e.prototype.registerBinding=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration()){var n=t.get("declarations"),i=Array.isArray(n),s=0;for(n=i?n:(0,c.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;this.registerBinding(e,o)}}else{var u=this.getProgramParent(),l=t.getBindingIdentifiers(!0);for(var p in l){var h=l[p],f=Array.isArray(h),d=0;for(h=f?h:(0,c.default)(h);;){var m;if(f){if(d>=h.length)break;m=h[d++]}else{if((d=h.next()).done)break;m=d.value}var y=m,b=this.getOwnBinding(p);if(b){if(b.identifier===y)continue;this.checkBlockScopedCollisions(b,e,p,y)}b&&b.path.isFlow()&&(b=null),u.references[p]=!0,this.bindings[p]=new g.default({identifier:y,existing:b,scope:this,path:r,kind:e})}}}},e.prototype.addGlobal=function(e){this.globals[e.name]=e},e.prototype.hasUid=function(e){var t=this;do{if(t.uids[e])return!0}while(t=t.parent);return!1},e.prototype.hasGlobal=function(e){var t=this;do{if(t.globals[e])return!0}while(t=t.parent);return!1},e.prototype.hasReference=function(e){var t=this;do{if(t.references[e])return!0}while(t=t.parent);return!1},e.prototype.isPure=function(e,t){if(v.isIdentifier(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(v.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(v.isClassBody(e)){var n=e.body,i=Array.isArray(n),s=0;for(n=i?n:(0,c.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;if(!this.isPure(o,t))return!1}return!0}if(v.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(v.isArrayExpression(e)){var u=e.elements,l=Array.isArray(u),p=0;for(u=l?u:(0,c.default)(u);;){var h;if(l){if(p>=u.length)break;h=u[p++]}else{if((p=u.next()).done)break;h=p.value}var f=h;if(!this.isPure(f,t))return!1}return!0}if(v.isObjectExpression(e)){var d=e.properties,m=Array.isArray(d),y=0;for(d=m?d:(0,c.default)(d);;){var g;if(m){if(y>=d.length)break;g=d[y++]}else{if((y=d.next()).done)break;g=y.value}var b=g;if(!this.isPure(b,t))return!1}return!0}return v.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):v.isClassProperty(e)||v.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):v.isUnaryExpression(e)?this.isPure(e.argument,t):v.isPureish(e)},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e){var t=this;do{var r=t.data[e];if(null!=r)return r}while(t=t.parent)},e.prototype.removeData=function(e){var t=this;do{null!=t.data[e]&&(t.data[e]=null)}while(t=t.parent)},e.prototype.init=function(){this.references||this.crawl()},e.prototype.crawl=function(){E++,this._crawl(),E--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,o.default)(null),this.bindings=(0,o.default)(null),this.globals=(0,o.default)(null),this.uids=(0,o.default)(null),this.data=(0,o.default)(null),e.isLoop()){var t=v.FOR_INIT_KEYS,r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i,a=e.get(s);a.isBlockScoped()&&this.registerBinding(a.node.kind,a)}}if(e.isFunctionExpression()&&e.has("id")&&(e.get("id").node[v.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[v.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction()){var u=e.get("params"),l=Array.isArray(u),p=0;for(u=l?u:(0,c.default)(u);;){var h;if(l){if(p>=u.length)break;h=u[p++]}else{if((p=u.next()).done)break;h=p.value}var f=h;this.registerBinding("param",f)}}e.isCatchClause()&&this.registerBinding("let",e);if(!this.getProgramParent().crawling){var d={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(A,d),this.crawling=!1;var m=d.assignments,y=Array.isArray(m),g=0;for(m=y?m:(0,c.default)(m);;){var b;if(y){if(g>=m.length)break;b=m[g++]}else{if((g=m.next()).done)break;b=g.value}var x=b,E=x.getBindingIdentifiers(),D=void 0;for(var S in E)x.scope.getBinding(S)||(D=D||x.scope.getProgramParent()).addGlobal(E[S]);x.scope.registerConstantViolation(x)}var C=d.references,_=Array.isArray(C),w=0;for(C=_?C:(0,c.default)(C);;){var k;if(_){if(w>=C.length)break;k=C[w++]}else{if((w=C.next()).done)break;k=w.value}var F=k,T=F.scope.getBinding(F.node.name);T?T.reference(F):F.scope.getProgramParent().addGlobal(F.node)}var P=d.constantViolations,B=Array.isArray(P),O=0;for(P=B?P:(0,c.default)(P);;){var N;if(B){if(O>=P.length)break;N=P[O++]}else{if((O=P.next()).done)break;N=O.value}var j=N;j.scope.registerConstantViolation(j)}}},e.prototype.push=function(e){var t=this.path;t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=this.getFunctionParent().path),(t.isLoop()||t.isCatchClause()||t.isFunction())&&(v.ensureBlock(t.node),t=t.get("body"));var r=e.unique,n=e.kind||"var",i=null==e._blockHoist?2:e._blockHoist,s="declaration:"+n+":"+i,a=!r&&t.getData(s);if(!a){var o=v.variableDeclaration(n,[]);o._generated=!0,o._blockHoist=i;a=t.unshiftContainer("body",[o])[0],r||t.setData(s,a)}var u=v.variableDeclarator(e.id,e.init);a.node.declarations.push(u),this.registerBinding(n,a.get("declarations").pop())},e.prototype.getProgramParent=function(){var e=this;do{if(e.path.isProgram())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getFunctionParent=function(){var e=this;do{if(e.path.isFunctionParent())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getBlockParent=function(){var e=this;do{if(e.path.isBlockParent())return e}while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},e.prototype.getAllBindings=function(){var e=(0,o.default)(null),t=this;do{(0,m.default)(e,t.bindings),t=t.parent}while(t);return e},e.prototype.getAllBindingsOfKind=function(){var e=(0,o.default)(null),t=arguments,r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i,a=this;do{for(var u in a.bindings){var l=a.bindings[u];l.kind===s&&(e[u]=l)}a=a.parent}while(a)}return e},e.prototype.bindingIdentifierEquals=function(e,t){return this.getBindingIdentifier(e)===t},e.prototype.warnOnFlowBinding=function(e){return 0===E&&e&&e.path.isFlow()&&console.warn("\n You or one of the Babel plugins you are using are using Flow declarations as bindings.\n Support for this will be removed in version 7. To find out the caller, grep for this\n message and change it to a `console.trace()`.\n "),e},e.prototype.getBinding=function(e){var t=this;do{var r=t.getOwnBinding(e);if(r)return this.warnOnFlowBinding(r)}while(t=t.parent)},e.prototype.getOwnBinding=function(e){return this.warnOnFlowBinding(this.bindings[e])},e.prototype.getBindingIdentifier=function(e){var t=this.getBinding(e);return t&&t.identifier},e.prototype.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return t&&t.identifier},e.prototype.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},e.prototype.hasBinding=function(t,r){return!!t&&(!!this.hasOwnBinding(t)||(!!this.parentHasBinding(t,r)||(!!this.hasUid(t)||(!(r||!(0,p.default)(e.globals,t))||!(r||!(0,p.default)(e.contextVariables,t))))))},e.prototype.parentHasBinding=function(e,t){return this.parent&&this.parent.hasBinding(e,t)},e.prototype.moveBindingTo=function(e,t){var r=this.getBinding(e);r&&(r.scope.removeOwnBinding(e),r.scope=t,t.bindings[e]=r)},e.prototype.removeOwnBinding=function(e){delete this.bindings[e]},e.prototype.removeBinding=function(e){var t=this.getBinding(e);t&&t.scope.removeOwnBinding(e);var r=this;do{r.uids[e]&&(r.uids[e]=!1)}while(r=r.parent)},e}();S.globals=(0,a.default)(b.default.builtin),S.contextVariables=["arguments","undefined","Infinity","NaN"],r.default=S,t.exports=r.default},{"../cache":140,"../index":143,"./binding":161,"./lib/renamer":163,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/map":122,"babel-runtime/core-js/object/create":125,"babel-runtime/core-js/object/keys":127,"babel-runtime/helpers/classCallCheck":134,"babel-types":180,globals:168,"lodash/defaults":495,"lodash/includes":507,"lodash/repeat":530}],163:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=(n(e("../binding")),function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))),a={ReferencedIdentifier:function(e,t){var r=e.node;r.name===t.oldName&&(r.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||e.skip()},"AssignmentExpression|Declaration":function(e,t){var r=e.getOuterBindingIdentifiers();for(var n in r)n===t.oldName&&(r[n].name=t.newName)}},o=function(){function e(t,r,n){(0,i.default)(this,e),this.newName=n,this.oldName=r,this.binding=t}return e.prototype.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath.isExportDeclaration()&&e.parentPath;if(t){var r=t.isExportDefaultDeclaration();r&&(e.isFunctionDeclaration()||e.isClassDeclaration())&&!e.node.id&&(e.node.id=e.scope.generateUidIdentifier("default"));var n=e.getOuterBindingIdentifiers(),i=[];for(var a in n){var o=a===this.oldName?this.newName:a,u=r?"default":a;i.push(s.exportSpecifier(s.identifier(o),s.identifier(u)))}if(i.length){var l=s.exportNamedDeclaration(null,i);e.isFunctionDeclaration()&&(l._blockHoist=3),t.insertAfter(l),t.replaceWith(e.node)}}},e.prototype.rename=function(e){var t=this.binding,r=this.oldName,n=this.newName,i=t.scope,s=t.path.find(function(e){return e.isDeclaration()||e.isFunctionExpression()});s&&this.maybeConvertFromExportDeclaration(s),i.traverse(e||i.block,a,this),e||(i.removeOwnBinding(r),i.bindings[n]=t,this.binding.identifier.name=n),t.type},e}();r.default=o,t.exports=r.default},{"../binding":161,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],164:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e._exploded)return e;e._exploded=!0;for(var t in e)if(!l(t)){var r=t.split("|");if(1!==r.length){var n=e[t];delete e[t];var i=r,s=Array.isArray(i),o=0;for(i=s?i:(0,f.default)(i);;){var p;if(s){if(o>=i.length)break;p=i[o++]}else{if((o=i.next()).done)break;p=o.value}e[p]=n}}}a(e),delete e.__esModule,function(e){for(var t in e)if(!l(t)){var r=e[t];"function"==typeof r&&(e[t]={enter:r})}}(e),u(e);var m=(0,h.default)(e),b=Array.isArray(m),v=0;for(m=b?m:(0,f.default)(m);;){var x;if(b){if(v>=m.length)break;x=m[v++]}else{if((v=m.next()).done)break;x=v.value}var E=x;if(!l(E)){var A=d[E];if(A){var D=e[E];for(var S in D)D[S]=function(e,t){var r=function(r){if(e.checkPath(r))return t.apply(this,arguments)};return r.toString=function(){return t.toString()},r}(A,D[S]);if(delete e[E],A.types){var C=A.types,_=Array.isArray(C),w=0;for(C=_?C:(0,f.default)(C);;){var k;if(_){if(w>=C.length)break;k=C[w++]}else{if((w=C.next()).done)break;k=w.value}var F=k;e[F]?c(e[F],D):e[F]=D}}else c(e,D)}}}for(var T in e)if(!l(T)){var P=e[T],B=y.FLIPPED_ALIAS_KEYS[T],O=y.DEPRECATED_KEYS[T];if(O&&(console.trace("Visitor defined for "+T+" but it has been renamed to "+O),B=[O]),B){delete e[T];var N=B,j=Array.isArray(N),I=0;for(N=j?N:(0,f.default)(N);;){var L;if(j){if(I>=N.length)break;L=N[I++]}else{if((I=N.next()).done)break;L=I.value}var M=L,R=e[M];R?c(R,P):e[M]=(0,g.default)(P)}}}for(var V in e)l(V)||u(e[V]);return e}function a(e){if(!e._verified){if("function"==typeof e)throw new Error(m.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!l(t)){if(y.TYPES.indexOf(t)<0)throw new Error(m.get("traverseVerifyNodeType",t));var r=e[t];if("object"===(void 0===r?"undefined":(0,p.default)(r)))for(var n in r){if("enter"!==n&&"exit"!==n)throw new Error(m.get("traverseVerifyVisitorProperty",t,n));o(t+"."+n,r[n])}}e._verified=!0}}function o(e,t){var r=[].concat(t),n=Array.isArray(r),i=0;for(r=n?r:(0,f.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if("function"!=typeof a)throw new TypeError("Non-function found defined in "+e+" with type "+(void 0===a?"undefined":(0,p.default)(a)))}}function u(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function l(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function c(e,t){for(var r in t)e[r]=[].concat(e[r]||[],t[r])}r.__esModule=!0;var p=i(e("babel-runtime/helpers/typeof")),h=i(e("babel-runtime/core-js/object/keys")),f=i(e("babel-runtime/core-js/get-iterator"));r.explode=s,r.verify=a,r.merge=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2],n={},i=0;i=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},r.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),r.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],r.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},r.enable(i())}).call(this,e("_process"))},{"./debug":166,_process:550}],166:[function(e,t,r){arguments[4][60][0].apply(r,arguments)},{dup:60,ms:543}],167:[function(e,t,r){t.exports={builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},es5:{Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},es6:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},browser:{addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AutocompleteErrorEvent:!1,BarProp:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,blur:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,cancelIdleCallback:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CDATASection:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClientRect:!1,ClientRectList:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConvolverNode:!1,createImageBitmap:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSAnimation:!1,CSSFontFaceRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CSSTransition:!1,CSSUnknownRule:!1,CSSViewportRule:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,Debug:!1,defaultStatus:!1,defaultstatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentTimeline:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMParser:!1,DOMSettableTokenList:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,FederatedCredential:!1,fetch:!1,File:!1,FileError:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAppletElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLKeygenElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,ImageBitmap:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,InputMethodContext:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!1,Location:!1,locationbar:!1,matchMedia:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyError:!1,MediaKeyEvent:!1,MediaKeyMessageEvent:!1,MediaKeys:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaSource:!1,MediaRecorder:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,navigator:!1,Navigator:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PasswordCredential:!1,Path2D:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,Plugin:!1,PluginArray:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,RadioNodeList:!1,Range:!1,ReadableByteStream:!1,ReadableStream:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,resizeTo:!1,Response:!1,RTCIceCandidate:!1,RTCSessionDescription:!1,RTCPeerConnection:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedKeyframeList:!1,SharedWorker:!1,showModalDialog:!1,SiteBoundCredential:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,status:!1,statusbar:!1,stop:!1,Storage:!1,StorageEvent:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,SVGZoomEvent:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeEvent:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,VTTCue:!1,WaveShaperNode:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestProgressEvent:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1,XSLTProcessor:!1},worker:{applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,XMLHttpRequest:!1},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,Intl:!1,module:!1,process:!1,require:!1,root:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},commonjs:{exports:!0,module:!1,require:!1,global:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,spyOnProperty:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},jest:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,check:!1,describe:!1,expect:!1,gen:!1,it:!1,fdescribe:!1,fit:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},nashorn:{__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,Java:!1,java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,ln:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,AccountsClient:!1,AccountsServer:!1,AccountsCommon:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,DDPRateLimiter:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},applescript:{$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},serviceworker:{caches:!1,Cache:!1,CacheStorage:!1,Client:!1,clients:!1,Clients:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,FetchEvent:!1,importScripts:!1,registration:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,skipWaiting:!1,WindowClient:!1},atomtest:{advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},embertest:{andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,resumeTest:!1,triggerEvent:!1,visit:!1},protractor:{$:!1,$$:!1,browser:!1,By:!1,by:!1,DartObject:!1,element:!1,protractor:!1},"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1},webextensions:{browser:!1,chrome:!1,opr:!1},greasemonkey:{GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1}}},{}],168:[function(e,t,r){t.exports=e("./globals.json")},{"./globals.json":167}],169:[function(e,t,r){"use strict";r.__esModule=!0,r.NOT_LOCAL_BINDING=r.BLOCK_SCOPED_SYMBOL=r.INHERIT_KEYS=r.UNARY_OPERATORS=r.STRING_UNARY_OPERATORS=r.NUMBER_UNARY_OPERATORS=r.BOOLEAN_UNARY_OPERATORS=r.BINARY_OPERATORS=r.NUMBER_BINARY_OPERATORS=r.BOOLEAN_BINARY_OPERATORS=r.COMPARISON_BINARY_OPERATORS=r.EQUALITY_BINARY_OPERATORS=r.BOOLEAN_NUMBER_BINARY_OPERATORS=r.UPDATE_OPERATORS=r.LOGICAL_OPERATORS=r.COMMENT_KEYS=r.FOR_INIT_KEYS=r.FLATTENABLE_KEYS=r.STATEMENT_OR_BLOCK_KEYS=void 0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/symbol/for")),i=(r.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"],r.FLATTENABLE_KEYS=["body","expressions"],r.FOR_INIT_KEYS=["left","init"],r.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"],r.LOGICAL_OPERATORS=["||","&&"],r.UPDATE_OPERATORS=["++","--"],r.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="]),s=r.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],a=r.COMPARISON_BINARY_OPERATORS=[].concat(s,["in","instanceof"]),o=r.BOOLEAN_BINARY_OPERATORS=[].concat(a,i),u=r.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"],l=(r.BINARY_OPERATORS=["+"].concat(u,o),r.BOOLEAN_UNARY_OPERATORS=["delete","!"]),c=r.NUMBER_UNARY_OPERATORS=["+","-","++","--","~"],p=r.STRING_UNARY_OPERATORS=["typeof"];r.UNARY_OPERATORS=["void"].concat(l,c,p),r.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},r.BLOCK_SCOPED_SYMBOL=(0,n.default)("var used to be block scoped"),r.NOT_LOCAL_BINDING=(0,n.default)("should not be considered a local binding")},{"babel-runtime/core-js/symbol/for":130}],170:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r){var n=[],s=!0,a=e,o=Array.isArray(a),u=0;for(a=o?a:(0,l.default)(a);;){var c;if(o){if(u>=a.length)break;c=a[u++]}else{if((u=a.next()).done)break;c=u.value}var p=c;if(s=!1,h.isExpression(p))n.push(p);else if(h.isExpressionStatement(p))n.push(p.expression);else if(h.isVariableDeclaration(p)){if("var"!==p.kind)return;var f=p.declarations,d=Array.isArray(f),m=0;for(f=d?f:(0,l.default)(f);;){var y;if(d){if(m>=f.length)break;y=f[m++]}else{if((m=f.next()).done)break;y=m.value}var g=y,b=h.getBindingIdentifiers(g);for(var v in b)r.push({kind:p.kind,id:b[v]});g.init&&n.push(h.assignmentExpression("=",g.id,g.init))}s=!0}else if(h.isIfStatement(p)){var x=p.consequent?i([p.consequent],t,r):t.buildUndefinedNode(),E=p.alternate?i([p.alternate],t,r):t.buildUndefinedNode();if(!x||!E)return;n.push(h.conditionalExpression(p.test,x,E))}else if(h.isBlockStatement(p)){var A=i(p.body,t,r);if(!A)return;n.push(A)}else{if(!h.isEmptyStatement(p))return;s=!0}}return s&&n.push(t.buildUndefinedNode()),1===n.length?n[0]:h.sequenceExpression(n)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,r=void 0;return"method"===e.kind?s.increment()+"":(r=h.isIdentifier(t)?t.name:h.isStringLiteral(t)?(0,u.default)(t.value):(0,u.default)(h.removePropertiesDeep(h.cloneDeep(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function a(e){return e+="",e=e.replace(/[^a-zA-Z0-9$_]/g,"-"),e=e.replace(/^[-0-9]+/,""),e=e.replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),h.isValidIdentifier(e)||(e="_"+e),e||"_"}r.__esModule=!0;var o=n(e("babel-runtime/core-js/number/max-safe-integer")),u=n(e("babel-runtime/core-js/json/stringify")),l=n(e("babel-runtime/core-js/get-iterator"));r.toComputedKey=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||h.isIdentifier(t)&&(t=h.stringLiteral(t.name)),t},r.toSequenceExpression=function(e,t){if(e&&e.length){var r=[],n=i(e,t,r);if(n){var s=r,a=Array.isArray(s),o=0;for(s=a?s:(0,l.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var c=u;t.push(c)}return n}}},r.toKeyAlias=s,r.toIdentifier=a,r.toBindingIdentifierName=function(e){return"eval"!==(e=a(e))&&"arguments"!==e||(e="_"+e),e},r.toStatement=function(e,t){if(h.isStatement(e))return e;var r=!1,n=void 0;if(h.isClass(e))r=!0,n="ClassDeclaration";else if(h.isFunction(e))r=!0,n="FunctionDeclaration";else if(h.isAssignmentExpression(e))return h.expressionStatement(e);if(r&&!e.id&&(n=!1),!n){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=n,e},r.toExpression=function(e){if(h.isExpressionStatement(e)&&(e=e.expression),h.isExpression(e))return e;if(h.isClass(e)?e.type="ClassExpression":h.isFunction(e)&&(e.type="FunctionExpression"),!h.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e},r.toBlock=function(e,t){return h.isBlockStatement(e)?e:(h.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(h.isStatement(e)||(e=h.isFunction(t)?h.returnStatement(e):h.expressionStatement(e)),e=[e]),h.blockStatement(e))},r.valueToNode=function(e){if(void 0===e)return h.identifier("undefined");if(!0===e||!1===e)return h.booleanLiteral(e);if(null===e)return h.nullLiteral();if("string"==typeof e)return h.stringLiteral(e);if("number"==typeof e)return h.numericLiteral(e);if((0,p.default)(e)){var t=e.source,r=e.toString().match(/\/([a-z]+|)$/)[1];return h.regExpLiteral(t,r)}if(Array.isArray(e))return h.arrayExpression(e.map(h.valueToNode));if((0,c.default)(e)){var n=[];for(var i in e){var s=void 0;s=h.isValidIdentifier(i)?h.identifier(i):h.stringLiteral(i),n.push(h.objectProperty(s,h.valueToNode(e[i])))}return h.objectExpression(n)}throw new Error("don't know how to turn this value into a node")};var c=n(e("lodash/isPlainObject")),p=n(e("lodash/isRegExp")),h=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./index"));s.uid=0,s.increment=function(){return s.uid>=o.default?s.uid=0:s.uid++}},{"./index":180,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/number/max-safe-integer":123,"lodash/isPlainObject":518,"lodash/isRegExp":519}],171:[function(e,t,r){"use strict";var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("../index")),i=e("../constants"),s=e("./index"),a=function(e){return e&&e.__esModule?e:{default:e}}(s);(0,a.default)("ArrayExpression",{fields:{elements:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,a.default)("AssignmentExpression",{fields:{operator:{validate:(0,s.assertValueType)("string")},left:{validate:(0,s.assertNodeType)("LVal")},right:{validate:(0,s.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),(0,a.default)("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:s.assertOneOf.apply(void 0,i.BINARY_OPERATORS)},left:{validate:(0,s.assertNodeType)("Expression")},right:{validate:(0,s.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),(0,a.default)("Directive",{visitor:["value"],fields:{value:{validate:(0,s.assertNodeType)("DirectiveLiteral")}}}),(0,a.default)("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,s.assertValueType)("string")}}}),(0,a.default)("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Directive"))),default:[]},body:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),(0,a.default)("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,s.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,a.default)("CallExpression",{visitor:["callee","arguments"],fields:{callee:{validate:(0,s.assertNodeType)("Expression")},arguments:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Expression","SpreadElement")))}},aliases:["Expression"]}),(0,a.default)("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,s.assertNodeType)("Identifier")},body:{validate:(0,s.assertNodeType)("BlockStatement")}},aliases:["Scopable"]}),(0,a.default)("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},consequent:{validate:(0,s.assertNodeType)("Expression")},alternate:{validate:(0,s.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),(0,a.default)("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,s.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,a.default)("DebuggerStatement",{aliases:["Statement"]}),(0,a.default)("DoWhileStatement",{visitor:["test","body"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),(0,a.default)("EmptyStatement",{aliases:["Statement"]}),(0,a.default)("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,s.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),(0,a.default)("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,s.assertNodeType)("Program")}}}),(0,a.default)("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,s.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,s.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,s.assertNodeType)("Expression"),optional:!0},update:{validate:(0,s.assertNodeType)("Expression"),optional:!0},body:{validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","params","body","returnType","typeParameters"],fields:{id:{validate:(0,s.assertNodeType)("Identifier")},params:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("LVal")))},body:{validate:(0,s.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,s.assertValueType)("boolean")},async:{default:!1,validate:(0,s.assertValueType)("boolean")}},aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"]}),(0,a.default)("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{id:{validate:(0,s.assertNodeType)("Identifier"),optional:!0},params:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("LVal")))},body:{validate:(0,s.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,s.assertValueType)("boolean")},async:{default:!1,validate:(0,s.assertValueType)("boolean")}}}),(0,a.default)("Identifier",{builder:["name"],visitor:["typeAnnotation"],aliases:["Expression","LVal"],fields:{name:{validate:function(e,t,r){n.isValidIdentifier(r)}},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator")))}}}),(0,a.default)("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},consequent:{validate:(0,s.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,s.assertNodeType)("Identifier")},body:{validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("StringLiteral",{builder:["value"],fields:{value:{validate:(0,s.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,s.assertValueType)("number")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,s.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Literal"],fields:{pattern:{validate:(0,s.assertValueType)("string")},flags:{validate:(0,s.assertValueType)("string"),default:""}}}),(0,a.default)("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:s.assertOneOf.apply(void 0,i.LOGICAL_OPERATORS)},left:{validate:(0,s.assertNodeType)("Expression")},right:{validate:(0,s.assertNodeType)("Expression")}}}),(0,a.default)("MemberExpression",{builder:["object","property","computed"],visitor:["object","property"],aliases:["Expression","LVal"],fields:{object:{validate:(0,s.assertNodeType)("Expression")},property:{validate:function(e,t,r){var n=e.computed?"Expression":"Identifier";(0,s.assertNodeType)(n)(e,t,r)}},computed:{default:!1}}}),(0,a.default)("NewExpression",{visitor:["callee","arguments"],aliases:["Expression"],fields:{callee:{validate:(0,s.assertNodeType)("Expression")},arguments:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Expression","SpreadElement")))}}}),(0,a.default)("Program",{visitor:["directives","body"],builder:["body","directives"],fields:{directives:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Directive"))),default:[]},body:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","FunctionParent"]}),(0,a.default)("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("ObjectMethod","ObjectProperty","SpreadProperty")))}}}),(0,a.default)("ObjectMethod",{builder:["kind","key","params","body","computed"],fields:{kind:{validate:(0,s.chain)((0,s.assertValueType)("string"),(0,s.assertOneOf)("method","get","set")),default:"method"},computed:{validate:(0,s.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];s.assertNodeType.apply(void 0,n)(e,t,r)}},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator")))},body:{validate:(0,s.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,s.assertValueType)("boolean")},async:{default:!1,validate:(0,s.assertValueType)("boolean")}},visitor:["key","params","body","decorators","returnType","typeParameters"],aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),(0,a.default)("ObjectProperty",{builder:["key","value","computed","shorthand","decorators"],fields:{computed:{validate:(0,s.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];s.assertNodeType.apply(void 0,n)(e,t,r)}},value:{validate:(0,s.assertNodeType)("Expression","Pattern","RestElement")},shorthand:{validate:(0,s.assertValueType)("boolean"),default:!1},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"]}),(0,a.default)("RestElement",{visitor:["argument","typeAnnotation"],aliases:["LVal"],fields:{argument:{validate:(0,s.assertNodeType)("LVal")},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator")))}}}),(0,a.default)("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,s.assertNodeType)("Expression"),optional:!0}}}),(0,a.default)("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Expression")))}},aliases:["Expression"]}),(0,a.default)("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,s.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Statement")))}}}),(0,a.default)("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,s.assertNodeType)("Expression")},cases:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("SwitchCase")))}}}),(0,a.default)("ThisExpression",{aliases:["Expression"]}),(0,a.default)("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,s.assertNodeType)("Expression")}}}),(0,a.default)("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{body:{validate:(0,s.assertNodeType)("BlockStatement")},handler:{optional:!0,handler:(0,s.assertNodeType)("BlockStatement")},finalizer:{optional:!0,validate:(0,s.assertNodeType)("BlockStatement")}}}),(0,a.default)("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,s.assertNodeType)("Expression")},operator:{validate:s.assertOneOf.apply(void 0,i.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),(0,a.default)("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:(0,s.assertNodeType)("Expression")},operator:{validate:s.assertOneOf.apply(void 0,i.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),(0,a.default)("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{kind:{validate:(0,s.chain)((0,s.assertValueType)("string"),(0,s.assertOneOf)("var","let","const"))},declarations:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("VariableDeclarator")))}}}),(0,a.default)("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:(0,s.assertNodeType)("LVal")},init:{optional:!0,validate:(0,s.assertNodeType)("Expression")}}}),(0,a.default)("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("BlockStatement","Statement")}}}),(0,a.default)("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{object:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("BlockStatement","Statement")}}})},{"../constants":169,"../index":180,"./index":175}],172:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AssignmentPattern",{visitor:["left","right"],aliases:["Pattern","LVal"],fields:{left:{validate:(0,n.assertNodeType)("Identifier")},right:{validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrayPattern",{visitor:["elements","typeAnnotation"],aliases:["Pattern","LVal"],fields:{elements:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Identifier","Pattern","RestElement")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["params","body","returnType","typeParameters"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement","Expression")},async:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("ClassBody",{visitor:["body"],fields:{body:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ClassMethod","ClassProperty")))}}}),(0,i.default)("ClassDeclaration",{builder:["id","superClass","body","decorators"],visitor:["id","body","superClass","mixins","typeParameters","superTypeParameters","implements","decorators"],aliases:["Scopable","Class","Statement","Declaration","Pureish"],fields:{id:{validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ClassExpression",{inherits:"ClassDeclaration",aliases:["Scopable","Class","Expression","Pureish"],fields:{id:{optional:!0,validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ExportAllDeclaration",{visitor:["source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("FunctionDeclaration","ClassDeclaration","Expression")}}}),(0,i.default)("ExportNamedDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("Declaration"),optional:!0},specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ExportSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral"),optional:!0}}}),(0,i.default)("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ForOfStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("ImportDeclaration",{visitor:["specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration"],fields:{specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportSpecifier",{visitor:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},imported:{validate:(0,n.assertNodeType)("Identifier")},importKind:{validate:(0,n.assertOneOf)(null,"type","typeof")}}}),(0,i.default)("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,n.assertValueType)("string")},property:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static"],visitor:["key","params","body","decorators","returnType","typeParameters"],fields:{kind:{validate:(0,n.chain)((0,n.assertValueType)("string"),(0,n.assertOneOf)("get","set","method","constructor")),default:"method"},computed:{default:!1,validate:(0,n.assertValueType)("boolean")},static:{default:!1,validate:(0,n.assertValueType)("boolean")},key:{validate:function(e,t,r){var i=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];n.assertNodeType.apply(void 0,i)(e,t,r)}},params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,n.assertValueType)("boolean")},async:{default:!1,validate:(0,n.assertValueType)("boolean")}}}),(0,i.default)("ObjectPattern",{visitor:["properties","typeAnnotation"],aliases:["Pattern","LVal"],fields:{properties:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("RestProperty","Property")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("Super",{aliases:["Expression"]}),(0,i.default)("TaggedTemplateExpression",{visitor:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,n.assertNodeType)("Expression")},quasi:{validate:(0,n.assertNodeType)("TemplateLiteral")}}}),(0,i.default)("TemplateElement",{builder:["value","tail"],fields:{value:{},tail:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TemplateElement")))},expressions:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Expression")))}}}),(0,i.default)("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,n.assertValueType)("boolean"),default:!1},argument:{optional:!0,validate:(0,n.assertNodeType)("Expression")}}})},{"./index":175}],173:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("ForAwaitStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:{}}),(0,i.default)("Import",{aliases:["Expression"]}),(0,i.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("DoExpression",{visitor:["body"],aliases:["Expression"],fields:{body:{validate:(0,n.assertNodeType)("BlockStatement")}}}),(0,i.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("RestProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("LVal")}}}),(0,i.default)("SpreadProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}})},{"./index":175}],174:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AnyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["Flow"],fields:{}}),(0,i.default)("BooleanTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("BooleanLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NullLiteralTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ClassImplements",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("ClassProperty",{visitor:["key","value","typeAnnotation","decorators"],builder:["key","value","typeAnnotation","decorators","computed"],aliases:["Property"],fields:{computed:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("DeclareClass",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareFunction",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareInterface",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModule",{visitor:["id","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareVariable",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("ExistentialTypeParam",{aliases:["Flow"]}),(0,i.default)("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["Flow"],fields:{}}),(0,i.default)("FunctionTypeParam",{visitor:["name","typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceExtends",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceDeclaration",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("IntersectionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("MixedTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("EmptyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("NumericLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NumberTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("StringLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("StringTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ThisTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("TupleTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeofTypeAnnotation",{visitor:["argument"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("OpaqueType",{visitor:["id","typeParameters","impltype","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("TypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["Flow","ExpressionWrapper","Expression"],fields:{}}),(0,i.default)("TypeParameter",{visitor:["bound"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterDeclaration",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterInstantiation",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeCallProperty",{visitor:["value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeIndexer",{visitor:["id","key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeProperty",{visitor:["key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("QualifiedTypeIdentifier",{visitor:["id","qualification"],aliases:["Flow"],fields:{}}),(0,i.default)("UnionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("VoidTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}})},{"./index":175}],175:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return Array.isArray(e)?"array":null===e?"null":void 0===e?"undefined":void 0===e?"undefined":(0,u.default)(e)}function s(e){function t(t,r,n){if(!(i(n)===e))throw new TypeError("Property "+r+" expected type of "+e+" but got "+i(n))}return t.type=e,t}r.__esModule=!0,r.DEPRECATED_KEYS=r.BUILDER_KEYS=r.NODE_FIELDS=r.ALIAS_KEYS=r.VISITOR_KEYS=void 0;var a=n(e("babel-runtime/core-js/get-iterator")),o=n(e("babel-runtime/core-js/json/stringify")),u=n(e("babel-runtime/helpers/typeof"));r.assertEach=function(e){function t(t,r,n){if(Array.isArray(n))for(var i=0;i=s.length)break;p=s[c++]}else{if((c=s.next()).done)break;p=c.value}var h=p;if(l.is(h,n)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,o.default)(r)+" but instead got "+(0,o.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n=u.length)break;h=u[p++]}else{if((p=u.next()).done)break;h=p.value}var f=h;if(i(n)===f||l.is(f,n)){s=!0;break}}if(!s)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,o.default)(r)+" but instead got "+(0,o.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n=e.length)break;i=e[n++]}else{if((n=e.next()).done)break;i=n.value}i.apply(void 0,arguments)}}for(var t=arguments.length,r=Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=t.inherits&&m[t.inherits]||{};t.fields=t.fields||r.fields||{},t.visitor=t.visitor||r.visitor||[],t.aliases=t.aliases||r.aliases||[],t.builder=t.builder||r.builder||t.visitor||[],t.deprecatedAlias&&(d[t.deprecatedAlias]=e);var n=t.visitor.concat(t.builder),o=Array.isArray(n),u=0;for(n=o?n:(0,a.default)(n);;){var l;if(o){if(u>=n.length)break;l=n[u++]}else{if((u=n.next()).done)break;l=u.value}var y=l;t.fields[y]=t.fields[y]||{}}for(var g in t.fields){var b=t.fields[g];-1===t.builder.indexOf(g)&&(b.optional=!0),void 0===b.default?b.default=null:b.validate||(b.validate=s(i(b.default)))}c[e]=t.visitor,f[e]=t.builder,h[e]=t.fields,p[e]=t.aliases,m[e]=t};var l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("../index")),c=r.VISITOR_KEYS={},p=r.ALIAS_KEYS={},h=r.NODE_FIELDS={},f=r.BUILDER_KEYS={},d=r.DEPRECATED_KEYS={},m={}},{"../index":180,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/helpers/typeof":138}],176:[function(e,t,r){"use strict";e("./index"),e("./core"),e("./es2015"),e("./flow"),e("./jsx"),e("./misc"),e("./experimental")},{"./core":171,"./es2015":172,"./experimental":173,"./flow":174,"./index":175,"./jsx":177,"./misc":178}],177:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("JSXAttribute",{visitor:["name","value"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,n.assertNodeType)("JSXElement","StringLiteral","JSXExpressionContainer")}}}),(0,i.default)("JSXClosingElement",{visitor:["name"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")}}}),(0,i.default)("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["JSX","Immutable","Expression"],fields:{openingElement:{validate:(0,n.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,n.assertNodeType)("JSXClosingElement")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement")))}}}),(0,i.default)("JSXEmptyExpression",{aliases:["JSX","Expression"]}),(0,i.default)("JSXExpressionContainer",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXSpreadChild",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXIdentifier",{builder:["name"],aliases:["JSX","Expression"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("JSXMemberExpression",{visitor:["object","property"],aliases:["JSX","Expression"],fields:{object:{validate:(0,n.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXNamespacedName",{visitor:["namespace","name"],aliases:["JSX"],fields:{namespace:{validate:(0,n.assertNodeType)("JSXIdentifier")},name:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")},selfClosing:{default:!1,validate:(0,n.assertValueType)("boolean")},attributes:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))}}}),(0,i.default)("JSXSpreadAttribute",{visitor:["argument"],aliases:["JSX"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXText",{aliases:["JSX","Immutable"],builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}}})},{"./index":175}],178:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("Noop",{visitor:[]}),(0,i.default)("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}})},{"./index":175}],179:[function(e,t,r){"use strict";function n(e){for(var t={},r={},s=[],a=[],o=0;o=0)){if(i.isAnyTypeAnnotation(u))return[u];if(i.isFlowBaseAnnotation(u))r[u.type]=u;else if(i.isUnionTypeAnnotation(u))s.indexOf(u.types)<0&&(e=e.concat(u.types),s.push(u.types));else if(i.isGenericTypeAnnotation(u)){var l=u.id.name;if(t[l]){var c=t[l];c.typeParameters?u.typeParameters&&(c.typeParameters.params=n(c.typeParameters.params.concat(u.typeParameters.params))):c=u.typeParameters}else t[l]=u}else a.push(u)}}for(var p in r)a.push(r[p]);for(var h in t)a.push(t[h]);return a}r.__esModule=!0,r.createUnionTypeAnnotation=function(e){var t=n(e);return 1===t.length?t[0]:i.unionTypeAnnotation(t)},r.removeTypeDuplicates=n,r.createTypeAnnotationBasedOnTypeof=function(e){if("string"===e)return i.stringTypeAnnotation();if("number"===e)return i.numberTypeAnnotation();if("undefined"===e)return i.voidTypeAnnotation();if("boolean"===e)return i.booleanTypeAnnotation();if("function"===e)return i.genericTypeAnnotation(i.identifier("Function"));if("object"===e)return i.genericTypeAnnotation(i.identifier("Object"));if("symbol"===e)return i.genericTypeAnnotation(i.identifier("Symbol"));throw new Error("Invalid typeof value")};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./index"))},{"./index":180}],180:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=F["is"+e];t||(t=F["is"+e]=function(t,r){return F.is(e,t,r)}),F["assert"+e]=function(r,n){if(n=n||{},!t(r,n))throw new Error("Expected type "+(0,b.default)(e)+" with option "+(0,b.default)(n))}}function s(e,t){if(e===t)return!0;if(F.ALIAS_KEYS[t])return!1;var r=F.FLIPPED_ALIAS_KEYS[t];if(r){if(r[0]===e)return!0;var n=r,i=Array.isArray(n),s=0;for(n=i?n:(0,y.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}if(e===a)return!0}}return!1}function a(e,t,r){if(e){var n=F.NODE_FIELDS[e.type];if(n){var i=n[t];i&&i.validate&&(i.optional&&null==r||i.validate(e,t,r))}}}function o(e){if(!e)return e;var t={};for(var r in e)"_"!==r[0]&&(t[r]=e[r]);return t}function u(e,t){p("trailingComments",e,t)}function l(e,t){p("leadingComments",e,t)}function c(e,t){p("innerComments",e,t)}function p(e,t,r){t&&r&&(t[e]=(0,_.default)([].concat(t[e],r[e]).filter(Boolean)))}function h(e){return!(!e||!w.VISITOR_KEYS[e.type])}function f(e,t,r){if(e){var n=F.VISITOR_KEYS[e.type];if(n){t(e,r=r||{});var i=n,s=Array.isArray(i),a=0;for(i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if((a=i.next()).done)break;o=a.value}var u=e[o];if(Array.isArray(u)){var l=u,c=Array.isArray(l),p=0;for(l=c?l:(0,y.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}f(h,t,r)}}else f(u,t,r)}}}}function d(e,t){var r=(t=t||{}).preserveComments?O:N,n=Array.isArray(r),i=0;for(r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;null!=e[a]&&(e[a]=void 0)}for(var o in e)"_"===o[0]&&null!=e[o]&&(e[o]=void 0);var u=(0,m.default)(e),l=Array.isArray(u),c=0;for(u=l?u:(0,y.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if((c=u.next()).done)break;p=c.value}e[p]=null}}r.__esModule=!0,r.createTypeAnnotationBasedOnTypeof=r.removeTypeDuplicates=r.createUnionTypeAnnotation=r.valueToNode=r.toBlock=r.toExpression=r.toStatement=r.toBindingIdentifierName=r.toIdentifier=r.toKeyAlias=r.toSequenceExpression=r.toComputedKey=r.isNodesEquivalent=r.isImmutable=r.isScope=r.isSpecifierDefault=r.isVar=r.isBlockScoped=r.isLet=r.isValidIdentifier=r.isReferenced=r.isBinding=r.getOuterBindingIdentifiers=r.getBindingIdentifiers=r.TYPES=r.react=r.DEPRECATED_KEYS=r.BUILDER_KEYS=r.NODE_FIELDS=r.ALIAS_KEYS=r.VISITOR_KEYS=r.NOT_LOCAL_BINDING=r.BLOCK_SCOPED_SYMBOL=r.INHERIT_KEYS=r.UNARY_OPERATORS=r.STRING_UNARY_OPERATORS=r.NUMBER_UNARY_OPERATORS=r.BOOLEAN_UNARY_OPERATORS=r.BINARY_OPERATORS=r.NUMBER_BINARY_OPERATORS=r.BOOLEAN_BINARY_OPERATORS=r.COMPARISON_BINARY_OPERATORS=r.EQUALITY_BINARY_OPERATORS=r.BOOLEAN_NUMBER_BINARY_OPERATORS=r.UPDATE_OPERATORS=r.LOGICAL_OPERATORS=r.COMMENT_KEYS=r.FOR_INIT_KEYS=r.FLATTENABLE_KEYS=r.STATEMENT_OR_BLOCK_KEYS=void 0;var m=n(e("babel-runtime/core-js/object/get-own-property-symbols")),y=n(e("babel-runtime/core-js/get-iterator")),g=n(e("babel-runtime/core-js/object/keys")),b=n(e("babel-runtime/core-js/json/stringify")),v=e("./constants");Object.defineProperty(r,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return v.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(r,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return v.FLATTENABLE_KEYS}}),Object.defineProperty(r,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return v.FOR_INIT_KEYS}}),Object.defineProperty(r,"COMMENT_KEYS",{enumerable:!0,get:function(){return v.COMMENT_KEYS}}),Object.defineProperty(r,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return v.LOGICAL_OPERATORS}}),Object.defineProperty(r,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return v.UPDATE_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(r,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(r,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(r,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(r,"BINARY_OPERATORS",{enumerable:!0,get:function(){return v.BINARY_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return v.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(r,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return v.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(r,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return v.STRING_UNARY_OPERATORS}}),Object.defineProperty(r,"UNARY_OPERATORS",{enumerable:!0,get:function(){return v.UNARY_OPERATORS}}),Object.defineProperty(r,"INHERIT_KEYS",{enumerable:!0,get:function(){return v.INHERIT_KEYS}}),Object.defineProperty(r,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return v.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(r,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return v.NOT_LOCAL_BINDING}}),r.is=function(e,t,r){return!!t&&!!s(t.type,e)&&(void 0===r||F.shallowEqual(t,r))},r.isType=s,r.validate=a,r.shallowEqual=function(e,t){var r=(0,g.default)(t),n=Array.isArray(r),i=0;for(r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if(e[a]!==t[a])return!1}return!0},r.appendToMemberExpression=function(e,t,r){return e.object=F.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e},r.prependToMemberExpression=function(e,t){return e.object=F.memberExpression(t,e.object),e},r.ensureBlock=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=F.toBlock(e[t],e)},r.clone=o,r.cloneWithoutLoc=function(e){var t=o(e);return delete t.loc,t},r.cloneDeep=function(e){if(!e)return e;var t={};for(var r in e)if("_"!==r[0]){var n=e[r];n&&(n.type?n=F.cloneDeep(n):Array.isArray(n)&&(n=n.map(F.cloneDeep))),t[r]=n}return t},r.buildMatchMemberExpression=function(e,t){var r=e.split(".");return function(e){if(!F.isMemberExpression(e))return!1;for(var n=[e],i=0;n.length;){var s=n.shift();if(t&&i===r.length)return!0;if(F.isIdentifier(s)){if(r[i]!==s.name)return!1}else{if(!F.isStringLiteral(s)){if(F.isMemberExpression(s)){if(s.computed&&!F.isStringLiteral(s.property))return!1;n.push(s.object),n.push(s.property);continue}return!1}if(r[i]!==s.value)return!1}if(++i>r.length)return!1}return!0}},r.removeComments=function(e){var t=F.COMMENT_KEYS,r=Array.isArray(t),n=0;for(t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}delete e[i]}return e},r.inheritsComments=function(e,t){return u(e,t),l(e,t),c(e,t),e},r.inheritTrailingComments=u,r.inheritLeadingComments=l,r.inheritInnerComments=c,r.inherits=function(e,t){if(!e||!t)return e;var r=F.INHERIT_KEYS.optional,n=Array.isArray(r),i=0;for(r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;null==e[a]&&(e[a]=t[a])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);var u=F.INHERIT_KEYS.force,l=Array.isArray(u),c=0;for(u=l?u:(0,y.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if((c=u.next()).done)break;p=c.value}var h=p;e[h]=t[h]}return F.inheritsComments(e,t),e},r.assertNode=function(e){if(!h(e))throw new TypeError("Not a valid node "+(e&&e.type))},r.isNode=h,r.traverseFast=f,r.removeProperties=d,r.removePropertiesDeep=function(e,t){return f(e,d,t),e};var x=e("./retrievers");Object.defineProperty(r,"getBindingIdentifiers",{enumerable:!0,get:function(){return x.getBindingIdentifiers}}),Object.defineProperty(r,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return x.getOuterBindingIdentifiers}});var E=e("./validators");Object.defineProperty(r,"isBinding",{enumerable:!0,get:function(){return E.isBinding}}),Object.defineProperty(r,"isReferenced",{enumerable:!0,get:function(){return E.isReferenced}}),Object.defineProperty(r,"isValidIdentifier",{enumerable:!0,get:function(){return E.isValidIdentifier}}),Object.defineProperty(r,"isLet",{enumerable:!0,get:function(){return E.isLet}}),Object.defineProperty(r,"isBlockScoped",{enumerable:!0,get:function(){return E.isBlockScoped}}),Object.defineProperty(r,"isVar",{enumerable:!0,get:function(){return E.isVar}}),Object.defineProperty(r,"isSpecifierDefault",{enumerable:!0,get:function(){return E.isSpecifierDefault}}),Object.defineProperty(r,"isScope",{enumerable:!0,get:function(){return E.isScope}}),Object.defineProperty(r,"isImmutable",{enumerable:!0,get:function(){return E.isImmutable}}),Object.defineProperty(r,"isNodesEquivalent",{enumerable:!0,get:function(){return E.isNodesEquivalent}});var A=e("./converters");Object.defineProperty(r,"toComputedKey",{enumerable:!0,get:function(){return A.toComputedKey}}),Object.defineProperty(r,"toSequenceExpression",{enumerable:!0,get:function(){return A.toSequenceExpression}}),Object.defineProperty(r,"toKeyAlias",{enumerable:!0,get:function(){return A.toKeyAlias}}),Object.defineProperty(r,"toIdentifier",{enumerable:!0,get:function(){return A.toIdentifier}}),Object.defineProperty(r,"toBindingIdentifierName",{enumerable:!0,get:function(){return A.toBindingIdentifierName}}),Object.defineProperty(r,"toStatement",{enumerable:!0,get:function(){return A.toStatement}}),Object.defineProperty(r,"toExpression",{enumerable:!0,get:function(){return A.toExpression}}),Object.defineProperty(r,"toBlock",{enumerable:!0,get:function(){return A.toBlock}}),Object.defineProperty(r,"valueToNode",{enumerable:!0,get:function(){return A.valueToNode}});var D=e("./flow");Object.defineProperty(r,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return D.createUnionTypeAnnotation}}),Object.defineProperty(r,"removeTypeDuplicates",{enumerable:!0,get:function(){return D.removeTypeDuplicates}}),Object.defineProperty(r,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return D.createTypeAnnotationBasedOnTypeof}});var S=n(e("to-fast-properties")),C=n(e("lodash/clone")),_=n(e("lodash/uniq"));e("./definitions/init");var w=e("./definitions"),k=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./react")),F=r;r.VISITOR_KEYS=w.VISITOR_KEYS,r.ALIAS_KEYS=w.ALIAS_KEYS,r.NODE_FIELDS=w.NODE_FIELDS,r.BUILDER_KEYS=w.BUILDER_KEYS,r.DEPRECATED_KEYS=w.DEPRECATED_KEYS,r.react=k;for(var T in F.VISITOR_KEYS)i(T);F.FLIPPED_ALIAS_KEYS={},(0,g.default)(F.ALIAS_KEYS).forEach(function(e){F.ALIAS_KEYS[e].forEach(function(t){(F.FLIPPED_ALIAS_KEYS[t]=F.FLIPPED_ALIAS_KEYS[t]||[]).push(e)})}),(0,g.default)(F.FLIPPED_ALIAS_KEYS).forEach(function(e){F[e.toUpperCase()+"_TYPES"]=F.FLIPPED_ALIAS_KEYS[e],i(e)});r.TYPES=(0,g.default)(F.VISITOR_KEYS).concat((0,g.default)(F.FLIPPED_ALIAS_KEYS)).concat((0,g.default)(F.DEPRECATED_KEYS));(0,g.default)(F.BUILDER_KEYS).forEach(function(e){function t(){if(arguments.length>r.length)throw new Error("t."+e+": Too many arguments passed. Received "+arguments.length+" but can receive no more than "+r.length);var t={};t.type=e;var n=0,i=r,s=Array.isArray(i),o=0;for(i=s?i:(0,y.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if((o=i.next()).done)break;u=o.value}var l=u,c=F.NODE_FIELDS[e][l],p=arguments[n++];void 0===p&&(p=(0,C.default)(c.default)),t[l]=p}for(var h in t)a(t,h,t[h]);return t}var r=F.BUILDER_KEYS[e];F[e]=t,F[e[0].toLowerCase()+e.slice(1)]=t});var P=function(e){function t(t){return function(){return console.trace("The node type "+e+" has been renamed to "+r),t.apply(this,arguments)}}var r=F.DEPRECATED_KEYS[e];F[e]=F[e[0].toLowerCase()+e.slice(1)]=t(F[r]),F["is"+e]=t(F["is"+r]),F["assert"+e]=t(F["assert"+r])};for(var B in F.DEPRECATED_KEYS)P(B);(0,S.default)(F),(0,S.default)(F.VISITOR_KEYS);var O=["tokens","start","end","loc","raw","rawValue"],N=F.COMMENT_KEYS.concat(["comments"]).concat(O)},{"./constants":169,"./converters":170,"./definitions":175,"./definitions/init":176,"./flow":179,"./react":181,"./retrievers":182,"./validators":183,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/object/get-own-property-symbols":126,"babel-runtime/core-js/object/keys":127,"lodash/clone":491,"lodash/uniq":540,"to-fast-properties":607}],181:[function(e,t,r){"use strict";function n(e,t){for(var r=e.value.split(/\r\n|\n|\r/),n=0,s=0;s=r.length)break;l=r[u++]}else{if((u=r.next()).done)break;l=u.value}var p=l;if((0,a.default)(e[p])!==(0,a.default)(t[p]))return!1;if(Array.isArray(e[p])){if(!Array.isArray(t[p]))return!1;if(e[p].length!==t[p].length)return!1;for(var h=0;h=0)return!0}else if(i===e)return!0}return!1},r.isReferenced=function(e,t){switch(t.type){case"BindExpression":return t.object===e||t.callee===e;case"MemberExpression":case"JSXMemberExpression":return!(t.property!==e||!t.computed)||t.object===e;case"MetaProperty":return!1;case"ObjectProperty":if(t.key===e)return t.computed;case"VariableDeclarator":return t.id!==e;case"ArrowFunctionExpression":case"FunctionDeclaration":case"FunctionExpression":var r=t.params,n=Array.isArray(r),i=0;for(r=n?r:(0,o.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}if(s===e)return!1}return t.id!==e;case"ExportSpecifier":return!t.source&&t.local===e;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"JSXAttribute":return t.name!==e;case"ClassProperty":return t.key===e?t.computed:t.value===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ClassDeclaration":case"ClassExpression":return t.id!==e;case"ClassMethod":case"ObjectMethod":return t.key===e&&t.computed;case"LabeledStatement":return!1;case"CatchClause":return t.param!==e;case"RestElement":return!1;case"AssignmentExpression":case"AssignmentPattern":return t.right===e;case"ObjectPattern":case"ArrayPattern":return!1}return!0},r.isValidIdentifier=function(e){return"string"==typeof e&&!l.default.keyword.isReservedWordES6(e,!0)&&"await"!==e&&l.default.keyword.isIdentifierNameES6(e)},r.isLet=function(e){return c.isVariableDeclaration(e)&&("var"!==e.kind||e[p.BLOCK_SCOPED_SYMBOL])},r.isBlockScoped=function(e){return c.isFunctionDeclaration(e)||c.isClassDeclaration(e)||c.isLet(e)},r.isVar=function(e){return c.isVariableDeclaration(e,{kind:"var"})&&!e[p.BLOCK_SCOPED_SYMBOL]},r.isSpecifierDefault=function(e){return c.isImportDefaultSpecifier(e)||c.isIdentifier(e.imported||e.exported,{name:"default"})},r.isScope=function(e,t){return(!c.isBlockStatement(e)||!c.isFunction(t,{body:e}))&&c.isScopable(e)},r.isImmutable=function(e){return!!c.isType(e.type,"Immutable")||!!c.isIdentifier(e)&&"undefined"===e.name},r.isNodesEquivalent=i;var u=e("./retrievers"),l=n(e("esutils")),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./index")),p=e("./constants")},{"./constants":169,"./index":180,"./retrievers":182,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/keys":127,"babel-runtime/helpers/typeof":138,esutils:187}],184:[function(e,t,r){arguments[4][25][0].apply(r,arguments)},{dup:25}],185:[function(e,t,r){arguments[4][26][0].apply(r,arguments)},{dup:26}],186:[function(e,t,r){arguments[4][27][0].apply(r,arguments)},{"./code":185,dup:27}],187:[function(e,t,r){arguments[4][28][0].apply(r,arguments)},{"./ast":184,"./code":185,"./keyword":186,dup:28}],188:[function(e,t,r){"use strict";function n(e){return e=e.split(" "),function(t){return e.indexOf(t)>=0}}function i(e,t){for(var r=65536,n=0;ne)return!1;if((r+=t[n+1])>=e)return!0}}function s(e){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&g.test(String.fromCharCode(e)):i(e,v)))}function a(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&b.test(String.fromCharCode(e)):i(e,v)||i(e,x))))}function o(e){return 10===e||13===e||8232===e||8233===e}function u(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}function l(e,t,r,n){return e.type=t,e.end=r,e.loc.end=n,this.processComment(e),e}function c(e){return e[e.length-1]}function p(e){return e&&"Property"===e.type&&"init"===e.kind&&!1===e.method}function h(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?h(e.object)+"."+h(e.property):void 0}Object.defineProperty(r,"__esModule",{value:!0});var f={6:n("enum await"),strict:n("implements interface let package private protected public static yield"),strictBind:n("eval arguments")},d=n("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super"),m="ĀŖĀµĀŗƀ-ƖƘ-ƶĆø-ĖĖ†-Ė‘Ė -Ė¤Ė¬Ė®Ķ°-Ķ“Ķ¶Ķ·Ķŗ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-Ī”Ī£-ĻµĻ·-ŅŅŠ-ŌÆŌ±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײŲ -ŁŠŁ®ŁÆŁ±-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-Ū¼Ūæܐܒ-ÜÆŻ-Ž„Ž±ßŠ-ßŖß“ßµßŗą €-ą •ą šą ¤ą Øą”€-ą”˜ą¢ -ą¢“ą¢¶-ą¢½ą¤„-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ą¦€ą¦…-ą¦Œą¦ą¦ą¦“-ą¦Øą¦Ŗ-ą¦°ą¦²ą¦¶-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-ą§”ą§°ą§±ąØ…-ąØŠąØąØąØ“-ąØØąØŖ-ąØ°ąØ²ąØ³ąØµąØ¶ąØøąØ¹ą©™-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-ąŖ°ąŖ²ąŖ³ąŖµ-ąŖ¹ąŖ½ą«ą« ą«”ą«¹ą¬…-ą¬Œą¬ą¬ą¬“-ą¬Øą¬Ŗ-ą¬°ą¬²ą¬³ą¬µ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ą®ą®’-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-ą®Ŗą®®-ą®¹ąÆą°…-ą°Œą°Ž-ą°ą°’-ą°Øą°Ŗ-ą°¹ą°½ą±˜-ą±šą± ą±”ą²€ą²…-ą²Œą²Ž-ą²ą²’-ą²Øą²Ŗ-ą²³ą²µ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ”-ąµ–ąµŸ-ąµ”ąµŗ-ąµæą¶…-ą¶–ą¶š-ą¶±ą¶³-ą¶»ą¶½ą·€-ą·†ąø-ąø°ąø²ąø³ą¹€-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ąŗŸąŗ”-ąŗ£ąŗ„ąŗ§ąŗŖąŗ«ąŗ­-ąŗ°ąŗ²ąŗ³ąŗ½ą»€-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ą½‡ą½‰-ą½¬ą¾ˆ-ą¾Œį€€-į€Ŗį€æį-į•įš-įį”į„į¦į®-į°įµ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-įƒŗįƒ¼-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -įŠˆįŠŠ-įŠįŠ-įŠ°įŠ²-įŠµįŠø-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -įµįø-į½į-į™¬į™Æ-į™æįš-įššįš -į›Ŗį›®-į›øįœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -į”·į¢€-į¢Øį¢Ŗį¢°-į£µį¤€-į¤žį„-į„­į„°-į„“į¦€-į¦«į¦°-į§‰į؀-įؖįØ -į©”įŖ§į¬…-į¬³į­…-į­‹į®ƒ-į® į®®į®Æį®ŗ-įÆ„į°€-į°£į±-į±į±š-į±½į²€-į²ˆį³©-į³¬į³®-į³±į³µį³¶į“€-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-į½½į¾€-į¾“į¾¶-į¾¼į¾¾įæ‚-įæ„įæ†-įæŒįæ-įæ“įæ–-įæ›įæ -įæ¬įæ²-įæ“įæ¶-įæ¼ā±āæā‚-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„˜-ā„ā„¤ā„¦ā„Øā„Ŗ-ā„¹ā„¼-ā„æā……-ā…‰ā…Žā… -ā†ˆā°€-ā°®ā°°-ā±žā± -ā³¤ā³«-ā³®ā³²ā³³ā“€-ā“„ā“§ā“­ā“°-āµ§āµÆā¶€-ā¶–ā¶ -ā¶¦ā¶Ø-ā¶®ā¶°-ā¶¶ā¶ø-ā¶¾ā·€-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žć€…-怇怔-怩怱-怵ć€ø-ć€¼ć-悖悛-ć‚Ÿć‚”-ćƒŗćƒ¼-ćƒæ愅-愭愱-憎憠-ć†ŗ懰-ć‡æ搀-䶵äø€-éæ•ź€€-ź’Œź“-ź“½ź”€-ź˜Œź˜-ź˜Ÿź˜Ŗź˜«ź™€-ź™®ź™æ-źšźš -ź›Æźœ—-źœŸźœ¢-źžˆźž‹-źž®źž°-źž·źŸ·-ź ź ƒ-ź …ź ‡-ź Šź Œ-ź ¢ź”€-ź”³ź¢‚-ź¢³ź£²-ź£·ź£»ź£½ź¤Š-ź¤„ź¤°-ź„†ź„ -ź„¼ź¦„-ź¦²ź§ź§ -ź§¤ź§¦-ź§Æź§ŗ-ź§¾źØ€-źØØź©€-ź©‚ź©„-ź©‹ź© -ź©¶ź©ŗź©¾-źŖÆźŖ±źŖµźŖ¶źŖ¹-źŖ½ź«€ź«‚ź«›-ź«ź« -ź«Ŗź«²-ź«“ź¬-ź¬†ź¬‰-ź¬Žź¬‘-ź¬–ź¬ -ź¬¦ź¬Ø-ź¬®ź¬°-ź­šź­œ-ź­„ź­°-źÆ¢ź°€-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-ļ«™ļ¬€-ļ¬†ļ¬“-ļ¬—ļ¬ļ¬Ÿ-ļ¬Øļ¬Ŗ-ļ¬¶ļ¬ø-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ļ®±ļƓ-ļ“½ļµ-ļ¶ļ¶’-ļ·‡ļ·°-ļ·»ļ¹°-ļ¹“ļ¹¶-ļ»¼ļ¼”-ļ¼ŗļ½-ļ½šļ½¦-ļ¾¾ļæ‚-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ļæœ",y="ā€Œā€Ā·Ģ€-ĶÆĪ‡Ņƒ-Ņ‡Ö‘-Ö½ÖæׇׁׂׅׄŲ-ŲšŁ‹-Ł©Ł°Ū–-ŪœŪŸ-Ū¤Ū§ŪØŪŖ-Ū­Ū°-Ū¹Ü‘Ü°-ŻŠŽ¦-Ž°ß€-߉߫-ß³ą –-ą ™ą ›-ą £ą „-ą §ą ©-ą ­ą”™-ą”›ą£”-ą£”ą££-ą¤ƒą¤ŗ-ą¤¼ą¤¾-ą„ą„‘-ą„—ą„¢ą„£ą„¦-ą„Æą¦-ą¦ƒą¦¼ą¦¾-ą§„ą§‡ą§ˆą§‹-ą§ą§—ą§¢ą§£ą§¦-ą§ÆąØ-ąØƒąØ¼ąØ¾-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©¦-ą©±ą©µąŖ-ąŖƒąŖ¼ąŖ¾-ą«…ą«‡-ą«‰ą«‹-ą«ą«¢ą«£ą«¦-ą«Æą¬-ą¬ƒą¬¼ą¬¾-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­¢ą­£ą­¦-ą­Æą®‚ą®¾-ąÆ‚ąÆ†-ąÆˆąÆŠ-ąÆąÆ—ąÆ¦-ąÆÆą°€-ą°ƒą°¾-ą±„ą±†-ą±ˆą±Š-ą±ą±•ą±–ą±¢ą±£ą±¦-ą±Æą²-ą²ƒą²¼ą²¾-ą³„ą³†-ą³ˆą³Š-ą³ą³•ą³–ą³¢ą³£ą³¦-ą³Æą“-ą“ƒą“¾-ąµ„ąµ†-ąµˆąµŠ-ąµąµ—ąµ¢ąµ£ąµ¦-ąµÆą¶‚ą¶ƒą·Šą·-ą·”ą·–ą·˜-ą·Ÿą·¦-ą·Æą·²ą·³ąø±ąø“-ąøŗą¹‡-ą¹Žą¹-ą¹™ąŗ±ąŗ“-ąŗ¹ąŗ»ąŗ¼ą»ˆ-ą»ą»-ą»™ą¼˜ą¼™ą¼ -ą¼©ą¼µą¼·ą¼¹ą¼¾ą¼æą½±-ą¾„ą¾†ą¾‡ą¾-ą¾—ą¾™-ą¾¼ąæ†į€«-į€¾į€-į‰į–-į™įž-į į¢-į¤į§-į­į±-į“į‚‚-į‚į‚-į‚į-įŸį©-į±įœ’-įœ”įœ²-įœ“į’į“į²į³įž“-įŸ“įŸįŸ -įŸ©į ‹-į į -į ™į¢©į¤ -į¤«į¤°-į¤»į„†-į„į§-į§šįؗ-į؛į©•-į©žį© -į©¼į©æ-įŖ‰įŖ-įŖ™įŖ°-įŖ½į¬€-į¬„į¬“-į­„į­-į­™į­«-į­³į®€-į®‚į®”-į®­į®°-į®¹įƦ-įƳį°¤-į°·į±€-į±‰į±-į±™į³-į³’į³”-į³Øį³­į³²-į³“į³øį³¹į·€-į·µį·»-į·æā€æā€ā”āƒ-āƒœāƒ”āƒ„-āƒ°ā³Æ-ā³±āµæā· -ā·æć€Ŗ-ć€Æ悙悚ź˜ -ź˜©ź™Æź™“-ź™½źšžźšŸź›°ź›±ź ‚ź †ź ‹ź £-ź §ź¢€ź¢ź¢“-ź£…ź£-ź£™ź£ -ź£±ź¤€-ź¤‰ź¤¦-ź¤­ź„‡-ź„“ź¦€-ź¦ƒź¦³-ź§€ź§-ź§™ź§„ź§°-ź§¹źØ©-źØ¶ź©ƒź©Œź©ź©-ź©™ź©»-ź©½źŖ°źŖ²-źŖ“źŖ·źŖøźŖ¾źŖæź«ź««-ź«Æź«µź«¶źÆ£-źÆŖźÆ¬źÆ­źÆ°-źÆ¹ļ¬žļø€-ļøļø -ļøÆļø³ļø“ļ¹-ļ¹ļ¼-ļ¼™ļ¼æ",g=new RegExp("["+m+"]"),b=new RegExp("["+m+y+"]");m=y=null;var v=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],x=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],E={sourceType:"script",sourceFilename:void 0,startLine:1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},S=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},C=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},_=!0,w=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};D(this,e),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.rightAssociative=!!r.rightAssociative,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null},k=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return D(this,t),n.keyword=r,C(this,e.call(this,r,n))}return S(t,e),t}(w),F=function(e){function t(r,n){return D(this,t),C(this,e.call(this,r,{beforeExpr:_,binop:n}))}return S(t,e),t}(w),T={num:new w("num",{startsExpr:!0}),regexp:new w("regexp",{startsExpr:!0}),string:new w("string",{startsExpr:!0}),name:new w("name",{startsExpr:!0}),eof:new w("eof"),bracketL:new w("[",{beforeExpr:_,startsExpr:!0}),bracketR:new w("]"),braceL:new w("{",{beforeExpr:_,startsExpr:!0}),braceBarL:new w("{|",{beforeExpr:_,startsExpr:!0}),braceR:new w("}"),braceBarR:new w("|}"),parenL:new w("(",{beforeExpr:_,startsExpr:!0}),parenR:new w(")"),comma:new w(",",{beforeExpr:_}),semi:new w(";",{beforeExpr:_}),colon:new w(":",{beforeExpr:_}),doubleColon:new w("::",{beforeExpr:_}),dot:new w("."),question:new w("?",{beforeExpr:_}),arrow:new w("=>",{beforeExpr:_}),template:new w("template"),ellipsis:new w("...",{beforeExpr:_}),backQuote:new w("`",{startsExpr:!0}),dollarBraceL:new w("${",{beforeExpr:_,startsExpr:!0}),at:new w("@"),eq:new w("=",{beforeExpr:_,isAssign:!0}),assign:new w("_=",{beforeExpr:_,isAssign:!0}),incDec:new w("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new w("prefix",{beforeExpr:_,prefix:!0,startsExpr:!0}),logicalOR:new F("||",1),logicalAND:new F("&&",2),bitwiseOR:new F("|",3),bitwiseXOR:new F("^",4),bitwiseAND:new F("&",5),equality:new F("==/!=",6),relational:new F("",7),bitShift:new F("<>",8),plusMin:new w("+/-",{beforeExpr:_,binop:9,prefix:!0,startsExpr:!0}),modulo:new F("%",10),star:new F("*",10),slash:new F("/",10),exponent:new w("**",{beforeExpr:_,binop:11,rightAssociative:!0})},P={break:new k("break"),case:new k("case",{beforeExpr:_}),catch:new k("catch"),continue:new k("continue"),debugger:new k("debugger"),default:new k("default",{beforeExpr:_}),do:new k("do",{isLoop:!0,beforeExpr:_}),else:new k("else",{beforeExpr:_}),finally:new k("finally"),for:new k("for",{isLoop:!0}),function:new k("function",{startsExpr:!0}),if:new k("if"),return:new k("return",{beforeExpr:_}),switch:new k("switch"),throw:new k("throw",{beforeExpr:_}),try:new k("try"),var:new k("var"),let:new k("let"),const:new k("const"),while:new k("while",{isLoop:!0}),with:new k("with"),new:new k("new",{beforeExpr:_,startsExpr:!0}),this:new k("this",{startsExpr:!0}),super:new k("super",{startsExpr:!0}),class:new k("class"),extends:new k("extends",{beforeExpr:_}),export:new k("export"),import:new k("import",{startsExpr:!0}),yield:new k("yield",{beforeExpr:_,startsExpr:!0}),null:new k("null",{startsExpr:!0}),true:new k("true",{startsExpr:!0}),false:new k("false",{startsExpr:!0}),in:new k("in",{beforeExpr:_,binop:7}),instanceof:new k("instanceof",{beforeExpr:_,binop:7}),typeof:new k("typeof",{beforeExpr:_,prefix:!0,startsExpr:!0}),void:new k("void",{beforeExpr:_,prefix:!0,startsExpr:!0}),delete:new k("delete",{beforeExpr:_,prefix:!0,startsExpr:!0})};Object.keys(P).forEach(function(e){T["_"+e]=P[e]});var B=/\r\n?|\n|\u2028|\u2029/,O=new RegExp(B.source,"g"),N=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,j=function e(t,r,n,i){D(this,e),this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=i},I={braceStatement:new j("{",!1),braceExpression:new j("{",!0),templateQuasi:new j("${",!0),parenStatement:new j("(",!1),parenExpression:new j("(",!0),template:new j("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new j("function",!0)};T.parenR.updateContext=T.braceR.updateContext=function(){if(1!==this.state.context.length){var e=this.state.context.pop();e===I.braceStatement&&this.curContext()===I.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===I.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr}else this.state.exprAllowed=!0},T.name.updateContext=function(e){this.state.exprAllowed=!1,e!==T._let&&e!==T._const&&e!==T._var||B.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},T.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?I.braceStatement:I.braceExpression),this.state.exprAllowed=!0},T.dollarBraceL.updateContext=function(){this.state.context.push(I.templateQuasi),this.state.exprAllowed=!0},T.parenL.updateContext=function(e){var t=e===T._if||e===T._for||e===T._with||e===T._while;this.state.context.push(t?I.parenStatement:I.parenExpression),this.state.exprAllowed=!0},T.incDec.updateContext=function(){},T._function.updateContext=function(){this.curContext()!==I.braceStatement&&this.state.context.push(I.functionExpression),this.state.exprAllowed=!1},T.backQuote.updateContext=function(){this.curContext()===I.template?this.state.context.pop():this.state.context.push(I.template),this.state.exprAllowed=!1};var L=function e(t,r){D(this,e),this.line=t,this.column=r},M=function e(t,r){D(this,e),this.start=t,this.end=r},R=function(){function e(){D(this,e)}return e.prototype.init=function(e,t){return this.strict=!1!==e.strictMode&&"module"===e.sourceType,this.input=t,this.potentialArrowAt=-1,this.inMethod=this.inFunction=this.inGenerator=this.inAsync=this.inPropertyName=this.inType=this.inClassProperty=this.noAnonFunctionType=!1,this.labels=[],this.decorators=[],this.tokens=[],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.pos=this.lineStart=0,this.curLine=e.startLine,this.type=T.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=[I.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.invalidTemplateEscapePosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new L(this.curLine,this.pos-this.lineStart)},e.prototype.clone=function(t){var r=new e;for(var n in this){var i=this[n];t&&"context"!==n||!Array.isArray(i)||(i=i.slice()),r[n]=i}return r},e}(),V={},U=["jsx","doExpressions","objectRestSpread","decorators","classProperties","exportExtensions","asyncGenerators","functionBind","functionSent","dynamicImport","flow"],q=function(e){function t(r,n){D(this,t),r=function(e){var t={};for(var r in E)t[r]=e&&r in e?e[r]:E[r];return t}(r);var i=C(this,e.call(this,r,n));return i.options=r,i.inModule="module"===i.options.sourceType,i.input=n,i.plugins=i.loadPlugins(i.options.plugins),i.filename=r.sourceFilename,0===i.state.pos&&"#"===i.input[0]&&"!"===i.input[1]&&i.skipLineComment(2),i}return S(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:f[6](e)},t.prototype.hasPlugin=function(e){return!!(this.plugins["*"]&&U.indexOf(e)>-1)||!!this.plugins[e]},t.prototype.extend=function(e,t){this[e]=t(this[e])},t.prototype.loadAllPlugins=function(){var e=this,t=Object.keys(V).filter(function(e){return"flow"!==e&&"estree"!==e});t.push("flow"),t.forEach(function(t){var r=V[t];r&&r(e)})},t.prototype.loadPlugins=function(e){if(e.indexOf("*")>=0)return this.loadAllPlugins(),{"*":!0};var t={};e.indexOf("flow")>=0&&(e=e.filter(function(e){return"flow"!==e})).push("flow"),e.indexOf("estree")>=0&&(e=e.filter(function(e){return"estree"!==e})).unshift("estree");var r=e,n=Array.isArray(r),i=0;for(r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if(!t[a]){t[a]=!0;var o=V[a];o&&o(this)}}return t},t.prototype.parse=function(){var e=this.startNode(),t=this.startNode();return this.nextToken(),this.parseTopLevel(e,t)},t}(function(){function e(t,r){D(this,e),this.state=new R,this.state.init(t,r)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new function e(t){D(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new M(t.startLoc,t.endLoc)}(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},e.prototype.eat=function(e){return!!this.match(e)&&(this.next(),!0)},e.prototype.match=function(e){return this.state.type===e},e.prototype.isKeyword=function(e){return d(e)},e.prototype.lookahead=function(){var e=this.state;this.state=e.clone(!0),this.isLookahead=!0,this.next(),this.isLookahead=!1;var t=this.state.clone(!0);return this.state=e,t},e.prototype.setStrict=function(e){if(this.state.strict=e,this.match(T.num)||this.match(T.string)){for(this.state.pos=this.state.start;this.state.pos=this.input.length?this.finishToken(T.eof):e.override?e.override(this):this.readToken(this.fullCharCodeAtPos())},e.prototype.readToken=function(e){return s(e)||92===e?this.readWord():this.getTokenFromCode(e)},e.prototype.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.state.pos);if(e<=55295||e>=57344)return e;return(e<<10)+this.input.charCodeAt(this.state.pos+1)-56613888},e.prototype.pushComment=function(e,t,r,n,i,s){var a={type:e?"CommentBlock":"CommentLine",value:t,start:r,end:n,loc:new M(i,s)};this.isLookahead||(this.state.tokens.push(a),this.state.comments.push(a),this.addComment(a))},e.prototype.skipBlockComment=function(){var e=this.state.curPosition(),t=this.state.pos,r=this.input.indexOf("*/",this.state.pos+=2);-1===r&&this.raise(this.state.pos-2,"Unterminated comment"),this.state.pos=r+2,O.lastIndex=t;for(var n=void 0;(n=O.exec(this.input))&&n.index8&&e<14||e>=5760&&N.test(String.fromCharCode(e))))break e;++this.state.pos}}},e.prototype.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var r=this.state.type;this.state.type=e,this.state.value=t,this.updateContext(r)},e.prototype.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.state.pos+2);return 46===e&&46===t?(this.state.pos+=3,this.finishToken(T.ellipsis)):(++this.state.pos,this.finishToken(T.dot))},e.prototype.readToken_slash=function(){if(this.state.exprAllowed)return++this.state.pos,this.readRegexp();return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.assign,2):this.finishOp(T.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?T.star:T.modulo,r=1,n=this.input.charCodeAt(this.state.pos+1);return 42===n&&(r++,n=this.input.charCodeAt(this.state.pos+2),t=T.exponent),61===n&&(r++,t=T.assign),this.finishOp(t,r)},e.prototype.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?this.finishOp(124===e?T.logicalOR:T.logicalAND,2):61===t?this.finishOp(T.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(T.braceBarR,2):this.finishOp(124===e?T.bitwiseOR:T.bitwiseAND,1)},e.prototype.readToken_caret=function(){return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.assign,2):this.finishOp(T.bitwiseXOR,1)},e.prototype.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?45===t&&62===this.input.charCodeAt(this.state.pos+2)&&B.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(T.incDec,2):61===t?this.finishOp(T.assign,2):this.finishOp(T.plusMin,1)},e.prototype.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.state.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.state.pos+2)?3:2,61===this.input.charCodeAt(this.state.pos+r)?this.finishOp(T.assign,r+1):this.finishOp(T.bitShift,r)):33===t&&60===e&&45===this.input.charCodeAt(this.state.pos+2)&&45===this.input.charCodeAt(this.state.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(r=2),this.finishOp(T.relational,r))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(T.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(T.arrow)):this.finishOp(61===e?T.eq:T.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(T.parenL);case 41:return++this.state.pos,this.finishToken(T.parenR);case 59:return++this.state.pos,this.finishToken(T.semi);case 44:return++this.state.pos,this.finishToken(T.comma);case 91:return++this.state.pos,this.finishToken(T.bracketL);case 93:return++this.state.pos,this.finishToken(T.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.braceBarL,2):(++this.state.pos,this.finishToken(T.braceL));case 125:return++this.state.pos,this.finishToken(T.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.doubleColon,2):(++this.state.pos,this.finishToken(T.colon));case 63:return++this.state.pos,this.finishToken(T.question);case 64:return++this.state.pos,this.finishToken(T.at);case 96:return++this.state.pos,this.finishToken(T.backQuote);case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(T.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+u(e)+"'")},e.prototype.finishOp=function(e,t){var r=this.input.slice(this.state.pos,this.state.pos+t);return this.state.pos+=t,this.finishToken(e,r)},e.prototype.readRegexp=function(){for(var e=this.state.pos,t=void 0,r=void 0;;){this.state.pos>=this.input.length&&this.raise(e,"Unterminated regular expression");var n=this.input.charAt(this.state.pos);if(B.test(n)&&this.raise(e,"Unterminated regular expression"),t)t=!1;else{if("["===n)r=!0;else if("]"===n&&r)r=!1;else if("/"===n&&!r)break;t="\\"===n}++this.state.pos}var i=this.input.slice(e,this.state.pos);++this.state.pos;var s=this.readWord1();if(s){/^[gmsiyu]*$/.test(s)||this.raise(e,"Invalid regular expression flag")}return this.finishToken(T.regexp,{pattern:i,flags:s})},e.prototype.readInt=function(e,t){for(var r=this.state.pos,n=0,i=0,s=null==t?1/0:t;i=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.state.pos,n=n*e+o}return this.state.pos===r||null!=t&&this.state.pos-r!==t?null:n},e.prototype.readRadixNumber=function(e){this.state.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.state.start+2,"Expected number in radix "+e),s(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number"),this.finishToken(T.num,t)},e.prototype.readNumber=function(e){var t=this.state.pos,r=48===this.input.charCodeAt(t),n=!1;e||null!==this.readInt(10)||this.raise(t,"Invalid number"),r&&this.state.pos==t+1&&(r=!1);var i=this.input.charCodeAt(this.state.pos);46!==i||r||(++this.state.pos,this.readInt(10),n=!0,i=this.input.charCodeAt(this.state.pos)),69!==i&&101!==i||r||(43!==(i=this.input.charCodeAt(++this.state.pos))&&45!==i||++this.state.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),n=!0),s(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number");var a=this.input.slice(t,this.state.pos),o=void 0;return n?o=parseFloat(a):r&&1!==a.length?this.state.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(T.num,o)},e.prototype.readCodePoint=function(e){var t=void 0;if(123===this.input.charCodeAt(this.state.pos)){var r=++this.state.pos;if(t=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,e),++this.state.pos,null===t)--this.state.invalidTemplateEscapePosition;else if(t>1114111){if(!e)return this.state.invalidTemplateEscapePosition=r-2,null;this.raise(r,"Code point out of bounds")}}else t=this.readHexChar(4,e);return t},e.prototype.readString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.state.pos),t+=this.readEscapedChar(!1),r=this.state.pos):(o(n)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(r,this.state.pos++),this.finishToken(T.string,t)},e.prototype.readTmplToken=function(){for(var e="",t=this.state.pos,r=!1;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated template");var n=this.input.charCodeAt(this.state.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(T.template)?36===n?(this.state.pos+=2,this.finishToken(T.dollarBraceL)):(++this.state.pos,this.finishToken(T.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(T.template,r?null:e));if(92===n){e+=this.input.slice(t,this.state.pos);var i=this.readEscapedChar(!0);null===i?r=!0:e+=i,t=this.state.pos}else if(o(n)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,n){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}},e.prototype.readEscapedChar=function(e){var t=!e,r=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,r){case 110:return"\n";case 114:return"\r";case 120:var n=this.readHexChar(2,t);return null===n?null:String.fromCharCode(n);case 117:var i=this.readCodePoint(t);return null===i?null:u(i);case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:return this.state.lineStart=this.state.pos,++this.state.curLine,"";default:if(r>=48&&r<=55){var s=this.state.pos-1,a=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(a,8);if(o>255&&(a=a.slice(0,-1),o=parseInt(a,8)),o>0){if(e)return this.state.invalidTemplateEscapePosition=s,null;this.state.strict?this.raise(s,"Octal literal in strict mode"):this.state.containsOctal||(this.state.containsOctal=!0,this.state.octalPosition=s)}return this.state.pos+=a.length-1,String.fromCharCode(o)}return String.fromCharCode(r)}},e.prototype.readHexChar=function(e,t){var r=this.state.pos,n=this.readInt(16,e);return null===n&&(t?this.raise(r,"Bad character escape sequence"):(this.state.pos=r-1,this.state.invalidTemplateEscapePosition=r-1)),n},e.prototype.readWord1=function(){this.state.containsEsc=!1;for(var e="",t=!0,r=this.state.pos;this.state.pos1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===(void 0===t?"undefined":A(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var X=q.prototype;X.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,T.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var J={kind:"loop"},W={kind:"switch"};X.stmtToDirective=function(e){var t=e.expression,r=this.startNodeAt(t.start,t.loc.start),n=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),s=r.value=i.slice(1,-1);return this.addExtra(r,"raw",i),this.addExtra(r,"rawValue",s),n.value=this.finishNodeAt(r,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(n,"Directive",e.end,e.loc.end)},X.parseStatement=function(e,t){this.match(T.at)&&this.parseDecorators(!0);var r=this.state.type,n=this.startNode();switch(r){case T._break:case T._continue:return this.parseBreakContinueStatement(n,r.keyword);case T._debugger:return this.parseDebuggerStatement(n);case T._do:return this.parseDoStatement(n);case T._for:return this.parseForStatement(n);case T._function:return e||this.unexpected(),this.parseFunctionStatement(n);case T._class:return e||this.unexpected(),this.parseClass(n,!0);case T._if:return this.parseIfStatement(n);case T._return:return this.parseReturnStatement(n);case T._switch:return this.parseSwitchStatement(n);case T._throw:return this.parseThrowStatement(n);case T._try:return this.parseTryStatement(n);case T._let:case T._const:e||this.unexpected();case T._var:return this.parseVarStatement(n,r);case T._while:return this.parseWhileStatement(n);case T._with:return this.parseWithStatement(n);case T.braceL:return this.parseBlock();case T.semi:return this.parseEmptyStatement(n);case T._export:case T._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===T.parenL)break;return this.options.allowImportExportEverywhere||(t||this.raise(this.state.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.state.start,"'import' and 'export' may appear only with 'sourceType: \"module\"'")),r===T._import?this.parseImport(n):this.parseExport(n);case T.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(T._function)&&!this.canInsertSemicolon())return this.expect(T._function),this.parseFunction(n,!0,!1,!0);this.state=i}}var s=this.state.value,a=this.parseExpression();return r===T.name&&"Identifier"===a.type&&this.eat(T.colon)?this.parseLabeledStatement(n,s,a):this.parseExpressionStatement(n,a)},X.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},X.parseDecorators=function(e){for(;this.match(T.at);){var t=this.parseDecorator();this.state.decorators.push(t)}e&&this.match(T._export)||this.match(T._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},X.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},X.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(T.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var n=void 0;for(n=0;n=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}a.name===t&&this.raise(r.start,"Label '"+t+"' is already declared")}for(var o=this.state.type.isLoop?"loop":this.match(T._switch)?"switch":null,u=this.state.labels.length-1;u>=0;u--){var l=this.state.labels[u];if(l.statementStart!==e.start)break;l.statementStart=this.state.start,l.kind=o}return this.state.labels.push({name:t,kind:o,statementStart:this.state.start}),e.body=this.parseStatement(!0),this.state.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},X.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},X.parseBlock=function(e){var t=this.startNode();return this.expect(T.braceL),this.parseBlockBody(t,e,!1,T.braceR),this.finishNode(t,"BlockStatement")},X.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},X.parseBlockBody=function(e,t,r,n){e.body=[],e.directives=[];for(var i=!1,s=void 0,a=void 0;!this.eat(n);){i||!this.state.containsOctal||a||(a=this.state.octalPosition);var o=this.parseStatement(!0,r);if(t&&!i&&this.isValidDirective(o)){var u=this.stmtToDirective(o);e.directives.push(u),void 0===s&&"use strict"===u.value.value&&(s=this.state.strict,this.setStrict(!0),a&&this.raise(a,"Octal literal in strict mode"))}else i=!0,e.body.push(o)}!1===s&&this.setStrict(!1)},X.parseFor=function(e,t){return e.init=t,this.expect(T.semi),e.test=this.match(T.semi)?null:this.parseExpression(),this.expect(T.semi),e.update=this.match(T.parenR)?null:this.parseExpression(),this.expect(T.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},X.parseForIn=function(e,t,r){var n=void 0;return r?(this.eatContextual("of"),n="ForAwaitStatement"):(n=this.match(T._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(T.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,n)},X.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r.keyword;;){var n=this.startNode();if(this.parseVarHead(n),this.eat(T.eq)?n.init=this.parseMaybeAssign(t):r!==T._const||this.match(T._in)||this.isContextual("of")?"Identifier"===n.id.type||t&&(this.match(T._in)||this.isContextual("of"))?n.init=null:this.raise(this.state.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(T.comma))break}return e},X.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},X.parseFunction=function(e,t,r,n,i){var s=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,n),this.match(T.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(T.name)||this.match(T._yield)||this.unexpected(),(this.match(T.name)||this.match(T._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,r),this.state.inMethod=s,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},X.parseFunctionParams=function(e){this.expect(T.parenL),e.params=this.parseBindingList(T.parenR)},X.parseClass=function(e,t,r){return this.next(),this.takeDecorators(e),this.parseClassId(e,t,r),this.parseClassSuper(e),this.parseClassBody(e),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},X.isClassProperty=function(){return this.match(T.eq)||this.match(T.semi)||this.match(T.braceR)},X.isClassMethod=function(){return this.match(T.parenL)},X.isNonstaticConstructor=function(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)},X.parseClassBody=function(e){var t=this.state.strict;this.state.strict=!0;var r=!1,n=!1,i=[],s=this.startNode();for(s.body=[],this.expect(T.braceL);!this.eat(T.braceR);)if(this.eat(T.semi))i.length>0&&this.raise(this.state.lastTokEnd,"Decorators must not be followed by a semicolon");else if(this.match(T.at))i.push(this.parseDecorator());else{var a=this.startNode();if(i.length&&(a.decorators=i,i=[]),a.static=!1,this.match(T.name)&&"static"===this.state.value){var o=this.parseIdentifier(!0);if(this.isClassMethod()){a.kind="method",a.computed=!1,a.key=o,this.parseClassMethod(s,a,!1,!1);continue}if(this.isClassProperty()){a.computed=!1,a.key=o,s.body.push(this.parseClassProperty(a));continue}a.static=!0}if(this.eat(T.star))a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be a generator"),a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.parseClassMethod(s,a,!0,!1);else{var u=this.match(T.name),l=this.parsePropertyName(a);if(a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.isClassMethod())this.isNonstaticConstructor(a)?(n?this.raise(l.start,"Duplicate constructor in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),n=!0,a.kind="constructor"):a.kind="method",this.parseClassMethod(s,a,!1,!1);else if(this.isClassProperty())this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a));else if(u&&"async"===l.name&&!this.isLineTerminator()){var c=this.hasPlugin("asyncGenerators")&&this.eat(T.star);a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be an async function"),this.parseClassMethod(s,a,c,!0)}else!u||"get"!==l.name&&"set"!==l.name||this.isLineTerminator()&&this.match(T.star)?this.hasPlugin("classConstructorCall")&&u&&"call"===l.name&&this.match(T.name)&&"constructor"===this.state.value?(r?this.raise(a.start,"Duplicate constructor call in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),r=!0,a.kind="constructorCall",this.parsePropertyName(a),this.parseClassMethod(s,a,!1,!1)):this.isLineTerminator()?(this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a))):this.unexpected():(a.kind=l.name,this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't have get/set modifier"),this.parseClassMethod(s,a,!1,!1),this.checkGetterSetterParamCount(a))}}i.length&&this.raise(this.state.start,"You have trailing decorators with no method"),e.body=this.finishNode(s,"ClassBody"),this.state.strict=t},X.parseClassProperty=function(e){return this.state.inClassProperty=!0,this.match(T.eq)?(this.hasPlugin("classProperties")||this.unexpected(),this.next(),e.value=this.parseMaybeAssign()):e.value=null,this.semicolon(),this.state.inClassProperty=!1,this.finishNode(e,"ClassProperty")},X.parseClassMethod=function(e,t,r,n){this.parseMethod(t,r,n),e.body.push(this.finishNode(t,"ClassMethod"))},X.parseClassId=function(e,t,r){this.match(T.name)?e.id=this.parseIdentifier():r||!t?e.id=null:this.unexpected()},X.parseClassSuper=function(e){e.superClass=this.eat(T._extends)?this.parseExprSubscripts():null},X.parseExport=function(e){if(this.next(),this.match(T.star)){var t=this.startNode();if(this.next(),!this.hasPlugin("exportExtensions")||!this.eatContextual("as"))return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");t.exported=this.parseIdentifier(),e.specifiers=[this.finishNode(t,"ExportNamespaceSpecifier")],this.parseExportSpecifiersMaybe(e),this.parseExportFrom(e,!0)}else if(this.hasPlugin("exportExtensions")&&this.isExportDefaultSpecifier()){var r=this.startNode();if(r.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(r,"ExportDefaultSpecifier")],this.match(T.comma)&&this.lookahead().type===T.star){this.expect(T.comma);var n=this.startNode();this.expect(T.star),this.expectContextual("as"),n.exported=this.parseIdentifier(),e.specifiers.push(this.finishNode(n,"ExportNamespaceSpecifier"))}else this.parseExportSpecifiersMaybe(e);this.parseExportFrom(e,!0)}else{if(this.eat(T._default)){var i=this.startNode(),s=!1;return this.eat(T._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(T._class)?i=this.parseClass(i,!0,!0):(s=!0,i=this.parseMaybeAssign()),e.declaration=i,s&&this.semicolon(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration")}this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e)):(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e))}return this.checkExport(e,!0),this.finishNode(e,"ExportNamedDeclaration")},X.parseExportDeclaration=function(){return this.parseStatement(!0)},X.isExportDefaultSpecifier=function(){if(this.match(T.name))return"async"!==this.state.value;if(!this.match(T._default))return!1;var e=this.lookahead();return e.type===T.comma||e.type===T.name&&"from"===e.value},X.parseExportSpecifiersMaybe=function(e){this.eat(T.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},X.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(T.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},X.shouldParseExportDeclaration=function(){return"var"===this.state.type.keyword||"const"===this.state.type.keyword||"let"===this.state.type.keyword||"function"===this.state.type.keyword||"class"===this.state.type.keyword||this.isContextual("async")},X.checkExport=function(e,t,r){if(t)if(r)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length){var n=e.specifiers,i=Array.isArray(n),s=0;for(n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;this.checkDuplicateExports(o,o.exported.name)}}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type)this.checkDuplicateExports(e,e.declaration.id.name);else if("VariableDeclaration"===e.declaration.type){var u=e.declaration.declarations,l=Array.isArray(u),c=0;for(u=l?u:u[Symbol.iterator]();;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if((c=u.next()).done)break;p=c.value}var h=p;this.checkDeclaration(h.id)}}if(this.state.decorators.length){var f=e.declaration&&("ClassDeclaration"===e.declaration.type||"ClassExpression"===e.declaration.type);e.declaration&&f||this.raise(e.start,"You can only use decorators on an export when exporting a class"),this.takeDecorators(e.declaration)}},X.checkDeclaration=function(e){if("ObjectPattern"===e.type){var t=e.properties,r=Array.isArray(t),n=0;for(t=r?t:t[Symbol.iterator]();;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this.checkDeclaration(s)}}else if("ArrayPattern"===e.type){var a=e.elements,o=Array.isArray(a),u=0;for(a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var c=l;c&&this.checkDeclaration(c)}}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type||"RestProperty"===e.type?this.checkDeclaration(e.argument):"Identifier"===e.type&&this.checkDuplicateExports(e,e.name)},X.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},X.raiseDuplicateExportError=function(e,t){this.raise(e.start,"default"===t?"Only one default export allowed per module.":"`"+t+"` has already been exported. Exported identifiers must be unique.")},X.parseExportSpecifiers=function(){var e=[],t=!0,r=void 0;for(this.expect(T.braceL);!this.eat(T.braceR);){if(t)t=!1;else if(this.expect(T.comma),this.eat(T.braceR))break;var n=this.match(T._default);n&&!r&&(r=!0);var i=this.startNode();i.local=this.parseIdentifier(n),i.exported=this.eatContextual("as")?this.parseIdentifier(!0):i.local.__clone(),e.push(this.finishNode(i,"ExportSpecifier"))}return r&&!this.isContextual("from")&&this.unexpected(),e},X.parseImport=function(e){return this.eat(T._import),this.match(T.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(T.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},X.parseImportSpecifiers=function(e){var t=!0;if(this.match(T.name)){var r=this.state.start,n=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),r,n)),!this.eat(T.comma))return}if(this.match(T.star)){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdentifier(),this.checkLVal(i.local,!0,void 0,"import namespace specifier"),void e.specifiers.push(this.finishNode(i,"ImportNamespaceSpecifier"))}for(this.expect(T.braceL);!this.eat(T.braceR);){if(t)t=!1;else if(this.eat(T.colon)&&this.unexpected(null,"ES2015 named imports do not destructure. Use another statement for destructuring after the import."),this.expect(T.comma),this.eat(T.braceR))break;this.parseImportSpecifier(e)}},X.parseImportSpecifier=function(e){var t=this.startNode();t.imported=this.parseIdentifier(!0),this.eatContextual("as")?t.local=this.parseIdentifier():(this.checkReservedWord(t.imported.name,t.start,!0,!0),t.local=t.imported.__clone()),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))},X.parseImportSpecifierDefault=function(e,t,r){var n=this.startNodeAt(t,r);return n.local=e,this.checkLVal(n.local,!0,void 0,"default import specifier"),this.finishNode(n,"ImportDefaultSpecifier")};var z=q.prototype;z.toAssignable=function(e,t,r){if(e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";var n=e.properties,i=Array.isArray(n),s=0;for(n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;"ObjectMethod"===o.type?"get"===o.kind||"set"===o.kind?this.raise(o.key.start,"Object pattern can't contain getter or setter"):this.raise(o.key.start,"Object pattern can't contain methods"):this.toAssignable(o,t,"object destructuring pattern")}break;case"ObjectProperty":this.toAssignable(e.value,t,r);break;case"SpreadProperty":e.type="RestProperty";var u=e.argument;this.toAssignable(u,t,r);break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t,r);break;case"AssignmentExpression":"="===e.operator?(e.type="AssignmentPattern",delete e.operator):this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break;case"MemberExpression":if(!t)break;default:var l="Invalid left-hand side"+(r?" in "+r:"expression");this.raise(e.start,l)}return e},z.toAssignableList=function(e,t,r){var n=e.length;if(n){var i=e[n-1];if(i&&"RestElement"===i.type)--n;else if(i&&"SpreadElement"===i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t,r),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--n}}for(var a=0;a=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var l=u;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,r,"object destructuring pattern")}break;case"ArrayPattern":var c=e.elements,p=Array.isArray(c),h=0;for(c=p?c:c[Symbol.iterator]();;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}var d=f;d&&this.checkLVal(d,t,r,"array destructuring pattern")}break;case"AssignmentPattern":this.checkLVal(e.left,t,r,"assignment pattern");break;case"RestProperty":this.checkLVal(e.argument,t,r,"rest property");break;case"RestElement":this.checkLVal(e.argument,t,r,"rest element");break;default:var m=(t?"Binding invalid":"Invalid")+" left-hand side"+(n?" in "+n:"expression");this.raise(e.start,m)}};var Y=q.prototype;Y.checkPropClash=function(e,t){if(!e.computed&&!e.kind){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}},Y.getExpression=function(){this.nextToken();var e=this.parseExpression();return this.match(T.eof)||this.unexpected(),e},Y.parseExpression=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(T.comma)){var s=this.startNodeAt(r,n);for(s.expressions=[i];this.eat(T.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i},Y.parseMaybeAssign=function(e,t,r,n){var i=this.state.start,s=this.state.startLoc;if(this.match(T._yield)&&this.state.inGenerator){var a=this.parseYield();return r&&(a=r.call(this,a,i,s)),a}var o=void 0;t?o=!1:(t={start:0},o=!0),(this.match(T.parenL)||this.match(T.name))&&(this.state.potentialArrowAt=this.state.start);var u=this.parseMaybeConditional(e,t,n);if(r&&(u=r.call(this,u,i,s)),this.state.type.isAssign){var l=this.startNodeAt(i,s);if(l.operator=this.state.value,l.left=this.match(T.eq)?this.toAssignable(u,void 0,"assignment expression"):u,t.start=0,this.checkLVal(u,void 0,void 0,"assignment expression"),u.extra&&u.extra.parenthesized){var c=void 0;"ObjectPattern"===u.type?c="`({a}) = 0` use `({a} = 0)`":"ArrayPattern"===u.type&&(c="`([a]) = 0` use `([a] = 0)`"),c&&this.raise(u.start,"You're trying to assign to a parenthesized expression, eg. instead of "+c)}return this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return o&&t.start&&this.unexpected(t.start),u},Y.parseMaybeConditional=function(e,t,r){var n=this.state.start,i=this.state.startLoc,s=this.parseExprOps(e,t);return t&&t.start?s:this.parseConditional(s,e,n,i,r)},Y.parseConditional=function(e,t,r,n){if(this.eat(T.question)){var i=this.startNodeAt(r,n);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(T.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},Y.parseExprOps=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeUnary(t);return t&&t.start?i:this.parseExprOp(i,r,n,-1,e)},Y.parseExprOp=function(e,t,r,n,i){var s=this.state.type.binop;if(!(null==s||i&&this.match(T._in))&&s>n){var a=this.startNodeAt(t,r);a.left=e,a.operator=this.state.value,"**"!==a.operator||"UnaryExpression"!==e.type||!e.extra||e.extra.parenthesizedArgument||e.extra.parenthesized||this.raise(e.argument.start,"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.");var o=this.state.type;this.next();var u=this.state.start,l=this.state.startLoc;return a.right=this.parseExprOp(this.parseMaybeUnary(),u,l,o.rightAssociative?s-1:s,i),this.finishNode(a,o===T.logicalOR||o===T.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(a,t,r,n,i)}return e},Y.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),r=this.match(T.incDec);t.operator=this.state.value,t.prefix=!0,this.next();var n=this.state.type;return t.argument=this.parseMaybeUnary(),this.addExtra(t,"parenthesizedArgument",!(n!==T.parenL||t.argument.extra&&t.argument.extra.parenthesized)),e&&e.start&&this.unexpected(e.start),r?this.checkLVal(t.argument,void 0,void 0,"prefix operation"):this.state.strict&&"delete"===t.operator&&"Identifier"===t.argument.type&&this.raise(t.start,"Deleting local variable in strict mode"),this.finishNode(t,r?"UpdateExpression":"UnaryExpression")}var i=this.state.start,s=this.state.startLoc,a=this.parseExprSubscripts(e);if(e&&e.start)return a;for(;this.state.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,s);o.operator=this.state.value,o.prefix=!1,o.argument=a,this.checkLVal(a,void 0,void 0,"postfix operation"),this.next(),a=this.finishNode(o,"UpdateExpression")}return a},Y.parseExprSubscripts=function(e){var t=this.state.start,r=this.state.startLoc,n=this.state.potentialArrowAt,i=this.parseExprAtom(e);return"ArrowFunctionExpression"===i.type&&i.start===n?i:e&&e.start?i:this.parseSubscripts(i,t,r)},Y.parseSubscripts=function(e,t,r,n){for(;;){if(!n&&this.eat(T.doubleColon)){var i=this.startNodeAt(t,r);return i.object=e,i.callee=this.parseNoCallExpr(),this.parseSubscripts(this.finishNode(i,"BindExpression"),t,r,n)}if(this.eat(T.dot)){var s=this.startNodeAt(t,r);s.object=e,s.property=this.parseIdentifier(!0),s.computed=!1,e=this.finishNode(s,"MemberExpression")}else if(this.eat(T.bracketL)){var a=this.startNodeAt(t,r);a.object=e,a.property=this.parseExpression(),a.computed=!0,this.expect(T.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!n&&this.match(T.parenL)){var o=this.state.potentialArrowAt===e.start&&"Identifier"===e.type&&"async"===e.name&&!this.canInsertSemicolon();this.next();var u=this.startNodeAt(t,r);if(u.callee=e,u.arguments=this.parseCallExpressionArguments(T.parenR,o),"Import"===u.callee.type&&1!==u.arguments.length&&this.raise(u.start,"import() requires exactly one argument"),e=this.finishNode(u,"CallExpression"),o&&this.shouldParseAsyncArrow())return this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,r),u);this.toReferencedList(u.arguments)}else{if(!this.match(T.backQuote))return e;var l=this.startNodeAt(t,r);l.tag=e,l.quasi=this.parseTemplate(!0),e=this.finishNode(l,"TaggedTemplateExpression")}}},Y.parseCallExpressionArguments=function(e,t){for(var r=[],n=void 0,i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(T.comma),this.eat(e))break;this.match(T.parenL)&&!n&&(n=this.state.start),r.push(this.parseExprListItem(!1,t?{start:0}:void 0,t?{start:0}:void 0))}return t&&n&&this.shouldParseAsyncArrow()&&this.unexpected(),r},Y.shouldParseAsyncArrow=function(){return this.match(T.arrow)},Y.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(T.arrow),this.parseArrowExpression(e,t.arguments,!0)},Y.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},Y.parseExprAtom=function(e){var t=this.state.potentialArrowAt===this.state.start,r=void 0;switch(this.state.type){case T._super:return this.state.inMethod||this.state.inClassProperty||this.options.allowSuperOutsideMethod||this.raise(this.state.start,"'super' outside of function or class"),r=this.startNode(),this.next(),this.match(T.parenL)||this.match(T.bracketL)||this.match(T.dot)||this.unexpected(),this.match(T.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(r.start,"super() outside of class constructor"),this.finishNode(r,"Super");case T._import:return this.hasPlugin("dynamicImport")||this.unexpected(),r=this.startNode(),this.next(),this.match(T.parenL)||this.unexpected(null,T.parenL),this.finishNode(r,"Import");case T._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case T._yield:this.state.inGenerator&&this.unexpected();case T.name:r=this.startNode();var n="await"===this.state.value&&this.state.inAsync,i=this.shouldAllowYieldIdentifier(),s=this.parseIdentifier(n||i);if("await"===s.name){if(this.state.inAsync||this.inModule)return this.parseAwait(r)}else{if("async"===s.name&&this.match(T._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(r,!1,!1,!0);if(t&&"async"===s.name&&this.match(T.name)){var a=[this.parseIdentifier()];return this.expect(T.arrow),this.parseArrowExpression(r,a,!0)}}return t&&!this.canInsertSemicolon()&&this.eat(T.arrow)?this.parseArrowExpression(r,[s]):s;case T._do:if(this.hasPlugin("doExpressions")){var o=this.startNode();this.next();var u=this.state.inFunction,l=this.state.labels;return this.state.labels=[],this.state.inFunction=!1,o.body=this.parseBlock(!1,!0),this.state.inFunction=u,this.state.labels=l,this.finishNode(o,"DoExpression")}case T.regexp:var c=this.state.value;return r=this.parseLiteral(c.value,"RegExpLiteral"),r.pattern=c.pattern,r.flags=c.flags,r;case T.num:return this.parseLiteral(this.state.value,"NumericLiteral");case T.string:return this.parseLiteral(this.state.value,"StringLiteral");case T._null:return r=this.startNode(),this.next(),this.finishNode(r,"NullLiteral");case T._true:case T._false:return r=this.startNode(),r.value=this.match(T._true),this.next(),this.finishNode(r,"BooleanLiteral");case T.parenL:return this.parseParenAndDistinguishExpression(null,null,t);case T.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(T.bracketR,!0,e),this.toReferencedList(r.elements),this.finishNode(r,"ArrayExpression");case T.braceL:return this.parseObj(!1,e);case T._function:return this.parseFunctionExpression();case T.at:this.parseDecorators();case T._class:return r=this.startNode(),this.takeDecorators(r),this.parseClass(r,!1);case T._new:return this.parseNew();case T.backQuote:return this.parseTemplate(!1);case T.doubleColon:r=this.startNode(),this.next(),r.object=null;var p=r.callee=this.parseNoCallExpr();if("MemberExpression"===p.type)return this.finishNode(r,"BindExpression");this.raise(p.start,"Binding should be performed on object property.");default:this.unexpected()}},Y.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(T.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},Y.parseMetaProperty=function(e,t,r){return e.meta=t,e.property=this.parseIdentifier(!0),e.property.name!==r&&this.raise(e.property.start,"The only valid meta property for new is "+t.name+"."+r),this.finishNode(e,"MetaProperty")},Y.parseLiteral=function(e,t,r,n){r=r||this.state.start,n=n||this.state.startLoc;var i=this.startNodeAt(r,n);return this.addExtra(i,"rawValue",e),this.addExtra(i,"raw",this.input.slice(r,this.state.end)),i.value=e,this.next(),this.finishNode(i,t)},Y.parseParenExpression=function(){this.expect(T.parenL);var e=this.parseExpression();return this.expect(T.parenR),e},Y.parseParenAndDistinguishExpression=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;var n=void 0;this.expect(T.parenL);for(var i=this.state.start,s=this.state.startLoc,a=[],o={start:0},u={start:0},l=!0,c=void 0,p=void 0;!this.match(T.parenR);){if(l)l=!1;else if(this.expect(T.comma,u.start||null),this.match(T.parenR)){p=this.state.start;break}if(this.match(T.ellipsis)){var h=this.state.start,f=this.state.startLoc;c=this.state.start,a.push(this.parseParenItem(this.parseRest(),h,f));break}a.push(this.parseMaybeAssign(!1,o,this.parseParenItem,u))}var d=this.state.start,m=this.state.startLoc;this.expect(T.parenR);var y=this.startNodeAt(e,t);if(r&&this.shouldParseArrow()&&(y=this.parseArrow(y))){var g=a,b=Array.isArray(g),v=0;for(g=b?g:g[Symbol.iterator]();;){var x;if(b){if(v>=g.length)break;x=g[v++]}else{if((v=g.next()).done)break;x=v.value}var E=x;E.extra&&E.extra.parenthesized&&this.unexpected(E.extra.parenStart)}return this.parseArrowExpression(y,a)}return a.length||this.unexpected(this.state.lastTokStart),p&&this.unexpected(p),c&&this.unexpected(c),o.start&&this.unexpected(o.start),u.start&&this.unexpected(u.start),a.length>1?((n=this.startNodeAt(i,s)).expressions=a,this.toReferencedList(n.expressions),this.finishNodeAt(n,"SequenceExpression",d,m)):n=a[0],this.addExtra(n,"parenthesized",!0),this.addExtra(n,"parenStart",e),n},Y.shouldParseArrow=function(){return!this.canInsertSemicolon()},Y.parseArrow=function(e){if(this.eat(T.arrow))return e},Y.parseParenItem=function(e){return e},Y.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);if(this.eat(T.dot)){var r=this.parseMetaProperty(e,t,"target");return this.state.inFunction||this.raise(r.property.start,"new.target can only be used in functions"),r}return e.callee=this.parseNoCallExpr(),this.eat(T.parenL)?(e.arguments=this.parseExprList(T.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression")},Y.parseTemplateElement=function(e){var t=this.startNode();return null===this.state.value&&(e&&this.hasPlugin("templateInvalidEscapes")?this.state.invalidTemplateEscapePosition=null:this.raise(this.state.invalidTemplateEscapePosition,"Invalid escape sequence in template")),t.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),t.tail=this.match(T.backQuote),this.finishNode(t,"TemplateElement")},Y.parseTemplate=function(e){var t=this.startNode();this.next(),t.expressions=[];var r=this.parseTemplateElement(e);for(t.quasis=[r];!r.tail;)this.expect(T.dollarBraceL),t.expressions.push(this.parseExpression()),this.expect(T.braceR),t.quasis.push(r=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")},Y.parseObj=function(e,t){var r=[],n=Object.create(null),i=!0,s=this.startNode();s.properties=[],this.next();for(var a=null;!this.eat(T.braceR);){if(i)i=!1;else if(this.expect(T.comma),this.eat(T.braceR))break;for(;this.match(T.at);)r.push(this.parseDecorator());var o=this.startNode(),u=!1,l=!1,c=void 0,p=void 0;if(r.length&&(o.decorators=r,r=[]),this.hasPlugin("objectRestSpread")&&this.match(T.ellipsis)){if(o=this.parseSpread(e?{start:0}:void 0),o.type=e?"RestProperty":"SpreadProperty",e&&this.toAssignable(o.argument,!0,"object pattern"),s.properties.push(o),!e)continue;var h=this.state.start;if(null===a){if(this.eat(T.braceR))break;if(this.match(T.comma)&&this.lookahead().type===T.braceR)continue;a=h;continue}this.unexpected(a,"Cannot have multiple rest elements when destructuring")}if(o.method=!1,o.shorthand=!1,(e||t)&&(c=this.state.start,p=this.state.startLoc),e||(u=this.eat(T.star)),!e&&this.isContextual("async")){u&&this.unexpected();var f=this.parseIdentifier();this.match(T.colon)||this.match(T.parenL)||this.match(T.braceR)||this.match(T.eq)||this.match(T.comma)?(o.key=f,o.computed=!1):(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(T.star)),this.parsePropertyName(o))}else this.parsePropertyName(o);this.parseObjPropValue(o,c,p,u,l,e,t),this.checkPropClash(o,n),o.shorthand&&this.addExtra(o,"shorthand",!0),s.properties.push(o)}return null!==a&&this.unexpected(a,"The rest element has to be the last element when destructuring"),r.length&&this.raise(this.state.start,"You have trailing decorators with no property"),this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},Y.isGetterOrSetterMethod=function(e,t){return!t&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&(this.match(T.string)||this.match(T.num)||this.match(T.bracketL)||this.match(T.name)||this.state.type.keyword)},Y.checkGetterSetterParamCount=function(e){var t="get"===e.kind?0:1;if(e.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}},Y.parseObjectMethod=function(e,t,r,n){return r||t||this.match(T.parenL)?(n&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,r),this.finishNode(e,"ObjectMethod")):this.isGetterOrSetterMethod(e,n)?((t||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),this.parseMethod(e),this.checkGetterSetterParamCount(e),this.finishNode(e,"ObjectMethod")):void 0},Y.parseObjectProperty=function(e,t,r,n,i){return this.eat(T.colon)?(e.value=n?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssign(!1,i),this.finishNode(e,"ObjectProperty")):e.computed||"Identifier"!==e.key.type?void 0:(this.checkReservedWord(e.key.name,e.key.start,!0,!0),n?e.value=this.parseMaybeDefault(t,r,e.key.__clone()):this.match(T.eq)&&i?(i.start||(i.start=this.state.start),e.value=this.parseMaybeDefault(t,r,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))},Y.parseObjPropValue=function(e,t,r,n,i,s,a){var o=this.parseObjectMethod(e,n,i,s)||this.parseObjectProperty(e,t,r,s,a);return o||this.unexpected(),o},Y.parsePropertyName=function(e){if(this.eat(T.bracketL))e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(T.bracketR);else{e.computed=!1;var t=this.state.inPropertyName;this.state.inPropertyName=!0,e.key=this.match(T.num)||this.match(T.string)?this.parseExprAtom():this.parseIdentifier(!0),this.state.inPropertyName=t}return e.key},Y.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},Y.parseMethod=function(e,t,r){var n=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,r),this.expect(T.parenL),e.params=this.parseBindingList(T.parenR),e.generator=!!t,this.parseFunctionBody(e),this.state.inMethod=n,e},Y.parseArrowExpression=function(e,t,r){return this.initFunction(e,r),e.params=this.toAssignableList(t,!0,"arrow function parameters"),this.parseFunctionBody(e,!0),this.finishNode(e,"ArrowFunctionExpression")},Y.isStrictBody=function(e,t){if(!t&&e.body.directives.length){var r=e.body.directives,n=Array.isArray(r),i=0;for(r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}if("use strict"===s.value.value)return!0}}return!1},Y.parseFunctionBody=function(e,t){var r=t&&!this.match(T.braceL),n=this.state.inAsync;if(this.state.inAsync=e.async,r)e.body=this.parseMaybeAssign(),e.expression=!0;else{var i=this.state.inFunction,s=this.state.inGenerator,a=this.state.labels;this.state.inFunction=!0,this.state.inGenerator=e.generator,this.state.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.state.inFunction=i,this.state.inGenerator=s,this.state.labels=a}this.state.inAsync=n;var o=this.isStrictBody(e,r),u=this.state.strict||t||o;if(o&&e.id&&"Identifier"===e.id.type&&"yield"===e.id.name&&this.raise(e.id.start,"Binding yield in strict mode"),u){var l=Object.create(null),c=this.state.strict;o&&(this.state.strict=!0),e.id&&this.checkLVal(e.id,!0,void 0,"function name");var p=e.params,h=Array.isArray(p),f=0;for(p=h?p:p[Symbol.iterator]();;){var d;if(h){if(f>=p.length)break;d=p[f++]}else{if((f=p.next()).done)break;d=f.value}var m=d;o&&"Identifier"!==m.type&&this.raise(m.start,"Non-simple parameter in strict mode"),this.checkLVal(m,!0,l,"function parameter list")}this.state.strict=c}},Y.parseExprList=function(e,t,r){for(var n=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(T.comma),this.eat(e))break;n.push(this.parseExprListItem(t,r))}return n},Y.parseExprListItem=function(e,t,r){return e&&this.match(T.comma)?null:this.match(T.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem,r)},Y.parseIdentifier=function(e){var t=this.startNode();return e||this.checkReservedWord(this.state.value,this.state.start,!!this.state.type.keyword,!1),this.match(T.name)?t.name=this.state.value:this.state.type.keyword?t.name=this.state.type.keyword:this.unexpected(),!e&&"await"===t.name&&this.state.inAsync&&this.raise(t.start,"invalid use of await inside of an async function"),t.loc.identifierName=t.name,this.next(),this.finishNode(t,"Identifier")},Y.checkReservedWord=function(e,t,r,n){(this.isReservedWord(e)||r&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(f.strict(e)||n&&f.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},Y.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(T.star)&&this.raise(e.start,"await* has been removed from the async functions proposal. Use Promise.all() instead."),e.argument=this.parseMaybeUnary(),this.finishNode(e,"AwaitExpression")},Y.parseYield=function(){var e=this.startNode();return this.next(),this.match(T.semi)||this.canInsertSemicolon()||!this.match(T.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(T.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var H=q.prototype,$=["leadingComments","trailingComments","innerComments"],Q=function(){function e(t,r,n){D(this,e),this.type="",this.start=t,this.end=0,this.loc=new M(r),n&&(this.loc.filename=n)}return e.prototype.__clone=function(){var t=new e;for(var r in this)$.indexOf(r)<0&&(t[r]=this[r]);return t},e}();H.startNode=function(){return new Q(this.state.start,this.state.startLoc,this.filename)},H.startNodeAt=function(e,t){return new Q(e,t,this.filename)},H.finishNode=function(e,t){return l.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},H.finishNodeAt=function(e,t,r,n){return l.call(this,e,t,r,n)};q.prototype.raise=function(e,t){var r=function(e,t){for(var r=1,n=0;;){O.lastIndex=n;var i=O.exec(e);if(!(i&&i.index0)){var t=this.state.commentStack,r=void 0,n=void 0,i=void 0,s=void 0,a=void 0;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(i=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else{var o=c(t);t.length>0&&o.trailingComments&&o.trailingComments[0].start>=e.end&&(i=o.trailingComments,o.trailingComments=null)}for(t.length>0&&c(t).start>=e.start&&(r=t.pop());t.length>0&&c(t).start>=e.start;)n=t.pop();if(!n&&r&&(n=r),r&&this.state.leadingComments.length>0){var u=c(this.state.leadingComments);if("ObjectProperty"===r.type){if(u.start>=e.start&&this.state.commentPreviousNode){for(a=0;a0&&(r.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}else if("CallExpression"===e.type&&e.arguments&&e.arguments.length){var l=c(e.arguments);l&&u.start>=l.start&&u.end<=e.end&&this.state.commentPreviousNode&&this.state.leadingComments.length>0&&(l.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}if(n){if(n.leadingComments)if(n!==e&&c(n.leadingComments).end<=e.start)e.leadingComments=n.leadingComments,n.leadingComments=null;else for(s=n.leadingComments.length-2;s>=0;--s)if(n.leadingComments[s].end<=e.start){e.leadingComments=n.leadingComments.splice(0,s+1);break}}else if(this.state.leadingComments.length>0)if(c(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;se.start);s++);e.leadingComments=this.state.leadingComments.slice(0,s),0===e.leadingComments.length&&(e.leadingComments=null),0===(i=this.state.leadingComments.slice(s)).length&&(i=null)}this.state.commentPreviousNode=e,i&&(i.length&&i[0].start>=e.start&&c(i).end<=e.end?e.innerComments=i:e.trailingComments=i),t.push(e)}};var ee=q.prototype;ee.estreeParseRegExpLiteral=function(e){var t=e.pattern,r=e.flags,n=null;try{n=new RegExp(t,r)}catch(e){}var i=this.estreeParseLiteral(n);return i.regex={pattern:t,flags:r},i},ee.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},ee.directiveToStmt=function(e){var t=e.value,r=this.startNodeAt(e.start,e.loc.start),n=this.startNodeAt(t.start,t.loc.start);return n.value=t.value,n.raw=t.extra.raw,r.expression=this.finishNodeAt(n,"Literal",t.end,t.loc.end),r.directive=t.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.end,e.loc.end)};var te=["any","mixed","empty","bool","boolean","number","string","void","null"],re=q.prototype;re.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||T.colon);var r=this.flowParseType();return this.state.inType=t,r},re.flowParsePredicate=function(){var e=this.startNode(),t=this.state.startLoc,r=this.state.start;this.expect(T.modulo);var n=this.state.startLoc;return this.expectContextual("checks"),t.line===n.line&&t.column===n.column-1||this.raise(r,"Spaces between Ā“%Ā“ and Ā“checksĀ“ are not allowed here."),this.eat(T.parenL)?(e.expression=this.parseExpression(),this.expect(T.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")},re.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(T.colon);var t=null,r=null;return this.match(T.modulo)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(T.modulo)&&(r=this.flowParsePredicate())),[t,r]},re.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},re.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),r=this.startNode(),n=this.startNode();this.isRelational("<")?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(T.parenL);var i=this.flowParseFunctionTypeParams();r.params=i.params,r.rest=i.rest,this.expect(T.parenR);var s=null,a=this.flowParseTypeAndPredicateInitialiser();return r.returnType=a[0],s=a[1],n.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),n.predicate=s,t.typeAnnotation=this.finishNode(n,"TypeAnnotation"),this.finishNode(t,t.type),this.semicolon(),this.finishNode(e,"DeclareFunction")},re.flowParseDeclare=function(e){return this.match(T._class)?this.flowParseDeclareClass(e):this.match(T._function)?this.flowParseDeclareFunction(e):this.match(T._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===T.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("opaque")?this.flowParseDeclareOpaqueType(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):this.match(T._export)?this.flowParseDeclareExportDeclaration(e):void this.unexpected()},re.flowParseDeclareExportDeclaration=function(e){if(this.expect(T._export),this.isContextual("opaque"))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");throw this.unexpected()},re.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},re.flowParseDeclareModule=function(e){this.next(),this.match(T.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),r=t.body=[];for(this.expect(T.braceL);!this.match(T.braceR);){var n=this.startNode();if(this.match(T._import)){var i=this.lookahead();"type"!==i.value&&"typeof"!==i.value&&this.unexpected(null,"Imports within a `declare module` body must always be `import type` or `import typeof`"),this.parseImport(n)}else this.expectContextual("declare","Only declares and type imports are allowed inside declare module"),n=this.flowParseDeclare(n,!0);r.push(n)}return this.expect(T.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},re.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(T.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},re.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},re.flowParseDeclareOpaqueType=function(e){return this.next(),this.flowParseOpaqueType(e,!0),this.finishNode(e,"DeclareOpaqueType")},re.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},re.flowParseInterfaceish=function(e){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(T._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(T.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(T.comma))}e.body=this.flowParseObjectType(!0,!1,!1)},re.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},re.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},re.flowParseRestrictedIdentifier=function(e){return te.indexOf(this.state.value)>-1&&this.raise(this.state.start,"Cannot overwrite primitive type "+this.state.value),this.parseIdentifier(e)},re.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(T.eq),this.semicolon(),this.finishNode(e,"TypeAlias")},re.flowParseOpaqueType=function(e,t){return this.expectContextual("type"),e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(T.colon)&&(e.supertype=this.flowParseTypeInitialiser(T.colon)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(T.eq)),this.semicolon(),this.finishNode(e,"OpaqueType")},re.flowParseTypeParameter=function(){var e=this.startNode(),t=this.flowParseVariance(),r=this.flowParseTypeAnnotatableIdentifier();return e.name=r.name,e.variance=t,e.bound=r.typeAnnotation,this.match(T.eq)&&(this.eat(T.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},re.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(T.jsxTagStart)?this.next():this.unexpected();do{t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(T.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},re.flowParseTypeParameterInstantiation=function(){var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(T.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},re.flowParseObjectPropertyKey=function(){return this.match(T.num)||this.match(T.string)?this.parseExprAtom():this.parseIdentifier(!0)},re.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,this.expect(T.bracketL),this.lookahead().type===T.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(T.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},re.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(T.parenL);!this.match(T.parenR)&&!this.match(T.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(T.parenR)||this.expect(T.comma);return this.eat(T.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(T.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},re.flowParseObjectTypeMethod=function(e,t,r,n){var i=this.startNodeAt(e,t);return i.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e,t)),i.static=r,i.key=n,i.optional=!1,this.flowObjectTypeSemicolon(),this.finishNode(i,"ObjectTypeProperty")},re.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},re.flowParseObjectType=function(e,t,r){var n=this.state.inType;this.state.inType=!0;var i=this.startNode(),s=void 0,a=void 0,o=!1;i.callProperties=[],i.properties=[],i.indexers=[];var u=void 0,l=void 0;for(t&&this.match(T.braceBarL)?(this.expect(T.braceBarL),u=T.braceBarR,l=!0):(this.expect(T.braceL),u=T.braceR,l=!1),i.exact=l;!this.match(u);){var c=!1,p=this.state.start,h=this.state.startLoc;s=this.startNode(),e&&this.isContextual("static")&&this.lookahead().type!==T.colon&&(this.next(),o=!0);var f=this.state.start,d=this.flowParseVariance();this.match(T.bracketL)?i.indexers.push(this.flowParseObjectTypeIndexer(s,o,d)):this.match(T.parenL)||this.isRelational("<")?(d&&this.unexpected(f),i.callProperties.push(this.flowParseObjectTypeCallProperty(s,o))):this.match(T.ellipsis)?(r||this.unexpected(null,"Spread operator cannot appear in class or interface definitions"),d&&this.unexpected(d.start,"Spread properties cannot have variance"),this.expect(T.ellipsis),s.argument=this.flowParseType(),this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeSpreadProperty"))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(T.parenL)?(d&&this.unexpected(d.start),i.properties.push(this.flowParseObjectTypeMethod(p,h,o,a))):(this.eat(T.question)&&(c=!0),s.key=a,s.value=this.flowParseTypeInitialiser(),s.optional=c,s.static=o,s.variance=d,this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeProperty")))),o=!1}this.expect(u);var m=this.finishNode(i,"ObjectTypeAnnotation");return this.state.inType=n,m},re.flowObjectTypeSemicolon=function(){this.eat(T.semi)||this.eat(T.comma)||this.match(T.braceR)||this.match(T.braceBarR)||this.unexpected()},re.flowParseQualifiedTypeIdentifier=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;for(var n=r||this.parseIdentifier();this.eat(T.dot);){var i=this.startNodeAt(e,t);i.qualification=n,i.id=this.parseIdentifier(),n=this.finishNode(i,"QualifiedTypeIdentifier")}return n},re.flowParseGenericType=function(e,t,r){var n=this.startNodeAt(e,t);return n.typeParameters=null,n.id=this.flowParseQualifiedTypeIdentifier(e,t,r),this.isRelational("<")&&(n.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(n,"GenericTypeAnnotation")},re.flowParseTypeofType=function(){var e=this.startNode();return this.expect(T._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},re.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(T.bracketL);this.state.pos0&&void 0!==arguments[0]?arguments[0]:[],rest:null};!this.match(T.parenR)&&!this.match(T.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(T.parenR)||this.expect(T.comma);return this.eat(T.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),e},re.flowIdentToTypeAnnotation=function(e,t,r,n){switch(n.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"void":return this.finishNode(r,"VoidTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");default:return this.flowParseGenericType(e,t,n)}},re.flowParsePrimaryType=function(){var e=this.state.start,t=this.state.startLoc,r=this.startNode(),n=void 0,i=void 0,s=!1,a=this.state.noAnonFunctionType;switch(this.state.type){case T.name:return this.flowIdentToTypeAnnotation(e,t,r,this.parseIdentifier());case T.braceL:return this.flowParseObjectType(!1,!1,!0);case T.braceBarL:return this.flowParseObjectType(!1,!0,!0);case T.bracketL:return this.flowParseTupleType();case T.relational:if("<"===this.state.value)return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(T.parenL),n=this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(T.parenR),this.expect(T.arrow),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");break;case T.parenL:if(this.next(),!this.match(T.parenR)&&!this.match(T.ellipsis))if(this.match(T.name)){var o=this.lookahead().type;s=o!==T.question&&o!==T.colon}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(T.comma)||this.match(T.parenR)&&this.lookahead().type===T.arrow))return this.expect(T.parenR),i;this.eat(T.comma)}return n=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(T.parenR),this.expect(T.arrow),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case T.string:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case T._true:case T._false:return r.value=this.match(T._true),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case T.plusMin:if("-"===this.state.value)return this.next(),this.match(T.num)||this.unexpected(null,"Unexpected token, expected number"),this.parseLiteral(-this.state.value,"NumericLiteralTypeAnnotation",r.start,r.loc.start);this.unexpected();case T.num:return this.parseLiteral(this.state.value,"NumericLiteralTypeAnnotation");case T._null:return r.value=this.match(T._null),this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case T._this:return r.value=this.match(T._this),this.next(),this.finishNode(r,"ThisTypeAnnotation");case T.star:return this.next(),this.finishNode(r,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},re.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(T.bracketL);){var n=this.startNodeAt(e,t);n.elementType=r,this.expect(T.bracketL),this.expect(T.bracketR),r=this.finishNode(n,"ArrayTypeAnnotation")}return r},re.flowParsePrefixType=function(){var e=this.startNode();return this.eat(T.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},re.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(T.arrow)){var t=this.startNodeAt(e.start,e.loc.start);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},re.flowParseIntersectionType=function(){var e=this.startNode();this.eat(T.bitwiseAND);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(T.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},re.flowParseUnionType=function(){var e=this.startNode();this.eat(T.bitwiseOR);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(T.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},re.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},re.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},re.flowParseTypeAndPredicateAnnotation=function(){var e=this.startNode(),t=this.flowParseTypeAndPredicateInitialiser();return e.typeAnnotation=t[0],e.predicate=t[1],this.finishNode(e,"TypeAnnotation")},re.flowParseTypeAnnotatableIdentifier=function(){var e=this.flowParseRestrictedIdentifier();return this.match(T.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},re.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},re.flowParseVariance=function(){var e=null;return this.match(T.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),this.next()),e};var ne=String.fromCodePoint;if(!ne){var ie=String.fromCharCode,se=Math.floor;ne=function(){var e=[],t=void 0,r=void 0,n=-1,i=arguments.length;if(!i)return"";for(var s="";++n1114111||se(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?e.push(a):(t=55296+((a-=65536)>>10),r=a%1024+56320,e.push(t,r)),(n+1==i||e.length>16384)&&(s+=ie.apply(null,e),e.length=0)}return s}}var ae=ne,oe={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"Ā ",iexcl:"Ā”",cent:"Ā¢",pound:"Ā£",curren:"Ā¤",yen:"Ā„",brvbar:"Ā¦",sect:"Ā§",uml:"ĀØ",copy:"Ā©",ordf:"ĀŖ",laquo:"Ā«",not:"Ā¬",shy:"Ā­",reg:"Ā®",macr:"ĀÆ",deg:"Ā°",plusmn:"Ā±",sup2:"Ā²",sup3:"Ā³",acute:"Ā“",micro:"Āµ",para:"Ā¶",middot:"Ā·",cedil:"Āø",sup1:"Ā¹",ordm:"Āŗ",raquo:"Ā»",frac14:"Ā¼",frac12:"Ā½",frac34:"Ā¾",iquest:"Āæ",Agrave:"ƀ",Aacute:"Ɓ",Acirc:"Ƃ",Atilde:"ƃ",Auml:"Ƅ",Aring:"ƅ",AElig:"Ɔ",Ccedil:"Ƈ",Egrave:"ƈ",Eacute:"Ɖ",Ecirc:"Ɗ",Euml:"Ƌ",Igrave:"ƌ",Iacute:"ƍ",Icirc:"Ǝ",Iuml:"Ə",ETH:"Ɛ",Ntilde:"Ƒ",Ograve:"ƒ",Oacute:"Ɠ",Ocirc:"Ɣ",Otilde:"ƕ",Ouml:"Ɩ",times:"Ɨ",Oslash:"Ƙ",Ugrave:"ƙ",Uacute:"ƚ",Ucirc:"ƛ",Uuml:"Ɯ",Yacute:"Ɲ",THORN:"ƞ",szlig:"Ɵ",agrave:"Ć ",aacute:"Ć”",acirc:"Ć¢",atilde:"Ć£",auml:"Ƥ",aring:"Ć„",aelig:"Ʀ",ccedil:"Ƨ",egrave:"ĆØ",eacute:"Ć©",ecirc:"ĆŖ",euml:"Ć«",igrave:"Ƭ",iacute:"Ć­",icirc:"Ć®",iuml:"ĆÆ",eth:"Ć°",ntilde:"Ʊ",ograve:"Ć²",oacute:"Ć³",ocirc:"Ć“",otilde:"Ƶ",ouml:"ƶ",divide:"Ć·",oslash:"Ćø",ugrave:"Ć¹",uacute:"Ćŗ",ucirc:"Ć»",uuml:"Ć¼",yacute:"Ć½",thorn:"Ć¾",yuml:"Ćæ",OElig:"Œ",oelig:"œ",Scaron:"Å ",scaron:"Å”",Yuml:"Åø",fnof:"ʒ",circ:"Ė†",tilde:"Ėœ",Alpha:"Ī‘",Beta:"Ī’",Gamma:"Ī“",Delta:"Ī”",Epsilon:"Ī•",Zeta:"Ī–",Eta:"Ī—",Theta:"Ī˜",Iota:"Ī™",Kappa:"Īš",Lambda:"Ī›",Mu:"Īœ",Nu:"Ī",Xi:"Īž",Omicron:"ĪŸ",Pi:"Ī ",Rho:"Ī”",Sigma:"Ī£",Tau:"Ī¤",Upsilon:"Ī„",Phi:"Ī¦",Chi:"Ī§",Psi:"ĪØ",Omega:"Ī©",alpha:"Ī±",beta:"Ī²",gamma:"Ī³",delta:"Ī“",epsilon:"Īµ",zeta:"Ī¶",eta:"Ī·",theta:"Īø",iota:"Ī¹",kappa:"Īŗ",lambda:"Ī»",mu:"Ī¼",nu:"Ī½",xi:"Ī¾",omicron:"Īæ",pi:"Ļ€",rho:"Ļ",sigmaf:"Ļ‚",sigma:"Ļƒ",tau:"Ļ„",upsilon:"Ļ…",phi:"Ļ†",chi:"Ļ‡",psi:"Ļˆ",omega:"Ļ‰",thetasym:"Ļ‘",upsih:"Ļ’",piv:"Ļ–",ensp:"ā€‚",emsp:"ā€ƒ",thinsp:"ā€‰",zwnj:"ā€Œ",zwj:"ā€",lrm:"ā€Ž",rlm:"ā€",ndash:"ā€“",mdash:"ā€”",lsquo:"ā€˜",rsquo:"ā€™",sbquo:"ā€š",ldquo:"ā€œ",rdquo:"ā€",bdquo:"ā€ž",dagger:"ā€ ",Dagger:"ā€”",bull:"ā€¢",hellip:"ā€¦",permil:"ā€°",prime:"ā€²",Prime:"ā€³",lsaquo:"ā€¹",rsaquo:"ā€ŗ",oline:"ā€¾",frasl:"ā„",euro:"ā‚¬",image:"ā„‘",weierp:"ā„˜",real:"ā„œ",trade:"ā„¢",alefsym:"ā„µ",larr:"ā†",uarr:"ā†‘",rarr:"ā†’",darr:"ā†“",harr:"ā†”",crarr:"ā†µ",lArr:"ā‡",uArr:"ā‡‘",rArr:"ā‡’",dArr:"ā‡“",hArr:"ā‡”",forall:"āˆ€",part:"āˆ‚",exist:"āˆƒ",empty:"āˆ…",nabla:"āˆ‡",isin:"āˆˆ",notin:"āˆ‰",ni:"āˆ‹",prod:"āˆ",sum:"āˆ‘",minus:"āˆ’",lowast:"āˆ—",radic:"āˆš",prop:"āˆ",infin:"āˆž",ang:"āˆ ",and:"āˆ§",or:"āˆØ",cap:"āˆ©",cup:"āˆŖ",int:"āˆ«",there4:"āˆ“",sim:"āˆ¼",cong:"ā‰…",asymp:"ā‰ˆ",ne:"ā‰ ",equiv:"ā‰”",le:"ā‰¤",ge:"ā‰„",sub:"āŠ‚",sup:"āŠƒ",nsub:"āŠ„",sube:"āŠ†",supe:"āŠ‡",oplus:"āŠ•",otimes:"āŠ—",perp:"āŠ„",sdot:"ā‹…",lceil:"āŒˆ",rceil:"āŒ‰",lfloor:"āŒŠ",rfloor:"āŒ‹",lang:"āŒ©",rang:"āŒŖ",loz:"ā—Š",spades:"ā™ ",clubs:"ā™£",hearts:"ā™„",diams:"ā™¦"},ue=/^[\da-fA-F]+$/,le=/^\d+$/;I.j_oTag=new j("...
    ",!0,!0),T.jsxName=new w("jsxName"),T.jsxText=new w("jsxText",{beforeExpr:!0}),T.jsxTagStart=new w("jsxTagStart",{startsExpr:!0}),T.jsxTagEnd=new w("jsxTagEnd"),T.jsxTagStart.updateContext=function(){this.state.context.push(I.j_expr),this.state.context.push(I.j_oTag),this.state.exprAllowed=!1},T.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===I.j_oTag&&e===T.slash||t===I.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===I.j_expr):this.state.exprAllowed=!0};var ce=q.prototype;ce.jsxReadToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated JSX contents");var r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?60===r&&this.state.exprAllowed?(++this.state.pos,this.finishToken(T.jsxTagStart)):this.getTokenFromCode(r):(e+=this.input.slice(t,this.state.pos),this.finishToken(T.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:o(r)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},ce.jsxReadNewLine=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,r=e?"\n":"\r\n"):r=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,r},ce.jsxReadString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;38===n?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos):o(n)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return t+=this.input.slice(r,this.state.pos++),this.finishToken(T.string,t)},ce.jsxReadEntity=function(){for(var e="",t=0,r=void 0,n=this.input[this.state.pos],i=++this.state.pos;this.state.pos")}return r.openingElement=i,r.closingElement=s,r.children=n,this.match(T.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},ce.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};V.estree=function(e){e.extend("checkDeclaration",function(e){return function(t){p(t)?this.checkDeclaration(t.value):e.call(this,t)}}),e.extend("checkGetterSetterParamCount",function(){return function(e){var t="get"===e.kind?0:1;if(e.value.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}}}),e.extend("checkLVal",function(e){return function(t,r,n){var i=this;switch(t.type){case"ObjectPattern":t.properties.forEach(function(e){i.checkLVal("Property"===e.type?e.value:e,r,n,"object destructuring pattern")});break;default:for(var s=arguments.length,a=Array(s>3?s-3:0),o=3;o0){var r=e.body.body,n=Array.isArray(r),i=0;for(r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if("ExpressionStatement"!==a.type||"Literal"!==a.expression.type)break;if("use strict"===a.expression.value)return!0}}return!1}}),e.extend("isValidDirective",function(){return function(e){return!("ExpressionStatement"!==e.type||"Literal"!==e.expression.type||"string"!=typeof e.expression.value||e.expression.extra&&e.expression.extra.parenthesized)}}),e.extend("stmtToDirective",function(e){return function(t){var r=e.call(this,t),n=t.expression.value;return r.value.value=n,r}}),e.extend("parseBlockBody",function(e){return function(t){for(var r=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;s1?n-1:0),s=1;s2?n-2:0),s=2;s=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var c=l;"get"===c.kind||"set"===c.kind?this.raise(c.key.start,"Object pattern can't contain getter or setter"):c.method?this.raise(c.key.start,"Object pattern can't contain methods"):this.toAssignable(c,r,"object destructuring pattern")}return t}return e.call.apply(e,[this,t,r].concat(i))}})},V.flow=function(e){e.extend("parseFunctionBody",function(e){return function(t,r){return this.match(T.colon)&&!r&&(t.returnType=this.flowParseTypeAndPredicateAnnotation()),e.call(this,t,r)}}),e.extend("parseStatement",function(e){return function(t,r){if(this.state.strict&&this.match(T.name)&&"interface"===this.state.value){var n=this.startNode();return this.next(),this.flowParseInterface(n)}return e.call(this,t,r)}}),e.extend("parseExpressionStatement",function(e){return function(t,r){if("Identifier"===r.type)if("declare"===r.name){if(this.match(T._class)||this.match(T.name)||this.match(T._function)||this.match(T._var)||this.match(T._export))return this.flowParseDeclare(t)}else if(this.match(T.name)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t);if("opaque"===r.name)return this.flowParseOpaqueType(t,!1)}return e.call(this,t,r)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||this.isContextual("opaque")||e.call(this)}}),e.extend("isExportDefaultSpecifier",function(e){return function(){return(!this.match(T.name)||"type"!==this.state.value&&"interface"!==this.state.value&&"opaque"!==this.state.value)&&e.call(this)}}),e.extend("parseConditional",function(e){return function(t,r,n,i,s){if(s&&this.match(T.question)){var a=this.state.clone();try{return e.call(this,t,r,n,i)}catch(e){if(e instanceof SyntaxError)return this.state=a,s.start=e.pos||this.state.start,t;throw e}}return e.call(this,t,r,n,i)}}),e.extend("parseParenItem",function(e){return function(t,r,n){if(t=e.call(this,t,r,n),this.eat(T.question)&&(t.optional=!0),this.match(T.colon)){var i=this.startNodeAt(r,n);return i.expression=t,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return t}}),e.extend("parseExport",function(e){return function(t){return"ExportNamedDeclaration"===(t=e.call(this,t)).type&&(t.exportKind=t.exportKind||"value"),t}}),e.extend("parseExportDeclaration",function(e){return function(t){if(this.isContextual("type")){t.exportKind="type";var r=this.startNode();return this.next(),this.match(T.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(r)}if(this.isContextual("opaque")){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseOpaqueType(n,!1)}if(this.isContextual("interface")){t.exportKind="type";var i=this.startNode();return this.next(),this.flowParseInterface(i)}return e.call(this,t)}}),e.extend("parseClassId",function(e){return function(t){e.apply(this,arguments),this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}}),e.extend("isKeyword",function(e){return function(t){return(!this.state.inType||"void"!==t)&&e.call(this,t)}}),e.extend("readToken",function(e){return function(t){return!this.state.inType||62!==t&&60!==t?e.call(this,t):this.finishOp(T.relational,1)}}),e.extend("jsx_readToken",function(e){return function(){if(!this.state.inType)return e.call(this)}}),e.extend("toAssignable",function(e){return function(t,r,n){return"TypeCastExpression"===t.type?e.call(this,this.typeCastToParameter(t),r,n):e.call(this,t,r,n)}}),e.extend("toAssignableList",function(e){return function(t,r,n){for(var i=0;i2?n-2:0),s=2;s=0&&l>0){for(n=[],s=r.length;c>=0&&!o;)c==u?(n.push(c),u=r.indexOf(e,c+1)):1==n.length?o=[n.pop(),l]:((i=n.pop())=0?u:l;n.length&&(o=[s,a])}return o}t.exports=n,n.range=s},{}],190:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return a[e>>18&63]+a[e>>12&63]+a[e>>6&63]+a[63&e]}function s(e,t,r){for(var n,s=[],a=t;a0?l-4:l;var c=0;for(t=0;t>16&255,a[c++]=i>>8&255,a[c++]=255&i;return 2===s?(i=o[e.charCodeAt(t)]<<2|o[e.charCodeAt(t+1)]>>4,a[c++]=255&i):1===s&&(i=o[e.charCodeAt(t)]<<10|o[e.charCodeAt(t+1)]<<4|o[e.charCodeAt(t+2)]>>2,a[c++]=i>>8&255,a[c++]=255&i),a},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,i="",o=[],u=0,l=r-n;ul?l:u+16383));return 1===n?(t=e[r-1],i+=a[t>>2],i+=a[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=a[t>>10],i+=a[t>>4&63],i+=a[t<<2&63],i+="="),o.push(i),o.join("")};for(var a=[],o=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,p=l.length;c=t}function c(e,t){var r=[],i=h("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var f=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),d=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),y=f||d,g=i.body.indexOf(",")>=0;if(!y&&!g)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+m+i.post,c(e)):[e];var b;if(y)b=i.body.split(/\.\./);else if(1===(b=s(i.body)).length&&1===(b=c(b[0],!1).map(a)).length){return(E=i.post.length?c(i.post,!1):[""]).map(function(e){return i.pre+b[0]+e})}var v,x=i.pre,E=i.post.length?c(i.post,!1):[""];if(y){var A=n(b[0]),D=n(b[1]),S=Math.max(b[0].length,b[1].length),C=3==b.length?Math.abs(n(b[2])):1,_=u;D0){var P=new Array(T+1).join("0");F=k<0?"-"+P+F.slice(1):P+F}}v.push(F)}}else v=p(b,function(e){return c(e,!1)});for(var B=0;Bj)throw new RangeError("Invalid typed array length");var t=new Uint8Array(e);return t.__proto__=i.prototype,t}function i(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return o(e)}return s(e,t,r)}function s(e,t,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return T(e)?function(e,t,r){if(t<0||e.byteLength=j)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+j.toString(16)+" bytes");return 0|e}function c(e,t){if(i.isBuffer(e))return e.length;if(P(e)||T(e))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return w(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return k(e).length;default:if(n)return w(e).length;t=(""+t).toLowerCase(),n=!0}}function p(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0);(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,B(r)&&(r=s?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(s)return-1;r=e.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof t&&(t=i.from(t,n)),i.isBuffer(t))return 0===t.length?-1:d(e,t,r,n,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):d(e,[t],r,n,s);throw new TypeError("val must be string, number or Buffer")}function d(e,t,r,n,i){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;lo&&(r=o-u),l=r;l>=0;l--){for(var p=!0,h=0;hi&&(n=i):n=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var a=0;a>8,i=r%256,s.push(i),s.push(n);return s}(t,e.length-r),e,r,n)}function E(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:s>223?3:s>191?2:1;if(i+o<=r){var u,l,c,p;switch(o){case 1:s<128&&(a=s);break;case 2:128==(192&(u=e[i+1]))&&(p=(31&s)<<6|63&u)>127&&(a=p);break;case 3:u=e[i+1],l=e[i+2],128==(192&u)&&128==(192&l)&&(p=(15&s)<<12|(63&u)<<6|63&l)>2047&&(p<55296||p>57343)&&(a=p);break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128==(192&u)&&128==(192&l)&&128==(192&c)&&(p=(15&s)<<18|(63&u)<<12|(63&l)<<6|63&c)>65535&&p<1114112&&(a=p)}}null===a?(a=65533,o=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=o}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nr)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,r,n,s,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function S(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function C(e,t,r,n,i){return t=+t,r>>>=0,i||S(e,0,r,4),N.write(e,t,r,n,23,4),r+4}function _(e,t,r,n,i){return t=+t,r>>>=0,i||S(e,0,r,8),N.write(e,t,r,n,52,8),r+8}function w(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function k(e){return O.toByteArray(function(e){if((e=e.trim().replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function F(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function T(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function P(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function B(e){return e!=e}var O=e("base64-js"),N=e("ieee754");r.Buffer=i,r.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},r.INSPECT_MAX_BYTES=50;var j=2147483647;r.kMaxLength=j,(i.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(e,t,r){return s(e,t,r)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(e,t,r){return function(e,t,r){return a(e),e<=0?n(e):void 0!==t?"string"==typeof r?n(e).fill(t,r):n(e).fill(t):n(e)}(e,t,r)},i.allocUnsafe=function(e){return o(e)},i.allocUnsafeSlow=function(e){return o(e)},i.isBuffer=function(e){return null!=e&&!0===e._isBuffer},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,s=0,a=Math.min(r,n);s0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},i.prototype.compare=function(e,t,r,n,s){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),t<0||r>e.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&t>=r)return 0;if(n>=s)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,s>>>=0,this===e)return 0;for(var a=s-n,o=r-t,u=Math.min(a,o),l=this.slice(n,s),c=e.slice(t,r),p=0;p>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return m(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":return g(this,e,t,r);case"latin1":case"binary":return b(this,e,t,r);case"base64":return v(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;i.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e],i=1,s=0;++s>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},i.prototype.readUInt8=function(e,t){return e>>>=0,t||A(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||A(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||A(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||A(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return e>>>=0,t||A(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e],i=1,s=0;++s=i&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||A(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},i.prototype.readInt8=function(e,t){return e>>>=0,t||A(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||A(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(e,t){e>>>=0,t||A(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(e,t){return e>>>=0,t||A(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e>>>=0,t||A(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return e>>>=0,t||A(e,4,this.length),N.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||A(e,4,this.length),N.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||A(e,8,this.length),N.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||A(e,8,this.length),N.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){D(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,!n){D(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},i.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,1,255,0),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},i.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);D(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s>0)-o&255;return t+r},i.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);D(this,e,t,r,i-1,-i)}var s=r-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},i.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeFloatLE=function(e,t,r){return C(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return C(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return _(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return _(this,e,t,!1,r)},i.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(s<1e3)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;ac;)if((o=u[c++])!=o)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===r)return e||c||0;return!e&&-1}}},{"./_to-absolute-index":275,"./_to-iobject":277,"./_to-length":278}],216:[function(e,t,r){var n=e("./_ctx"),i=e("./_iobject"),s=e("./_to-object"),a=e("./_to-length"),o=e("./_array-species-create");t.exports=function(e,t){var r=1==e,u=2==e,l=3==e,c=4==e,p=6==e,h=5==e||p,f=t||o;return function(t,o,d){for(var m,y,g=s(t),b=i(g),v=n(o,d,3),x=a(b.length),E=0,A=r?f(t,x):u?f(t,0):void 0;x>E;E++)if((h||E in b)&&(m=b[E],y=v(m,E,g),e))if(r)A[E]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return E;case 2:A.push(m)}else if(c)return!1;return p?-1:l||c?c:A}}},{"./_array-species-create":218,"./_ctx":226,"./_iobject":240,"./_to-length":278,"./_to-object":279}],217:[function(e,t,r){var n=e("./_is-object"),i=e("./_is-array"),s=e("./_wks")("species");t.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)||(t=void 0),n(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?Array:t}},{"./_is-array":242,"./_is-object":243,"./_wks":285}],218:[function(e,t,r){var n=e("./_array-species-constructor");t.exports=function(e,t){return new(n(e))(t)}},{"./_array-species-constructor":217}],219:[function(e,t,r){var n=e("./_cof"),i=e("./_wks")("toStringTag"),s="Arguments"==n(function(){return arguments}());t.exports=function(e){var t,r,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?r:s?n(t):"Object"==(a=n(t))&&"function"==typeof t.callee?"Arguments":a}},{"./_cof":220,"./_wks":285}],220:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],221:[function(e,t,r){"use strict";var n=e("./_object-dp").f,i=e("./_object-create"),s=e("./_redefine-all"),a=e("./_ctx"),o=e("./_an-instance"),u=e("./_for-of"),l=e("./_iter-define"),c=e("./_iter-step"),p=e("./_set-species"),h=e("./_descriptors"),f=e("./_meta").fastKey,d=e("./_validate-collection"),m=h?"_s":"size",y=function(e,t){var r,n=f(t);if("F"!==n)return e._i[n];for(r=e._f;r;r=r.n)if(r.k==t)return r};t.exports={getConstructor:function(e,t,r,l){var c=e(function(e,n){o(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=n&&u(n,r,e[l],e)});return s(c.prototype,{clear:function(){for(var e=d(this,t),r=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete r[n.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var r=d(this,t),n=y(r,e);if(n){var i=n.n,s=n.p;delete r._i[n.i],n.r=!0,s&&(s.n=i),i&&(i.p=s),r._f==n&&(r._f=i),r._l==n&&(r._l=s),r[m]--}return!!n},forEach:function(e){d(this,t);for(var r,n=a(e,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(n(r.v,r.k,this);r&&r.r;)r=r.p},has:function(e){return!!y(d(this,t),e)}}),h&&n(c.prototype,"size",{get:function(){return d(this,t)[m]}}),c},def:function(e,t,r){var n,i,s=y(e,t);return s?s.v=r:(e._l=s={i:i=f(t,!0),k:t,v:r,p:n=e._l,n:void 0,r:!1},e._f||(e._f=s),n&&(n.n=s),e[m]++,"F"!==i&&(e._i[i]=s)),e},getEntry:y,setStrong:function(e,t,r){l(e,t,function(e,r){this._t=d(e,t),this._k=r,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))},r?"entries":"values",!r,!0),p(t)}}},{"./_an-instance":212,"./_ctx":226,"./_descriptors":228,"./_for-of":234,"./_iter-define":246,"./_iter-step":247,"./_meta":250,"./_object-create":252,"./_object-dp":253,"./_redefine-all":265,"./_set-species":270,"./_validate-collection":282}],222:[function(e,t,r){var n=e("./_classof"),i=e("./_array-from-iterable");t.exports=function(e){return function(){if(n(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},{"./_array-from-iterable":214,"./_classof":219}],223:[function(e,t,r){"use strict";var n=e("./_redefine-all"),i=e("./_meta").getWeak,s=e("./_an-object"),a=e("./_is-object"),o=e("./_an-instance"),u=e("./_for-of"),l=e("./_array-methods"),c=e("./_has"),p=e("./_validate-collection"),h=l(5),f=l(6),d=0,m=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},g=function(e,t){return h(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=g(this,e);if(t)return t[1]},has:function(e){return!!g(this,e)},set:function(e,t){var r=g(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,r,s){var l=e(function(e,n){o(e,l,t,"_i"),e._t=t,e._i=d++,e._l=void 0,void 0!=n&&u(n,r,e[s],e)});return n(l.prototype,{delete:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(p(this,t)).delete(e):r&&c(r,this._i)&&delete r[this._i]},has:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(p(this,t)).has(e):r&&c(r,this._i)}}),l},def:function(e,t,r){var n=i(s(t),!0);return!0===n?m(e).set(t,r):n[e._i]=r,e},ufstore:m}},{"./_an-instance":212,"./_an-object":213,"./_array-methods":216,"./_for-of":234,"./_has":236,"./_is-object":243,"./_meta":250,"./_redefine-all":265,"./_validate-collection":282}],224:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_export"),s=e("./_meta"),a=e("./_fails"),o=e("./_hide"),u=e("./_redefine-all"),l=e("./_for-of"),c=e("./_an-instance"),p=e("./_is-object"),h=e("./_set-to-string-tag"),f=e("./_object-dp").f,d=e("./_array-methods")(0),m=e("./_descriptors");t.exports=function(e,t,r,y,g,b){var v=n[e],x=v,E=g?"set":"add",A=x&&x.prototype,D={};return m&&"function"==typeof x&&(b||A.forEach&&!a(function(){(new x).entries().next()}))?(x=t(function(t,r){c(t,x,e,"_c"),t._c=new v,void 0!=r&&l(r,g,t[E],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in A&&(!b||"clear"!=e)&&o(x.prototype,e,function(r,n){if(c(this,x,e),!t&&b&&!p(r))return"get"==e&&void 0;var i=this._c[e](0===r?0:r,n);return t?this:i})}),b||f(x.prototype,"size",{get:function(){return this._c.size}})):(x=y.getConstructor(t,e,g,E),u(x.prototype,r),s.NEED=!0),h(x,e),D[e]=x,i(i.G+i.W+i.F,D),b||y.setStrong(x,e,g),x}},{"./_an-instance":212,"./_array-methods":216,"./_descriptors":228,"./_export":232,"./_fails":233,"./_for-of":234,"./_global":235,"./_hide":237,"./_is-object":243,"./_meta":250,"./_object-dp":253,"./_redefine-all":265,"./_set-to-string-tag":271}],225:[function(e,t,r){var n=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},{}],226:[function(e,t,r){var n=e("./_a-function");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":210}],227:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],228:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":233}],229:[function(e,t,r){var n=e("./_is-object"),i=e("./_global").document,s=n(i)&&n(i.createElement);t.exports=function(e){return s?i.createElement(e):{}}},{"./_global":235,"./_is-object":243}],230:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],231:[function(e,t,r){var n=e("./_object-keys"),i=e("./_object-gops"),s=e("./_object-pie");t.exports=function(e){var t=n(e),r=i.f;if(r)for(var a,o=r(e),u=s.f,l=0;o.length>l;)u.call(e,a=o[l++])&&t.push(a);return t}},{"./_object-gops":258,"./_object-keys":261,"./_object-pie":262}],232:[function(e,t,r){var n=e("./_global"),i=e("./_core"),s=e("./_ctx"),a=e("./_hide"),o="prototype",u=function(e,t,r){var l,c,p,h=e&u.F,f=e&u.G,d=e&u.S,m=e&u.P,y=e&u.B,g=e&u.W,b=f?i:i[t]||(i[t]={}),v=b[o],x=f?n:d?n[t]:(n[t]||{})[o];f&&(r=t);for(l in r)(c=!h&&x&&void 0!==x[l])&&l in b||(p=c?x[l]:r[l],b[l]=f&&"function"!=typeof x[l]?r[l]:y&&c?s(p,n):g&&x[l]==p?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t[o]=e[o],t}(p):m&&"function"==typeof p?s(Function.call,p):p,m&&((b.virtual||(b.virtual={}))[l]=p,e&u.R&&v&&!v[l]&&a(v,l,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},{"./_core":225,"./_ctx":226,"./_global":235,"./_hide":237}],233:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],234:[function(e,t,r){var n=e("./_ctx"),i=e("./_iter-call"),s=e("./_is-array-iter"),a=e("./_an-object"),o=e("./_to-length"),u=e("./core.get-iterator-method"),l={},c={};(r=t.exports=function(e,t,r,p,h){var f,d,m,y,g=h?function(){return e}:u(e),b=n(r,p,t?2:1),v=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(s(g)){for(f=o(e.length);f>v;v++)if((y=t?b(a(d=e[v])[0],d[1]):b(e[v]))===l||y===c)return y}else for(m=g.call(e);!(d=m.next()).done;)if((y=i(m,b,d.value,t))===l||y===c)return y}).BREAK=l,r.RETURN=c},{"./_an-object":213,"./_ctx":226,"./_is-array-iter":241,"./_iter-call":244,"./_to-length":278,"./core.get-iterator-method":286}],235:[function(e,t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},{}],236:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],237:[function(e,t,r){var n=e("./_object-dp"),i=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},{"./_descriptors":228,"./_object-dp":253,"./_property-desc":264}],238:[function(e,t,r){var n=e("./_global").document;t.exports=n&&n.documentElement},{"./_global":235}],239:[function(e,t,r){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":228,"./_dom-create":229,"./_fails":233}],240:[function(e,t,r){var n=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},{"./_cof":220}],241:[function(e,t,r){var n=e("./_iterators"),i=e("./_wks")("iterator"),s=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||s[i]===e)}},{"./_iterators":248,"./_wks":285}],242:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":220}],243:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],244:[function(e,t,r){var n=e("./_an-object");t.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){var s=e.return;throw void 0!==s&&n(s.call(e)),t}}},{"./_an-object":213}],245:[function(e,t,r){"use strict";var n=e("./_object-create"),i=e("./_property-desc"),s=e("./_set-to-string-tag"),a={};e("./_hide")(a,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,r){e.prototype=n(a,{next:i(1,r)}),s(e,t+" Iterator")}},{"./_hide":237,"./_object-create":252,"./_property-desc":264,"./_set-to-string-tag":271,"./_wks":285}],246:[function(e,t,r){"use strict";var n=e("./_library"),i=e("./_export"),s=e("./_redefine"),a=e("./_hide"),o=e("./_has"),u=e("./_iterators"),l=e("./_iter-create"),c=e("./_set-to-string-tag"),p=e("./_object-gpo"),h=e("./_wks")("iterator"),f=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(e,t,r,m,y,g,b){l(r,t,m);var v,x,E,A=function(e){if(!f&&e in _)return _[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},D=t+" Iterator",S="values"==y,C=!1,_=e.prototype,w=_[h]||_["@@iterator"]||y&&_[y],k=!f&&w||A(y),F=y?S?A("entries"):k:void 0,T="Array"==t?_.entries||w:w;if(T&&(E=p(T.call(new e)))!==Object.prototype&&E.next&&(c(E,D,!0),n||o(E,h)||a(E,h,d)),S&&w&&"values"!==w.name&&(C=!0,k=function(){return w.call(this)}),n&&!b||!f&&!C&&_[h]||a(_,h,k),u[t]=k,u[D]=d,y)if(v={values:S?k:A("values"),keys:g?k:A("keys"),entries:F},b)for(x in v)x in _||s(_,x,v[x]);else i(i.P+i.F*(f||C),t,v);return v}},{"./_export":232,"./_has":236,"./_hide":237,"./_iter-create":245,"./_iterators":248,"./_library":249,"./_object-gpo":259,"./_redefine":266,"./_set-to-string-tag":271,"./_wks":285}],247:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],248:[function(e,t,r){t.exports={}},{}],249:[function(e,t,r){t.exports=!0},{}],250:[function(e,t,r){var n=e("./_uid")("meta"),i=e("./_is-object"),s=e("./_has"),a=e("./_object-dp").f,o=0,u=Object.isExtensible||function(){return!0},l=!e("./_fails")(function(){return u(Object.preventExtensions({}))}),c=function(e){a(e,n,{value:{i:"O"+ ++o,w:{}}})},p=t.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!u(e))return"F";if(!t)return"E";c(e)}return e[n].i},getWeak:function(e,t){if(!s(e,n)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[n].w},onFreeze:function(e){return l&&p.NEED&&u(e)&&!s(e,n)&&c(e),e}}},{"./_fails":233,"./_has":236,"./_is-object":243,"./_object-dp":253,"./_uid":281}],251:[function(e,t,r){"use strict";var n=e("./_object-keys"),i=e("./_object-gops"),s=e("./_object-pie"),a=e("./_to-object"),o=e("./_iobject"),u=Object.assign;t.exports=!u||e("./_fails")(function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach(function(e){t[e]=e}),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n})?function(e,t){for(var r=a(e),u=arguments.length,l=1,c=i.f,p=s.f;u>l;)for(var h,f=o(arguments[l++]),d=c?n(f).concat(c(f)):n(f),m=d.length,y=0;m>y;)p.call(f,h=d[y++])&&(r[h]=f[h]);return r}:u},{"./_fails":233,"./_iobject":240,"./_object-gops":258,"./_object-keys":261,"./_object-pie":262,"./_to-object":279}],252:[function(e,t,r){var n=e("./_an-object"),i=e("./_object-dps"),s=e("./_enum-bug-keys"),a=e("./_shared-key")("IE_PROTO"),o=function(){},u=function(){var t,r=e("./_dom-create")("iframe"),n=s.length;for(r.style.display="none",e("./_html").appendChild(r),r.src="javascript:",(t=r.contentWindow.document).open(),t.write(" - - diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html deleted file mode 100644 index a955702516..0000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Clone Test-Suite (Browser) - - - - - -

    Clone Test-Suite (Browser)

    - Tests started: ; - Tests finished: . -
      - - - diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js deleted file mode 100644 index e8b65b3fed..0000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js +++ /dev/null @@ -1,372 +0,0 @@ -var clone = require('./'); - -function inspect(obj) { - seen = []; - return JSON.stringify(obj, function (key, val) { - if (val != null && typeof val == "object") { - if (seen.indexOf(val) >= 0) { - return '[cyclic]'; - } - - seen.push(val); - } - - return val; - }); -} - -// Creates a new VM in node, or an iframe in a browser in order to run the -// script -function apartContext(context, script, callback) { - var vm = require('vm'); - - if (vm) { - var ctx = vm.createContext({ ctx: context }); - callback(vm.runInContext(script, ctx)); - } else if (document && document.createElement) { - var iframe = document.createElement('iframe'); - iframe.style.display = 'none'; - document.body.appendChild(iframe); - - var myCtxId = 'tmpCtx' + Math.random(); - - window[myCtxId] = context; - iframe.src = 'test-apart-ctx.html?' + myCtxId + '&' + encodeURIComponent(script); - iframe.onload = function() { - try { - callback(iframe.contentWindow.results); - } catch (e) { - throw e; - } - }; - } else { - console.log('WARNING: cannot create an apart context.'); - } -} - -exports["clone string"] = function (test) { - test.expect(2); // how many tests? - - var a = "foo"; - test.strictEqual(clone(a), a); - a = ""; - test.strictEqual(clone(a), a); - - test.done(); -}; - -exports["clone number"] = function (test) { - test.expect(5); // how many tests? - - var a = 0; - test.strictEqual(clone(a), a); - a = 1; - test.strictEqual(clone(a), a); - a = -1000; - test.strictEqual(clone(a), a); - a = 3.1415927; - test.strictEqual(clone(a), a); - a = -3.1415927; - test.strictEqual(clone(a), a); - - test.done(); -}; - -exports["clone date"] = function (test) { - test.expect(3); // how many tests? - - var a = new Date; - var c = clone(a); - test.ok(!!a.getUTCDate && !!a.toUTCString); - test.ok(!!c.getUTCDate && !!c.toUTCString); - test.equal(a.getTime(), c.getTime()); - - test.done(); -}; - -exports["clone object"] = function (test) { - test.expect(1); // how many tests? - - var a = { foo: { bar: "baz" } }; - var b = clone(a); - - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone array"] = function (test) { - test.expect(2); // how many tests? - - var a = [ - { foo: "bar" }, - "baz" - ]; - var b = clone(a); - - test.ok(b instanceof Array); - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone buffer"] = function (test) { - if (typeof Buffer == 'undefined') { - return test.done(); - } - - test.expect(1); - - var a = new Buffer("this is a test buffer"); - var b = clone(a); - - // no underscore equal since it has no concept of Buffers - test.deepEqual(b, a); - test.done(); -}; - -exports["clone regexp"] = function (test) { - test.expect(5); - - var a = /abc123/gi; - var b = clone(a); - test.deepEqual(b, a); - - var c = /a/g; - test.ok(c.lastIndex === 0); - - c.exec('123a456a'); - test.ok(c.lastIndex === 4); - - var d = clone(c); - test.ok(d.global); - test.ok(d.lastIndex === 4); - - test.done(); -}; - -exports["clone object containing array"] = function (test) { - test.expect(1); // how many tests? - - var a = { - arr1: [ { a: '1234', b: '2345' } ], - arr2: [ { c: '345', d: '456' } ] - }; - - var b = clone(a); - - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone object with circular reference"] = function (test) { - test.expect(8); // how many tests? - - var c = [1, "foo", {'hello': 'bar'}, function () {}, false, [2]]; - var b = [c, 2, 3, 4]; - - var a = {'b': b, 'c': c}; - a.loop = a; - a.loop2 = a; - c.loop = c; - c.aloop = a; - - var aCopy = clone(a); - test.ok(a != aCopy); - test.ok(a.c != aCopy.c); - test.ok(aCopy.c == aCopy.b[0]); - test.ok(aCopy.c.loop.loop.aloop == aCopy); - test.ok(aCopy.c[0] == a.c[0]); - - test.ok(eq(a, aCopy)); - aCopy.c[0] = 2; - test.ok(!eq(a, aCopy)); - aCopy.c = "2"; - test.ok(!eq(a, aCopy)); - - function eq(x, y) { - return inspect(x) === inspect(y); - } - - test.done(); -}; - -exports['clone prototype'] = function (test) { - test.expect(3); // how many tests? - - var a = { - a: "aaa", - x: 123, - y: 45.65 - }; - var b = clone.clonePrototype(a); - - test.strictEqual(b.a, a.a); - test.strictEqual(b.x, a.x); - test.strictEqual(b.y, a.y); - - test.done(); -}; - -exports['clone within an apart context'] = function (test) { - var results = apartContext({ clone: clone }, - "results = ctx.clone({ a: [1, 2, 3], d: new Date(), r: /^foo$/ig })", - function (results) { - test.ok(results.a.constructor.toString() === Array.toString()); - test.ok(results.d.constructor.toString() === Date.toString()); - test.ok(results.r.constructor.toString() === RegExp.toString()); - test.done(); - }); -}; - -exports['clone object with no constructor'] = function (test) { - test.expect(3); - - var n = null; - - var a = { foo: 'bar' }; - a.__proto__ = n; - test.ok(typeof a === 'object'); - test.ok(typeof a !== null); - - var b = clone(a); - test.ok(a.foo, b.foo); - - test.done(); -}; - -exports['clone object with depth argument'] = function (test) { - test.expect(6); - - var a = { - foo: { - bar : { - baz : 'qux' - } - } - }; - - var b = clone(a, false, 1); - test.deepEqual(b, a); - test.notEqual(b, a); - test.strictEqual(b.foo, a.foo); - - b = clone(a, true, 2); - test.deepEqual(b, a); - test.notEqual(b.foo, a.foo); - test.strictEqual(b.foo.bar, a.foo.bar); - - test.done(); -}; - -exports['maintain prototype chain in clones'] = function (test) { - test.expect(1); - - function T() {} - - var a = new T(); - var b = clone(a); - test.strictEqual(Object.getPrototypeOf(a), Object.getPrototypeOf(b)); - - test.done(); -}; - -exports['parent prototype is overriden with prototype provided'] = function (test) { - test.expect(1); - - function T() {} - - var a = new T(); - var b = clone(a, true, Infinity, null); - test.strictEqual(b.__defineSetter__, undefined); - - test.done(); -}; - -exports['clone object with null children'] = function (test) { - test.expect(1); - var a = { - foo: { - bar: null, - baz: { - qux: false - } - } - }; - - var b = clone(a); - - test.deepEqual(b, a); - test.done(); -}; - -exports['clone instance with getter'] = function (test) { - test.expect(1); - function Ctor() {}; - Object.defineProperty(Ctor.prototype, 'prop', { - configurable: true, - enumerable: true, - get: function() { - return 'value'; - } - }); - - var a = new Ctor(); - var b = clone(a); - - test.strictEqual(b.prop, 'value'); - test.done(); -}; - -exports['get RegExp flags'] = function (test) { - test.strictEqual(clone.__getRegExpFlags(/a/), '' ); - test.strictEqual(clone.__getRegExpFlags(/a/i), 'i' ); - test.strictEqual(clone.__getRegExpFlags(/a/g), 'g' ); - test.strictEqual(clone.__getRegExpFlags(/a/gi), 'gi'); - test.strictEqual(clone.__getRegExpFlags(/a/m), 'm' ); - - test.done(); -}; - -exports["recognize Array object"] = function (test) { - var results = apartContext(null, "results = [1, 2, 3]", function(alien) { - var local = [4, 5, 6]; - test.ok(clone.__isArray(alien)); // recognize in other context. - test.ok(clone.__isArray(local)); // recognize in local context. - test.ok(!clone.__isDate(alien)); - test.ok(!clone.__isDate(local)); - test.ok(!clone.__isRegExp(alien)); - test.ok(!clone.__isRegExp(local)); - test.done(); - }); -}; - -exports["recognize Date object"] = function (test) { - var results = apartContext(null, "results = new Date()", function(alien) { - var local = new Date(); - - test.ok(clone.__isDate(alien)); // recognize in other context. - test.ok(clone.__isDate(local)); // recognize in local context. - test.ok(!clone.__isArray(alien)); - test.ok(!clone.__isArray(local)); - test.ok(!clone.__isRegExp(alien)); - test.ok(!clone.__isRegExp(local)); - - test.done(); - }); -}; - -exports["recognize RegExp object"] = function (test) { - var results = apartContext(null, "results = /foo/", function(alien) { - var local = /bar/; - - test.ok(clone.__isRegExp(alien)); // recognize in other context. - test.ok(clone.__isRegExp(local)); // recognize in local context. - test.ok(!clone.__isArray(alien)); - test.ok(!clone.__isArray(local)); - test.ok(!clone.__isDate(alien)); - test.ok(!clone.__isDate(local)); - test.done(); - }); -}; diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json deleted file mode 100644 index 1a3961c505..0000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "_from": "defaults@^1.0.3", - "_id": "defaults@1.0.3", - "_integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "_location": "/columnify/wcwidth/defaults", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "defaults@^1.0.3", - "name": "defaults", - "escapedName": "defaults", - "rawSpec": "^1.0.3", - "saveSpec": null, - "fetchSpec": "^1.0.3" - }, - "_requiredBy": [ - "/columnify/wcwidth" - ], - "_resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "_shasum": "c656051e9817d9ff08ed881477f3fe4019f3ef7d", - "_shrinkwrap": null, - "_spec": "defaults@^1.0.3", - "_where": "/Users/zkat/Documents/code/npm/node_modules/columnify/node_modules/wcwidth", - "author": { - "name": "Elijah Insua", - "email": "tmpvar@gmail.com" - }, - "bin": null, - "bugs": { - "url": "https://github.com/tmpvar/defaults/issues" - }, - "bundleDependencies": false, - "dependencies": { - "clone": "^1.0.2" - }, - "deprecated": false, - "description": "merge single level defaults over a config object", - "devDependencies": { - "tap": "^2.0.0" - }, - "homepage": "https://github.com/tmpvar/defaults#readme", - "keywords": [ - "config", - "defaults" - ], - "license": "MIT", - "main": "index.js", - "name": "defaults", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/tmpvar/defaults.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.3" -} diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js deleted file mode 100644 index 60e0ffba8b..0000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js +++ /dev/null @@ -1,34 +0,0 @@ -var defaults = require('./'), - test = require('tap').test; - -test("ensure options is an object", function(t) { - var options = defaults(false, { a : true }); - t.ok(options.a); - t.end() -}); - -test("ensure defaults override keys", function(t) { - var result = defaults({}, { a: false, b: true }); - t.ok(result.b, 'b merges over undefined'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defined keys are not overwritten", function(t) { - var result = defaults({ b: false }, { a: false, b: true }); - t.equal(result.b, false, 'b not merged'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defaults clone nested objects", function(t) { - var d = { a: [1,2,3], b: { hello : 'world' } }; - var result = defaults({}, d); - t.equal(result.a.length, 3, 'objects should be clones'); - t.ok(result.a !== d.a, 'objects should be clones'); - - t.equal(Object.keys(result.b).length, 1, 'objects should be clones'); - t.ok(result.b !== d.b, 'objects should be clones'); - t.end(); -}); - diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/package.json b/deps/npm/node_modules/columnify/node_modules/wcwidth/package.json deleted file mode 100644 index dd1a8b9012..0000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_from": "wcwidth@^1.0.0", - "_id": "wcwidth@1.0.1", - "_integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "_location": "/columnify/wcwidth", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "wcwidth@^1.0.0", - "name": "wcwidth", - "escapedName": "wcwidth", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/columnify" - ], - "_resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "_shasum": "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8", - "_shrinkwrap": null, - "_spec": "wcwidth@^1.0.0", - "_where": "/Users/zkat/Documents/code/npm/node_modules/columnify", - "author": { - "name": "Tim Oxley" - }, - "bin": null, - "bugs": { - "url": "https://github.com/timoxley/wcwidth/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Woong Jun", - "email": "woong.jun@gmail.com", - "url": "http://code.woong.org/" - } - ], - "dependencies": { - "defaults": "^1.0.3" - }, - "deprecated": false, - "description": "Port of C's wcwidth() and wcswidth()", - "devDependencies": { - "tape": "^4.5.1" - }, - "directories": { - "doc": "docs", - "test": "test" - }, - "homepage": "https://github.com/timoxley/wcwidth#readme", - "keywords": [ - "wide character", - "wc", - "wide character string", - "wcs", - "terminal", - "width", - "wcwidth", - "wcswidth" - ], - "license": "MIT", - "main": "index.js", - "name": "wcwidth", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/timoxley/wcwidth.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "version": "1.0.1" -} diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js b/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js deleted file mode 100644 index 5180599a2f..0000000000 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict" - -var wcwidth = require('../') -var test = require('tape') - -test('handles regular strings', function(t) { - t.strictEqual(wcwidth('abc'), 3) - t.end() -}) - -test('handles multibyte strings', function(t) { - t.strictEqual(wcwidth('字ēš„ęؔ块'), 8) - t.end() -}) - -test('handles multibyte characters mixed with regular characters', function(t) { - t.strictEqual(wcwidth('abc 字ēš„ęؔ块'), 12) - t.end() -}) - -test('ignores control characters e.g. \\n', function(t) { - t.strictEqual(wcwidth('abc\n字ēš„ęؔ块\ndef'), 14) - t.end() -}) - -test('ignores bad input', function(t) { - t.strictEqual(wcwidth(''), 0) - t.strictEqual(wcwidth(3), 0) - t.strictEqual(wcwidth({}), 0) - t.strictEqual(wcwidth([]), 0) - t.strictEqual(wcwidth(), 0) - t.end() -}) - -test('ignores nul (charcode 0)', function(t) { - t.strictEqual(wcwidth(String.fromCharCode(0)), 0) - t.end() -}) - -test('ignores nul mixed with chars', function(t) { - t.strictEqual(wcwidth('a' + String.fromCharCode(0) + '\n字ēš„'), 5) - t.end() -}) - -test('can have custom value for nul', function(t) { - t.strictEqual(wcwidth.config({ - nul: 10 - })(String.fromCharCode(0) + 'a字ēš„'), 15) - t.end() -}) - -test('can have custom control char value', function(t) { - t.strictEqual(wcwidth.config({ - control: 1 - })('abc\n字ēš„ęؔ块\ndef'), 16) - t.end() -}) - -test('negative custom control chars == -1', function(t) { - t.strictEqual(wcwidth.config({ - control: -1 - })('abc\n字ēš„ęؔ块\ndef'), -1) - t.end() -}) diff --git a/deps/npm/node_modules/columnify/package.json b/deps/npm/node_modules/columnify/package.json index 4e60c8c1c6..5d8ab3c523 100644 --- a/deps/npm/node_modules/columnify/package.json +++ b/deps/npm/node_modules/columnify/package.json @@ -1,27 +1,32 @@ { - "_from": "columnify@~1.5.4", + "_args": [ + [ + "columnify@1.5.4", + "/Users/rebecca/code/npm" + ] + ], + "_from": "columnify@1.5.4", "_id": "columnify@1.5.4", + "_inBundle": false, "_integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "_location": "/columnify", "_phantomChildren": {}, "_requested": { - "type": "range", + "type": "version", "registry": true, - "raw": "columnify@~1.5.4", + "raw": "columnify@1.5.4", "name": "columnify", "escapedName": "columnify", - "rawSpec": "~1.5.4", + "rawSpec": "1.5.4", "saveSpec": null, - "fetchSpec": "~1.5.4" + "fetchSpec": "1.5.4" }, "_requiredBy": [ "/" ], "_resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "_shasum": "4737ddf1c7b69a8a7c340570782e947eec8e78bb", - "_shrinkwrap": null, - "_spec": "columnify@~1.5.4", - "_where": "/Users/zkat/Documents/code/npm", + "_spec": "1.5.4", + "_where": "/Users/rebecca/code/npm", "author": { "name": "Tim Oxley" }, @@ -30,16 +35,13 @@ "es2015" ] }, - "bin": null, "bugs": { "url": "https://github.com/timoxley/columnify/issues" }, - "bundleDependencies": false, "dependencies": { "strip-ansi": "^3.0.0", "wcwidth": "^1.0.0" }, - "deprecated": false, "description": "Render data in text columns. Supports in-column text-wrap.", "devDependencies": { "babel": "^6.3.26", @@ -65,8 +67,6 @@ "license": "MIT", "main": "columnify.js", "name": "columnify", - "optionalDependencies": {}, - "peerDependencies": {}, "repository": { "type": "git", "url": "git://github.com/timoxley/columnify.git" diff --git a/deps/npm/node_modules/combined-stream/License b/deps/npm/node_modules/combined-stream/License new file mode 100644 index 0000000000..4804b7ab41 --- /dev/null +++ b/deps/npm/node_modules/combined-stream/License @@ -0,0 +1,19 @@ +Copyright (c) 2011 Debuggable Limited + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/deps/npm/node_modules/combined-stream/Readme.md b/deps/npm/node_modules/combined-stream/Readme.md new file mode 100644 index 0000000000..9e367b5bc5 --- /dev/null +++ b/deps/npm/node_modules/combined-stream/Readme.md @@ -0,0 +1,138 @@ +# combined-stream + +A stream that emits multiple other streams one after another. + +**NB** Currently `combined-stream` works with streams version 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatibility with `combined-stream`. + +- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module. + +- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another. + +## Installation + +``` bash +npm install combined-stream +``` + +## Usage + +Here is a simple example that shows how you can use combined-stream to combine +two files into one: + +``` javascript +var CombinedStream = require('combined-stream'); +var fs = require('fs'); + +var combinedStream = CombinedStream.create(); +combinedStream.append(fs.createReadStream('file1.txt')); +combinedStream.append(fs.createReadStream('file2.txt')); + +combinedStream.pipe(fs.createWriteStream('combined.txt')); +``` + +While the example above works great, it will pause all source streams until +they are needed. If you don't want that to happen, you can set `pauseStreams` +to `false`: + +``` javascript +var CombinedStream = require('combined-stream'); +var fs = require('fs'); + +var combinedStream = CombinedStream.create({pauseStreams: false}); +combinedStream.append(fs.createReadStream('file1.txt')); +combinedStream.append(fs.createReadStream('file2.txt')); + +combinedStream.pipe(fs.createWriteStream('combined.txt')); +``` + +However, what if you don't have all the source streams yet, or you don't want +to allocate the resources (file descriptors, memory, etc.) for them right away? +Well, in that case you can simply provide a callback that supplies the stream +by calling a `next()` function: + +``` javascript +var CombinedStream = require('combined-stream'); +var fs = require('fs'); + +var combinedStream = CombinedStream.create(); +combinedStream.append(function(next) { + next(fs.createReadStream('file1.txt')); +}); +combinedStream.append(function(next) { + next(fs.createReadStream('file2.txt')); +}); + +combinedStream.pipe(fs.createWriteStream('combined.txt')); +``` + +## API + +### CombinedStream.create([options]) + +Returns a new combined stream object. Available options are: + +* `maxDataSize` +* `pauseStreams` + +The effect of those options is described below. + +### combinedStream.pauseStreams = `true` + +Whether to apply back pressure to the underlaying streams. If set to `false`, +the underlaying streams will never be paused. If set to `true`, the +underlaying streams will be paused right after being appended, as well as when +`delayedStream.pipe()` wants to throttle. + +### combinedStream.maxDataSize = `2 * 1024 * 1024` + +The maximum amount of bytes (or characters) to buffer for all source streams. +If this value is exceeded, `combinedStream` emits an `'error'` event. + +### combinedStream.dataSize = `0` + +The amount of bytes (or characters) currently buffered by `combinedStream`. + +### combinedStream.append(stream) + +Appends the given `stream` to the combinedStream object. If `pauseStreams` is +set to `true, this stream will also be paused right away. + +`streams` can also be a function that takes one parameter called `next`. `next` +is a function that must be invoked in order to provide the `next` stream, see +example above. + +Regardless of how the `stream` is appended, combined-stream always attaches an +`'error'` listener to it, so you don't have to do that manually. + +Special case: `stream` can also be a String or Buffer. + +### combinedStream.write(data) + +You should not call this, `combinedStream` takes care of piping the appended +streams into itself for you. + +### combinedStream.resume() + +Causes `combinedStream` to start drain the streams it manages. The function is +idempotent, and also emits a `'resume'` event each time which usually goes to +the stream that is currently being drained. + +### combinedStream.pause(); + +If `combinedStream.pauseStreams` is set to `false`, this does nothing. +Otherwise a `'pause'` event is emitted, this goes to the stream that is +currently being drained, so you can use it to apply back pressure. + +### combinedStream.end(); + +Sets `combinedStream.writable` to false, emits an `'end'` event, and removes +all streams from the queue. + +### combinedStream.destroy(); + +Same as `combinedStream.end()`, except it emits a `'close'` event instead of +`'end'`. + +## License + +combined-stream is licensed under the MIT license. diff --git a/deps/npm/node_modules/combined-stream/lib/combined_stream.js b/deps/npm/node_modules/combined-stream/lib/combined_stream.js new file mode 100644 index 0000000000..809b3c2e7d --- /dev/null +++ b/deps/npm/node_modules/combined-stream/lib/combined_stream.js @@ -0,0 +1,189 @@ +var util = require('util'); +var Stream = require('stream').Stream; +var DelayedStream = require('delayed-stream'); +var defer = require('./defer.js'); + +module.exports = CombinedStream; +function CombinedStream() { + this.writable = false; + this.readable = true; + this.dataSize = 0; + this.maxDataSize = 2 * 1024 * 1024; + this.pauseStreams = true; + + this._released = false; + this._streams = []; + this._currentStream = null; +} +util.inherits(CombinedStream, Stream); + +CombinedStream.create = function(options) { + var combinedStream = new this(); + + options = options || {}; + for (var option in options) { + combinedStream[option] = options[option]; + } + + return combinedStream; +}; + +CombinedStream.isStreamLike = function(stream) { + return (typeof stream !== 'function') + && (typeof stream !== 'string') + && (typeof stream !== 'boolean') + && (typeof stream !== 'number') + && (!Buffer.isBuffer(stream)); +}; + +CombinedStream.prototype.append = function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + + if (isStreamLike) { + if (!(stream instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream, { + maxDataSize: Infinity, + pauseStream: this.pauseStreams, + }); + stream.on('data', this._checkDataSize.bind(this)); + stream = newStream; + } + + this._handleErrors(stream); + + if (this.pauseStreams) { + stream.pause(); + } + } + + this._streams.push(stream); + return this; +}; + +CombinedStream.prototype.pipe = function(dest, options) { + Stream.prototype.pipe.call(this, dest, options); + this.resume(); + return dest; +}; + +CombinedStream.prototype._getNext = function() { + this._currentStream = null; + var stream = this._streams.shift(); + + + if (typeof stream == 'undefined') { + this.end(); + return; + } + + if (typeof stream !== 'function') { + this._pipeNext(stream); + return; + } + + var getStream = stream; + getStream(function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('data', this._checkDataSize.bind(this)); + this._handleErrors(stream); + } + + defer(this._pipeNext.bind(this, stream)); + }.bind(this)); +}; + +CombinedStream.prototype._pipeNext = function(stream) { + this._currentStream = stream; + + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('end', this._getNext.bind(this)); + stream.pipe(this, {end: false}); + return; + } + + var value = stream; + this.write(value); + this._getNext(); +}; + +CombinedStream.prototype._handleErrors = function(stream) { + var self = this; + stream.on('error', function(err) { + self._emitError(err); + }); +}; + +CombinedStream.prototype.write = function(data) { + this.emit('data', data); +}; + +CombinedStream.prototype.pause = function() { + if (!this.pauseStreams) { + return; + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); + this.emit('pause'); +}; + +CombinedStream.prototype.resume = function() { + if (!this._released) { + this._released = true; + this.writable = true; + this._getNext(); + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); + this.emit('resume'); +}; + +CombinedStream.prototype.end = function() { + this._reset(); + this.emit('end'); +}; + +CombinedStream.prototype.destroy = function() { + this._reset(); + this.emit('close'); +}; + +CombinedStream.prototype._reset = function() { + this.writable = false; + this._streams = []; + this._currentStream = null; +}; + +CombinedStream.prototype._checkDataSize = function() { + this._updateDataSize(); + if (this.dataSize <= this.maxDataSize) { + return; + } + + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; + this._emitError(new Error(message)); +}; + +CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + + var self = this; + this._streams.forEach(function(stream) { + if (!stream.dataSize) { + return; + } + + self.dataSize += stream.dataSize; + }); + + if (this._currentStream && this._currentStream.dataSize) { + this.dataSize += this._currentStream.dataSize; + } +}; + +CombinedStream.prototype._emitError = function(err) { + this._reset(); + this.emit('error', err); +}; diff --git a/deps/npm/node_modules/combined-stream/lib/defer.js b/deps/npm/node_modules/combined-stream/lib/defer.js new file mode 100644 index 0000000000..b67110c7ad --- /dev/null +++ b/deps/npm/node_modules/combined-stream/lib/defer.js @@ -0,0 +1,26 @@ +module.exports = defer; + +/** + * Runs provided function on next iteration of the event loop + * + * @param {function} fn - function to run + */ +function defer(fn) +{ + var nextTick = typeof setImmediate == 'function' + ? setImmediate + : ( + typeof process == 'object' && typeof process.nextTick == 'function' + ? process.nextTick + : null + ); + + if (nextTick) + { + nextTick(fn); + } + else + { + setTimeout(fn, 0); + } +} diff --git a/deps/npm/node_modules/combined-stream/package.json b/deps/npm/node_modules/combined-stream/package.json new file mode 100644 index 0000000000..86c891cd4e --- /dev/null +++ b/deps/npm/node_modules/combined-stream/package.json @@ -0,0 +1,58 @@ +{ + "_from": "combined-stream@~1.0.5", + "_id": "combined-stream@1.0.6", + "_inBundle": false, + "_integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "_location": "/combined-stream", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "combined-stream@~1.0.5", + "name": "combined-stream", + "escapedName": "combined-stream", + "rawSpec": "~1.0.5", + "saveSpec": null, + "fetchSpec": "~1.0.5" + }, + "_requiredBy": [ + "/form-data", + "/request" + ], + "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "_shasum": "723e7df6e801ac5613113a7e445a9b69cb632818", + "_spec": "combined-stream@~1.0.5", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "author": { + "name": "Felix Geisendƶrfer", + "email": "felix@debuggable.com", + "url": "http://debuggable.com/" + }, + "bugs": { + "url": "https://github.com/felixge/node-combined-stream/issues" + }, + "bundleDependencies": false, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "deprecated": false, + "description": "A stream that emits multiple other streams one after another.", + "devDependencies": { + "far": "~0.0.7" + }, + "engines": { + "node": ">= 0.8" + }, + "homepage": "https://github.com/felixge/node-combined-stream", + "license": "MIT", + "main": "./lib/combined_stream", + "name": "combined-stream", + "repository": { + "type": "git", + "url": "git://github.com/felixge/node-combined-stream.git" + }, + "scripts": { + "test": "node test/run.js" + }, + "version": "1.0.6" +} diff --git a/deps/npm/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/concat-map/.travis.yml new file mode 100644 index 0000000000..f1d0f13c8a --- /dev/null +++ b/deps/npm/node_modules/concat-map/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.4 + - 0.6 diff --git a/deps/npm/node_modules/concat-map/LICENSE b/deps/npm/node_modules/concat-map/LICENSE new file mode 100644 index 0000000000..ee27ba4b44 --- /dev/null +++ b/deps/npm/node_modules/concat-map/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/concat-map/README.markdown b/deps/npm/node_modules/concat-map/README.markdown new file mode 100644 index 0000000000..408f70a1be --- /dev/null +++ b/deps/npm/node_modules/concat-map/README.markdown @@ -0,0 +1,62 @@ +concat-map +========== + +Concatenative mapdashery. + +[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) + +[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) + +example +======= + +``` js +var concatMap = require('concat-map'); +var xs = [ 1, 2, 3, 4, 5, 6 ]; +var ys = concatMap(xs, function (x) { + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; +}); +console.dir(ys); +``` + +*** + +``` +[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] +``` + +methods +======= + +``` js +var concatMap = require('concat-map') +``` + +concatMap(xs, fn) +----------------- + +Return an array of concatenated elements by calling `fn(x, i)` for each element +`x` and each index `i` in the array `xs`. + +When `fn(x, i)` returns an array, its result will be concatenated with the +result array. If `fn(x, i)` returns anything else, that value will be pushed +onto the end of the result array. + +install +======= + +With [npm](http://npmjs.org) do: + +``` +npm install concat-map +``` + +license +======= + +MIT + +notes +===== + +This module was written while sitting high above the ground in a tree. diff --git a/deps/npm/node_modules/concat-map/example/map.js b/deps/npm/node_modules/concat-map/example/map.js new file mode 100644 index 0000000000..33656217b6 --- /dev/null +++ b/deps/npm/node_modules/concat-map/example/map.js @@ -0,0 +1,6 @@ +var concatMap = require('../'); +var xs = [ 1, 2, 3, 4, 5, 6 ]; +var ys = concatMap(xs, function (x) { + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; +}); +console.dir(ys); diff --git a/deps/npm/node_modules/concat-map/index.js b/deps/npm/node_modules/concat-map/index.js new file mode 100644 index 0000000000..b29a7812e5 --- /dev/null +++ b/deps/npm/node_modules/concat-map/index.js @@ -0,0 +1,13 @@ +module.exports = function (xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray(x)) res.push.apply(res, x); + else res.push(x); + } + return res; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; diff --git a/deps/npm/node_modules/concat-map/package.json b/deps/npm/node_modules/concat-map/package.json new file mode 100644 index 0000000000..dc971153a7 --- /dev/null +++ b/deps/npm/node_modules/concat-map/package.json @@ -0,0 +1,88 @@ +{ + "_from": "concat-map@0.0.1", + "_id": "concat-map@0.0.1", + "_inBundle": false, + "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "_location": "/concat-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "concat-map@0.0.1", + "name": "concat-map", + "escapedName": "concat-map", + "rawSpec": "0.0.1", + "saveSpec": null, + "fetchSpec": "0.0.1" + }, + "_requiredBy": [ + "/brace-expansion" + ], + "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "_spec": "concat-map@0.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/brace-expansion", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/node-concat-map/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "concatenative mapdashery", + "devDependencies": { + "tape": "~2.4.0" + }, + "directories": { + "example": "example", + "test": "test" + }, + "homepage": "https://github.com/substack/node-concat-map#readme", + "keywords": [ + "concat", + "concatMap", + "map", + "functional", + "higher-order" + ], + "license": "MIT", + "main": "index.js", + "name": "concat-map", + "repository": { + "type": "git", + "url": "git://github.com/substack/node-concat-map.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "testling": { + "files": "test/*.js", + "browsers": { + "ie": [ + 6, + 7, + 8, + 9 + ], + "ff": [ + 3.5, + 10, + 15 + ], + "chrome": [ + 10, + 22 + ], + "safari": [ + 5.1 + ], + "opera": [ + 12 + ] + } + }, + "version": "0.0.1" +} diff --git a/deps/npm/node_modules/concat-map/test/map.js b/deps/npm/node_modules/concat-map/test/map.js new file mode 100644 index 0000000000..fdbd7022f6 --- /dev/null +++ b/deps/npm/node_modules/concat-map/test/map.js @@ -0,0 +1,39 @@ +var concatMap = require('../'); +var test = require('tape'); + +test('empty or not', function (t) { + var xs = [ 1, 2, 3, 4, 5, 6 ]; + var ixes = []; + var ys = concatMap(xs, function (x, ix) { + ixes.push(ix); + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; + }); + t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); + t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); + t.end(); +}); + +test('always something', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function (x) { + return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; + }); + t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); + t.end(); +}); + +test('scalars', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function (x) { + return x === 'b' ? [ 'B', 'B', 'B' ] : x; + }); + t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); + t.end(); +}); + +test('undefs', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function () {}); + t.same(ys, [ undefined, undefined, undefined, undefined ]); + t.end(); +}); diff --git a/deps/npm/node_modules/concat-stream/LICENSE b/deps/npm/node_modules/concat-stream/LICENSE new file mode 100644 index 0000000000..1e836b4760 --- /dev/null +++ b/deps/npm/node_modules/concat-stream/LICENSE @@ -0,0 +1,24 @@ +The MIT License + +Copyright (c) 2013 Max Ogden + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/deps/npm/node_modules/concat-stream/index.js b/deps/npm/node_modules/concat-stream/index.js new file mode 100644 index 0000000000..dd672a761b --- /dev/null +++ b/deps/npm/node_modules/concat-stream/index.js @@ -0,0 +1,144 @@ +var Writable = require('readable-stream').Writable +var inherits = require('inherits') +var bufferFrom = require('buffer-from') + +if (typeof Uint8Array === 'undefined') { + var U8 = require('typedarray').Uint8Array +} else { + var U8 = Uint8Array +} + +function ConcatStream(opts, cb) { + if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb) + + if (typeof opts === 'function') { + cb = opts + opts = {} + } + if (!opts) opts = {} + + var encoding = opts.encoding + var shouldInferEncoding = false + + if (!encoding) { + shouldInferEncoding = true + } else { + encoding = String(encoding).toLowerCase() + if (encoding === 'u8' || encoding === 'uint8') { + encoding = 'uint8array' + } + } + + Writable.call(this, { objectMode: true }) + + this.encoding = encoding + this.shouldInferEncoding = shouldInferEncoding + + if (cb) this.on('finish', function () { cb(this.getBody()) }) + this.body = [] +} + +module.exports = ConcatStream +inherits(ConcatStream, Writable) + +ConcatStream.prototype._write = function(chunk, enc, next) { + this.body.push(chunk) + next() +} + +ConcatStream.prototype.inferEncoding = function (buff) { + var firstBuffer = buff === undefined ? this.body[0] : buff; + if (Buffer.isBuffer(firstBuffer)) return 'buffer' + if (typeof Uint8Array !== 'undefined' && firstBuffer instanceof Uint8Array) return 'uint8array' + if (Array.isArray(firstBuffer)) return 'array' + if (typeof firstBuffer === 'string') return 'string' + if (Object.prototype.toString.call(firstBuffer) === "[object Object]") return 'object' + return 'buffer' +} + +ConcatStream.prototype.getBody = function () { + if (!this.encoding && this.body.length === 0) return [] + if (this.shouldInferEncoding) this.encoding = this.inferEncoding() + if (this.encoding === 'array') return arrayConcat(this.body) + if (this.encoding === 'string') return stringConcat(this.body) + if (this.encoding === 'buffer') return bufferConcat(this.body) + if (this.encoding === 'uint8array') return u8Concat(this.body) + return this.body +} + +var isArray = Array.isArray || function (arr) { + return Object.prototype.toString.call(arr) == '[object Array]' +} + +function isArrayish (arr) { + return /Array\]$/.test(Object.prototype.toString.call(arr)) +} + +function isBufferish (p) { + return typeof p === 'string' || isArrayish(p) || (p && typeof p.subarray === 'function') +} + +function stringConcat (parts) { + var strings = [] + var needsToString = false + for (var i = 0; i < parts.length; i++) { + var p = parts[i] + if (typeof p === 'string') { + strings.push(p) + } else if (Buffer.isBuffer(p)) { + strings.push(p) + } else if (isBufferish(p)) { + strings.push(bufferFrom(p)) + } else { + strings.push(bufferFrom(String(p))) + } + } + if (Buffer.isBuffer(parts[0])) { + strings = Buffer.concat(strings) + strings = strings.toString('utf8') + } else { + strings = strings.join('') + } + return strings +} + +function bufferConcat (parts) { + var bufs = [] + for (var i = 0; i < parts.length; i++) { + var p = parts[i] + if (Buffer.isBuffer(p)) { + bufs.push(p) + } else if (isBufferish(p)) { + bufs.push(bufferFrom(p)) + } else { + bufs.push(bufferFrom(String(p))) + } + } + return Buffer.concat(bufs) +} + +function arrayConcat (parts) { + var res = [] + for (var i = 0; i < parts.length; i++) { + res.push.apply(res, parts[i]) + } + return res +} + +function u8Concat (parts) { + var len = 0 + for (var i = 0; i < parts.length; i++) { + if (typeof parts[i] === 'string') { + parts[i] = bufferFrom(parts[i]) + } + len += parts[i].length + } + var u8 = new U8(len) + for (var i = 0, offset = 0; i < parts.length; i++) { + var part = parts[i] + for (var j = 0; j < part.length; j++) { + u8[offset++] = part[j] + } + } + return u8 +} diff --git a/deps/npm/node_modules/concat-stream/package.json b/deps/npm/node_modules/concat-stream/package.json new file mode 100644 index 0000000000..f915972088 --- /dev/null +++ b/deps/npm/node_modules/concat-stream/package.json @@ -0,0 +1,89 @@ +{ + "_from": "concat-stream@^1.5.0", + "_id": "concat-stream@1.6.2", + "_inBundle": false, + "_integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "_location": "/concat-stream", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "concat-stream@^1.5.0", + "name": "concat-stream", + "escapedName": "concat-stream", + "rawSpec": "^1.5.0", + "saveSpec": null, + "fetchSpec": "^1.5.0" + }, + "_requiredBy": [ + "/eslint", + "/mississippi", + "/npm-profile/cacache/mississippi", + "/npm-profile/mississippi", + "/npm-registry-client", + "/npm-registry-fetch/cacache/mississippi" + ], + "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "_shasum": "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34", + "_spec": "concat-stream@^1.5.0", + "_where": "/Users/rebecca/code/npm/node_modules/mississippi", + "author": { + "name": "Max Ogden", + "email": "max@maxogden.com" + }, + "bugs": { + "url": "http://github.com/maxogden/concat-stream/issues" + }, + "bundleDependencies": false, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "deprecated": false, + "description": "writable stream that concatenates strings or binary data and calls a callback with the result", + "devDependencies": { + "tape": "^4.6.3" + }, + "engines": [ + "node >= 0.8" + ], + "files": [ + "index.js" + ], + "homepage": "https://github.com/maxogden/concat-stream#readme", + "license": "MIT", + "main": "index.js", + "name": "concat-stream", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/maxogden/concat-stream.git" + }, + "scripts": { + "test": "tape test/*.js test/server/*.js" + }, + "tags": [ + "stream", + "simple", + "util", + "utility" + ], + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/17..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "version": "1.6.2" +} diff --git a/deps/npm/node_modules/concat-stream/readme.md b/deps/npm/node_modules/concat-stream/readme.md new file mode 100644 index 0000000000..d442f840cb --- /dev/null +++ b/deps/npm/node_modules/concat-stream/readme.md @@ -0,0 +1,102 @@ +# concat-stream + +Writable stream that concatenates all the data from a stream and calls a callback with the result. Use this when you want to collect all the data from a stream into a single buffer. + +[![Build Status](https://travis-ci.org/maxogden/concat-stream.svg?branch=master)](https://travis-ci.org/maxogden/concat-stream) + +[![NPM](https://nodei.co/npm/concat-stream.png)](https://nodei.co/npm/concat-stream/) + +### description + +Streams emit many buffers. If you want to collect all of the buffers, and when the stream ends concatenate all of the buffers together and receive a single buffer then this is the module for you. + +Only use this if you know you can fit all of the output of your stream into a single Buffer (e.g. in RAM). + +There are also `objectMode` streams that emit things other than Buffers, and you can concatenate these too. See below for details. + +## Related + +`concat-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. + +### examples + +#### Buffers + +```js +var fs = require('fs') +var concat = require('concat-stream') + +var readStream = fs.createReadStream('cat.png') +var concatStream = concat(gotPicture) + +readStream.on('error', handleError) +readStream.pipe(concatStream) + +function gotPicture(imageBuffer) { + // imageBuffer is all of `cat.png` as a node.js Buffer +} + +function handleError(err) { + // handle your error appropriately here, e.g.: + console.error(err) // print the error to STDERR + process.exit(1) // exit program with non-zero exit code +} + +``` + +#### Arrays + +```js +var write = concat(function(data) {}) +write.write([1,2,3]) +write.write([4,5,6]) +write.end() +// data will be [1,2,3,4,5,6] in the above callback +``` + +#### Uint8Arrays + +```js +var write = concat(function(data) {}) +var a = new Uint8Array(3) +a[0] = 97; a[1] = 98; a[2] = 99 +write.write(a) +write.write('!') +write.end(Buffer.from('!!1')) +``` + +See `test/` for more examples + +# methods + +```js +var concat = require('concat-stream') +``` + +## var writable = concat(opts={}, cb) + +Return a `writable` stream that will fire `cb(data)` with all of the data that +was written to the stream. Data can be written to `writable` as strings, +Buffers, arrays of byte integers, and Uint8Arrays. + +By default `concat-stream` will give you back the same data type as the type of the first buffer written to the stream. Use `opts.encoding` to set what format `data` should be returned as, e.g. if you if you don't want to rely on the built-in type checking or for some other reason. + +* `string` - get a string +* `buffer` - get back a Buffer +* `array` - get an array of byte integers +* `uint8array`, `u8`, `uint8` - get back a Uint8Array +* `object`, get back an array of Objects + +If you don't specify an encoding, and the types can't be inferred (e.g. you write things that aren't in the list above), it will try to convert concat them into a `Buffer`. + +If nothing is written to `writable` then `data` will be an empty array `[]`. + +# error handling + +`concat-stream` does not handle errors for you, so you must handle errors on whatever streams you pipe into `concat-stream`. This is a general rule when programming with node.js streams: always handle errors on each and every stream. Since `concat-stream` is not itself a stream it does not emit errors. + +We recommend using [`end-of-stream`](https://npmjs.org/end-of-stream) or [`pump`](https://npmjs.org/pump) for writing error tolerant stream code. + +# license + +MIT LICENSE diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE b/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE deleted file mode 100644 index 19129e315f..0000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md b/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md deleted file mode 100644 index 43cfa35893..0000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md +++ /dev/null @@ -1,3 +0,0 @@ -A list of objects, bound by their prototype chain. - -Used in npm's config stuff. diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json b/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json deleted file mode 100644 index 63df55ff29..0000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "_from": "proto-list@~1.2.1", - "_id": "proto-list@1.2.4", - "_integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "_location": "/config-chain/proto-list", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "proto-list@~1.2.1", - "name": "proto-list", - "escapedName": "proto-list", - "rawSpec": "~1.2.1", - "saveSpec": null, - "fetchSpec": "~1.2.1" - }, - "_requiredBy": [ - "/config-chain" - ], - "_resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "_shasum": "212d5bfe1318306a420f6402b8e26ff39647a849", - "_shrinkwrap": null, - "_spec": "proto-list@~1.2.1", - "_where": "/Users/zkat/Documents/code/npm/node_modules/config-chain", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bin": null, - "bugs": { - "url": "https://github.com/isaacs/proto-list/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "A utility for managing a prototype chain", - "devDependencies": { - "tap": "0" - }, - "homepage": "https://github.com/isaacs/proto-list#readme", - "license": "ISC", - "main": "./proto-list.js", - "name": "proto-list", - "optionalDependencies": {}, - "peerDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/proto-list.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.2.4" -} diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js b/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js deleted file mode 100644 index b55c25c052..0000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js +++ /dev/null @@ -1,88 +0,0 @@ - -module.exports = ProtoList - -function setProto(obj, proto) { - if (typeof Object.setPrototypeOf === "function") - return Object.setPrototypeOf(obj, proto) - else - obj.__proto__ = proto -} - -function ProtoList () { - this.list = [] - var root = null - Object.defineProperty(this, 'root', { - get: function () { return root }, - set: function (r) { - root = r - if (this.list.length) { - setProto(this.list[this.list.length - 1], r) - } - }, - enumerable: true, - configurable: true - }) -} - -ProtoList.prototype = - { get length () { return this.list.length } - , get keys () { - var k = [] - for (var i in this.list[0]) k.push(i) - return k - } - , get snapshot () { - var o = {} - this.keys.forEach(function (k) { o[k] = this.get(k) }, this) - return o - } - , get store () { - return this.list[0] - } - , push : function (obj) { - if (typeof obj !== "object") obj = {valueOf:obj} - if (this.list.length >= 1) { - setProto(this.list[this.list.length - 1], obj) - } - setProto(obj, this.root) - return this.list.push(obj) - } - , pop : function () { - if (this.list.length >= 2) { - setProto(this.list[this.list.length - 2], this.root) - } - return this.list.pop() - } - , unshift : function (obj) { - setProto(obj, this.list[0] || this.root) - return this.list.unshift(obj) - } - , shift : function () { - if (this.list.length === 1) { - setProto(this.list[0], this.root) - } - return this.list.shift() - } - , get : function (key) { - return this.list[0][key] - } - , set : function (key, val, save) { - if (!this.length) this.push({}) - if (save && this.list[0].hasOwnProperty(key)) this.push({}) - return this.list[0][key] = val - } - , forEach : function (fn, thisp) { - for (var key in this.list[0]) fn.call(thisp, key, this.list[0][key]) - } - , slice : function () { - return this.list.slice.apply(this.list, arguments) - } - , splice : function () { - // handle injections - var ret = this.list.splice.apply(this.list, arguments) - for (var i = 0, l = this.list.length; i < l; i++) { - setProto(this.list[i], this.list[i + 1] || this.root) - } - return ret - } - } diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js b/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js deleted file mode 100644 index 5cd66bef15..0000000000 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js +++ /dev/null @@ -1,61 +0,0 @@ -var tap = require("tap") - , test = tap.test - , ProtoList = require("../proto-list.js") - -tap.plan(1) - -tap.test("protoList tests", function (t) { - var p = new ProtoList - p.push({foo:"bar"}) - p.push({}) - p.set("foo", "baz") - t.equal(p.get("foo"), "baz") - - var p = new ProtoList - p.push({foo:"bar"}) - p.set("foo", "baz") - t.equal(p.get("foo"), "baz") - t.equal(p.length, 1) - p.pop() - t.equal(p.length, 0) - p.set("foo", "asdf") - t.equal(p.length, 1) - t.equal(p.get("foo"), "asdf") - p.push({bar:"baz"}) - t.equal(p.length, 2) - t.equal(p.get("foo"), "asdf") - p.shift() - t.equal(p.length, 1) - t.equal(p.get("foo"), undefined) - - - p.unshift({foo:"blo", bar:"rab"}) - p.unshift({foo:"boo"}) - t.equal(p.length, 3) - t.equal(p.get("foo"), "boo") - t.equal(p.get("bar"), "rab") - - var ret = p.splice(1, 1, {bar:"bar"}) - t.same(ret, [{foo:"blo", bar:"rab"}]) - t.equal(p.get("bar"), "bar") - - // should not inherit default object properties - t.equal(p.get('hasOwnProperty'), undefined) - - // unless we give it those. - p.root = {} - t.equal(p.get('hasOwnProperty'), {}.hasOwnProperty) - - p.root = {default:'monkey'} - t.equal(p.get('default'), 'monkey') - - p.push({red:'blue'}) - p.push({red:'blue'}) - p.push({red:'blue'}) - while (p.length) { - t.equal(p.get('default'), 'monkey') - p.shift() - } - - t.end() -}) diff --git a/deps/npm/node_modules/config-chain/package.json b/deps/npm/node_modules/config-chain/package.json index d39818b230..501f13ef36 100644 --- a/deps/npm/node_modules/config-chain/package.json +++ b/deps/npm/node_modules/config-chain/package.json @@ -1,42 +1,44 @@ { - "_from": "config-chain@~1.1.11", + "_args": [ + [ + "config-chain@1.1.11", + "/Users/rebecca/code/npm" + ] + ], + "_from": "config-chain@1.1.11", "_id": "config-chain@1.1.11", + "_inBundle": false, "_integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "_location": "/config-chain", "_phantomChildren": {}, "_requested": { - "type": "range", + "type": "version", "registry": true, - "raw": "config-chain@~1.1.11", + "raw": "config-chain@1.1.11", "name": "config-chain", "escapedName": "config-chain", - "rawSpec": "~1.1.11", + "rawSpec": "1.1.11", "saveSpec": null, - "fetchSpec": "~1.1.11" + "fetchSpec": "1.1.11" }, "_requiredBy": [ "/" ], "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "_shasum": "aba09747dfbe4c3e70e766a6e41586e1859fc6f2", - "_shrinkwrap": null, - "_spec": "config-chain@~1.1.11", - "_where": "/Users/zkat/Documents/code/npm", + "_spec": "1.1.11", + "_where": "/Users/rebecca/code/npm", "author": { "name": "Dominic Tarr", "email": "dominic.tarr@gmail.com", "url": "http://dominictarr.com" }, - "bin": null, "bugs": { "url": "https://github.com/dominictarr/config-chain/issues" }, - "bundleDependencies": false, "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" }, - "deprecated": false, "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", "devDependencies": { "tap": "0.3.0" @@ -49,8 +51,6 @@ } ], "name": "config-chain", - "optionalDependencies": {}, - "peerDependencies": {}, "repository": { "type": "git", "url": "git+https://github.com/dominictarr/config-chain.git" diff --git a/deps/npm/node_modules/configstore/index.js b/deps/npm/node_modules/configstore/index.js new file mode 100644 index 0000000000..fb944204be --- /dev/null +++ b/deps/npm/node_modules/configstore/index.js @@ -0,0 +1,106 @@ +'use strict'; +const path = require('path'); +const os = require('os'); +const fs = require('graceful-fs'); +const makeDir = require('make-dir'); +const xdgBasedir = require('xdg-basedir'); +const writeFileAtomic = require('write-file-atomic'); +const dotProp = require('dot-prop'); +const uniqueString = require('unique-string'); + +const configDir = xdgBasedir.config || path.join(os.tmpdir(), uniqueString()); +const permissionError = 'You don\'t have access to this file.'; +const makeDirOptions = {mode: 0o0700}; +const writeFileOptions = {mode: 0o0600}; + +class Configstore { + constructor(id, defaults, opts) { + opts = opts || {}; + + const pathPrefix = opts.globalConfigPath ? + path.join(id, 'config.json') : + path.join('configstore', `${id}.json`); + + this.path = path.join(configDir, pathPrefix); + this.all = Object.assign({}, defaults, this.all); + } + + get all() { + try { + return JSON.parse(fs.readFileSync(this.path, 'utf8')); + } catch (err) { + // Create dir if it doesn't exist + if (err.code === 'ENOENT') { + makeDir.sync(path.dirname(this.path), makeDirOptions); + return {}; + } + + // Improve the message of permission errors + if (err.code === 'EACCES') { + err.message = `${err.message}\n${permissionError}\n`; + } + + // Empty the file if it encounters invalid JSON + if (err.name === 'SyntaxError') { + writeFileAtomic.sync(this.path, '', writeFileOptions); + return {}; + } + + throw err; + } + } + + set all(val) { + try { + // Make sure the folder exists as it could have been deleted in the meantime + makeDir.sync(path.dirname(this.path), makeDirOptions); + + writeFileAtomic.sync(this.path, JSON.stringify(val, null, '\t'), writeFileOptions); + } catch (err) { + // Improve the message of permission errors + if (err.code === 'EACCES') { + err.message = `${err.message}\n${permissionError}\n`; + } + + throw err; + } + } + + get size() { + return Object.keys(this.all || {}).length; + } + + get(key) { + return dotProp.get(this.all, key); + } + + set(key, val) { + const config = this.all; + + if (arguments.length === 1) { + for (const k of Object.keys(key)) { + dotProp.set(config, k, key[k]); + } + } else { + dotProp.set(config, key, val); + } + + this.all = config; + } + + has(key) { + return dotProp.has(this.all, key); + } + + delete(key) { + const config = this.all; + dotProp.delete(config, key); + this.all = config; + } + + clear() { + this.all = {}; + } +} + +module.exports = Configstore; diff --git a/deps/npm/node_modules/configstore/license b/deps/npm/node_modules/configstore/license new file mode 100644 index 0000000000..be304e2ddc --- /dev/null +++ b/deps/npm/node_modules/configstore/license @@ -0,0 +1,9 @@ +Copyright Sindre Sorhus (sindresorhus.com) + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/deps/npm/node_modules/configstore/package.json b/deps/npm/node_modules/configstore/package.json new file mode 100644 index 0000000000..828dc2ae6a --- /dev/null +++ b/deps/npm/node_modules/configstore/package.json @@ -0,0 +1,79 @@ +{ + "_from": "configstore@^3.0.0", + "_id": "configstore@3.1.2", + "_inBundle": false, + "_integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "_location": "/configstore", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "configstore@^3.0.0", + "name": "configstore", + "escapedName": "configstore", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/update-notifier" + ], + "_resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "_shasum": "c6f25defaeef26df12dd33414b001fe81a543f8f", + "_spec": "configstore@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/update-notifier", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/yeoman/configstore/issues" + }, + "bundleDependencies": false, + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "deprecated": false, + "description": "Easily load and save config without having to think about where and how", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/yeoman/configstore#readme", + "keywords": [ + "config", + "store", + "storage", + "conf", + "configuration", + "settings", + "preferences", + "json", + "data", + "persist", + "persistent", + "save" + ], + "license": "BSD-2-Clause", + "name": "configstore", + "repository": { + "type": "git", + "url": "git+https://github.com/yeoman/configstore.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.1.2" +} diff --git a/deps/npm/node_modules/configstore/readme.md b/deps/npm/node_modules/configstore/readme.md new file mode 100644 index 0000000000..6af37719bc --- /dev/null +++ b/deps/npm/node_modules/configstore/readme.md @@ -0,0 +1,116 @@ +# configstore [![Build Status](https://travis-ci.org/yeoman/configstore.svg?branch=master)](https://travis-ci.org/yeoman/configstore) + +> Easily load and persist config without having to think about where and how + +Config is stored in a JSON file located in `$XDG_CONFIG_HOME` or `~/.config`.
      +Example: `~/.config/configstore/some-id.json` + +*If you need this for Electron, check out [`electron-store`](https://github.com/sindresorhus/electron-store) instead.* + + +## Usage + +```js +const Configstore = require('configstore'); +const pkg = require('./package.json'); + +// create a Configstore instance with an unique ID e.g. +// Package name and optionally some default values +const conf = new Configstore(pkg.name, {foo: 'bar'}); + +console.log(conf.get('foo')); +//=> 'bar' + +conf.set('awesome', true); +console.log(conf.get('awesome')); +//=> true + +// Use dot-notation to access nested properties +conf.set('bar.baz', true); +console.log(conf.get('bar')); +//=> {baz: true} + +conf.delete('awesome'); +console.log(conf.get('awesome')); +//=> undefined +``` + + +## API + +### Configstore(packageName, [defaults], [options]) + +Returns a new instance. + +#### packageName + +Type: `string` + +Name of your package. + +#### defaults + +Type: `Object` + +Default config. + +#### options + +##### globalConfigPath + +Type: `boolean`
      +Default: `false` + +Store the config at `$CONFIG/package-name/config.json` instead of the default `$CONFIG/configstore/package-name.json`. This is not recommended as you might end up conflicting with other tools, rendering the "without having to think" idea moot. + +### Instance + +You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a `key` to access nested properties. + +### .set(key, value) + +Set an item. + +### .set(object) + +Set multiple items at once. + +### .get(key) + +Get an item. + +### .has(key) + +Check if an item exists. + +### .delete(key) + +Delete an item. + +### .clear() + +Delete all items. + +### .size + +Get the item count. + +### .path + +Get the path to the config file. Can be used to show the user where the config file is located or even better open it for them. + +### .all + +Get all the config as an object or replace the current config with an object: + +```js +conf.all = { + hello: 'world' +}; +``` + + +## License + +[BSD license](http://opensource.org/licenses/bsd-license.php)
      +Copyright Google diff --git a/deps/npm/node_modules/console-control-strings/LICENSE b/deps/npm/node_modules/console-control-strings/LICENSE new file mode 100644 index 0000000000..e756052969 --- /dev/null +++ b/deps/npm/node_modules/console-control-strings/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2014, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/console-control-strings/README.md b/deps/npm/node_modules/console-control-strings/README.md new file mode 100644 index 0000000000..59cbd5639d --- /dev/null +++ b/deps/npm/node_modules/console-control-strings/README.md @@ -0,0 +1,144 @@ +# Console Control Strings + +A library of cross-platform tested terminal/console command strings for +doing things like color and cursor positioning. This is a subset of both +ansi and vt100. All control codes included work on both Windows & Unix-like +OSes, except where noted. + +## Usage + +```js +var consoleControl = require('console-control-strings') + +console.log(consoleControl.color('blue','bgRed', 'bold') + 'hi there' + consoleControl.color('reset')) +process.stdout.write(consoleControl.goto(75, 10)) +``` + +## Why Another? + +There are tons of libraries similar to this one. I wanted one that was: + +1. Very clear about compatibility goals. +2. Could emit, for instance, a start color code without an end one. +3. Returned strings w/o writing to streams. +4. Was not weighed down with other unrelated baggage. + +## Functions + +### var code = consoleControl.up(_num = 1_) + +Returns the escape sequence to move _num_ lines up. + +### var code = consoleControl.down(_num = 1_) + +Returns the escape sequence to move _num_ lines down. + +### var code = consoleControl.forward(_num = 1_) + +Returns the escape sequence to move _num_ lines righ. + +### var code = consoleControl.back(_num = 1_) + +Returns the escape sequence to move _num_ lines left. + +### var code = consoleControl.nextLine(_num = 1_) + +Returns the escape sequence to move _num_ lines down and to the beginning of +the line. + +### var code = consoleControl.previousLine(_num = 1_) + +Returns the escape sequence to move _num_ lines up and to the beginning of +the line. + +### var code = consoleControl.eraseData() + +Returns the escape sequence to erase everything from the current cursor +position to the bottom right of the screen. This is line based, so it +erases the remainder of the current line and all following lines. + +### var code = consoleControl.eraseLine() + +Returns the escape sequence to erase to the end of the current line. + +### var code = consoleControl.goto(_x_, _y_) + +Returns the escape sequence to move the cursor to the designated position. +Note that the origin is _1, 1_ not _0, 0_. + +### var code = consoleControl.gotoSOL() + +Returns the escape sequence to move the cursor to the beginning of the +current line. (That is, it returns a carriage return, `\r`.) + +### var code = consoleControl.beep() + +Returns the escape sequence to cause the termianl to beep. (That is, it +returns unicode character `\x0007`, a Control-G.) + +### var code = consoleControl.hideCursor() + +Returns the escape sequence to hide the cursor. + +### var code = consoleControl.showCursor() + +Returns the escape sequence to show the cursor. + +### var code = consoleControl.color(_colors = []_) + +### var code = consoleControl.color(_color1_, _color2_, _ā€¦_, _colorn_) + +Returns the escape sequence to set the current terminal display attributes +(mostly colors). Arguments can either be a list of attributes or an array +of attributes. The difference between passing in an array or list of colors +and calling `.color` separately for each one, is that in the former case a +single escape sequence will be produced where as in the latter each change +will have its own distinct escape sequence. Each attribute can be one of: + +* Reset: + * **reset** ā€“ Reset all attributes to the terminal default. +* Styles: + * **bold** ā€“ Display text as bold. In some terminals this means using a + bold font, in others this means changing the color. In some it means + both. + * **italic** ā€“ Display text as italic. This is not available in most Windows terminals. + * **underline** ā€“ Underline text. This is not available in most Windows Terminals. + * **inverse** ā€“ Invert the foreground and background colors. + * **stopBold** ā€“ Do not display text as bold. + * **stopItalic** ā€“ Do not display text as italic. + * **stopUnderline** ā€“ Do not underline text. + * **stopInverse** ā€“ Do not invert foreground and background. +* Colors: + * **white** + * **black** + * **blue** + * **cyan** + * **green** + * **magenta** + * **red** + * **yellow** + * **grey** / **brightBlack** + * **brightRed** + * **brightGreen** + * **brightYellow** + * **brightBlue** + * **brightMagenta** + * **brightCyan** + * **brightWhite** +* Background Colors: + * **bgWhite** + * **bgBlack** + * **bgBlue** + * **bgCyan** + * **bgGreen** + * **bgMagenta** + * **bgRed** + * **bgYellow** + * **bgGrey** / **bgBrightBlack** + * **bgBrightRed** + * **bgBrightGreen** + * **bgBrightYellow** + * **bgBrightBlue** + * **bgBrightMagenta** + * **bgBrightCyan** + * **bgBrightWhite** diff --git a/deps/npm/node_modules/console-control-strings/index.js b/deps/npm/node_modules/console-control-strings/index.js new file mode 100644 index 0000000000..bf890348ec --- /dev/null +++ b/deps/npm/node_modules/console-control-strings/index.js @@ -0,0 +1,125 @@ +'use strict' + +// These tables borrowed from `ansi` + +var prefix = '\x1b[' + +exports.up = function up (num) { + return prefix + (num || '') + 'A' +} + +exports.down = function down (num) { + return prefix + (num || '') + 'B' +} + +exports.forward = function forward (num) { + return prefix + (num || '') + 'C' +} + +exports.back = function back (num) { + return prefix + (num || '') + 'D' +} + +exports.nextLine = function nextLine (num) { + return prefix + (num || '') + 'E' +} + +exports.previousLine = function previousLine (num) { + return prefix + (num || '') + 'F' +} + +exports.horizontalAbsolute = function horizontalAbsolute (num) { + if (num == null) throw new Error('horizontalAboslute requires a column to position to') + return prefix + num + 'G' +} + +exports.eraseData = function eraseData () { + return prefix + 'J' +} + +exports.eraseLine = function eraseLine () { + return prefix + 'K' +} + +exports.goto = function (x, y) { + return prefix + y + ';' + x + 'H' +} + +exports.gotoSOL = function () { + return '\r' +} + +exports.beep = function () { + return '\x07' +} + +exports.hideCursor = function hideCursor () { + return prefix + '?25l' +} + +exports.showCursor = function showCursor () { + return prefix + '?25h' +} + +var colors = { + reset: 0, +// styles + bold: 1, + italic: 3, + underline: 4, + inverse: 7, +// resets + stopBold: 22, + stopItalic: 23, + stopUnderline: 24, + stopInverse: 27, +// colors + white: 37, + black: 30, + blue: 34, + cyan: 36, + green: 32, + magenta: 35, + red: 31, + yellow: 33, + bgWhite: 47, + bgBlack: 40, + bgBlue: 44, + bgCyan: 46, + bgGreen: 42, + bgMagenta: 45, + bgRed: 41, + bgYellow: 43, + + grey: 90, + brightBlack: 90, + brightRed: 91, + brightGreen: 92, + brightYellow: 93, + brightBlue: 94, + brightMagenta: 95, + brightCyan: 96, + brightWhite: 97, + + bgGrey: 100, + bgBrightBlack: 100, + bgBrightRed: 101, + bgBrightGreen: 102, + bgBrightYellow: 103, + bgBrightBlue: 104, + bgBrightMagenta: 105, + bgBrightCyan: 106, + bgBrightWhite: 107 +} + +exports.color = function color (colorWith) { + if (arguments.length !== 1 || !Array.isArray(colorWith)) { + colorWith = Array.prototype.slice.call(arguments) + } + return prefix + colorWith.map(colorNameToCode).join(';') + 'm' +} + +function colorNameToCode (color) { + if (colors[color] != null) return colors[color] + throw new Error('Unknown color or style name: ' + color) +} diff --git a/deps/npm/node_modules/console-control-strings/package.json b/deps/npm/node_modules/console-control-strings/package.json new file mode 100644 index 0000000000..ea3c42013f --- /dev/null +++ b/deps/npm/node_modules/console-control-strings/package.json @@ -0,0 +1,62 @@ +{ + "_from": "console-control-strings@~1.1.0", + "_id": "console-control-strings@1.1.0", + "_inBundle": false, + "_integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "_location": "/console-control-strings", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "console-control-strings@~1.1.0", + "name": "console-control-strings", + "escapedName": "console-control-strings", + "rawSpec": "~1.1.0", + "saveSpec": null, + "fetchSpec": "~1.1.0" + }, + "_requiredBy": [ + "/gauge", + "/npm-audit-report", + "/npmlog" + ], + "_resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "_shasum": "3d7cf4464db6446ea644bf4b39507f9851008e8e", + "_spec": "console-control-strings@~1.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/npmlog", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/console-control-strings/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A library of cross-platform tested terminal/console command strings for doing things like color and cursor positioning. This is a subset of both ansi and vt100. All control codes included work on both Windows & Unix-like OSes, except where noted.", + "devDependencies": { + "standard": "^7.1.2", + "tap": "^5.7.2" + }, + "directories": { + "test": "test" + }, + "files": [ + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/iarna/console-control-strings#readme", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "console-control-strings", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/console-control-strings.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.1.0" +} diff --git a/deps/npm/node_modules/copy-concurrently/LICENSE b/deps/npm/node_modules/copy-concurrently/LICENSE new file mode 100644 index 0000000000..e0040f6659 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2017, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/copy-concurrently/README.md b/deps/npm/node_modules/copy-concurrently/README.md new file mode 100644 index 0000000000..e27b016d72 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/README.md @@ -0,0 +1,128 @@ +# copy-concurrently + +Copy files, directories and symlinks + +``` +const copy = require('copy-concurrently') +copy('/path/to/thing', '/new/path/thing').then(() => { + // this is now copied +}).catch(err => { + // oh noooo +}) +``` + +Copies files, directories and symlinks. Ownership is maintained when +running as root, permissions are always maintained. On Windows, if symlinks +are unavailable then junctions will be used. + +## PUBLIC INTERFACE + +### copy(from, to, [options]) ā†’ Promise + +Recursively copies `from` to `to` and resolves its promise when finished. +If `to` already exists then the promise will be rejected with an `EEXIST` +error. + +Options are: + +* maxConcurrency ā€“ (Default: `1`) The maximum number of concurrent copies to do at once. +* recurseWith - (Default: `copy.item`) The function to call on each file after recursing into a directory. +* isWindows - (Default: `process.platform === 'win32'`) If true enables Windows symlink semantics. This requires + an extra `stat` to determine if the destination of a symlink is a file or directory. If symlinking a directory + fails then we'll try making a junction instead. + +Options can also include dependency injection: + +* Promise - (Default: `global.Promise`) The promise implementation to use, defaults to Node's. +* fs - (Default: `require('fs')`) The filesystem module to use. Can be used + to use `graceful-fs` or to inject a mock. +* writeStreamAtomic - (Default: `require('fs-write-stream-atomic')`) The + implementation of `writeStreamAtomic` to use. Used to inject a mock. +* getuid - (Default: `process.getuid`) A function that returns the current UID. Used to inject a mock. + +## EXTENSION INTERFACE + +Ordinarily you'd only call `copy` above. But it's possible to use it's +component functions directly. This is useful if, say, you're writing +[move-concurently](https://npmjs.com/package/move-concurrently). + +### copy.file(from, to, options) ā†’ Promise + +Copies an ordinary file `from` to destination `to`. Uses +`fs-write-stream-atomic` to ensure that the file is either entirely copied +or not at all. + +Options are: + +* uid, gid - (Optional) If `getuid()` is `0` then this and gid will be used to + set the user and group of `to`. If uid is present then gid must be too. +* mode - (Optional) If set then `to` will have its perms set to `mode`. +* fs - (Default: `require('fs')`) The filesystem module to use. Can be used + to use `graceful-fs` or to inject a mock. +* Promise - (Default: `global.Promise`) The promise implementation to use, defaults to Node's. +* writeStreamAtomic - (Default `require('fs-write-stream-atomic')`) The + implementation of `writeStreamAtomic` to use. Used to inject a mock. + +### copy.symlink(from, to, options) ā†’ Promise + +Copies a symlink `from` to destination `to`. If you're using Windows and +symlinking fails and what you're linking is a directory then junctions will +be tried instead. + +Options are: + +* top - The top level the copy is being run from. This is used to determine + if the symlink destination is within the set of files we're copying or + outside it. +* fs - (Default: `require('fs')`) The filesystem module to use. Can be used + to use `graceful-fs` or to inject a mock. +* Promise - (Default: `global.Promise`) The promise implementation to use, defaults to Node's. +* isWindows - (Default: `process.platform === 'win32'`) If true enables Windows symlink semantics. This requires + an extra `stat` to determine if the destination of a symlink is a file or directory. If symlinking a directory + fails then we'll try making a junction instead. + +### copy.recurse(from, to, options) ā†’ Promise + +Reads all of the files in directory `from` and adds them to the `queue` +using `recurseWith` (by default `copy.item`). + +Options are: + +* queue - A [`run-queue`](https://npmjs.com/package/run-queue) object to add files found inside `from` to. +* recurseWith - (Default: `copy.item`) The function to call on each file after recursing into a directory. +* uid, gid - (Optional) If `getuid()` is `0` then this and gid will be used to + set the user and group of `to`. If uid is present then gid must be too. +* mode - (Optional) If set then `to` will have its perms set to `mode`. +* fs - (Default: `require('fs')`) The filesystem module to use. Can be used + to use `graceful-fs` or to inject a mock. +* getuid - (Default: `process.getuid`) A function that returns the current UID. Used to inject a mock. + +### copy.item(from, to, options) ā†’ Promise + +Copies some kind of `from` to destination `to`. This looks at the filetype +and calls `copy.file`, `copy.symlink` or `copy.recurse` as appropriate. + +Symlink copies are queued with a priority such that they happen after all +file and directory copies as you can't create a junction on windows to a +file that doesn't exist yet. + +Options are: + +* top - The top level the copy is being run from. This is used to determine + if the symlink destination is within the set of files we're copying or + outside it. +* queue - The [`run-queue`](https://npmjs.com/package/run-queue) object to + pass to `copy.recurse` if `from` is a directory. +* recurseWith - (Default: `copy.item`) The function to call on each file after recursing into a directory. +* uid, gid - (Optional) If `getuid()` is `0` then this and gid will be used to + set the user and group of `to`. If uid is present then gid must be too. +* mode - (Optional) If set then `to` will have its perms set to `mode`. +* fs - (Default: `require('fs')`) The filesystem module to use. Can be used + to use `graceful-fs` or to inject a mock. +* getuid - (Default: `process.getuid`) A function that returns the current UID. Used to inject a mock. +* isWindows - (Default: `process.platform === 'win32'`) If true enables Windows symlink semantics. This requires + an extra `stat` to determine if the destination of a symlink is a file or directory. If symlinking a directory + fails then we'll try making a junction instead. +* Promise - (Default: `global.Promise`) The promise implementation to use, defaults to Node's. +* writeStreamAtomic - (Default `require('fs-write-stream-atomic')`) The + implementation of `writeStreamAtomic` to use. Used to inject a mock. diff --git a/deps/npm/node_modules/copy-concurrently/copy.js b/deps/npm/node_modules/copy-concurrently/copy.js new file mode 100644 index 0000000000..36ce9f46fb --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/copy.js @@ -0,0 +1,225 @@ +'use strict' +module.exports = copy +module.exports.item = copyItem +module.exports.recurse = recurseDir +module.exports.symlink = copySymlink +module.exports.file = copyFile + +var nodeFs = require('fs') +var path = require('path') +var validate = require('aproba') +var stockWriteStreamAtomic = require('fs-write-stream-atomic') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var isWindows = require('./is-windows') +var RunQueue = require('run-queue') +var extend = Object.assign || require('util')._extend + +function promisify (Promise, fn) { + return function () { + var args = [].slice.call(arguments) + return new Promise(function (resolve, reject) { + return fn.apply(null, args.concat(function (err, value) { + if (err) { + reject(err) + } else { + resolve(value) + } + })) + }) + } +} + +function copy (from, to, opts) { + validate('SSO|SS', arguments) + opts = extend({}, opts || {}) + + var Promise = opts.Promise || global.Promise + var fs = opts.fs || nodeFs + + if (opts.isWindows == null) opts.isWindows = isWindows + if (!opts.Promise) opts.Promise = Promise + if (!opts.fs) opts.fs = fs + if (!opts.recurseWith) opts.recurseWith = copyItem + if (!opts.lstat) opts.lstat = promisify(opts.Promise, fs.lstat) + if (!opts.stat) opts.stat = promisify(opts.Promise, fs.stat) + if (!opts.chown) opts.chown = promisify(opts.Promise, fs.chown) + if (!opts.readdir) opts.readdir = promisify(opts.Promise, fs.readdir) + if (!opts.readlink) opts.readlink = promisify(opts.Promise, fs.readlink) + if (!opts.symlink) opts.symlink = promisify(opts.Promise, fs.symlink) + if (!opts.chmod) opts.chmod = promisify(opts.Promise, fs.chmod) + + opts.top = from + opts.mkdirpAsync = promisify(opts.Promise, mkdirp) + var rimrafAsync = promisify(opts.Promise, rimraf) + + var queue = new RunQueue({ + maxConcurrency: opts.maxConcurrency, + Promise: Promise + }) + opts.queue = queue + + queue.add(0, copyItem, [from, to, opts]) + + return queue.run().catch(function (err) { + // if the target already exists don't clobber it + if (err.code === 'EEXIST' || err.code === 'EPERM') { + return passThroughError() + } else { + return remove(to).then(passThroughError, passThroughError) + } + function passThroughError () { + return Promise.reject(err) + } + }) + + function remove (target) { + var opts = { + unlink: fs.unlink, + chmod: fs.chmod, + stat: fs.stat, + lstat: fs.lstat, + rmdir: fs.rmdir, + readdir: fs.readdir, + glob: false + } + return rimrafAsync(target, opts) + } +} + +function copyItem (from, to, opts) { + validate('SSO', [from, to, opts]) + var fs = opts.fs || nodeFs + var Promise = opts.Promise || global.Promise + var lstat = opts.lstat || promisify(Promise, fs.lstat) + + return lstat(to).then(function () { + return Promise.reject(eexists(from, to)) + }, function (err) { + if (err && err.code !== 'ENOENT') return Promise.reject(err) + return lstat(from) + }).then(function (fromStat) { + var cmdOpts = extend(extend({}, opts), fromStat) + if (fromStat.isDirectory()) { + return recurseDir(from, to, cmdOpts) + } else if (fromStat.isSymbolicLink()) { + opts.queue.add(1, copySymlink, [from, to, cmdOpts]) + } else if (fromStat.isFile()) { + return copyFile(from, to, cmdOpts) + } else if (fromStat.isBlockDevice()) { + return Promise.reject(eunsupported(from + " is a block device, and we don't know how to copy those.")) + } else if (fromStat.isCharacterDevice()) { + return Promise.reject(eunsupported(from + " is a character device, and we don't know how to copy those.")) + } else if (fromStat.isFIFO()) { + return Promise.reject(eunsupported(from + " is a FIFO, and we don't know how to copy those.")) + } else if (fromStat.isSocket()) { + return Promise.reject(eunsupported(from + " is a socket, and we don't know how to copy those.")) + } else { + return Promise.reject(eunsupported("We can't tell what " + from + " is and so we can't copy it.")) + } + }) +} + +function recurseDir (from, to, opts) { + validate('SSO', [from, to, opts]) + var recurseWith = opts.recurseWith || copyItem + var fs = opts.fs || nodeFs + var chown = opts.chown || promisify(Promise, fs.chown) + var readdir = opts.readdir || promisify(Promise, fs.readdir) + var mkdirpAsync = opts.mkdirpAsync || promisify(Promise, mkdirp) + + return mkdirpAsync(to, {fs: fs, mode: opts.mode}).then(function () { + var getuid = opts.getuid || process.getuid + if (getuid && opts.uid != null && getuid() === 0) { + return chown(to, opts.uid, opts.gid) + } + }).then(function () { + return readdir(from) + }).then(function (files) { + files.forEach(function (file) { + opts.queue.add(0, recurseWith, [path.join(from, file), path.join(to, file), opts]) + }) + }) +} + +function copySymlink (from, to, opts) { + validate('SSO', [from, to, opts]) + var fs = opts.fs || nodeFs + var readlink = opts.readlink || promisify(Promise, fs.readlink) + var stat = opts.stat || promisify(Promise, fs.symlink) + var symlink = opts.symlink || promisify(Promise, fs.symlink) + var Promise = opts.Promise || global.Promise + + return readlink(from).then(function (fromDest) { + var absoluteDest = path.resolve(path.dirname(from), fromDest) + // Treat absolute paths that are inside the tree we're + // copying as relative. This necessary to properly support junctions + // on windows (which are always absolute) but is also DWIM with symlinks. + var relativeDest = path.relative(opts.top, absoluteDest) + var linkFrom = relativeDest.substr(0, 2) === '..' ? fromDest : path.relative(path.dirname(from), absoluteDest) + if (opts.isWindows) { + return stat(absoluteDest).catch(function () { return null }).then(function (destStat) { + var isDir = destStat && destStat.isDirectory() + var type = isDir ? 'dir' : 'file' + return symlink(linkFrom, to, type).catch(function (err) { + if (type === 'dir') { + return symlink(linkFrom, to, 'junction') + } else { + return Promise.reject(err) + } + }) + }) + } else { + return symlink(linkFrom, to) + } + }) +} + +function copyFile (from, to, opts) { + validate('SSO', [from, to, opts]) + var fs = opts.fs || nodeFs + var writeStreamAtomic = opts.writeStreamAtomic || stockWriteStreamAtomic + var Promise = opts.Promise || global.Promise + var chmod = opts.chmod || promisify(Promise, fs.chmod) + + var writeOpts = {} + var getuid = opts.getuid || process.getuid + if (getuid && opts.uid != null && getuid() === 0) { + writeOpts.chown = { + uid: opts.uid, + gid: opts.gid + } + } + + return new Promise(function (resolve, reject) { + var errored = false + function onError (err) { + errored = true + reject(err) + } + fs.createReadStream(from) + .once('error', onError) + .pipe(writeStreamAtomic(to, writeOpts)) + .once('error', onError) + .once('close', function () { + if (errored) return + if (opts.mode != null) { + resolve(chmod(to, opts.mode)) + } else { + resolve() + } + }) + }) +} + +function eexists (from, to) { + var err = new Error('Could not move ' + from + ' to ' + to + ': destination already exists.') + err.code = 'EEXIST' + return err +} + +function eunsupported (msg) { + var err = new Error(msg) + err.code = 'EUNSUPPORTED' + return err +} diff --git a/deps/npm/node_modules/copy-concurrently/is-windows.js b/deps/npm/node_modules/copy-concurrently/is-windows.js new file mode 100644 index 0000000000..8a991d54f5 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/is-windows.js @@ -0,0 +1,2 @@ +'use strict' +module.exports = process.platform === 'win32' diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/LICENSE b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/LICENSE new file mode 100644 index 0000000000..19d5f4bce5 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Nadav Ivgi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/README.md b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/README.md new file mode 100644 index 0000000000..0940763fa9 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/README.md @@ -0,0 +1,40 @@ +# iferr + +Higher-order functions for easier error handling. + +`if (err) return cb(err);` be gone! + +## Install +```bash +npm install iferr +``` + +## Use + +### JavaScript example +```js +var iferr = require('iferr'); + +function get_friends_count(id, cb) { + User.load_user(id, iferr(cb, function(user) { + user.load_friends(iferr(cb, function(friends) { + cb(null, friends.length); + })); + })); +} +``` + +### CoffeeScript example +```coffee +iferr = require 'iferr' + +get_friends_count = (id, cb) -> + User.load_user id, iferr cb, (user) -> + user.load_friends iferr cb, (friends) -> + cb null, friends.length +``` + +(TODO: document tiferr, throwerr and printerr) + +## License +MIT diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee new file mode 100644 index 0000000000..da6d00719f --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee @@ -0,0 +1,24 @@ +# Delegates to `succ` on sucecss or to `fail` on error +# ex: Thing.load 123, iferr cb, (thing) -> ... +iferr = (fail, succ) -> (err, a...) -> + if err? then fail err + else succ? a... + +# Like iferr, but also catches errors thrown from `succ` and passes to `fail` +tiferr = (fail, succ) -> iferr fail, (a...) -> + try succ a... + catch err then fail err + +# Delegate to the success function on success, or throw the error otherwise +# ex: Thing.load 123, throwerr (thing) -> ... +throwerr = iferr.bind null, (err) -> throw err + +# Prints errors when one is passed, or does nothing otherwise +# ex: thing.save printerr +printerr = iferr (err) -> console.error err.stack or err + +module.exports = exports = iferr +exports.iferr = iferr +exports.tiferr = tiferr +exports.throwerr = throwerr +exports.printerr = printerr diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js new file mode 100644 index 0000000000..78fce3d2b0 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js @@ -0,0 +1,49 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var exports, iferr, printerr, throwerr, tiferr, + __slice = [].slice; + + iferr = function(fail, succ) { + return function() { + var a, err; + err = arguments[0], a = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + if (err != null) { + return fail(err); + } else { + return typeof succ === "function" ? succ.apply(null, a) : void 0; + } + }; + }; + + tiferr = function(fail, succ) { + return iferr(fail, function() { + var a, err; + a = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + try { + return succ.apply(null, a); + } catch (_error) { + err = _error; + return fail(err); + } + }); + }; + + throwerr = iferr.bind(null, function(err) { + throw err; + }); + + printerr = iferr(function(err) { + return console.error(err.stack || err); + }); + + module.exports = exports = iferr; + + exports.iferr = iferr; + + exports.tiferr = tiferr; + + exports.throwerr = throwerr; + + exports.printerr = printerr; + +}).call(this); diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/package.json b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/package.json new file mode 100644 index 0000000000..3dfa53fe63 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/package.json @@ -0,0 +1,55 @@ +{ + "_from": "iferr@^0.1.5", + "_id": "iferr@0.1.5", + "_inBundle": false, + "_integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "_location": "/copy-concurrently/iferr", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "iferr@^0.1.5", + "name": "iferr", + "escapedName": "iferr", + "rawSpec": "^0.1.5", + "saveSpec": null, + "fetchSpec": "^0.1.5" + }, + "_requiredBy": [ + "/copy-concurrently" + ], + "_resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "_shasum": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501", + "_spec": "iferr@^0.1.5", + "_where": "/Users/rebecca/code/npm/node_modules/copy-concurrently", + "author": { + "name": "Nadav Ivgi" + }, + "bugs": { + "url": "https://github.com/shesek/iferr/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Higher-order functions for easier error handling", + "devDependencies": { + "coffee-script": "^1.7.1", + "mocha": "^1.18.2" + }, + "homepage": "https://github.com/shesek/iferr", + "keywords": [ + "error", + "errors" + ], + "license": "MIT", + "main": "index.js", + "name": "iferr", + "repository": { + "type": "git", + "url": "git+https://github.com/shesek/iferr.git" + }, + "scripts": { + "prepublish": "coffee -c index.coffee", + "test": "mocha" + }, + "version": "0.1.5" +} diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee new file mode 100644 index 0000000000..be0bc56fdf --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee @@ -0,0 +1,42 @@ +{ iferr, tiferr, throwerr } = require '../index.coffee' +{ equal: eq, throws } = require 'assert' + +invoke_fail = (cb) -> cb new Error 'callback error' +invoke_succ = (cb) -> cb null +throw_error = -> throw new Error 'thrown' + +describe 'iferr', -> + it 'calls the error callback on errors', (done) -> + invoke_fail iferr( + (err) -> + eq err.message, 'callback error' + do done + -> + done new Error 'shouldn\'t call the success callback' + ) + + it 'calls the success callback on success', (done) -> + invoke_succ iferr( + -> done new Error 'shouldn\'t call the error callback' + done + ) + +describe 'tiferr', -> + it 'catches errors in the success callback', (done) -> + invoke_succ tiferr( + (err) -> + eq err.message, 'thrown' + do done + throw_error + ) + +describe 'throwerr', -> + it 'throws errors passed to the callback', (done)-> + try invoke_fail throwerr -> + done 'shouldn\'t call the success callback' + catch err + eq err.message, 'callback error' + do done + + it 'delegates to the success callback otherwise', (done) -> + invoke_succ throwerr done diff --git a/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts new file mode 100644 index 0000000000..019defcf15 --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts @@ -0,0 +1,2 @@ +--compilers coffee:coffee-script/register +--reporter spec diff --git a/deps/npm/node_modules/copy-concurrently/package.json b/deps/npm/node_modules/copy-concurrently/package.json new file mode 100644 index 0000000000..5a89b02e7f --- /dev/null +++ b/deps/npm/node_modules/copy-concurrently/package.json @@ -0,0 +1,72 @@ +{ + "_from": "copy-concurrently@^1.0.0", + "_id": "copy-concurrently@1.0.5", + "_inBundle": false, + "_integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "_location": "/copy-concurrently", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "copy-concurrently@^1.0.0", + "name": "copy-concurrently", + "escapedName": "copy-concurrently", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/move-concurrently" + ], + "_resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "_shasum": "92297398cae34937fcafd6ec8139c18051f0b5e0", + "_spec": "copy-concurrently@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/move-concurrently", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/npm/copy-concurrently/issues" + }, + "bundleDependencies": false, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "deprecated": false, + "description": "Promises of copies of files, directories and symlinks, with concurrency controls and win32 junction fallback.", + "devDependencies": { + "standard": "^8.6.0", + "tacks": "^1.2.6", + "tap": "^10.1.1" + }, + "directories": { + "test": "test" + }, + "files": [ + "copy.js", + "is-windows.js" + ], + "homepage": "https://www.npmjs.com/package/copy-concurrently", + "keywords": [ + "copy", + "cpr" + ], + "license": "ISC", + "main": "copy.js", + "name": "copy-concurrently", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/copy-concurrently.git" + }, + "scripts": { + "test": "standard && tap --coverage test" + }, + "version": "1.0.5" +} diff --git a/deps/npm/node_modules/core-util-is/LICENSE b/deps/npm/node_modules/core-util-is/LICENSE new file mode 100644 index 0000000000..d8d7f9437d --- /dev/null +++ b/deps/npm/node_modules/core-util-is/LICENSE @@ -0,0 +1,19 @@ +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/deps/npm/node_modules/core-util-is/README.md b/deps/npm/node_modules/core-util-is/README.md new file mode 100644 index 0000000000..5a76b4149c --- /dev/null +++ b/deps/npm/node_modules/core-util-is/README.md @@ -0,0 +1,3 @@ +# core-util-is + +The `util.is*` functions introduced in Node v0.12. diff --git a/deps/npm/node_modules/core-util-is/float.patch b/deps/npm/node_modules/core-util-is/float.patch new file mode 100644 index 0000000000..a06d5c05f7 --- /dev/null +++ b/deps/npm/node_modules/core-util-is/float.patch @@ -0,0 +1,604 @@ +diff --git a/lib/util.js b/lib/util.js +index a03e874..9074e8e 100644 +--- a/lib/util.js ++++ b/lib/util.js +@@ -19,430 +19,6 @@ + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + +-var formatRegExp = /%[sdj%]/g; +-exports.format = function(f) { +- if (!isString(f)) { +- var objects = []; +- for (var i = 0; i < arguments.length; i++) { +- objects.push(inspect(arguments[i])); +- } +- return objects.join(' '); +- } +- +- var i = 1; +- var args = arguments; +- var len = args.length; +- var str = String(f).replace(formatRegExp, function(x) { +- if (x === '%%') return '%'; +- if (i >= len) return x; +- switch (x) { +- case '%s': return String(args[i++]); +- case '%d': return Number(args[i++]); +- case '%j': +- try { +- return JSON.stringify(args[i++]); +- } catch (_) { +- return '[Circular]'; +- } +- default: +- return x; +- } +- }); +- for (var x = args[i]; i < len; x = args[++i]) { +- if (isNull(x) || !isObject(x)) { +- str += ' ' + x; +- } else { +- str += ' ' + inspect(x); +- } +- } +- return str; +-}; +- +- +-// Mark that a method should not be used. +-// Returns a modified function which warns once by default. +-// If --no-deprecation is set, then it is a no-op. +-exports.deprecate = function(fn, msg) { +- // Allow for deprecating things in the process of starting up. +- if (isUndefined(global.process)) { +- return function() { +- return exports.deprecate(fn, msg).apply(this, arguments); +- }; +- } +- +- if (process.noDeprecation === true) { +- return fn; +- } +- +- var warned = false; +- function deprecated() { +- if (!warned) { +- if (process.throwDeprecation) { +- throw new Error(msg); +- } else if (process.traceDeprecation) { +- console.trace(msg); +- } else { +- console.error(msg); +- } +- warned = true; +- } +- return fn.apply(this, arguments); +- } +- +- return deprecated; +-}; +- +- +-var debugs = {}; +-var debugEnviron; +-exports.debuglog = function(set) { +- if (isUndefined(debugEnviron)) +- debugEnviron = process.env.NODE_DEBUG || ''; +- set = set.toUpperCase(); +- if (!debugs[set]) { +- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { +- var pid = process.pid; +- debugs[set] = function() { +- var msg = exports.format.apply(exports, arguments); +- console.error('%s %d: %s', set, pid, msg); +- }; +- } else { +- debugs[set] = function() {}; +- } +- } +- return debugs[set]; +-}; +- +- +-/** +- * Echos the value of a value. Trys to print the value out +- * in the best way possible given the different types. +- * +- * @param {Object} obj The object to print out. +- * @param {Object} opts Optional options object that alters the output. +- */ +-/* legacy: obj, showHidden, depth, colors*/ +-function inspect(obj, opts) { +- // default options +- var ctx = { +- seen: [], +- stylize: stylizeNoColor +- }; +- // legacy... +- if (arguments.length >= 3) ctx.depth = arguments[2]; +- if (arguments.length >= 4) ctx.colors = arguments[3]; +- if (isBoolean(opts)) { +- // legacy... +- ctx.showHidden = opts; +- } else if (opts) { +- // got an "options" object +- exports._extend(ctx, opts); +- } +- // set default options +- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; +- if (isUndefined(ctx.depth)) ctx.depth = 2; +- if (isUndefined(ctx.colors)) ctx.colors = false; +- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; +- if (ctx.colors) ctx.stylize = stylizeWithColor; +- return formatValue(ctx, obj, ctx.depth); +-} +-exports.inspect = inspect; +- +- +-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +-inspect.colors = { +- 'bold' : [1, 22], +- 'italic' : [3, 23], +- 'underline' : [4, 24], +- 'inverse' : [7, 27], +- 'white' : [37, 39], +- 'grey' : [90, 39], +- 'black' : [30, 39], +- 'blue' : [34, 39], +- 'cyan' : [36, 39], +- 'green' : [32, 39], +- 'magenta' : [35, 39], +- 'red' : [31, 39], +- 'yellow' : [33, 39] +-}; +- +-// Don't use 'blue' not visible on cmd.exe +-inspect.styles = { +- 'special': 'cyan', +- 'number': 'yellow', +- 'boolean': 'yellow', +- 'undefined': 'grey', +- 'null': 'bold', +- 'string': 'green', +- 'date': 'magenta', +- // "name": intentionally not styling +- 'regexp': 'red' +-}; +- +- +-function stylizeWithColor(str, styleType) { +- var style = inspect.styles[styleType]; +- +- if (style) { +- return '\u001b[' + inspect.colors[style][0] + 'm' + str + +- '\u001b[' + inspect.colors[style][1] + 'm'; +- } else { +- return str; +- } +-} +- +- +-function stylizeNoColor(str, styleType) { +- return str; +-} +- +- +-function arrayToHash(array) { +- var hash = {}; +- +- array.forEach(function(val, idx) { +- hash[val] = true; +- }); +- +- return hash; +-} +- +- +-function formatValue(ctx, value, recurseTimes) { +- // Provide a hook for user-specified inspect functions. +- // Check that value is an object with an inspect function on it +- if (ctx.customInspect && +- value && +- isFunction(value.inspect) && +- // Filter out the util module, it's inspect function is special +- value.inspect !== exports.inspect && +- // Also filter out any prototype objects using the circular check. +- !(value.constructor && value.constructor.prototype === value)) { +- var ret = value.inspect(recurseTimes, ctx); +- if (!isString(ret)) { +- ret = formatValue(ctx, ret, recurseTimes); +- } +- return ret; +- } +- +- // Primitive types cannot have properties +- var primitive = formatPrimitive(ctx, value); +- if (primitive) { +- return primitive; +- } +- +- // Look up the keys of the object. +- var keys = Object.keys(value); +- var visibleKeys = arrayToHash(keys); +- +- if (ctx.showHidden) { +- keys = Object.getOwnPropertyNames(value); +- } +- +- // Some type of object without properties can be shortcutted. +- if (keys.length === 0) { +- if (isFunction(value)) { +- var name = value.name ? ': ' + value.name : ''; +- return ctx.stylize('[Function' + name + ']', 'special'); +- } +- if (isRegExp(value)) { +- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); +- } +- if (isDate(value)) { +- return ctx.stylize(Date.prototype.toString.call(value), 'date'); +- } +- if (isError(value)) { +- return formatError(value); +- } +- } +- +- var base = '', array = false, braces = ['{', '}']; +- +- // Make Array say that they are Array +- if (isArray(value)) { +- array = true; +- braces = ['[', ']']; +- } +- +- // Make functions say that they are functions +- if (isFunction(value)) { +- var n = value.name ? ': ' + value.name : ''; +- base = ' [Function' + n + ']'; +- } +- +- // Make RegExps say that they are RegExps +- if (isRegExp(value)) { +- base = ' ' + RegExp.prototype.toString.call(value); +- } +- +- // Make dates with properties first say the date +- if (isDate(value)) { +- base = ' ' + Date.prototype.toUTCString.call(value); +- } +- +- // Make error with message first say the error +- if (isError(value)) { +- base = ' ' + formatError(value); +- } +- +- if (keys.length === 0 && (!array || value.length == 0)) { +- return braces[0] + base + braces[1]; +- } +- +- if (recurseTimes < 0) { +- if (isRegExp(value)) { +- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); +- } else { +- return ctx.stylize('[Object]', 'special'); +- } +- } +- +- ctx.seen.push(value); +- +- var output; +- if (array) { +- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); +- } else { +- output = keys.map(function(key) { +- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); +- }); +- } +- +- ctx.seen.pop(); +- +- return reduceToSingleString(output, base, braces); +-} +- +- +-function formatPrimitive(ctx, value) { +- if (isUndefined(value)) +- return ctx.stylize('undefined', 'undefined'); +- if (isString(value)) { +- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') +- .replace(/'/g, "\\'") +- .replace(/\\"/g, '"') + '\''; +- return ctx.stylize(simple, 'string'); +- } +- if (isNumber(value)) { +- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, +- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . +- if (value === 0 && 1 / value < 0) +- return ctx.stylize('-0', 'number'); +- return ctx.stylize('' + value, 'number'); +- } +- if (isBoolean(value)) +- return ctx.stylize('' + value, 'boolean'); +- // For some reason typeof null is "object", so special case here. +- if (isNull(value)) +- return ctx.stylize('null', 'null'); +-} +- +- +-function formatError(value) { +- return '[' + Error.prototype.toString.call(value) + ']'; +-} +- +- +-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { +- var output = []; +- for (var i = 0, l = value.length; i < l; ++i) { +- if (hasOwnProperty(value, String(i))) { +- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, +- String(i), true)); +- } else { +- output.push(''); +- } +- } +- keys.forEach(function(key) { +- if (!key.match(/^\d+$/)) { +- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, +- key, true)); +- } +- }); +- return output; +-} +- +- +-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { +- var name, str, desc; +- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; +- if (desc.get) { +- if (desc.set) { +- str = ctx.stylize('[Getter/Setter]', 'special'); +- } else { +- str = ctx.stylize('[Getter]', 'special'); +- } +- } else { +- if (desc.set) { +- str = ctx.stylize('[Setter]', 'special'); +- } +- } +- if (!hasOwnProperty(visibleKeys, key)) { +- name = '[' + key + ']'; +- } +- if (!str) { +- if (ctx.seen.indexOf(desc.value) < 0) { +- if (isNull(recurseTimes)) { +- str = formatValue(ctx, desc.value, null); +- } else { +- str = formatValue(ctx, desc.value, recurseTimes - 1); +- } +- if (str.indexOf('\n') > -1) { +- if (array) { +- str = str.split('\n').map(function(line) { +- return ' ' + line; +- }).join('\n').substr(2); +- } else { +- str = '\n' + str.split('\n').map(function(line) { +- return ' ' + line; +- }).join('\n'); +- } +- } +- } else { +- str = ctx.stylize('[Circular]', 'special'); +- } +- } +- if (isUndefined(name)) { +- if (array && key.match(/^\d+$/)) { +- return str; +- } +- name = JSON.stringify('' + key); +- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { +- name = name.substr(1, name.length - 2); +- name = ctx.stylize(name, 'name'); +- } else { +- name = name.replace(/'/g, "\\'") +- .replace(/\\"/g, '"') +- .replace(/(^"|"$)/g, "'"); +- name = ctx.stylize(name, 'string'); +- } +- } +- +- return name + ': ' + str; +-} +- +- +-function reduceToSingleString(output, base, braces) { +- var numLinesEst = 0; +- var length = output.reduce(function(prev, cur) { +- numLinesEst++; +- if (cur.indexOf('\n') >= 0) numLinesEst++; +- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; +- }, 0); +- +- if (length > 60) { +- return braces[0] + +- (base === '' ? '' : base + '\n ') + +- ' ' + +- output.join(',\n ') + +- ' ' + +- braces[1]; +- } +- +- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +-} +- +- + // NOTE: These type checking functions intentionally don't use `instanceof` + // because it is fragile and can be easily faked with `Object.create()`. + function isArray(ar) { +@@ -522,166 +98,10 @@ function isPrimitive(arg) { + exports.isPrimitive = isPrimitive; + + function isBuffer(arg) { +- return arg instanceof Buffer; ++ return Buffer.isBuffer(arg); + } + exports.isBuffer = isBuffer; + + function objectToString(o) { + return Object.prototype.toString.call(o); +-} +- +- +-function pad(n) { +- return n < 10 ? '0' + n.toString(10) : n.toString(10); +-} +- +- +-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', +- 'Oct', 'Nov', 'Dec']; +- +-// 26 Feb 16:19:34 +-function timestamp() { +- var d = new Date(); +- var time = [pad(d.getHours()), +- pad(d.getMinutes()), +- pad(d.getSeconds())].join(':'); +- return [d.getDate(), months[d.getMonth()], time].join(' '); +-} +- +- +-// log is just a thin wrapper to console.log that prepends a timestamp +-exports.log = function() { +- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +-}; +- +- +-/** +- * Inherit the prototype methods from one constructor into another. +- * +- * The Function.prototype.inherits from lang.js rewritten as a standalone +- * function (not on Function.prototype). NOTE: If this file is to be loaded +- * during bootstrapping this function needs to be rewritten using some native +- * functions as prototype setup using normal JavaScript does not work as +- * expected during bootstrapping (see mirror.js in r114903). +- * +- * @param {function} ctor Constructor function which needs to inherit the +- * prototype. +- * @param {function} superCtor Constructor function to inherit prototype from. +- */ +-exports.inherits = function(ctor, superCtor) { +- ctor.super_ = superCtor; +- ctor.prototype = Object.create(superCtor.prototype, { +- constructor: { +- value: ctor, +- enumerable: false, +- writable: true, +- configurable: true +- } +- }); +-}; +- +-exports._extend = function(origin, add) { +- // Don't do anything if add isn't an object +- if (!add || !isObject(add)) return origin; +- +- var keys = Object.keys(add); +- var i = keys.length; +- while (i--) { +- origin[keys[i]] = add[keys[i]]; +- } +- return origin; +-}; +- +-function hasOwnProperty(obj, prop) { +- return Object.prototype.hasOwnProperty.call(obj, prop); +-} +- +- +-// Deprecated old stuff. +- +-exports.p = exports.deprecate(function() { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- console.error(exports.inspect(arguments[i])); +- } +-}, 'util.p: Use console.error() instead'); +- +- +-exports.exec = exports.deprecate(function() { +- return require('child_process').exec.apply(this, arguments); +-}, 'util.exec is now called `child_process.exec`.'); +- +- +-exports.print = exports.deprecate(function() { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- process.stdout.write(String(arguments[i])); +- } +-}, 'util.print: Use console.log instead'); +- +- +-exports.puts = exports.deprecate(function() { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- process.stdout.write(arguments[i] + '\n'); +- } +-}, 'util.puts: Use console.log instead'); +- +- +-exports.debug = exports.deprecate(function(x) { +- process.stderr.write('DEBUG: ' + x + '\n'); +-}, 'util.debug: Use console.error instead'); +- +- +-exports.error = exports.deprecate(function(x) { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- process.stderr.write(arguments[i] + '\n'); +- } +-}, 'util.error: Use console.error instead'); +- +- +-exports.pump = exports.deprecate(function(readStream, writeStream, callback) { +- var callbackCalled = false; +- +- function call(a, b, c) { +- if (callback && !callbackCalled) { +- callback(a, b, c); +- callbackCalled = true; +- } +- } +- +- readStream.addListener('data', function(chunk) { +- if (writeStream.write(chunk) === false) readStream.pause(); +- }); +- +- writeStream.addListener('drain', function() { +- readStream.resume(); +- }); +- +- readStream.addListener('end', function() { +- writeStream.end(); +- }); +- +- readStream.addListener('close', function() { +- call(); +- }); +- +- readStream.addListener('error', function(err) { +- writeStream.end(); +- call(err); +- }); +- +- writeStream.addListener('error', function(err) { +- readStream.destroy(); +- call(err); +- }); +-}, 'util.pump(): Use readableStream.pipe() instead'); +- +- +-var uv; +-exports._errnoException = function(err, syscall) { +- if (isUndefined(uv)) uv = process.binding('uv'); +- var errname = uv.errname(err); +- var e = new Error(syscall + ' ' + errname); +- e.code = errname; +- e.errno = errname; +- e.syscall = syscall; +- return e; +-}; ++} \ No newline at end of file diff --git a/deps/npm/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/core-util-is/lib/util.js new file mode 100644 index 0000000000..ff4c851c07 --- /dev/null +++ b/deps/npm/node_modules/core-util-is/lib/util.js @@ -0,0 +1,107 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} diff --git a/deps/npm/node_modules/core-util-is/package.json b/deps/npm/node_modules/core-util-is/package.json new file mode 100644 index 0000000000..963a39a6f9 --- /dev/null +++ b/deps/npm/node_modules/core-util-is/package.json @@ -0,0 +1,64 @@ +{ + "_from": "core-util-is@~1.0.0", + "_id": "core-util-is@1.0.2", + "_inBundle": false, + "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "_location": "/core-util-is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "core-util-is@~1.0.0", + "name": "core-util-is", + "escapedName": "core-util-is", + "rawSpec": "~1.0.0", + "saveSpec": null, + "fetchSpec": "~1.0.0" + }, + "_requiredBy": [ + "/readable-stream", + "/sorted-union-stream/readable-stream", + "/verror" + ], + "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "_spec": "core-util-is@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/core-util-is/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "The `util.is*` functions introduced in Node v0.12.", + "devDependencies": { + "tap": "^2.3.0" + }, + "homepage": "https://github.com/isaacs/core-util-is#readme", + "keywords": [ + "util", + "isBuffer", + "isArray", + "isNumber", + "isString", + "isRegExp", + "isThis", + "isThat", + "polyfill" + ], + "license": "MIT", + "main": "lib/util.js", + "name": "core-util-is", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is.git" + }, + "scripts": { + "test": "tap test.js" + }, + "version": "1.0.2" +} diff --git a/deps/npm/node_modules/core-util-is/test.js b/deps/npm/node_modules/core-util-is/test.js new file mode 100644 index 0000000000..1a490c65ac --- /dev/null +++ b/deps/npm/node_modules/core-util-is/test.js @@ -0,0 +1,68 @@ +var assert = require('tap'); + +var t = require('./lib/util'); + +assert.equal(t.isArray([]), true); +assert.equal(t.isArray({}), false); + +assert.equal(t.isBoolean(null), false); +assert.equal(t.isBoolean(true), true); +assert.equal(t.isBoolean(false), true); + +assert.equal(t.isNull(null), true); +assert.equal(t.isNull(undefined), false); +assert.equal(t.isNull(false), false); +assert.equal(t.isNull(), false); + +assert.equal(t.isNullOrUndefined(null), true); +assert.equal(t.isNullOrUndefined(undefined), true); +assert.equal(t.isNullOrUndefined(false), false); +assert.equal(t.isNullOrUndefined(), true); + +assert.equal(t.isNumber(null), false); +assert.equal(t.isNumber('1'), false); +assert.equal(t.isNumber(1), true); + +assert.equal(t.isString(null), false); +assert.equal(t.isString('1'), true); +assert.equal(t.isString(1), false); + +assert.equal(t.isSymbol(null), false); +assert.equal(t.isSymbol('1'), false); +assert.equal(t.isSymbol(1), false); +assert.equal(t.isSymbol(Symbol()), true); + +assert.equal(t.isUndefined(null), false); +assert.equal(t.isUndefined(undefined), true); +assert.equal(t.isUndefined(false), false); +assert.equal(t.isUndefined(), true); + +assert.equal(t.isRegExp(null), false); +assert.equal(t.isRegExp('1'), false); +assert.equal(t.isRegExp(new RegExp()), true); + +assert.equal(t.isObject({}), true); +assert.equal(t.isObject([]), true); +assert.equal(t.isObject(new RegExp()), true); +assert.equal(t.isObject(new Date()), true); + +assert.equal(t.isDate(null), false); +assert.equal(t.isDate('1'), false); +assert.equal(t.isDate(new Date()), true); + +assert.equal(t.isError(null), false); +assert.equal(t.isError({ err: true }), false); +assert.equal(t.isError(new Error()), true); + +assert.equal(t.isFunction(null), false); +assert.equal(t.isFunction({ }), false); +assert.equal(t.isFunction(function() {}), true); + +assert.equal(t.isPrimitive(null), true); +assert.equal(t.isPrimitive(''), true); +assert.equal(t.isPrimitive(0), true); +assert.equal(t.isPrimitive(new Date()), false); + +assert.equal(t.isBuffer(null), false); +assert.equal(t.isBuffer({}), false); +assert.equal(t.isBuffer(new Buffer(0)), true); diff --git a/deps/npm/node_modules/create-error-class/index.js b/deps/npm/node_modules/create-error-class/index.js new file mode 100644 index 0000000000..e415aa7ede --- /dev/null +++ b/deps/npm/node_modules/create-error-class/index.js @@ -0,0 +1,44 @@ +'use strict'; +var captureStackTrace = require('capture-stack-trace'); + +function inherits(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +} + +module.exports = function createErrorClass(className, setup) { + if (typeof className !== 'string') { + throw new TypeError('Expected className to be a string'); + } + + if (/[^0-9a-zA-Z_$]/.test(className)) { + throw new Error('className contains invalid characters'); + } + + setup = setup || function (message) { + this.message = message; + }; + + var ErrorClass = function () { + Object.defineProperty(this, 'name', { + configurable: true, + value: className, + writable: true + }); + + captureStackTrace(this, this.constructor); + + setup.apply(this, arguments); + }; + + inherits(ErrorClass, Error); + + return ErrorClass; +}; diff --git a/deps/npm/node_modules/create-error-class/license b/deps/npm/node_modules/create-error-class/license new file mode 100644 index 0000000000..1aeb74fd25 --- /dev/null +++ b/deps/npm/node_modules/create-error-class/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Vsevolod Strukchinsky (github.com/floatdrop) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/deps/npm/node_modules/create-error-class/package.json b/deps/npm/node_modules/create-error-class/package.json new file mode 100644 index 0000000000..8bf87fce03 --- /dev/null +++ b/deps/npm/node_modules/create-error-class/package.json @@ -0,0 +1,60 @@ +{ + "_from": "create-error-class@^3.0.0", + "_id": "create-error-class@3.0.2", + "_inBundle": false, + "_integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "_location": "/create-error-class", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "create-error-class@^3.0.0", + "name": "create-error-class", + "escapedName": "create-error-class", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/got" + ], + "_resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "_shasum": "06be7abef947a3f14a30fd610671d401bca8b7b6", + "_spec": "create-error-class@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/got", + "author": { + "name": "Vsevolod Strukchinsky", + "email": "floatdrop@gmail.com", + "url": "github.com/floatdrop" + }, + "bugs": { + "url": "https://github.com/floatdrop/create-error-class/issues" + }, + "bundleDependencies": false, + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "deprecated": false, + "description": "Create Error classes", + "devDependencies": { + "mocha": "*" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/floatdrop/create-error-class#readme", + "keywords": [], + "license": "MIT", + "name": "create-error-class", + "repository": { + "type": "git", + "url": "git+https://github.com/floatdrop/create-error-class.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "3.0.2" +} diff --git a/deps/npm/node_modules/create-error-class/readme.md b/deps/npm/node_modules/create-error-class/readme.md new file mode 100644 index 0000000000..1076de88eb --- /dev/null +++ b/deps/npm/node_modules/create-error-class/readme.md @@ -0,0 +1,54 @@ +# create-error-class [![Build Status](https://travis-ci.org/floatdrop/create-error-class.svg?branch=master)](https://travis-ci.org/floatdrop/create-error-class) + +> Create error class + + +## Install + +``` +$ npm install --save create-error-class +``` + + +## Usage + +```js +var createErrorClass = require('create-error-class'); + +var HTTPError = createErrorClass('HTTPError', function (props) { + this.message = 'Status code is ' + props.statusCode; +}); + +throw new HTTPError({statusCode: 404}); +``` + + +## API + +### createErrorClass(className, [setup]) + +Return constructor of Errors with `className`. + +#### className + +*Required* +Type: `string` + +Class name of Error Object. Should contain characters from `[0-9a-zA-Z_$]` range. + +#### setup +Type: `function` + +Setup function, that will be called after each Error object is created from constructor with context of Error object. + +By default `setup` function sets `this.message` as first argument: + +```js +var MyError = createErrorClass('MyError'); + +new MyError('Something gone wrong!').message; // => 'Something gone wrong!' +``` + +## License + +MIT Ā© [Vsevolod Strukchinsky](http://github.com/floatdrop) diff --git a/deps/npm/node_modules/cross-spawn/CHANGELOG.md b/deps/npm/node_modules/cross-spawn/CHANGELOG.md new file mode 100644 index 0000000000..f1298a82f7 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/CHANGELOG.md @@ -0,0 +1,6 @@ +## 5.0.0 - 2016-10-30 + +- Add support for `options.shell` +- Improve parsing of shebangs by using [`shebang-command`](https://github.com/kevva/shebang-command) module +- Refactor some code to make it more clear +- Update README caveats diff --git a/deps/npm/node_modules/cross-spawn/LICENSE b/deps/npm/node_modules/cross-spawn/LICENSE new file mode 100644 index 0000000000..db5e914de1 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014 IndigoUnited + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/deps/npm/node_modules/cross-spawn/README.md b/deps/npm/node_modules/cross-spawn/README.md new file mode 100644 index 0000000000..dde730df1b --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/README.md @@ -0,0 +1,85 @@ +# cross-spawn + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url] + +[npm-url]:https://npmjs.org/package/cross-spawn +[downloads-image]:http://img.shields.io/npm/dm/cross-spawn.svg +[npm-image]:http://img.shields.io/npm/v/cross-spawn.svg +[travis-url]:https://travis-ci.org/IndigoUnited/node-cross-spawn +[travis-image]:http://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg +[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn +[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn/master.svg +[david-dm-url]:https://david-dm.org/IndigoUnited/node-cross-spawn +[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg +[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-cross-spawn#info=devDependencies +[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg + +A cross platform solution to node's spawn and spawnSync. + + +## Installation + +`$ npm install cross-spawn` + +If you are using `spawnSync` on node 0.10 or older, you will also need to install `spawn-sync`: + +`$ npm install spawn-sync` + + +## Why + +Node has issues when using spawn on Windows: + +- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318) +- It does not support [shebangs](http://pt.wikipedia.org/wiki/Shebang) +- No `options.shell` support on node < v6 +- It does not allow you to run `del` or `dir` + +All these issues are handled correctly by `cross-spawn`. +There are some known modules, such as [win-spawn](https://github.com/ForbesLindesay/win-spawn), that try to solve this but they are either broken or provide faulty escaping of shell arguments. + + +## Usage + +Exactly the same way as node's [`spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) or [`spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options), so it's a drop in replacement. + + +```js +var spawn = require('cross-spawn'); + +// Spawn NPM asynchronously +var child = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' }); + +// Spawn NPM synchronously +var results = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' }); +``` + + +## Caveats + +#### `options.shell` as an alternative to `cross-spawn` + +Starting from node v6, `spawn` has a `shell` option that allows you run commands from within a shell. This new option solves most of the problems that `cross-spawn` attempts to solve, but: + +- It's not supported in node < v6 +- It has no support for shebangs on Windows +- You must manually escape the command and arguments which is very error prone, specially when passing user input + +If you are using the `shell` option to spawn a command in a cross platform way, consider using `cross-spawn` instead. You have been warned. + + +#### Shebangs + +While `cross-spawn` handles shebangs on Windows, its support is limited: e.g.: it doesn't handle arguments after the path, e.g.: `#!/bin/bash -e`. + +Remember to always test your code on Windows! + + +## Tests + +`$ npm test` + + +## License + +Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). diff --git a/deps/npm/node_modules/cross-spawn/index.js b/deps/npm/node_modules/cross-spawn/index.js new file mode 100644 index 0000000000..7814a9692d --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/index.js @@ -0,0 +1,59 @@ +'use strict'; + +var cp = require('child_process'); +var parse = require('./lib/parse'); +var enoent = require('./lib/enoent'); + +var cpSpawnSync = cp.spawnSync; + +function spawn(command, args, options) { + var parsed; + var spawned; + + // Parse the arguments + parsed = parse(command, args, options); + + // Spawn the child process + spawned = cp.spawn(parsed.command, parsed.args, parsed.options); + + // Hook into child process "exit" event to emit an error if the command + // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + enoent.hookChildProcess(spawned, parsed); + + return spawned; +} + +function spawnSync(command, args, options) { + var parsed; + var result; + + if (!cpSpawnSync) { + try { + cpSpawnSync = require('spawn-sync'); // eslint-disable-line global-require + } catch (ex) { + throw new Error( + 'In order to use spawnSync on node 0.10 or older, you must ' + + 'install spawn-sync:\n\n' + + ' npm install spawn-sync --save' + ); + } + } + + // Parse the arguments + parsed = parse(command, args, options); + + // Spawn the child process + result = cpSpawnSync(parsed.command, parsed.args, parsed.options); + + // Analyze if the command does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); + + return result; +} + +module.exports = spawn; +module.exports.spawn = spawn; +module.exports.sync = spawnSync; + +module.exports._parse = parse; +module.exports._enoent = enoent; diff --git a/deps/npm/node_modules/cross-spawn/lib/enoent.js b/deps/npm/node_modules/cross-spawn/lib/enoent.js new file mode 100644 index 0000000000..d0a193aecd --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/enoent.js @@ -0,0 +1,73 @@ +'use strict'; + +var isWin = process.platform === 'win32'; +var resolveCommand = require('./util/resolveCommand'); + +var isNode10 = process.version.indexOf('v0.10.') === 0; + +function notFoundError(command, syscall) { + var err; + + err = new Error(syscall + ' ' + command + ' ENOENT'); + err.code = err.errno = 'ENOENT'; + err.syscall = syscall + ' ' + command; + + return err; +} + +function hookChildProcess(cp, parsed) { + var originalEmit; + + if (!isWin) { + return; + } + + originalEmit = cp.emit; + cp.emit = function (name, arg1) { + var err; + + // If emitting "exit" event and exit code is 1, we need to check if + // the command exists and emit an "error" instead + // See: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + if (name === 'exit') { + err = verifyENOENT(arg1, parsed, 'spawn'); + + if (err) { + return originalEmit.call(cp, 'error', err); + } + } + + return originalEmit.apply(cp, arguments); + }; +} + +function verifyENOENT(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawn'); + } + + return null; +} + +function verifyENOENTSync(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawnSync'); + } + + // If we are in node 10, then we are using spawn-sync; if it exited + // with -1 it probably means that the command does not exist + if (isNode10 && status === -1) { + parsed.file = isWin ? parsed.file : resolveCommand(parsed.original); + + if (!parsed.file) { + return notFoundError(parsed.original, 'spawnSync'); + } + } + + return null; +} + +module.exports.hookChildProcess = hookChildProcess; +module.exports.verifyENOENT = verifyENOENT; +module.exports.verifyENOENTSync = verifyENOENTSync; +module.exports.notFoundError = notFoundError; diff --git a/deps/npm/node_modules/cross-spawn/lib/parse.js b/deps/npm/node_modules/cross-spawn/lib/parse.js new file mode 100644 index 0000000000..10a013625b --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/parse.js @@ -0,0 +1,113 @@ +'use strict'; + +var resolveCommand = require('./util/resolveCommand'); +var hasEmptyArgumentBug = require('./util/hasEmptyArgumentBug'); +var escapeArgument = require('./util/escapeArgument'); +var escapeCommand = require('./util/escapeCommand'); +var readShebang = require('./util/readShebang'); + +var isWin = process.platform === 'win32'; +var skipShellRegExp = /\.(?:com|exe)$/i; + +// Supported in Node >= 6 and >= 4.8 +var supportsShellOption = parseInt(process.version.substr(1).split('.')[0], 10) >= 6 || + parseInt(process.version.substr(1).split('.')[0], 10) === 4 && parseInt(process.version.substr(1).split('.')[1], 10) >= 8; + +function parseNonShell(parsed) { + var shebang; + var needsShell; + var applyQuotes; + + if (!isWin) { + return parsed; + } + + // Detect & add support for shebangs + parsed.file = resolveCommand(parsed.command); + parsed.file = parsed.file || resolveCommand(parsed.command, true); + shebang = parsed.file && readShebang(parsed.file); + + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; + needsShell = hasEmptyArgumentBug || !skipShellRegExp.test(resolveCommand(shebang) || resolveCommand(shebang, true)); + } else { + needsShell = hasEmptyArgumentBug || !skipShellRegExp.test(parsed.file); + } + + // If a shell is required, use cmd.exe and take care of escaping everything correctly + if (needsShell) { + // Escape command & arguments + applyQuotes = (parsed.command !== 'echo'); // Do not quote arguments for the special "echo" command + parsed.command = escapeCommand(parsed.command); + parsed.args = parsed.args.map(function (arg) { + return escapeArgument(arg, applyQuotes); + }); + + // Make use of cmd.exe + parsed.args = ['/d', '/s', '/c', '"' + parsed.command + (parsed.args.length ? ' ' + parsed.args.join(' ') : '') + '"']; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } + + return parsed; +} + +function parseShell(parsed) { + var shellCommand; + + // If node supports the shell option, there's no need to mimic its behavior + if (supportsShellOption) { + return parsed; + } + + // Mimic node shell option, see: https://github.com/nodejs/node/blob/b9f6a2dc059a1062776133f3d4fd848c4da7d150/lib/child_process.js#L335 + shellCommand = [parsed.command].concat(parsed.args).join(' '); + + if (isWin) { + parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe'; + parsed.args = ['/d', '/s', '/c', '"' + shellCommand + '"']; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } else { + if (typeof parsed.options.shell === 'string') { + parsed.command = parsed.options.shell; + } else if (process.platform === 'android') { + parsed.command = '/system/bin/sh'; + } else { + parsed.command = '/bin/sh'; + } + + parsed.args = ['-c', shellCommand]; + } + + return parsed; +} + +// ------------------------------------------------ + +function parse(command, args, options) { + var parsed; + + // Normalize arguments, similar to nodejs + if (args && !Array.isArray(args)) { + options = args; + args = null; + } + + args = args ? args.slice(0) : []; // Clone array to avoid changing the original + options = options || {}; + + // Build our parsed object + parsed = { + command: command, + args: args, + options: options, + file: undefined, + original: command, + }; + + // Delegate further parsing to shell or non-shell + return options.shell ? parseShell(parsed) : parseNonShell(parsed); +} + +module.exports = parse; diff --git a/deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js b/deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js new file mode 100644 index 0000000000..367263f669 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js @@ -0,0 +1,30 @@ +'use strict'; + +function escapeArgument(arg, quote) { + // Convert to string + arg = '' + arg; + + // If we are not going to quote the argument, + // escape shell metacharacters, including double and single quotes: + if (!quote) { + arg = arg.replace(/([()%!^<>&|;,"'\s])/g, '^$1'); + } else { + // Sequence of backslashes followed by a double quote: + // double up all the backslashes and escape the double quote + arg = arg.replace(/(\\*)"/g, '$1$1\\"'); + + // Sequence of backslashes followed by the end of the string + // (which will become a double quote later): + // double up all the backslashes + arg = arg.replace(/(\\*)$/, '$1$1'); + + // All other backslashes occur literally + + // Quote the whole thing: + arg = '"' + arg + '"'; + } + + return arg; +} + +module.exports = escapeArgument; diff --git a/deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js b/deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js new file mode 100644 index 0000000000..d9c25b2656 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js @@ -0,0 +1,12 @@ +'use strict'; + +var escapeArgument = require('./escapeArgument'); + +function escapeCommand(command) { + // Do not escape if this command is not dangerous.. + // We do this so that commands like "echo" or "ifconfig" work + // Quoting them, will make them unaccessible + return /^[a-z0-9_-]+$/i.test(command) ? command : escapeArgument(command, true); +} + +module.exports = escapeCommand; diff --git a/deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js b/deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js new file mode 100644 index 0000000000..9f2eba6355 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js @@ -0,0 +1,18 @@ +'use strict'; + +// See: https://github.com/IndigoUnited/node-cross-spawn/pull/34#issuecomment-221623455 +function hasEmptyArgumentBug() { + var nodeVer; + + if (process.platform !== 'win32') { + return false; + } + + nodeVer = process.version.substr(1).split('.').map(function (num) { + return parseInt(num, 10); + }); + + return (nodeVer[0] === 0 && nodeVer[1] < 12); +} + +module.exports = hasEmptyArgumentBug(); diff --git a/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js b/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js new file mode 100644 index 0000000000..2cf3541c99 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js @@ -0,0 +1,37 @@ +'use strict'; + +var fs = require('fs'); +var LRU = require('lru-cache'); +var shebangCommand = require('shebang-command'); + +var shebangCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec + +function readShebang(command) { + var buffer; + var fd; + var shebang; + + // Check if it is in the cache first + if (shebangCache.has(command)) { + return shebangCache.get(command); + } + + // Read the first 150 bytes from the file + buffer = new Buffer(150); + + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, 150, 0); + fs.closeSync(fd); + } catch (e) { /* empty */ } + + // Attempt to extract shebang (null is returned if not a shebang) + shebang = shebangCommand(buffer.toString()); + + // Store the shebang in the cache + shebangCache.set(command, shebang); + + return shebang; +} + +module.exports = readShebang; diff --git a/deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js b/deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js new file mode 100644 index 0000000000..b7a9490974 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js @@ -0,0 +1,31 @@ +'use strict'; + +var path = require('path'); +var which = require('which'); +var LRU = require('lru-cache'); + +var commandCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec + +function resolveCommand(command, noExtension) { + var resolved; + + noExtension = !!noExtension; + resolved = commandCache.get(command + '!' + noExtension); + + // Check if its resolved in the cache + if (commandCache.has(command)) { + return commandCache.get(command); + } + + try { + resolved = !noExtension ? + which.sync(command) : + which.sync(command, { pathExt: path.delimiter + (process.env.PATHEXT || '') }); + } catch (e) { /* empty */ } + + commandCache.set(command + '!' + noExtension, resolved); + + return resolved; +} + +module.exports = resolveCommand; diff --git a/deps/npm/node_modules/cross-spawn/package.json b/deps/npm/node_modules/cross-spawn/package.json new file mode 100644 index 0000000000..e55b570939 --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/package.json @@ -0,0 +1,84 @@ +{ + "_from": "cross-spawn@^5.0.1", + "_id": "cross-spawn@5.1.0", + "_inBundle": false, + "_integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "_location": "/cross-spawn", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "cross-spawn@^5.0.1", + "name": "cross-spawn", + "escapedName": "cross-spawn", + "rawSpec": "^5.0.1", + "saveSpec": null, + "fetchSpec": "^5.0.1" + }, + "_requiredBy": [ + "/eslint", + "/execa" + ], + "_resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "_shasum": "e8bd0efee58fcff6f8f94510a0a554bbfa235449", + "_spec": "cross-spawn@^5.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/execa", + "author": { + "name": "IndigoUnited", + "email": "hello@indigounited.com", + "url": "http://indigounited.com" + }, + "bugs": { + "url": "https://github.com/IndigoUnited/node-cross-spawn/issues/" + }, + "bundleDependencies": false, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "deprecated": false, + "description": "Cross platform child_process#spawn and child_process#spawnSync", + "devDependencies": { + "@satazor/eslint-config": "^3.0.0", + "eslint": "^3.0.0", + "expect.js": "^0.3.0", + "glob": "^7.0.0", + "mkdirp": "^0.5.1", + "mocha": "^3.0.2", + "once": "^1.4.0", + "rimraf": "^2.5.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/IndigoUnited/node-cross-spawn#readme", + "keywords": [ + "spawn", + "spawnSync", + "windows", + "cross", + "platform", + "path", + "ext", + "path-ext", + "path_ext", + "shebang", + "hashbang", + "cmd", + "execute" + ], + "license": "MIT", + "main": "index.js", + "name": "cross-spawn", + "repository": { + "type": "git", + "url": "git://github.com/IndigoUnited/node-cross-spawn.git" + }, + "scripts": { + "lint": "eslint '{*.js,lib/**/*.js,test/**/*.js}'", + "test": "node test/prepare && mocha --bail test/test" + }, + "version": "5.1.0" +} diff --git a/deps/npm/node_modules/cryptiles/.npmignore b/deps/npm/node_modules/cryptiles/.npmignore new file mode 100644 index 0000000000..adac8ad9c6 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/.npmignore @@ -0,0 +1,3 @@ +* +!lib/** +!.npmignore diff --git a/deps/npm/node_modules/cryptiles/LICENSE b/deps/npm/node_modules/cryptiles/LICENSE new file mode 100755 index 0000000000..4028ccd3fa --- /dev/null +++ b/deps/npm/node_modules/cryptiles/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2014-2017, Eran Hammer and Project contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hueniverse/cryptiles/graphs/contributors diff --git a/deps/npm/node_modules/cryptiles/README.md b/deps/npm/node_modules/cryptiles/README.md new file mode 100755 index 0000000000..b3df9e67ff --- /dev/null +++ b/deps/npm/node_modules/cryptiles/README.md @@ -0,0 +1,19 @@ +cryptiles +========= + +General purpose crypto utilities + +[![Build Status](https://secure.travis-ci.org/hapijs/cryptiles.png)](http://travis-ci.org/hapijs/cryptiles) + +Lead Maintainer - [C J Silverio](https://github.com/ceejbot) + +## Methods + +### `randomString( size)` +Returns a cryptographically strong pseudo-random data string. Takes a size argument for the length of the string. + +### `randomDigits( size)` +Returns a cryptographically strong pseudo-random data string consisting of only numerical digits (0-9). Takes a size argument for the length of the string. + +### `fixedTimeComparison( a, b)` +Compare two strings using fixed time algorithm (to prevent time-based analysis of MAC digest match). Returns `true` if the strings match, `false` if they differ. diff --git a/deps/npm/node_modules/cryptiles/lib/index.js b/deps/npm/node_modules/cryptiles/lib/index.js new file mode 100755 index 0000000000..511eab66d4 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/lib/index.js @@ -0,0 +1,88 @@ +'use strict'; + +// Load modules + +const Crypto = require('crypto'); +const Boom = require('boom'); + + +// Declare internals + +const internals = {}; + + +// Generate a cryptographically strong pseudo-random data + +exports.randomString = function (size) { + + const buffer = exports.randomBits((size + 1) * 6); + if (buffer instanceof Error) { + return buffer; + } + + const string = buffer.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, ''); + return string.slice(0, size); +}; + + +// Return a random string of digits + +exports.randomDigits = function (size) { + + const buffer = exports.randomBits(size * 8); + if (buffer instanceof Error) { + return buffer; + } + + const digits = []; + for (let i = 0; i < buffer.length; ++i) { + digits.push(Math.floor(buffer[i] / 25.6)); + } + + return digits.join(''); +}; + + +// Generate a buffer of random bits + +exports.randomBits = function (bits) { + + if (!bits || + bits < 0) { + + return Boom.internal('Invalid random bits count'); + } + + const bytes = Math.ceil(bits / 8); + try { + return Crypto.randomBytes(bytes); + } + catch (err) { + return Boom.internal('Failed generating random bits: ' + err.message); + } +}; + + +// Compare two strings using fixed time algorithm (to prevent time-based analysis of MAC digest match) + +exports.fixedTimeComparison = function (a, b) { + + if (typeof a !== 'string' || + typeof b !== 'string') { + + return false; + } + + let mismatch = (a.length === b.length ? 0 : 1); + if (mismatch) { + b = a; + } + + for (let i = 0; i < a.length; ++i) { + const ac = a.charCodeAt(i); + const bc = b.charCodeAt(i); + mismatch |= (ac ^ bc); + } + + return (mismatch === 0); +}; diff --git a/deps/npm/node_modules/cryptiles/node_modules/boom/LICENSE b/deps/npm/node_modules/cryptiles/node_modules/boom/LICENSE new file mode 100755 index 0000000000..94b91cbf09 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/node_modules/boom/LICENSE @@ -0,0 +1,29 @@ +Copyright (c) 2012-2017, Project contributors. +Copyright (c) 2012-2014, Walmart. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/boom/graphs/contributors diff --git a/deps/npm/node_modules/cryptiles/node_modules/boom/README.md b/deps/npm/node_modules/cryptiles/node_modules/boom/README.md new file mode 100755 index 0000000000..50d5b0d7d2 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/node_modules/boom/README.md @@ -0,0 +1,784 @@ +![boom Logo](https://raw.github.com/hapijs/boom/master/images/boom.png) + +HTTP-friendly error objects + +[![Build Status](https://secure.travis-ci.org/hapijs/boom.svg)](http://travis-ci.org/hapijs/boom) +[![Current Version](https://img.shields.io/npm/v/boom.svg)](https://www.npmjs.com/package/boom) + +Lead Maintainer: [Adam Bretz](https://github.com/arb) + + + +- [Boom](#boom) + - [Helper Methods](#helper-methods) + - [`boomify(error, [options])`](#boomifyerror-options) + - [`wrap(error, [statusCode], [message])`](#wraperror-statuscode-message) + - [`create(statusCode, [message], [data])`](#createstatuscode-message-data) + - [HTTP 4xx Errors](#http-4xx-errors) + - [`Boom.badRequest([message], [data])`](#boombadrequestmessage-data) + - [`Boom.unauthorized([message], [scheme], [attributes])`](#boomunauthorizedmessage-scheme-attributes) + - [`Boom.paymentRequired([message], [data])`](#boompaymentrequiredmessage-data) + - [`Boom.forbidden([message], [data])`](#boomforbiddenmessage-data) + - [`Boom.notFound([message], [data])`](#boomnotfoundmessage-data) + - [`Boom.methodNotAllowed([message], [data], [allow])`](#boommethodnotallowedmessage-data-allow) + - [`Boom.notAcceptable([message], [data])`](#boomnotacceptablemessage-data) + - [`Boom.proxyAuthRequired([message], [data])`](#boomproxyauthrequiredmessage-data) + - [`Boom.clientTimeout([message], [data])`](#boomclienttimeoutmessage-data) + - [`Boom.conflict([message], [data])`](#boomconflictmessage-data) + - [`Boom.resourceGone([message], [data])`](#boomresourcegonemessage-data) + - [`Boom.lengthRequired([message], [data])`](#boomlengthrequiredmessage-data) + - [`Boom.preconditionFailed([message], [data])`](#boompreconditionfailedmessage-data) + - [`Boom.entityTooLarge([message], [data])`](#boomentitytoolargemessage-data) + - [`Boom.uriTooLong([message], [data])`](#boomuritoolongmessage-data) + - [`Boom.unsupportedMediaType([message], [data])`](#boomunsupportedmediatypemessage-data) + - [`Boom.rangeNotSatisfiable([message], [data])`](#boomrangenotsatisfiablemessage-data) + - [`Boom.expectationFailed([message], [data])`](#boomexpectationfailedmessage-data) + - [`Boom.teapot([message], [data])`](#boomteapotmessage-data) + - [`Boom.badData([message], [data])`](#boombaddatamessage-data) + - [`Boom.locked([message], [data])`](#boomlockedmessage-data) + - [`Boom.preconditionRequired([message], [data])`](#boompreconditionrequiredmessage-data) + - [`Boom.tooManyRequests([message], [data])`](#boomtoomanyrequestsmessage-data) + - [`Boom.illegal([message], [data])`](#boomillegalmessage-data) + - [HTTP 5xx Errors](#http-5xx-errors) + - [`Boom.badImplementation([message], [data])` - (*alias: `internal`*)](#boombadimplementationmessage-data---alias-internal) + - [`Boom.notImplemented([message], [data])`](#boomnotimplementedmessage-data) + - [`Boom.badGateway([message], [data])`](#boombadgatewaymessage-data) + - [`Boom.serverUnavailable([message], [data])`](#boomserverunavailablemessage-data) + - [`Boom.gatewayTimeout([message], [data])`](#boomgatewaytimeoutmessage-data) + - [F.A.Q.](#faq) + + + +# Boom + +**boom** provides a set of utilities for returning HTTP errors. Each utility returns a `Boom` error response +object (instance of `Error`) which includes the following properties: +- `isBoom` - if `true`, indicates this is a `Boom` object instance. +- `isServer` - convenience bool indicating status code >= 500. +- `message` - the error message. +- `typeof` - the contructor used to create the error (e.g. `Boom.badRequest`). +- `output` - the formatted response. Can be directly manipulated after object construction to return a custom + error response. Allowed root keys: + - `statusCode` - the HTTP status code (typically 4xx or 5xx). + - `headers` - an object containing any HTTP headers where each key is a header name and value is the header content. + - `payload` - the formatted object used as the response payload (stringified). Can be directly manipulated but any + changes will be lost + if `reformat()` is called. Any content allowed and by default includes the following content: + - `statusCode` - the HTTP status code, derived from `error.output.statusCode`. + - `error` - the HTTP status message (e.g. 'Bad Request', 'Internal Server Error') derived from `statusCode`. + - `message` - the error message derived from `error.message`. +- inherited `Error` properties. + +The `Boom` object also supports the following method: +- `reformat()` - rebuilds `error.output` using the other object properties. + +## Helper Methods + +### `boomify(error, [options])` + +Decorates an error with the **boom** properties where: +- `error` - the `Error` object to decorate. +- `options` - optional object with the following optional settings: + - `statusCode` - the HTTP status code. Defaults to `500` if no status code is already set. + - `message` - error message string. If the error already has a message, the provided `message` is added as a prefix. + Defaults to no message. + - `override` - if `false`, the `error` provided is a **boom** object, and a `statusCode` or `message` are provided, + the values are ignored. Defaults to `true` (apply the provided `statusCode` and `message` options to the error + regardless of its type, `Error` or **boom** object). + +Note: This method replaces the [`wrap()`](#wraperror-statuscode-message) and changes the default behavior to override +existing **boom** objects with the provided status code and message. + +```js +var error = new Error('Unexpected input'); +Boom.boomify(error, { statusCode: 400 }); +``` + +### `wrap(error, [statusCode], [message])` + +Note: This method is deprecated. + +Decorates an error with the **boom** properties where: +- `error` - the error object to wrap. If `error` is already a **boom** object, returns back the same object. +- `statusCode` - optional HTTP status code. Defaults to `500`. +- `message` - optional message string. If the error already has a message, it adds the message as a prefix. + Defaults to no message. + +```js +var error = new Error('Unexpected input'); +Boom.wrap(error, 400); +``` + +### `create(statusCode, [message], [data])` + +Generates an `Error` object with the **boom** decorations where: +- `statusCode` - an HTTP error code number. Must be greater or equal 400. +- `message` - optional message string. +- `data` - additional error data set to `error.data` property. + +```js +var error = Boom.create(400, 'Bad request', { timestamp: Date.now() }); +``` + +## HTTP 4xx Errors + +### `Boom.badRequest([message], [data])` + +Returns a 400 Bad Request error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.badRequest('invalid query'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 400, + "error": "Bad Request", + "message": "invalid query" +} +``` + +### `Boom.unauthorized([message], [scheme], [attributes])` + +Returns a 401 Unauthorized error where: +- `message` - optional message. +- `scheme` can be one of the following: + - an authentication scheme name + - an array of string values. These values will be separated by ', ' and set to the 'WWW-Authenticate' header. +- `attributes` - an object of values to use while setting the 'WWW-Authenticate' header. This value is only used + when `scheme` is a string, otherwise it is ignored. Every key/value pair will be included in the + 'WWW-Authenticate' in the format of 'key="value"' as well as in the response payload under the `attributes` key. Alternatively value can be a string which is use to set the value of the scheme, for example setting the token value for negotiate header. If string is used message parameter must be null. + `null` and `undefined` will be replaced with an empty string. If `attributes` is set, `message` will be used as + the 'error' segment of the 'WWW-Authenticate' header. If `message` is unset, the 'error' segment of the header + will not be present and `isMissing` will be true on the error object. + +If either `scheme` or `attributes` are set, the resultant `Boom` object will have the 'WWW-Authenticate' header set for the response. + +```js +Boom.unauthorized('invalid password'); +``` + +Generates the following response: + +```json +"payload": { + "statusCode": 401, + "error": "Unauthorized", + "message": "invalid password" +}, +"headers" {} +``` + +```js +Boom.unauthorized('invalid password', 'sample'); +``` + +Generates the following response: + +```json +"payload": { + "statusCode": 401, + "error": "Unauthorized", + "message": "invalid password", + "attributes": { + "error": "invalid password" + } +}, +"headers" { + "WWW-Authenticate": "sample error=\"invalid password\"" +} +``` + +```js +Boom.unauthorized(null, 'Negotiate', 'VGhpcyBpcyBhIHRlc3QgdG9rZW4='); +``` + +Generates the following response: + +```json +"payload": { + "statusCode": 401, + "error": "Unauthorized", + "attributes": "VGhpcyBpcyBhIHRlc3QgdG9rZW4=" +}, +"headers" { + "WWW-Authenticate": "Negotiate VGhpcyBpcyBhIHRlc3QgdG9rZW4=" +} +``` + +```js +Boom.unauthorized('invalid password', 'sample', { ttl: 0, cache: null, foo: 'bar' }); +``` + +Generates the following response: + +```json +"payload": { + "statusCode": 401, + "error": "Unauthorized", + "message": "invalid password", + "attributes": { + "error": "invalid password", + "ttl": 0, + "cache": "", + "foo": "bar" + } +}, +"headers" { + "WWW-Authenticate": "sample ttl=\"0\", cache=\"\", foo=\"bar\", error=\"invalid password\"" +} +``` + +### `Boom.paymentRequired([message], [data])` + +Returns a 402 Payment Required error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.paymentRequired('bandwidth used'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 402, + "error": "Payment Required", + "message": "bandwidth used" +} +``` + +### `Boom.forbidden([message], [data])` + +Returns a 403 Forbidden error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.forbidden('try again some time'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 403, + "error": "Forbidden", + "message": "try again some time" +} +``` + +### `Boom.notFound([message], [data])` + +Returns a 404 Not Found error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.notFound('missing'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 404, + "error": "Not Found", + "message": "missing" +} +``` + +### `Boom.methodNotAllowed([message], [data], [allow])` + +Returns a 405 Method Not Allowed error where: +- `message` - optional message. +- `data` - optional additional error data. +- `allow` - optional string or array of strings (to be combined and separated by ', ') which is set to the 'Allow' header. + +```js +Boom.methodNotAllowed('that method is not allowed'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 405, + "error": "Method Not Allowed", + "message": "that method is not allowed" +} +``` + +### `Boom.notAcceptable([message], [data])` + +Returns a 406 Not Acceptable error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.notAcceptable('unacceptable'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 406, + "error": "Not Acceptable", + "message": "unacceptable" +} +``` + +### `Boom.proxyAuthRequired([message], [data])` + +Returns a 407 Proxy Authentication Required error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.proxyAuthRequired('auth missing'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 407, + "error": "Proxy Authentication Required", + "message": "auth missing" +} +``` + +### `Boom.clientTimeout([message], [data])` + +Returns a 408 Request Time-out error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.clientTimeout('timed out'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 408, + "error": "Request Time-out", + "message": "timed out" +} +``` + +### `Boom.conflict([message], [data])` + +Returns a 409 Conflict error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.conflict('there was a conflict'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 409, + "error": "Conflict", + "message": "there was a conflict" +} +``` + +### `Boom.resourceGone([message], [data])` + +Returns a 410 Gone error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.resourceGone('it is gone'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 410, + "error": "Gone", + "message": "it is gone" +} +``` + +### `Boom.lengthRequired([message], [data])` + +Returns a 411 Length Required error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.lengthRequired('length needed'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 411, + "error": "Length Required", + "message": "length needed" +} +``` + +### `Boom.preconditionFailed([message], [data])` + +Returns a 412 Precondition Failed error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.preconditionFailed(); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 412, + "error": "Precondition Failed" +} +``` + +### `Boom.entityTooLarge([message], [data])` + +Returns a 413 Request Entity Too Large error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.entityTooLarge('too big'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 413, + "error": "Request Entity Too Large", + "message": "too big" +} +``` + +### `Boom.uriTooLong([message], [data])` + +Returns a 414 Request-URI Too Large error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.uriTooLong('uri is too long'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 414, + "error": "Request-URI Too Large", + "message": "uri is too long" +} +``` + +### `Boom.unsupportedMediaType([message], [data])` + +Returns a 415 Unsupported Media Type error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.unsupportedMediaType('that media is not supported'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 415, + "error": "Unsupported Media Type", + "message": "that media is not supported" +} +``` + +### `Boom.rangeNotSatisfiable([message], [data])` + +Returns a 416 Requested Range Not Satisfiable error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.rangeNotSatisfiable(); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 416, + "error": "Requested Range Not Satisfiable" +} +``` + +### `Boom.expectationFailed([message], [data])` + +Returns a 417 Expectation Failed error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.expectationFailed('expected this to work'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 417, + "error": "Expectation Failed", + "message": "expected this to work" +} +``` + +### `Boom.teapot([message], [data])` + +Returns a 418 I'm a Teapot error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.teapot('sorry, no coffee...'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 418, + "error": "I'm a Teapot", + "message": "Sorry, no coffee..." +} +``` + +### `Boom.badData([message], [data])` + +Returns a 422 Unprocessable Entity error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.badData('your data is bad and you should feel bad'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 422, + "error": "Unprocessable Entity", + "message": "your data is bad and you should feel bad" +} +``` + +### `Boom.locked([message], [data])` + +Returns a 423 Locked error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.locked('this resource has been locked'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 423, + "error": "Locked", + "message": "this resource has been locked" +} +``` + +### `Boom.preconditionRequired([message], [data])` + +Returns a 428 Precondition Required error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.preconditionRequired('you must supply an If-Match header'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 428, + "error": "Precondition Required", + "message": "you must supply an If-Match header" +} +``` + +### `Boom.tooManyRequests([message], [data])` + +Returns a 429 Too Many Requests error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.tooManyRequests('you have exceeded your request limit'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 429, + "error": "Too Many Requests", + "message": "you have exceeded your request limit" +} +``` + +### `Boom.illegal([message], [data])` + +Returns a 451 Unavailable For Legal Reasons error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.illegal('you are not permitted to view this resource for legal reasons'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 451, + "error": "Unavailable For Legal Reasons", + "message": "you are not permitted to view this resource for legal reasons" +} +``` + +## HTTP 5xx Errors + +All 500 errors hide your message from the end user. Your message is recorded in the server log. + +### `Boom.badImplementation([message], [data])` - (*alias: `internal`*) + +Returns a 500 Internal Server Error error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.badImplementation('terrible implementation'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 500, + "error": "Internal Server Error", + "message": "An internal server error occurred" +} +``` + +### `Boom.notImplemented([message], [data])` + +Returns a 501 Not Implemented error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.notImplemented('method not implemented'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 501, + "error": "Not Implemented", + "message": "method not implemented" +} +``` + +### `Boom.badGateway([message], [data])` + +Returns a 502 Bad Gateway error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.badGateway('that is a bad gateway'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 502, + "error": "Bad Gateway", + "message": "that is a bad gateway" +} +``` + +### `Boom.serverUnavailable([message], [data])` + +Returns a 503 Service Unavailable error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.serverUnavailable('unavailable'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 503, + "error": "Service Unavailable", + "message": "unavailable" +} +``` + +### `Boom.gatewayTimeout([message], [data])` + +Returns a 504 Gateway Time-out error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.gatewayTimeout(); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 504, + "error": "Gateway Time-out" +} +``` + +## F.A.Q. + +**Q** How do I include extra information in my responses? `output.payload` is missing `data`, what gives? + +**A** There is a reason the values passed back in the response payloads are pretty locked down. It's mostly for security and to not leak any important information back to the client. This means you will need to put in a little more effort to include extra information about your custom error. Check out the ["Error transformation"](https://github.com/hapijs/hapi/blob/master/API.md#error-transformation) section in the hapi documentation. + +--- diff --git a/deps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js b/deps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js new file mode 100755 index 0000000000..c57c79d434 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js @@ -0,0 +1,457 @@ +'use strict'; + +// Load modules + +const Hoek = require('hoek'); + + +// Declare internals + +const internals = { + STATUS_CODES: Object.setPrototypeOf({ + '100': 'Continue', + '101': 'Switching Protocols', + '102': 'Processing', + '200': 'OK', + '201': 'Created', + '202': 'Accepted', + '203': 'Non-Authoritative Information', + '204': 'No Content', + '205': 'Reset Content', + '206': 'Partial Content', + '207': 'Multi-Status', + '300': 'Multiple Choices', + '301': 'Moved Permanently', + '302': 'Moved Temporarily', + '303': 'See Other', + '304': 'Not Modified', + '305': 'Use Proxy', + '307': 'Temporary Redirect', + '400': 'Bad Request', + '401': 'Unauthorized', + '402': 'Payment Required', + '403': 'Forbidden', + '404': 'Not Found', + '405': 'Method Not Allowed', + '406': 'Not Acceptable', + '407': 'Proxy Authentication Required', + '408': 'Request Time-out', + '409': 'Conflict', + '410': 'Gone', + '411': 'Length Required', + '412': 'Precondition Failed', + '413': 'Request Entity Too Large', + '414': 'Request-URI Too Large', + '415': 'Unsupported Media Type', + '416': 'Requested Range Not Satisfiable', + '417': 'Expectation Failed', + '418': 'I\'m a teapot', + '422': 'Unprocessable Entity', + '423': 'Locked', + '424': 'Failed Dependency', + '425': 'Unordered Collection', + '426': 'Upgrade Required', + '428': 'Precondition Required', + '429': 'Too Many Requests', + '431': 'Request Header Fields Too Large', + '451': 'Unavailable For Legal Reasons', + '500': 'Internal Server Error', + '501': 'Not Implemented', + '502': 'Bad Gateway', + '503': 'Service Unavailable', + '504': 'Gateway Time-out', + '505': 'HTTP Version Not Supported', + '506': 'Variant Also Negotiates', + '507': 'Insufficient Storage', + '509': 'Bandwidth Limit Exceeded', + '510': 'Not Extended', + '511': 'Network Authentication Required' + }, null) +}; + + +exports.boomify = function (error, options) { + + Hoek.assert(error instanceof Error, 'Cannot wrap non-Error object'); + + options = options || {}; + + if (!error.isBoom) { + return internals.initialize(error, options.statusCode || 500, options.message); + } + + if (options.override === false || // Defaults to true + (!options.statusCode && !options.message)) { + + return error; + } + + return internals.initialize(error, options.statusCode || error.output.statusCode, options.message); +}; + + +exports.wrap = function (error, statusCode, message) { + + Hoek.assert(error instanceof Error, 'Cannot wrap non-Error object'); + Hoek.assert(!error.isBoom || (!statusCode && !message), 'Cannot provide statusCode or message with boom error'); + + return (error.isBoom ? error : internals.initialize(error, statusCode || 500, message)); +}; + + +exports.create = function (statusCode, message, data) { + + return internals.create(statusCode, message, data, exports.create); +}; + + +internals.create = function (statusCode, message, data, ctor) { + + if (message instanceof Error) { + if (data) { + message.data = data; + } + + return exports.wrap(message, statusCode); + } + + const error = new Error(message ? message : undefined); // Avoids settings null message + Error.captureStackTrace(error, ctor); // Filter the stack to our external API + error.data = data || null; + internals.initialize(error, statusCode); + error.typeof = ctor; + + return error; +}; + + +internals.initialize = function (error, statusCode, message) { + + const numberCode = parseInt(statusCode, 10); + Hoek.assert(!isNaN(numberCode) && numberCode >= 400, 'First argument must be a number (400+):', statusCode); + + error.isBoom = true; + error.isServer = numberCode >= 500; + + if (!error.hasOwnProperty('data')) { + error.data = null; + } + + error.output = { + statusCode: numberCode, + payload: {}, + headers: {} + }; + + error.reformat = internals.reformat; + + if (!message && + !error.message) { + + error.reformat(); + message = error.output.payload.error; + } + + if (message) { + error.message = (message + (error.message ? ': ' + error.message : '')); + error.output.payload.message = error.message; + } + + error.reformat(); + return error; +}; + + +internals.reformat = function () { + + this.output.payload.statusCode = this.output.statusCode; + this.output.payload.error = internals.STATUS_CODES[this.output.statusCode] || 'Unknown'; + + if (this.output.statusCode === 500) { + this.output.payload.message = 'An internal server error occurred'; // Hide actual error from user + } + else if (this.message) { + this.output.payload.message = this.message; + } +}; + + +// 4xx Client Errors + +exports.badRequest = function (message, data) { + + return internals.create(400, message, data, exports.badRequest); +}; + + +exports.unauthorized = function (message, scheme, attributes) { // Or function (message, wwwAuthenticate[]) + + const err = internals.create(401, message, undefined, exports.unauthorized); + + if (!scheme) { + return err; + } + + let wwwAuthenticate = ''; + + if (typeof scheme === 'string') { + + // function (message, scheme, attributes) + + wwwAuthenticate = scheme; + + if (attributes || message) { + err.output.payload.attributes = {}; + } + + if (attributes) { + if (typeof attributes === 'string') { + wwwAuthenticate = wwwAuthenticate + ' ' + Hoek.escapeHeaderAttribute(attributes); + err.output.payload.attributes = attributes; + } + else { + const names = Object.keys(attributes); + for (let i = 0; i < names.length; ++i) { + const name = names[i]; + if (i) { + wwwAuthenticate = wwwAuthenticate + ','; + } + + let value = attributes[name]; + if (value === null || + value === undefined) { // Value can be zero + + value = ''; + } + wwwAuthenticate = wwwAuthenticate + ' ' + name + '="' + Hoek.escapeHeaderAttribute(value.toString()) + '"'; + err.output.payload.attributes[name] = value; + } + } + } + + + if (message) { + if (attributes) { + wwwAuthenticate = wwwAuthenticate + ','; + } + wwwAuthenticate = wwwAuthenticate + ' error="' + Hoek.escapeHeaderAttribute(message) + '"'; + err.output.payload.attributes.error = message; + } + else { + err.isMissing = true; + } + } + else { + + // function (message, wwwAuthenticate[]) + + const wwwArray = scheme; + for (let i = 0; i < wwwArray.length; ++i) { + if (i) { + wwwAuthenticate = wwwAuthenticate + ', '; + } + + wwwAuthenticate = wwwAuthenticate + wwwArray[i]; + } + } + + err.output.headers['WWW-Authenticate'] = wwwAuthenticate; + + return err; +}; + + +exports.paymentRequired = function (message, data) { + + return internals.create(402, message, data, exports.paymentRequired); +}; + + +exports.forbidden = function (message, data) { + + return internals.create(403, message, data, exports.forbidden); +}; + + +exports.notFound = function (message, data) { + + return internals.create(404, message, data, exports.notFound); +}; + + +exports.methodNotAllowed = function (message, data, allow) { + + const err = internals.create(405, message, data, exports.methodNotAllowed); + + if (typeof allow === 'string') { + allow = [allow]; + } + + if (Array.isArray(allow)) { + err.output.headers.Allow = allow.join(', '); + } + + return err; +}; + + +exports.notAcceptable = function (message, data) { + + return internals.create(406, message, data, exports.notAcceptable); +}; + + +exports.proxyAuthRequired = function (message, data) { + + return internals.create(407, message, data, exports.proxyAuthRequired); +}; + + +exports.clientTimeout = function (message, data) { + + return internals.create(408, message, data, exports.clientTimeout); +}; + + +exports.conflict = function (message, data) { + + return internals.create(409, message, data, exports.conflict); +}; + + +exports.resourceGone = function (message, data) { + + return internals.create(410, message, data, exports.resourceGone); +}; + + +exports.lengthRequired = function (message, data) { + + return internals.create(411, message, data, exports.lengthRequired); +}; + + +exports.preconditionFailed = function (message, data) { + + return internals.create(412, message, data, exports.preconditionFailed); +}; + + +exports.entityTooLarge = function (message, data) { + + return internals.create(413, message, data, exports.entityTooLarge); +}; + + +exports.uriTooLong = function (message, data) { + + return internals.create(414, message, data, exports.uriTooLong); +}; + + +exports.unsupportedMediaType = function (message, data) { + + return internals.create(415, message, data, exports.unsupportedMediaType); +}; + + +exports.rangeNotSatisfiable = function (message, data) { + + return internals.create(416, message, data, exports.rangeNotSatisfiable); +}; + + +exports.expectationFailed = function (message, data) { + + return internals.create(417, message, data, exports.expectationFailed); +}; + + +exports.teapot = function (message, data) { + + return internals.create(418, message, data, exports.teapot); +}; + + +exports.badData = function (message, data) { + + return internals.create(422, message, data, exports.badData); +}; + + +exports.locked = function (message, data) { + + return internals.create(423, message, data, exports.locked); +}; + + +exports.preconditionRequired = function (message, data) { + + return internals.create(428, message, data, exports.preconditionRequired); +}; + + +exports.tooManyRequests = function (message, data) { + + return internals.create(429, message, data, exports.tooManyRequests); +}; + + +exports.illegal = function (message, data) { + + return internals.create(451, message, data, exports.illegal); +}; + + +// 5xx Server Errors + +exports.internal = function (message, data, statusCode) { + + return internals.serverError(message, data, statusCode, exports.internal); +}; + + +internals.serverError = function (message, data, statusCode, ctor) { + + if (data instanceof Error && + !data.isBoom) { + + return exports.wrap(data, statusCode, message); + } + + const error = internals.create(statusCode || 500, message, undefined, ctor); + error.data = data; + return error; +}; + + +exports.notImplemented = function (message, data) { + + return internals.serverError(message, data, 501, exports.notImplemented); +}; + + +exports.badGateway = function (message, data) { + + return internals.serverError(message, data, 502, exports.badGateway); +}; + + +exports.serverUnavailable = function (message, data) { + + return internals.serverError(message, data, 503, exports.serverUnavailable); +}; + + +exports.gatewayTimeout = function (message, data) { + + return internals.serverError(message, data, 504, exports.gatewayTimeout); +}; + + +exports.badImplementation = function (message, data) { + + const err = internals.serverError(message, data, 500, exports.badImplementation); + err.isDeveloperError = true; + return err; +}; diff --git a/deps/npm/node_modules/cryptiles/node_modules/boom/package.json b/deps/npm/node_modules/cryptiles/node_modules/boom/package.json new file mode 100644 index 0000000000..8349d1b932 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/node_modules/boom/package.json @@ -0,0 +1,61 @@ +{ + "_from": "boom@5.x.x", + "_id": "boom@5.2.0", + "_inBundle": false, + "_integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "_location": "/cryptiles/boom", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "boom@5.x.x", + "name": "boom", + "escapedName": "boom", + "rawSpec": "5.x.x", + "saveSpec": null, + "fetchSpec": "5.x.x" + }, + "_requiredBy": [ + "/cryptiles" + ], + "_resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "_shasum": "5dd9da6ee3a5f302077436290cb717d3f4a54e02", + "_spec": "boom@5.x.x", + "_where": "/Users/rebecca/code/npm/node_modules/cryptiles", + "bugs": { + "url": "https://github.com/hapijs/boom/issues" + }, + "bundleDependencies": false, + "dependencies": { + "hoek": "4.x.x" + }, + "deprecated": false, + "description": "HTTP-friendly error objects", + "devDependencies": { + "code": "4.x.x", + "lab": "14.x.x", + "markdown-toc": "0.12.x" + }, + "engines": { + "node": ">=4.0.0" + }, + "homepage": "https://github.com/hapijs/boom#readme", + "keywords": [ + "error", + "http" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "boom", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/boom.git" + }, + "scripts": { + "test": "lab -a code -t 100 -L -v", + "test-cov-html": "lab -a code -r html -o coverage.html -L", + "toc": "node generate-toc.js", + "version": "npm run toc && git add README.md" + }, + "version": "5.2.0" +} diff --git a/deps/npm/node_modules/cryptiles/package.json b/deps/npm/node_modules/cryptiles/package.json new file mode 100755 index 0000000000..ad7bdfaf36 --- /dev/null +++ b/deps/npm/node_modules/cryptiles/package.json @@ -0,0 +1,61 @@ +{ + "_from": "cryptiles@3.x.x", + "_id": "cryptiles@3.1.2", + "_inBundle": false, + "_integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "_location": "/cryptiles", + "_phantomChildren": { + "hoek": "4.2.1" + }, + "_requested": { + "type": "range", + "registry": true, + "raw": "cryptiles@3.x.x", + "name": "cryptiles", + "escapedName": "cryptiles", + "rawSpec": "3.x.x", + "saveSpec": null, + "fetchSpec": "3.x.x" + }, + "_requiredBy": [ + "/hawk" + ], + "_resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "_shasum": "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe", + "_spec": "cryptiles@3.x.x", + "_where": "/Users/rebecca/code/npm/node_modules/hawk", + "bugs": { + "url": "https://github.com/hapijs/cryptiles/issues" + }, + "bundleDependencies": false, + "dependencies": { + "boom": "5.x.x" + }, + "deprecated": false, + "description": "General purpose crypto utilities", + "devDependencies": { + "code": "4.x.x", + "lab": "13.x.x" + }, + "engines": { + "node": ">=4.0.0" + }, + "homepage": "https://github.com/hapijs/cryptiles#readme", + "keywords": [ + "cryptography", + "security", + "utilites" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "cryptiles", + "repository": { + "type": "git", + "url": "git://github.com/hapijs/cryptiles.git" + }, + "scripts": { + "test": "lab -a code -t 100 -L", + "test-cov-html": "lab -a code -r html -o coverage.html" + }, + "version": "3.1.2" +} diff --git a/deps/npm/node_modules/crypto-random-string/index.js b/deps/npm/node_modules/crypto-random-string/index.js new file mode 100644 index 0000000000..ceaf65bfcf --- /dev/null +++ b/deps/npm/node_modules/crypto-random-string/index.js @@ -0,0 +1,10 @@ +'use strict'; +const crypto = require('crypto'); + +module.exports = len => { + if (!Number.isFinite(len)) { + throw new TypeError('Expected a finite number'); + } + + return crypto.randomBytes(Math.ceil(len / 2)).toString('hex').slice(0, len); +}; diff --git a/deps/npm/node_modules/crypto-random-string/license b/deps/npm/node_modules/crypto-random-string/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/deps/npm/node_modules/crypto-random-string/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/deps/npm/node_modules/crypto-random-string/package.json b/deps/npm/node_modules/crypto-random-string/package.json new file mode 100644 index 0000000000..c56b849f47 --- /dev/null +++ b/deps/npm/node_modules/crypto-random-string/package.json @@ -0,0 +1,75 @@ +{ + "_from": "crypto-random-string@^1.0.0", + "_id": "crypto-random-string@1.0.0", + "_inBundle": false, + "_integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "_location": "/crypto-random-string", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "crypto-random-string@^1.0.0", + "name": "crypto-random-string", + "escapedName": "crypto-random-string", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/unique-string" + ], + "_resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "_shasum": "a230f64f568310e1498009940790ec99545bca7e", + "_spec": "crypto-random-string@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/unique-string", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/crypto-random-string/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Generate a cryptographically strong random string", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/crypto-random-string#readme", + "keywords": [ + "random", + "string", + "str", + "rand", + "text", + "id", + "identifier", + "slug", + "salt", + "crypto", + "strong", + "secure", + "hex" + ], + "license": "MIT", + "name": "crypto-random-string", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/crypto-random-string.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0", + "xo": { + "esnext": true + } +} diff --git a/deps/npm/node_modules/crypto-random-string/readme.md b/deps/npm/node_modules/crypto-random-string/readme.md new file mode 100644 index 0000000000..dab5a2e9c2 --- /dev/null +++ b/deps/npm/node_modules/crypto-random-string/readme.md @@ -0,0 +1,49 @@ +# crypto-random-string [![Build Status](https://travis-ci.org/sindresorhus/crypto-random-string.svg?branch=master)](https://travis-ci.org/sindresorhus/crypto-random-string) + +> Generate a [cryptographically strong](https://en.m.wikipedia.org/wiki/Strong_cryptography) random string + +Can be useful for creating an identifier, slug, salt, fixture, etc. + + +## Install + +``` +$ npm install --save crypto-random-string +``` + + +## Usage + +```js +const cryptoRandomString = require('crypto-random-string'); + +cryptoRandomString(10); +//=> '2cf05d94db' +``` + + +## API + +### cryptoRandomString(length) + +#### length + +Type: `number` + +Length of the returned string. + + +## Related + +- [random-int](https://github.com/sindresorhus/random-int) - Generate a random integer +- [random-float](https://github.com/sindresorhus/random-float) - Generate a random float +- [random-item](https://github.com/sindresorhus/random-item) - Get a random item from an array +- [random-boolean](https://github.com/arthurvr/random-boolean) - Get a random boolean +- [random-obj-key](https://github.com/sindresorhus/random-obj-key) - Get a random key from an object +- [random-obj-prop](https://github.com/sindresorhus/random-obj-prop) - Get a random property from an object +- [unique-random](https://github.com/sindresorhus/unique-random) - Generate random numbers that are consecutively unique + + +## License + +MIT Ā© [Sindre Sorhus](https://sindresorhus.com) diff --git a/deps/npm/node_modules/cyclist/.npmignore b/deps/npm/node_modules/cyclist/.npmignore new file mode 100644 index 0000000000..ba99195bae --- /dev/null +++ b/deps/npm/node_modules/cyclist/.npmignore @@ -0,0 +1 @@ +bench diff --git a/deps/npm/node_modules/cyclist/README.md b/deps/npm/node_modules/cyclist/README.md new file mode 100644 index 0000000000..50c35cc5fd --- /dev/null +++ b/deps/npm/node_modules/cyclist/README.md @@ -0,0 +1,39 @@ +# Cyclist + +Cyclist is an efficient [cyclic list](http://en.wikipedia.org/wiki/Circular_buffer) implemention for Javascript. +It is available through npm + + npm install cyclist + +## What? + +Cyclist allows you to create a list of fixed size that is cyclic. +In a cyclist list the element following the last one is the first one. +This property can be really useful when for example trying to order data +packets that can arrive out of order over a network stream. + +## Usage + +``` js +var cyclist = require('cyclist'); +var list = cyclist(4); // if size (4) is not a power of 2 it will be the follwing power of 2 + // this buffer can now hold 4 elements in total + +list.put(42, 'hello 42'); // store something and index 42 +list.put(43, 'hello 43'); // store something and index 43 + +console.log(list.get(42)); // prints hello 42 +console.log(list.get(46)); // prints hello 42 again since 46 - 42 == list.size +``` + +## API + +* `cyclist(size)` creates a new buffer +* `cyclist#get(index)` get an object stored in the buffer +* `cyclist#put(index,value)` insert an object into the buffer +* `cyclist#del(index)` delete an object from an index +* `cyclist#size` property containing current size of buffer + +## License + +MIT diff --git a/deps/npm/node_modules/cyclist/index.js b/deps/npm/node_modules/cyclist/index.js new file mode 100644 index 0000000000..baf710c3a9 --- /dev/null +++ b/deps/npm/node_modules/cyclist/index.js @@ -0,0 +1,33 @@ +var ensureTwoPower = function(n) { + if (n && !(n & (n - 1))) return n; + var p = 1; + while (p < n) p <<= 1; + return p; +}; + +var Cyclist = function(size) { + if (!(this instanceof Cyclist)) return new Cyclist(size); + size = ensureTwoPower(size); + this.mask = size-1; + this.size = size; + this.values = new Array(size); +}; + +Cyclist.prototype.put = function(index, val) { + var pos = index & this.mask; + this.values[pos] = val; + return pos; +}; + +Cyclist.prototype.get = function(index) { + return this.values[index & this.mask]; +}; + +Cyclist.prototype.del = function(index) { + var pos = index & this.mask; + var val = this.values[pos]; + this.values[pos] = undefined; + return val; +}; + +module.exports = Cyclist; \ No newline at end of file diff --git a/deps/npm/node_modules/cyclist/package.json b/deps/npm/node_modules/cyclist/package.json new file mode 100644 index 0000000000..f113d8c54f --- /dev/null +++ b/deps/npm/node_modules/cyclist/package.json @@ -0,0 +1,50 @@ +{ + "_from": "cyclist@~0.2.2", + "_id": "cyclist@0.2.2", + "_inBundle": false, + "_integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "_location": "/cyclist", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "cyclist@~0.2.2", + "name": "cyclist", + "escapedName": "cyclist", + "rawSpec": "~0.2.2", + "saveSpec": null, + "fetchSpec": "~0.2.2" + }, + "_requiredBy": [ + "/parallel-transform" + ], + "_resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "_shasum": "1b33792e11e914a2fd6d6ed6447464444e5fa640", + "_spec": "cyclist@~0.2.2", + "_where": "/Users/rebecca/code/npm/node_modules/parallel-transform", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, + "bugs": { + "url": "https://github.com/mafintosh/cyclist/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Cyclist is an efficient cyclic list implemention.", + "homepage": "https://github.com/mafintosh/cyclist#readme", + "keywords": [ + "circular", + "buffer", + "ring", + "cyclic", + "data" + ], + "name": "cyclist", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/cyclist.git" + }, + "version": "0.2.2" +} diff --git a/deps/npm/node_modules/dashdash/CHANGES.md b/deps/npm/node_modules/dashdash/CHANGES.md new file mode 100644 index 0000000000..d7c8f4ebe1 --- /dev/null +++ b/deps/npm/node_modules/dashdash/CHANGES.md @@ -0,0 +1,364 @@ +# node-dashdash changelog + +## not yet released + +(nothing yet) + +## 1.14.1 + +- [issue #30] Change the output used by dashdash's Bash completion support to + indicate "there are no completions for this argument" to cope with different + sorting rules on different Bash/platforms. For example: + + $ triton -v -p test2 package get # before + ##-no -tritonpackage- completions-## + + $ triton -v -p test2 package get # after + ##-no-completion- -results-## + +## 1.14.0 + +- New `synopsisFromOpt(